qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] tests: report errors when iasl exits with non-zero status
@ 2017-10-18 13:15 Daniel P. Berrange
  2017-10-18 21:51 ` Philippe Mathieu-Daudé
  2017-11-16 15:48 ` Michael S. Tsirkin
  0 siblings, 2 replies; 3+ messages in thread
From: Daniel P. Berrange @ 2017-10-18 13:15 UTC (permalink / raw)
  To: qemu-devel; +Cc: Michael S. Tsirkin, Igor Mammedov, Daniel P. Berrange

If iasl exits with non-zero status, the test unhelpfully just reports
that the AML did not match, because the data files it thought iasl
generated do not exist. This adds an explicit check for the exit status
of iasl and prints stderr if it was non-zero. Thus gives us a fighting
chance of diagnosing why iasl failed.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 tests/bios-tables-test.c | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
index 564da45f65..ee441f1e17 100644
--- a/tests/bios-tables-test.c
+++ b/tests/bios-tables-test.c
@@ -304,6 +304,7 @@ static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
     gchar *out, *out_err;
     gboolean ret;
     int i;
+    int status;
 
     fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
     g_assert_no_error(error);
@@ -324,14 +325,25 @@ static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
     g_string_append_printf(command_line, "-d %s", sdt->aml_file);
 
     /* pass 'out' and 'out_err' in order to be redirected */
-    ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error);
+    ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, &status, &error);
     g_assert_no_error(error);
     if (ret) {
-        ret = g_file_get_contents(sdt->asl_file, (gchar **)&sdt->asl,
-                                  &sdt->asl_len, &error);
-        g_assert(ret);
-        g_assert_no_error(error);
-        ret = (sdt->asl_len > 0);
+        if (status != 0) {
+            g_printerr("'%s' exited with status %d", command_line->str, status);
+            if (!g_str_equal(out, "")) {
+                g_printerr("%s", out);
+            }
+            if (!g_str_equal(out_err, "")) {
+                g_printerr("%s", out_err);
+            }
+            ret = FALSE;
+        } else {
+            ret = g_file_get_contents(sdt->asl_file, (gchar **)&sdt->asl,
+                                      &sdt->asl_len, &error);
+            g_assert(ret);
+            g_assert_no_error(error);
+            ret = (sdt->asl_len > 0);
+        }
     }
 
     g_free(out);
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-11-16 15:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-18 13:15 [Qemu-devel] [PATCH] tests: report errors when iasl exits with non-zero status Daniel P. Berrange
2017-10-18 21:51 ` Philippe Mathieu-Daudé
2017-11-16 15:48 ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).