mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 04:47:03 +00:00
[dart/vm] Display test return code on divergence
Rationale: A divergence can be caused by differences in test output, timeout or crash. This patch displays the return code of the test program, so that the latter two cases can be distinguished. Change-Id: Id5520a2da41aad191c0878148acfff2c98c110aa Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109682 Reviewed-by: Aart Bik <ajcbik@google.com> Commit-Queue: Felicitas Hetzelt <felih@google.com>
This commit is contained in:
parent
d16ad91719
commit
3999369c5f
|
@ -343,7 +343,7 @@ class DartFuzzTest {
|
|||
if (result1.output == result2.output) {
|
||||
numSuccess++;
|
||||
} else {
|
||||
reportDivergence(result1, result2, true);
|
||||
reportDivergence(result1, result2);
|
||||
}
|
||||
break;
|
||||
case ResultCode.timeout:
|
||||
|
@ -366,16 +366,23 @@ class DartFuzzTest {
|
|||
return;
|
||||
}
|
||||
}
|
||||
reportDivergence(result1, result2, false);
|
||||
reportDivergence(result1, result2);
|
||||
}
|
||||
}
|
||||
|
||||
void reportDivergence(
|
||||
TestResult result1, TestResult result2, bool outputDivergence) {
|
||||
String generateReport(TestResult result1, TestResult result2) {
|
||||
if (result1.code == result2.code) {
|
||||
return "output";
|
||||
} else {
|
||||
return "${result1.code} vs ${result2.code}";
|
||||
}
|
||||
}
|
||||
|
||||
void reportDivergence(TestResult result1, TestResult result2) {
|
||||
numDivergences++;
|
||||
print(
|
||||
'\n${isolate}: !DIVERGENCE! $version:$seed (output=${outputDivergence})');
|
||||
if (outputDivergence) {
|
||||
String report = generateReport(result1, result2);
|
||||
print('\n${isolate}: !DIVERGENCE! $version:$seed (${report})');
|
||||
if (result1.code == result2.code) {
|
||||
// Only report the actual output divergence details when requested,
|
||||
// since this output may be lengthy and should be reproducable anyway.
|
||||
if (showStats) {
|
||||
|
|
Loading…
Reference in a new issue