diff mbox

tests/libqtest: Print error instead of aborting when env variable is missing

Message ID 1495238065-15846-1-git-send-email-thuth@redhat.com
State New
Headers show

Commit Message

Thomas Huth May 19, 2017, 11:54 p.m. UTC
When you currently try to run a test directly from the command line
without setting the QTEST_QEMU_BINARY environment variable first,
you are presented with an unhelpful assertion message like this:

 ERROR:tests/libqtest.c:163:qtest_init_without_qmp_handshake:
 assertion failed: (qemu_binary != NULL)
 Aborted (core dumped)

Let's replace the assert() with a more user friendly error message
instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/libqtest.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Markus Armbruster May 22, 2017, 7:24 a.m. UTC | #1
Thomas Huth <thuth@redhat.com> writes:

> When you currently try to run a test directly from the command line
> without setting the QTEST_QEMU_BINARY environment variable first,
> you are presented with an unhelpful assertion message like this:
>
>  ERROR:tests/libqtest.c:163:qtest_init_without_qmp_handshake:
>  assertion failed: (qemu_binary != NULL)
>  Aborted (core dumped)
>
> Let's replace the assert() with a more user friendly error message
> instead.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  tests/libqtest.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tests/libqtest.c b/tests/libqtest.c
> index 84ecbd2..f0fd682 100644
> --- a/tests/libqtest.c
> +++ b/tests/libqtest.c
> @@ -160,7 +160,11 @@ QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
>      const char *qemu_binary;
>  
>      qemu_binary = getenv("QTEST_QEMU_BINARY");
> -    g_assert(qemu_binary != NULL);
> +    if (!qemu_binary) {
> +        fprintf(stderr, "The environment variable QTEST_QEMU_BINARY has to be "
> +                        "set before running the test.\n");

Nitpick: error messages usually don't end with a period.

I'm fine with the message itself, although I'd have written somehing
more laconic like "Environment variable QTEST_QEMU_BINARY required".
Your choice.

> +        exit(1);
> +    }
>  
>      s = g_malloc(sizeof(*s));

Reviewed-by: Markus Armbruster <armbru@redhat.com>
diff mbox

Patch

diff --git a/tests/libqtest.c b/tests/libqtest.c
index 84ecbd2..f0fd682 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -160,7 +160,11 @@  QTestState *qtest_init_without_qmp_handshake(const char *extra_args)
     const char *qemu_binary;
 
     qemu_binary = getenv("QTEST_QEMU_BINARY");
-    g_assert(qemu_binary != NULL);
+    if (!qemu_binary) {
+        fprintf(stderr, "The environment variable QTEST_QEMU_BINARY has to be "
+                        "set before running the test.\n");
+        exit(1);
+    }
 
     s = g_malloc(sizeof(*s));