aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2016-10-24 18:31:03 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2016-11-01 16:06:57 +0100
commit28017e010ddf6849cfa830e898da3e44e6610952 (patch)
tree3d2b4bceafd395226e7f183416ebf0eb5ae9264a
parent397d30e9401d2da96dbdf0ce49805d6d4bb68833 (diff)
tests: send error_report to test log
Implement error_vprintf to send the output of error_report to the test log. This silences test-vmstate. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1477326663-67817-3-git-send-email-pbonzini@redhat.com>
-rw-r--r--include/glib-compat.h13
-rw-r--r--stubs/error-printf.c8
2 files changed, 20 insertions, 1 deletions
diff --git a/include/glib-compat.h b/include/glib-compat.h
index 3f8370b3e4..acf254d2a0 100644
--- a/include/glib-compat.h
+++ b/include/glib-compat.h
@@ -315,4 +315,17 @@ static inline void g_source_set_name_by_id(guint tag, const char *name)
}
#endif
+#if !GLIB_CHECK_VERSION(2, 36, 0)
+/* Always fail. This will not include error_report output in the test log,
+ * sending it instead to stderr.
+ */
+#define g_test_initialized() (0)
+#endif
+#if !GLIB_CHECK_VERSION(2, 38, 0)
+#ifdef CONFIG_HAS_GLIB_SUBPROCESS_TESTS
+#error schizophrenic detection of glib subprocess testing
+#endif
+#define g_test_subprocess() (0)
+#endif
+
#endif
diff --git a/stubs/error-printf.c b/stubs/error-printf.c
index 56379e648d..ac6b92aa69 100644
--- a/stubs/error-printf.c
+++ b/stubs/error-printf.c
@@ -4,7 +4,13 @@
void error_vprintf(const char *fmt, va_list ap)
{
- vfprintf(stderr, fmt, ap);
+ if (g_test_initialized() && !g_test_subprocess()) {
+ char *msg = g_strdup_vprintf(fmt, ap);
+ g_test_message("%s", msg);
+ g_free(msg);
+ } else {
+ vfprintf(stderr, fmt, ap);
+ }
}
void error_vprintf_unless_qmp(const char *fmt, va_list ap)