tests/gem_persisten_relocs: Update like gem_reloc_vs_pug
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 11 Sep 2013 12:03:47 +0000 (14:03 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 11 Sep 2013 12:03:47 +0000 (14:03 +0200)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
tests/gem_persistent_relocs.c

index bc1d52a..b76d770 100644 (file)
@@ -284,10 +284,9 @@ static void do_test(int fd, bool faulting_reloc)
 static void do_forked_test(int fd, unsigned flags)
 {
        int num_threads = sysconf(_SC_NPROCESSORS_ONLN);
-       pid_t pid = -1;
+       struct igt_helper_process thrasher = {};
 
        if (flags & (THRASH | THRASH_INACTIVE)) {
-               sighandler_t oldsig;
                char fname[FILENAME_MAX];
                int drop_caches_fd;
                const char *data = THRASH_INACTIVE ? "0xf" : "0x7";
@@ -299,10 +298,7 @@ static void do_forked_test(int fd, unsigned flags)
                drop_caches_fd = open(fname, O_WRONLY);
                igt_require(drop_caches_fd >= 0);
 
-               oldsig = signal(SIGQUIT, SIG_DFL);
-               pid = fork();
-               signal(SIGQUIT, oldsig);
-               if (pid == 0) {
+               igt_fork_helper(&thrasher) {
                        while (1) {
                                usleep(1000);
                                igt_assert(write(drop_caches_fd, data, strlen(data) + 1) == strlen(data) + 1);
@@ -325,13 +321,8 @@ static void do_forked_test(int fd, unsigned flags)
        }
 
        igt_waitchildren();
-
-       if (pid != -1) {
-               int exitcode;
-
-               kill(pid, SIGQUIT);
-               wait(&exitcode);
-       }
+       if (flags & (THRASH | THRASH_INACTIVE))
+               igt_stop_helper(&thrasher);
 }
 
 int fd;
@@ -370,7 +361,7 @@ int main(int argc, char **argv)
                              flags & INTERRUPT ? "-interruptible" : "",
                              flags & FAULTING ? "-faulting-reloc" : "",
                              flags & THRASH ? "-thrashing" : "",
-                             flags & THRASH ? "-thrash-inactive" : "")
+                             flags & THRASH_INACTIVE ? "-thrash-inactive" : "")
                        do_forked_test(fd, flags);
        }