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>
This commit is contained in:
Paolo Bonzini 2016-10-24 18:31:03 +02:00
parent 397d30e940
commit 28017e010d
2 changed files with 20 additions and 1 deletions

View File

@ -315,4 +315,17 @@ static inline void g_source_set_name_by_id(guint tag, const char *name)
} }
#endif #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 #endif

View File

@ -4,7 +4,13 @@
void error_vprintf(const char *fmt, va_list ap) 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) void error_vprintf_unless_qmp(const char *fmt, va_list ap)