summaryrefslogtreecommitdiff
path: root/lib/igt_core.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2015-05-08 14:35:37 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2015-05-08 14:42:27 +0100
commit578795ff9549f680d426879cf19ef6124a51fcc4 (patch)
tree7fc95b33d2c2330f00db0dc399750c5221464f1d /lib/igt_core.h
parentbe955173d0481dd7f5dabe4a8531811d17e66470 (diff)
lib: Teach igt to handle signal failures gracefully
If we see a fatal signal in a subtest, fail. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'lib/igt_core.h')
-rw-r--r--lib/igt_core.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 3a9e5822..b15d9ffe 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -107,7 +107,7 @@ void __igt_fixture_end(void) __attribute__((noreturn));
#define igt_fixture for (int igt_tokencat(__tmpint,__LINE__) = 0; \
igt_tokencat(__tmpint,__LINE__) < 1 && \
__igt_fixture() && \
- (setjmp(igt_subtest_jmpbuf) == 0); \
+ (sigsetjmp(igt_subtest_jmpbuf, 1) == 0); \
igt_tokencat(__tmpint,__LINE__) ++, \
__igt_fixture_complete())
@@ -164,14 +164,14 @@ bool __igt_run_subtest(const char *subtest_name);
* This is a simpler version of igt_subtest_f()
*/
#define igt_subtest(name) for (; __igt_run_subtest((name)) && \
- (setjmp(igt_subtest_jmpbuf) == 0); \
+ (sigsetjmp(igt_subtest_jmpbuf, 1) == 0); \
igt_success())
#define __igt_subtest_f(tmp, format...) \
for (char tmp [256]; \
snprintf( tmp , sizeof( tmp ), \
format), \
__igt_run_subtest( tmp ) && \
- (setjmp(igt_subtest_jmpbuf) == 0); \
+ (sigsetjmp(igt_subtest_jmpbuf, 1) == 0); \
igt_success())
/**