blob: a2f61521a16f79f1d75522d28a6967f46890d753 [file] [log] [blame]
Paolo Bonzini397d30e2016-10-24 18:31:02 +02001#include "qemu/osdep.h"
Paolo Bonzini397d30e2016-10-24 18:31:02 +02002#include "qemu/error-report.h"
3
Markus Armbruster679cb8e2019-04-17 21:06:36 +02004int error_vprintf(const char *fmt, va_list ap)
Paolo Bonzini397d30e2016-10-24 18:31:02 +02005{
Markus Armbruster679cb8e2019-04-17 21:06:36 +02006 int ret;
7
Daniel P. Berrangé977a7202018-07-18 09:34:47 +01008 if (g_test_initialized() && !g_test_subprocess() &&
9 getenv("QTEST_SILENT_ERRORS")) {
Paolo Bonzini28017e02016-10-24 18:31:03 +020010 char *msg = g_strdup_vprintf(fmt, ap);
11 g_test_message("%s", msg);
Markus Armbruster679cb8e2019-04-17 21:06:36 +020012 ret = strlen(msg);
Paolo Bonzini28017e02016-10-24 18:31:03 +020013 g_free(msg);
Markus Armbruster679cb8e2019-04-17 21:06:36 +020014 return ret;
Paolo Bonzini28017e02016-10-24 18:31:03 +020015 }
Markus Armbruster679cb8e2019-04-17 21:06:36 +020016 return vfprintf(stderr, fmt, ap);
Paolo Bonzini397d30e2016-10-24 18:31:02 +020017}
18
Markus Armbruster679cb8e2019-04-17 21:06:36 +020019int error_vprintf_unless_qmp(const char *fmt, va_list ap)
Paolo Bonzini397d30e2016-10-24 18:31:02 +020020{
Markus Armbruster679cb8e2019-04-17 21:06:36 +020021 return error_vprintf(fmt, ap);
Paolo Bonzini397d30e2016-10-24 18:31:02 +020022}