summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/execute_test.cc6
-rw-r--r--test/testprog.cc8
2 files changed, 12 insertions, 2 deletions
diff --git a/test/execute_test.cc b/test/execute_test.cc
index 4c686bf..722b6ea 100644
--- a/test/execute_test.cc
+++ b/test/execute_test.cc
@@ -35,6 +35,12 @@ public:
uASSERT_EQUAL(1, value);
value = execute(s, "no-such-binary", {}, {}, false);
uASSERT_EQUAL(1, value);
+ value = execute(s, cmd, {"segfault"}, {}, false);
+ uASSERT_EQUAL(11, value);
+ value = execute(s, cmd, {"throw"}, {}, false);
+ uASSERT_EQUAL(6, value);
+ value = execute(s, cmd, {"abort"}, {}, false);
+ uASSERT_EQUAL(6, value);
}
void env()
diff --git a/test/testprog.cc b/test/testprog.cc
index dbfb665..faf1498 100644
--- a/test/testprog.cc
+++ b/test/testprog.cc
@@ -1,8 +1,7 @@
#include <iostream>
#include <fstream>
#include <string>
-
-extern const char **environ; // see 'man environ'
+#include <signal.h>
int main(int argc, const char* argv[])
{
@@ -40,6 +39,11 @@ int main(int argc, const char* argv[])
abort();
}
+ if(cmd == "segfault")
+ {
+ raise(SIGSEGV);
+ }
+
if(cmd == "throw")
{
throw "ouch";