summaryrefslogtreecommitdiff
path: root/lib/igt_core.c
diff options
context:
space:
mode:
authorMarius Vlad <marius.c.vlad@intel.com>2016-09-19 18:38:56 +0300
committerMarius Vlad <marius.c.vlad@intel.com>2016-09-20 15:48:09 +0300
commit75cba294ae78743df9f563aa08b9f2997955a856 (patch)
tree159a9c67f64c9df3d34fcd3de926c8ae24a13a33 /lib/igt_core.c
parent89e3a94f1ddf8123c3423606df566572164e9271 (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.c9
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;
}