[libvirt] [PATCH] tests: Use system() for test-wrap-argv.pl

Cole Robinson crobinso at redhat.com
Wed Apr 20 17:33:00 UTC 2016


virCommand doesn't buy us anything here, and this simplifies the
code. There's another usage of system() in testutils.c already FWIW,
though it predates virCommand
---
Had this sitting in a branch from an earlier discussion... I figure
system() is safe in the test suite but I'm not going to argue if
someone feels strongly the other way

 tests/testutils.c | 26 ++++++--------------------
 1 file changed, 6 insertions(+), 20 deletions(-)

diff --git a/tests/testutils.c b/tests/testutils.c
index 79d0763..7664b06 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -432,28 +432,14 @@ virtTestCaptureProgramOutput(const char *const argv[] ATTRIBUTE_UNUSED,
 static int
 virTestRewrapFile(const char *filename)
 {
-    int ret = -1;
-    char *outbuf = NULL;
-    char *script = NULL;
-    virCommandPtr cmd = NULL;
-
-    if (virAsprintf(&script, "%s/test-wrap-argv.pl", abs_srcdir) < 0)
-        goto cleanup;
-
-    cmd = virCommandNewArgList(script, filename, NULL);
-    virCommandSetOutputBuffer(cmd, &outbuf);
-    if (virCommandRun(cmd, NULL) < 0)
-        goto cleanup;
+    char *cmd;
 
-    if (virFileWriteStr(filename, outbuf, 0666) < 0)
-        goto cleanup;
+    /* The 'echo' syntax lets us read and write the file in one shot */
+    if (virAsprintf(&cmd, "echo \"$(%s/test-wrap-argv.pl %s)\" > %s",
+                    abs_srcdir, filename, filename) < 0)
+        return -1;
 
-    ret = 0;
- cleanup:
-    VIR_FREE(script);
-    virCommandFree(cmd);
-    VIR_FREE(outbuf);
-    return ret;
+    return system(cmd);
 }
 
 /**
-- 
2.7.3




More information about the libvir-list mailing list