diff options
Diffstat (limited to 'deps/v8/test/mjsunit/code-coverage-utils.js')
-rw-r--r-- | deps/v8/test/mjsunit/code-coverage-utils.js | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/deps/v8/test/mjsunit/code-coverage-utils.js b/deps/v8/test/mjsunit/code-coverage-utils.js index 5783390222..4164f5a314 100644 --- a/deps/v8/test/mjsunit/code-coverage-utils.js +++ b/deps/v8/test/mjsunit/code-coverage-utils.js @@ -18,25 +18,40 @@ let gen; return undefined; }; - function TestCoverageInternal(name, source, expectation, collect_garbage) { + function TestCoverageInternal( + name, source, expectation, collect_garbage, prettyPrintResults) { source = source.trim(); eval(source); if (collect_garbage) %CollectGarbage("collect dead objects"); var covfefe = GetCoverage(source); var stringified_result = JSON.stringify(covfefe); var stringified_expectation = JSON.stringify(expectation); - if (stringified_result != stringified_expectation) { - print(stringified_result.replace(/[}],[{]/g, "},\n {")); + const mismatch = stringified_result != stringified_expectation; + if (mismatch) { + console.log(stringified_result.replace(/[}],[{]/g, "},\n {")); + } + if (prettyPrintResults) { + console.log("=== Coverage Expectation ===") + for (const {start,end,count} of expectation) { + console.log(`Range [${start}, ${end}) (count: ${count})`); + console.log(source.substring(start, end)); + } + console.log("=== Coverage Results ===") + for (const {start,end,count} of covfefe) { + console.log(`Range [${start}, ${end}) (count: ${count})`); + console.log(source.substring(start, end)); + } + console.log("========================") } assertEquals(stringified_expectation, stringified_result, name + " failed"); }; - TestCoverage = function(name, source, expectation) { - TestCoverageInternal(name, source, expectation, true); + TestCoverage = function(name, source, expectation, prettyPrintResults) { + TestCoverageInternal(name, source, expectation, true, prettyPrintResults); }; - TestCoverageNoGC = function(name, source, expectation) { - TestCoverageInternal(name, source, expectation, false); + TestCoverageNoGC = function(name, source, expectation, prettyPrintResults) { + TestCoverageInternal(name, source, expectation, false, prettyPrintResults); }; nop = function() {}; |