diff options
author | Marius Vlad <marius.c.vlad@intel.com> | 2016-09-19 18:38:56 +0300 |
---|---|---|
committer | Marius Vlad <marius.c.vlad@intel.com> | 2016-09-20 15:48:09 +0300 |
commit | 75cba294ae78743df9f563aa08b9f2997955a856 (patch) | |
tree | 159a9c67f64c9df3d34fcd3de926c8ae24a13a33 /lib/igt_core.c | |
parent | 89e3a94f1ddf8123c3423606df566572164e9271 (diff) |
lib/igt_core: Print stacktrace in initialization/fixture blocks.
Likely candidate for this behaviour is the igt_fixture block. Seen in the CI by
running tests/kms_psr_sink_crc which is causing segfaults in the fixture block.
While at it fix some minor printing bugs.
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
CC: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'lib/igt_core.c')
-rw-r--r-- | lib/igt_core.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/igt_core.c b/lib/igt_core.c index dd27a226..43db4684 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -1122,7 +1122,7 @@ static void printnum(unsigned long long num, unsigned base) { int i = 0; - unsigned long long __num; + unsigned long long __num = num; /* determine from where we should start dividing */ do { @@ -1264,7 +1264,7 @@ static void print_backtrace_sig_safe(void) unw_word_t off; if (unw_get_proc_name(&cursor, name, 255, &off) < 0) - xstrlcpy(name, "<unknown>", 9); + xstrlcpy(name, "<unknown>", 10); xprintf(" #%d [%s+0x%x]\n", stack_num++, name, (unsigned int) off); @@ -1740,7 +1740,7 @@ static void fatal_sig_handler(int sig) igt_assert_eq(write(STDERR_FILENO, ".\n", 2), 2); } - if (in_subtest && crash_signal(sig)) { + if (crash_signal(sig)) { /* Linux standard to return exit code as 128 + signal */ if (!failed_one) igt_exitcode = 128 + sig; @@ -1749,7 +1749,8 @@ static void fatal_sig_handler(int sig) #ifdef HAVE_LIBUNWIND print_backtrace_sig_safe(); #endif - exit_subtest("CRASH"); + if (in_subtest) + exit_subtest("CRASH"); } break; } |