diff mbox series

[2/5] libqos/qgraph_internal: add qos_printf() and qos_printf_literal()

Message ID 653a5ef61c5e7d160e4d6294e542c57ea324cee4.1611704181.git.qemu_oss@crudebyte.com (mailing list archive)
State New, archived
Headers show
Series enhance debugging with qtest framework | expand

Commit Message

Zhijian Li (Fujitsu)" via Jan. 26, 2021, 11:04 p.m. UTC
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>
---
 tests/qtest/libqos/qgraph_internal.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Thomas Huth Jan. 28, 2021, 10:13 a.m. UTC | #1
On 27/01/2021 00.04, Christian Schoenebeck wrote:
> 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>
> ---
>   tests/qtest/libqos/qgraph_internal.h | 11 +++++++++++
>   1 file changed, 11 insertions(+)
> 
> diff --git a/tests/qtest/libqos/qgraph_internal.h b/tests/qtest/libqos/qgraph_internal.h
> index 974985dce9..c0025f5ab9 100644
> --- a/tests/qtest/libqos/qgraph_internal.h
> +++ b/tests/qtest/libqos/qgraph_internal.h
> @@ -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

I'd maybe rather name it qos_printf_append ... but that's just a matter of 
taste.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Christian Schoenebeck Feb. 9, 2021, 1:36 p.m. UTC | #2
On Donnerstag, 28. Januar 2021 11:13:27 CET Thomas Huth wrote:
> On 27/01/2021 00.04, Christian Schoenebeck wrote:
> > 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>
> > ---
> > 
> >   tests/qtest/libqos/qgraph_internal.h | 11 +++++++++++
> >   1 file changed, 11 insertions(+)
> > 
> > diff --git a/tests/qtest/libqos/qgraph_internal.h
> > b/tests/qtest/libqos/qgraph_internal.h index 974985dce9..c0025f5ab9
> > 100644
> > --- a/tests/qtest/libqos/qgraph_internal.h
> > +++ b/tests/qtest/libqos/qgraph_internal.h
> > @@ -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
> 
> I'd maybe rather name it qos_printf_append ... but that's just a matter of
> taste.
> 
> Reviewed-by: Thomas Huth <thuth@redhat.com>

PING

Best regards,
Christian Schoenebeck
diff mbox series

Patch

diff --git a/tests/qtest/libqos/qgraph_internal.h b/tests/qtest/libqos/qgraph_internal.h
index 974985dce9..c0025f5ab9 100644
--- a/tests/qtest/libqos/qgraph_internal.h
+++ b/tests/qtest/libqos/qgraph_internal.h
@@ -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