libqos/qgraph_internal: add qos_printf() and qos_printf_literal()

These two are macros wrapping regular printf() call. They are intended
to be used instead of calling printf() directly in order to avoid
breaking TAP output format.

TAP output format is enabled by using --tap command line argument.
Starting with glib 2.62 it is enabled by default.

Unfortunately there is currently no public glib API available to check
whether TAP output format is enabled. For that reason qos_printf()
simply always prepends a '#' character for now.

Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <653a5ef61c5e7d160e4d6294e542c57ea324cee4.1611704181.git.qemu_oss@crudebyte.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Christian Schoenebeck 2021-01-27 00:04:22 +01:00 committed by Paolo Bonzini
parent f6a2c6eee7
commit 23820025af

View File

@ -255,4 +255,15 @@ void qos_delete_cmd_line(const char *name);
*/
void qos_graph_node_set_availability(const char *node, bool av);
/*
* Prepends a '#' character in front for not breaking TAP output format.
*/
#define qos_printf(...) printf("# " __VA_ARGS__)
/*
* Intended for printing something literally, i.e. for appending text as is
* to a line already been started by qos_printf() before.
*/
#define qos_printf_literal printf
#endif