summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-06-27 19:52:31 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-06-27 19:52:31 -0400
commit5f6990d4ccf3157aaa0d722c371b2ec4939380a9 (patch)
treebfe31e33f1b6769a1a35d0ac9e4d8ac2b0b37507
parentfe92f11a510e84443a0e194f2e4a97d59371f536 (diff)
qemu-wrapper: Print test name when failing due to timeout
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--lib/qemu-wrapper.c40
1 files changed, 22 insertions, 18 deletions
diff --git a/lib/qemu-wrapper.c b/lib/qemu-wrapper.c
index 4c3b6f1..9d4b99e 100644
--- a/lib/qemu-wrapper.c
+++ b/lib/qemu-wrapper.c
@@ -21,15 +21,34 @@ do { \
exit(EXIT_FAILURE); \
} while (0)
+static char *mprintf(const char *fmt, ...)
+{
+ va_list args;
+ char *str;
+ int ret;
+
+ va_start(args, fmt);
+ ret = vasprintf(&str, fmt, args);
+ va_end(args);
+
+ if (ret < 0)
+ die("insufficient memory");
+
+ return str;
+}
+
static pid_t child;
static int childfd;
+static const char *testname;
static void alarm_handler(int sig)
{
- char msg[] = "TEST FAILED (timed out)\n";
+ char *msg = mprintf("========= FAILED TIMEOUT %s",
+ testname ?: "(no test");
if (write(childfd, msg, strlen(msg)) != strlen(msg))
die("write error in alarm handler");
+ free(msg);
}
static void usage(void)
@@ -46,22 +65,6 @@ static void usage(void)
" -h Display this help and exit\n");
}
-static char *mprintf(const char *fmt, ...)
-{
- va_list args;
- char *str;
- int ret;
-
- va_start(args, fmt);
- ret = vasprintf(&str, fmt, args);
- va_end(args);
-
- if (ret < 0)
- die("insufficient memory");
-
- return str;
-}
-
static char *log_path(const char *logdir, const char *basename, const char *testname)
{
if (!basename)
@@ -241,11 +244,12 @@ again:
update_watchdog(line);
- const char *testname = test_starts(line);
+ testname = test_starts(line);
if (test_logfile && testname) {
fclose(test_logfile);
test_logfile = NULL;
+ testname = NULL;
}
if (test_logfile)