summaryrefslogtreecommitdiff
path: root/tests/gem_stress.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-11 15:33:00 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-01-11 15:33:00 +0100
commitcbaa8a389e47695e6612eb0f76faaf7d0979fee3 (patch)
tree64ab19f46493ebd89c5c5855e256e7bc9e83aba8 /tests/gem_stress.c
parent36d25cc7440ef9d37d16ea95ee0d51e5e6e2c5e2 (diff)
lib/drmtest: extract helpers for signal interruptions
Also add some hackish stat to check it works. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/gem_stress.c')
-rw-r--r--tests/gem_stress.c32
1 files changed, 2 insertions, 30 deletions
diff --git a/tests/gem_stress.c b/tests/gem_stress.c
index f72bd13f..44fcfbaa 100644
--- a/tests/gem_stress.c
+++ b/tests/gem_stress.c
@@ -51,8 +51,6 @@
#include "gem_stress.h"
-#include <signal.h>
-
#define CMD_POLY_STIPPLE_OFFSET 0x7906
/** TODO:
@@ -102,29 +100,6 @@ struct {
unsigned max_failed_reads;
} stats;
-static void signal_helper_process(pid_t pid)
-{
- /* Interrupt the parent process at 500Hz, just to be annoying */
- while (1) {
- usleep(1000 * 1000 / 500);
- if (kill(pid, SIGUSR1)) /* Parent has died, so must we. */
- exit(0);
- }
-}
-
-static pid_t fork_signal_helper(void)
-{
- pid_t pid;
-
- pid = fork();
- if (pid == 0) {
- signal_helper_process(getppid());
- return -1;
- }
-
- return pid;
-}
-
static void tile2xy(struct scratch_buf *buf, unsigned tile, unsigned *x, unsigned *y)
{
assert(tile < buf->num_tiles);
@@ -883,7 +858,6 @@ int main(int argc, char **argv)
{
int i, j;
unsigned *current_permutation, *tmp_permutation;
- pid_t signal_helper = -1;
drm_fd = drm_open_any();
devid = intel_get_drm_devid(drm_fd);
@@ -891,9 +865,8 @@ int main(int argc, char **argv)
parse_options(argc, argv);
/* start our little helper early before too may allocations occur */
- signal(SIGUSR1, SIG_IGN);
if (options.use_signal_helper)
- signal_helper = fork_signal_helper();
+ drmtest_fork_signal_helper();
init();
@@ -943,8 +916,7 @@ int main(int argc, char **argv)
close(drm_fd);
- if (signal_helper != -1)
- kill(signal_helper, SIGQUIT);
+ drmtest_stop_signal_helper();
return 0;
}