From 2a37b1d78e8afedcd796dbb0b91d1bee6822d133 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 20 Aug 2013 12:45:55 +0100 Subject: [PATCH] lib: Make igt_assert() abort under gdb Signed-off-by: Chris Wilson --- lib/drmtest.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/drmtest.c b/lib/drmtest.c index 62b3f829..ae64f226 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -894,12 +894,23 @@ void igt_fail(int exitcode) } } +static bool run_under_gdb(void) +{ + char buf[1024]; + + sprintf(buf, "/proc/%d/exe", getppid()); + return (readlink (buf, buf, sizeof (buf)) != -1 && + strncmp (basename (buf), "gdb", 3) == 0); +} + void __igt_fail_assert(int exitcode, const char *file, const int line, const char *func, const char *assertion) { printf("Test assertion failure function %s, file %s:%i:\n" "Failed assertion: %s\n", func, file, line, assertion); + if (run_under_gdb()) + abort(); igt_fail(exitcode); }