mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
test: xml2xml: Print full filenames if xml2xml test fails
To simplify looking for a problem instrument the XML comparator function with possibility to print the filename of the failed/expected XML output. This is necessary as the VIR_TEST_DIFFERENT macro possibly tests two XML files for the inactive/active state and the resulting error may not be obvious.
This commit is contained in:
parent
df44e3ee80
commit
c5942a9faa
@ -50,7 +50,7 @@ testCompareXMLToXMLFiles(const char *inxml, const char *outxml, bool live)
|
||||
goto fail;
|
||||
|
||||
if (STRNEQ(outXmlData, actual)) {
|
||||
virtTestDifference(stderr, outXmlData, actual);
|
||||
virtTestDifferenceFull(stderr, outXmlData, outxml, actual, inxml);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -450,14 +450,19 @@ virtTestCaptureProgramOutput(const char *const argv[] ATTRIBUTE_UNUSED,
|
||||
/**
|
||||
* @param stream: output stream write to differences to
|
||||
* @param expect: expected output text
|
||||
* @param expectName: name designator of the expected text
|
||||
* @param actual: actual output text
|
||||
* @param actualName: name designator of the actual text
|
||||
*
|
||||
* Display expected and actual output text, trimmed to
|
||||
* first and last characters at which differences occur
|
||||
* Display expected and actual output text, trimmed to first and last
|
||||
* characters at which differences occur. Displays names of the text strings if
|
||||
* non-NULL.
|
||||
*/
|
||||
int virtTestDifference(FILE *stream,
|
||||
const char *expect,
|
||||
const char *actual)
|
||||
int virtTestDifferenceFull(FILE *stream,
|
||||
const char *expect,
|
||||
const char *expectName,
|
||||
const char *actual,
|
||||
const char *actualName)
|
||||
{
|
||||
const char *expectStart;
|
||||
const char *expectEnd;
|
||||
@ -495,11 +500,15 @@ int virtTestDifference(FILE *stream,
|
||||
}
|
||||
|
||||
/* Show the trimmed differences */
|
||||
if (expectName)
|
||||
fprintf(stream, "\nIn '%s':", expectName);
|
||||
fprintf(stream, "\nOffset %d\nExpect [", (int) (expectStart - expect));
|
||||
if ((expectEnd - expectStart + 1) &&
|
||||
fwrite(expectStart, (expectEnd-expectStart+1), 1, stream) != 1)
|
||||
return -1;
|
||||
fprintf(stream, "]\n");
|
||||
if (actualName)
|
||||
fprintf(stream, "In '%s':\n", actualName);
|
||||
fprintf(stream, "Actual [");
|
||||
if ((actualEnd - actualStart + 1) &&
|
||||
fwrite(actualStart, (actualEnd-actualStart+1), 1, stream) != 1)
|
||||
@ -512,6 +521,22 @@ int virtTestDifference(FILE *stream,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param stream: output stream write to differences to
|
||||
* @param expect: expected output text
|
||||
* @param actual: actual output text
|
||||
*
|
||||
* Display expected and actual output text, trimmed to
|
||||
* first and last characters at which differences occur
|
||||
*/
|
||||
int virtTestDifference(FILE *stream,
|
||||
const char *expect,
|
||||
const char *actual)
|
||||
{
|
||||
return virtTestDifferenceFull(stream, expect, NULL, actual, NULL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param stream: output stream write to differences to
|
||||
* @param expect: expected output text
|
||||
|
@ -64,6 +64,11 @@ void virtTestClearCommandPath(char *cmdset);
|
||||
int virtTestDifference(FILE *stream,
|
||||
const char *expect,
|
||||
const char *actual);
|
||||
int virtTestDifferenceFull(FILE *stream,
|
||||
const char *expect,
|
||||
const char *expectName,
|
||||
const char *actual,
|
||||
const char *actualName);
|
||||
int virtTestDifferenceBin(FILE *stream,
|
||||
const char *expect,
|
||||
const char *actual,
|
||||
|
Loading…
Reference in New Issue
Block a user