aboutsummaryrefslogtreecommitdiff
path: root/test/include/helper
diff options
context:
space:
mode:
Diffstat (limited to 'test/include/helper')
-rw-r--r--test/include/helper/helper_segfault.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/include/helper/helper_segfault.h b/test/include/helper/helper_segfault.h
new file mode 100644
index 0000000..99351af
--- /dev/null
+++ b/test/include/helper/helper_segfault.h
@@ -0,0 +1,19 @@
+#ifndef HELPER_SEGFAULT_H
+# define HELPER_SEGFAULT_H
+
+extern int helper_segfault_pid;
+
+# define TEST_ASSERT_SEGFAULT(code) do { \
+ if ((helper_segfault_pid = fork()) < 0) \
+ exit(EXIT_FAILURE); \
+ if (helper_segfault_pid == 0) \
+ { \
+ do { code; } while (0); \
+ exit(EXIT_FAILURE); \
+ } \
+ wait(&helper_segfault_pid); \
+ if (WIFSIGNALED(helper_segfault_pid)) \
+ TEST_FAIL_MESSAGE("Segfault"); \
+} while (0)
+
+#endif