From f46fb819a965640033adb52e1671a61da55a7739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Tue, 31 May 2016 10:19:04 +0200 Subject: [PATCH] test-wrap-argv: add --in-place parameter If --in-place is supplied as the first argument to the script, replace the file in-place instead of printing to stdout. --- tests/test-wrap-argv.pl | 24 +++++++++++++++++++++--- tests/testutils.c | 8 +------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/tests/test-wrap-argv.pl b/tests/test-wrap-argv.pl index 96f998a095..97f6903e85 100755 --- a/tests/test-wrap-argv.pl +++ b/tests/test-wrap-argv.pl @@ -22,7 +22,16 @@ # of the file. Parameter values that are longer than 80 chars will # also be split. # +# If --in-place is supplied as the first parameter of this script, +# the files will be changed in place. +# Otherwise the rewrapped files are printed to the standard output. +$in_place = 0; + +if (@ARGV[0] eq "--in-place") { + $in_place = 1; + shift @ARGV; +} foreach my $file (@ARGV) { &rewrap($file); @@ -57,10 +66,19 @@ sub rewrap { # Now each @lines represents a single command, we # can process them - foreach my $line (@lines) { - print &rewrap_line ($line); - } + @lines = map { &rewrap_line($_) } @lines; + if ($in_place) { + open FILE, ">", $file or die "cannot write $file: $!"; + foreach my $line (@lines) { + print FILE $line; + } + close FILE; + } else { + foreach my $line (@lines) { + print $line; + } + } } sub rewrap_line { diff --git a/tests/testutils.c b/tests/testutils.c index 21b3bc66da..8859ed50ff 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -438,26 +438,20 @@ 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); + cmd = virCommandNewArgList(script, "--in-place", filename, NULL); if (virCommandRun(cmd, NULL) < 0) goto cleanup; - if (virFileWriteStr(filename, outbuf, 0666) < 0) - goto cleanup; - ret = 0; cleanup: VIR_FREE(script); virCommandFree(cmd); - VIR_FREE(outbuf); return ret; }