X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Fregression%2Fkernel%2Fselect_poll_epoll.cpp;h=32cecddbb13409c2e1551385c47eb7043142538b;hb=fbf606d77e98bd46d953a40331f039730cfdf532;hp=fb72f6e5a582c48899752acbeeb3bd20966ccc39;hpb=f46376a14da2eb796690cb4e718e8b213839d6ea;p=lttng-tools.git diff --git a/tests/regression/kernel/select_poll_epoll.cpp b/tests/regression/kernel/select_poll_epoll.cpp index fb72f6e5a..32cecddbb 100644 --- a/tests/regression/kernel/select_poll_epoll.cpp +++ b/tests/regression/kernel/select_poll_epoll.cpp @@ -5,27 +5,36 @@ * */ -#include +/* + * This test voluntarily does buffer overflows and stack overruns, disable + * source fortification. + */ +#ifdef _FORTIFY_SOURCE +#undef _FORTIFY_SOURCE +#endif + +#include +#include #include +#include +#include #include -#include -#include -#include -#include -#include +#include +#include #include #include -#include -#include #include -#include -#include -#include -#include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include #define BUF_SIZE 256 #define NB_FD 1 @@ -58,7 +67,8 @@ static void epoll_pwait_concurrent_munmap(FILE *validation_output_file); typedef void (*test_case_cb)(FILE *output_file); -static const struct test_case { +namespace { +const struct test_case { test_case_cb run; bool produces_validation_info; int timeout; @@ -66,21 +76,22 @@ static const struct test_case { { { .run = run_working_cases, .produces_validation_info = true, .timeout = -1 }, { .run = run_working_cases, .produces_validation_info = true, .timeout = 1 }, - { .run = pselect_invalid_fd, .produces_validation_info = false }, - { .run = test_ppoll_big, .produces_validation_info = false }, - { .run = ppoll_fds_buffer_overflow, .produces_validation_info = false }, - { .run = pselect_invalid_pointer, .produces_validation_info = false }, - { .run = ppoll_fds_ulong_max, .produces_validation_info = false }, - { .run = epoll_pwait_invalid_pointer, .produces_validation_info = true }, - { .run = epoll_pwait_int_max, .produces_validation_info = true }, - { .run = ppoll_concurrent_write, .produces_validation_info = false }, - { .run = epoll_pwait_concurrent_munmap, .produces_validation_info = true }, + { .run = pselect_invalid_fd, .produces_validation_info = false, .timeout = 0 }, + { .run = test_ppoll_big, .produces_validation_info = false, .timeout = 0 }, + { .run = ppoll_fds_buffer_overflow, .produces_validation_info = false, .timeout = 0 }, + { .run = pselect_invalid_pointer, .produces_validation_info = false, .timeout = 0 }, + { .run = ppoll_fds_ulong_max, .produces_validation_info = false, .timeout = 0 }, + { .run = epoll_pwait_invalid_pointer, .produces_validation_info = true, .timeout = 0 }, + { .run = epoll_pwait_int_max, .produces_validation_info = true, .timeout = 0 }, + { .run = ppoll_concurrent_write, .produces_validation_info = false, .timeout = 0 }, + { .run = epoll_pwait_concurrent_munmap, .produces_validation_info = true, .timeout = 0 }, }; struct ppoll_thread_data { struct pollfd *ufds; int value; }; +} /* namespace */ static void test_select_big(void) @@ -935,7 +946,7 @@ int main(int argc, const char **argv) { "validation-file", 'o', POPT_ARG_STRING, &test_validation_output_file_path, 0, "Test case output", NULL }, POPT_AUTOHELP - { NULL, 0, 0, NULL, 0 } + { NULL, 0, 0, NULL, 0, NULL, NULL } }; const struct test_case *test_case;