summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-11 23:54:19 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-12 00:07:19 +0100
commita036959f3ed1f0a9c3e80b9feea69713289aa4ef (patch)
tree29407cc99255cebb512ef85de0fd9bd310e61b2a
parent0d1084fe3f88e2b51c50ff963a2ae81a6129474d (diff)
lib: Make igt_skip noreturn
This is a remnant from the subtest code before we had proper fixture blocks. With those there's no no reason to have igt_skip calls outside of fixtures or subtests, so we can assert this and hence always jump out. Suggested by Thomas Wood since static analyzers got confused about this. To check for fallout I've run all tests as non-root so that they'll all skip. Only very little fallout resulted. Cc: Thomas Wood <thomas.wood@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--lib/drmtest.c4
-rw-r--r--lib/drmtest.h4
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/drmtest.c b/lib/drmtest.c
index f6e6ccbe..46227c35 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -1027,8 +1027,8 @@ void igt_skip(const char *f, ...)
exit_subtest("SKIP");
} else if (test_with_subtests) {
skip_subtests_henceforth = SKIP;
- if (in_fixture)
- __igt_fixture_end();
+ assert(in_fixture);
+ __igt_fixture_end();
} else {
exit(77);
}
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 8dd9f790..c0398329 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -172,11 +172,11 @@ const char *igt_subtest_name(void);
*
* For normal tests without subtest it will directly exit.
*/
-__attribute__((format(printf, 1, 2))) void igt_skip(const char *f, ...);
+__attribute__((format(printf, 1, 2))) void igt_skip(const char *f, ...) __attribute__((noreturn));
__attribute__((format(printf, 5, 6)))
void __igt_skip_check(const char *file, const int line,
const char *func, const char *check,
- const char *format, ...);
+ const char *format, ...) __attribute__((noreturn));
/**
* igt_success - complete a (subtest) as successfull
*