[libvirt] [PATCH 4/4] tests: Add VIR_TEST_REGENERATE_OUTPUT
Cole Robinson
crobinso at redhat.com
Thu Apr 23 21:11:49 UTC 2015
On 04/23/2015 03:46 PM, Laine Stump wrote:
> On 04/23/2015 02:20 PM, Cole Robinson wrote:
>> If this enviroment variable is set, the virTestCompareToFile helper
>> will overwrite the file content we are comparing against, if the
>> file doesn't exist or it doesn't match the expected input.
>>
>> This is useful when adding new test cases, or making changes that
>> generate a lot of output churn.
>> ---
>> HACKING | 7 +++++++
>> docs/hacking.html.in | 12 ++++++++++++
>> tests/testutils.c | 45 +++++++++++++++++++++++++++------------------
>> 3 files changed, 46 insertions(+), 18 deletions(-)
>>
>> diff --git a/HACKING b/HACKING
>> index 94d9d2c..cfc507a 100644
>> --- a/HACKING
>> +++ b/HACKING
>> @@ -136,6 +136,13 @@ Also, individual tests can be run from inside the "tests/" directory, like:
>>
>> ./qemuxml2xmltest
>>
>> +If you are adding new test cases, or making changes that alter existing test
>> +output, you can use the environment variable VIR_TEST_REGENERATE_OUTPUT to
>> +quickly update the saved test data. Of course you still need to review the
>> +changes to ensure they are correct.
>
>
> Maybe say "review the changes *VERY CAREFULLY*" or something like that.
> This is incredibly convenient, but could make it easier for someone to
> gloss over a regression that happens to be introduced with the same
> patch where they are adding some new functionality.
>
>
>> [...]
>>
>> - if (STRNEQ(fixedcontent ? fixedcontent : strcontent, filecontent)) {
>> + if (STRNEQ_NULLABLE(fixedcontent ? fixedcontent : strcontent,
>> + filecontent)) {
>> + if (regenerate) {
>> + if (virFileWriteStr(filename, strcontent, 0666) < 0)
>> + goto failure;
>> + goto out;
>> + }
>> virtTestDifference(stderr, strcontent, filecontent);
>> goto failure;
>
> Okay, so you still report a failure for this test, but in the process
> you update the test file. Makes sense - that way you can see which tests
> are getting updated.
>
Actually no failure is reported, see goto out; vs goto failure;
However git diff/git status still makes it very obvious what files have been
added or changed, so I think that's okay.
> This is *really* cool! ACK++
>
Thanks for the review. I pushed the the docs suggestion, and the cppi fix for
patch #1
- Cole
More information about the libvir-list
mailing list