[libvirt] [PATCH 1/9] tests: Run test-wrap-argv with REGENERATE_OUTPUT
Cole Robinson
crobinso at redhat.com
Fri Feb 5 20:08:51 UTC 2016
On 02/05/2016 12:46 PM, Laine Stump wrote:
> On 01/28/2016 03:30 PM, Cole Robinson wrote:
>> To get properly wrapped output
>> ---
>> tests/testutils.c | 38 +++++++++++++++++++++++++++++++-------
>> 1 file changed, 31 insertions(+), 7 deletions(-)
>>
>> diff --git a/tests/testutils.c b/tests/testutils.c
>> index b587f83..10c26648 100644
>> --- a/tests/testutils.c
>> +++ b/tests/testutils.c
>> @@ -433,6 +433,32 @@ virtTestCaptureProgramOutput(const char *const argv[]
>> ATTRIBUTE_UNUSED,
>> }
>> #endif /* !WIN32 */
>> +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;
>> +
>> + if (virFileWriteStr(filename, outbuf, 0666) < 0)
>> + goto cleanup;
>> +
>> + ret = 0;
>> + cleanup:
>> + VIR_FREE(script);
>> + virCommandFree(cmd);
>> + VIR_FREE(outbuf);
>> + return ret;
>> +}
>> /**
>> * @param stream: output stream to write differences to
>> @@ -470,17 +496,15 @@ virtTestDifferenceFullInternal(FILE *stream,
>> actualEnd = actual + (strlen(actual)-1);
>> if (expectName && regenerate && (virTestGetRegenerate() > 0)) {
>> - char *regencontent;
>> -
>> - /* Try to properly indent qemu argv files */
>> - if (!(regencontent = virStringReplace(actual, " -", " \\\n-")))
>> + if (virFileWriteStr(expectName, actual, 0666) < 0) {
>
> I always get nervous when I see 666 instead of 644 (even though the user's
> umask is probably going to trim that back to at least 644 anyway). Any reason
> for doing that?
>
The 0666 was in my original patch from last year, and I don't think there was
any reason behind it. Probably just copy/pasted from another usage of
virFileWriteStr. I've made a note to verify nothing depends on it, and if it's
safe I'll file a follow up patch.
>> + virDispatchError(NULL);
>> return -1;
>> + }
>> - if (virFileWriteStr(expectName, regencontent, 0666) < 0) {
>> - VIR_FREE(regencontent);
>> + if (virTestRewrapFile(expectName) < 0) {
>> + virDispatchError(NULL);
>> return -1;
>> }
>> - VIR_FREE(regencontent);
>> }
>> if (!virTestGetDebug())
>
> A bit inefficient to write the file only to re-read/re-write it, but it does
> guarantee you'll get exactly what you want, and isn't done very often so peak
> efficiency isn't really an issue :-)
>
> ACK.
Thanks, pushed.
- Cole
More information about the libvir-list
mailing list