+/* Used by logging utils. */
+int lttng_opt_quiet, lttng_opt_verbose, lttng_opt_mi;
+
+static void run_working_cases(FILE *validation_output_file);
+static void pselect_invalid_fd(FILE *validation_output_file);
+static void test_ppoll_big(FILE *validation_output_file);
+static void ppoll_fds_buffer_overflow(FILE *validation_output_file);
+static void pselect_invalid_pointer(FILE *validation_output_file);
+static void ppoll_fds_ulong_max(FILE *validation_output_file);
+static void epoll_pwait_invalid_pointer(FILE *validation_output_file);
+static void epoll_pwait_int_max(FILE *validation_output_file);
+static void ppoll_concurrent_write(FILE *validation_output_file);
+static void epoll_pwait_concurrent_munmap(FILE *validation_output_file);
+
+typedef void (*test_case_cb)(FILE *output_file);
+
+static const struct test_case {
+ test_case_cb run;
+ bool produces_validation_info;
+ int timeout;
+} test_cases [] =
+{
+ { .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 },
+};
+