diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-12-03 07:45:34 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-12-04 16:33:58 +0100 |
commit | d8d1eab318f2f22c9199dcefc2b7b96ba4793cdc (patch) | |
tree | 3f5805ff5bb77a90d6a4b6632201d463126485a1 /lib/igt_gt.c | |
parent | 39e44dfa4c0ba2f979dab5ea81074343de0ad2cb (diff) |
lib: igt_fork_hang_helper must be run in fixtures
Because it opens an intel-specific drm fd. Fixes crashes when running
igt on no-intel.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'lib/igt_gt.c')
-rw-r--r-- | lib/igt_gt.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/lib/igt_gt.c b/lib/igt_gt.c index 69cf3654..688ea5e6 100644 --- a/lib/igt_gt.c +++ b/lib/igt_gt.c @@ -190,31 +190,22 @@ hang_helper_process(pid_t pid, int fd) * This is useful to exercise slow running code (such as aperture placement) * which needs to be robust against a GPU reset. * - * In tests with subtests this function can be called outside of failure - * catching code blocks like #igt_fixture or #igt_subtest. + * This function automatically skips when test requirements aren't met using + * igt_skip(). */ -int igt_fork_hang_helper(void) +void igt_fork_hang_helper(void) { int fd, gen; - if (igt_only_list_subtests()) - return 1; - fd = drm_open_driver(DRIVER_INTEL); - if (fd == -1) - return 0; gen = intel_gen(intel_get_drm_devid(fd)); - if (gen < 5) { - close(fd); - return 0; - } + igt_skip_on(gen < 5); igt_fork_helper(&hang_helper) hang_helper_process(getppid(), fd); close(fd); - return 1; } /** @@ -227,10 +218,8 @@ int igt_fork_hang_helper(void) */ void igt_stop_hang_helper(void) { - if (igt_only_list_subtests()) - return; - - igt_stop_helper(&hang_helper); + if (hang_helper.running) + igt_stop_helper(&hang_helper); } /** |