blob: 0e326d801059877234761e0ab7366c6a517f4230 [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"
Marc-André Lureau756a98d2022-04-20 17:26:13 +04003#include "monitor/monitor.h"
Paolo Bonzini397d30e2016-10-24 18:31:02 +02004
Markus Armbruster679cb8e2019-04-17 21:06:36 +02005int error_vprintf(const char *fmt, va_list ap)
Paolo Bonzini397d30e2016-10-24 18:31:02 +02006{
Markus Armbruster679cb8e2019-04-17 21:06:36 +02007 int ret;
8
Daniel P. Berrangé977a7202018-07-18 09:34:47 +01009 if (g_test_initialized() && !g_test_subprocess() &&
10 getenv("QTEST_SILENT_ERRORS")) {
Paolo Bonzini28017e02016-10-24 18:31:03 +020011 char *msg = g_strdup_vprintf(fmt, ap);
12 g_test_message("%s", msg);
Markus Armbruster679cb8e2019-04-17 21:06:36 +020013 ret = strlen(msg);
Paolo Bonzini28017e02016-10-24 18:31:03 +020014 g_free(msg);
Markus Armbruster679cb8e2019-04-17 21:06:36 +020015 return ret;
Paolo Bonzini28017e02016-10-24 18:31:03 +020016 }
Markus Armbruster679cb8e2019-04-17 21:06:36 +020017 return vfprintf(stderr, fmt, ap);
Paolo Bonzini397d30e2016-10-24 18:31:02 +020018}
19
Markus Armbruster679cb8e2019-04-17 21:06:36 +020020int error_vprintf_unless_qmp(const char *fmt, va_list ap)
Paolo Bonzini397d30e2016-10-24 18:31:02 +020021{
Markus Armbruster679cb8e2019-04-17 21:06:36 +020022 return error_vprintf(fmt, ap);
Paolo Bonzini397d30e2016-10-24 18:31:02 +020023}