diff options
Diffstat (limited to 'test_mini/libft/test/include/helper')
| -rw-r--r-- | test_mini/libft/test/include/helper/helper_segfault.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test_mini/libft/test/include/helper/helper_segfault.h b/test_mini/libft/test/include/helper/helper_segfault.h new file mode 100644 index 0000000..d638a70 --- /dev/null +++ b/test_mini/libft/test/include/helper/helper_segfault.h @@ -0,0 +1,20 @@ +#ifndef HELPER_SEGFAULT_H +# define HELPER_SEGFAULT_H + +extern int helper_segfault_pid; + +# define TEST_ASSERT_SEGFAULT(code) do { \ + fflush(stdout); \ + 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 |
