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