mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 21:34:54 +03: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;
|
goto fail;
|
||||||
|
|
||||||
if (STRNEQ(outXmlData, actual)) {
|
if (STRNEQ(outXmlData, actual)) {
|
||||||
virtTestDifference(stderr, outXmlData, actual);
|
virtTestDifferenceFull(stderr, outXmlData, outxml, actual, inxml);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,14 +450,19 @@ virtTestCaptureProgramOutput(const char *const argv[] ATTRIBUTE_UNUSED,
|
|||||||
/**
|
/**
|
||||||
* @param stream: output stream write to differences to
|
* @param stream: output stream write to differences to
|
||||||
* @param expect: expected output text
|
* @param expect: expected output text
|
||||||
|
* @param expectName: name designator of the expected text
|
||||||
* @param actual: actual output text
|
* @param actual: actual output text
|
||||||
|
* @param actualName: name designator of the actual text
|
||||||
*
|
*
|
||||||
* Display expected and actual output text, trimmed to
|
* Display expected and actual output text, trimmed to first and last
|
||||||
* first and last characters at which differences occur
|
* characters at which differences occur. Displays names of the text strings if
|
||||||
|
* non-NULL.
|
||||||
*/
|
*/
|
||||||
int virtTestDifference(FILE *stream,
|
int virtTestDifferenceFull(FILE *stream,
|
||||||
const char *expect,
|
const char *expect,
|
||||||
const char *actual)
|
const char *expectName,
|
||||||
|
const char *actual,
|
||||||
|
const char *actualName)
|
||||||
{
|
{
|
||||||
const char *expectStart;
|
const char *expectStart;
|
||||||
const char *expectEnd;
|
const char *expectEnd;
|
||||||
@ -495,11 +500,15 @@ int virtTestDifference(FILE *stream,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Show the trimmed differences */
|
/* Show the trimmed differences */
|
||||||
|
if (expectName)
|
||||||
|
fprintf(stream, "\nIn '%s':", expectName);
|
||||||
fprintf(stream, "\nOffset %d\nExpect [", (int) (expectStart - expect));
|
fprintf(stream, "\nOffset %d\nExpect [", (int) (expectStart - expect));
|
||||||
if ((expectEnd - expectStart + 1) &&
|
if ((expectEnd - expectStart + 1) &&
|
||||||
fwrite(expectStart, (expectEnd-expectStart+1), 1, stream) != 1)
|
fwrite(expectStart, (expectEnd-expectStart+1), 1, stream) != 1)
|
||||||
return -1;
|
return -1;
|
||||||
fprintf(stream, "]\n");
|
fprintf(stream, "]\n");
|
||||||
|
if (actualName)
|
||||||
|
fprintf(stream, "In '%s':\n", actualName);
|
||||||
fprintf(stream, "Actual [");
|
fprintf(stream, "Actual [");
|
||||||
if ((actualEnd - actualStart + 1) &&
|
if ((actualEnd - actualStart + 1) &&
|
||||||
fwrite(actualStart, (actualEnd-actualStart+1), 1, stream) != 1)
|
fwrite(actualStart, (actualEnd-actualStart+1), 1, stream) != 1)
|
||||||
@ -512,6 +521,22 @@ int virtTestDifference(FILE *stream,
|
|||||||
return 0;
|
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 stream: output stream write to differences to
|
||||||
* @param expect: expected output text
|
* @param expect: expected output text
|
||||||
|
@ -64,6 +64,11 @@ void virtTestClearCommandPath(char *cmdset);
|
|||||||
int virtTestDifference(FILE *stream,
|
int virtTestDifference(FILE *stream,
|
||||||
const char *expect,
|
const char *expect,
|
||||||
const char *actual);
|
const char *actual);
|
||||||
|
int virtTestDifferenceFull(FILE *stream,
|
||||||
|
const char *expect,
|
||||||
|
const char *expectName,
|
||||||
|
const char *actual,
|
||||||
|
const char *actualName);
|
||||||
int virtTestDifferenceBin(FILE *stream,
|
int virtTestDifferenceBin(FILE *stream,
|
||||||
const char *expect,
|
const char *expect,
|
||||||
const char *actual,
|
const char *actual,
|
||||||
|
Loading…
Reference in New Issue
Block a user