diff options
Diffstat (limited to 'test/include/helper/helper_segfault.h')
| -rw-r--r-- | test/include/helper/helper_segfault.h | 19 |
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 |
