Bug 1405567 - Mark LCOV branches not taken with 0, and not executed with -. r=nbp

This commit is contained in:
Philip Chimento 2017-11-07 17:58:35 -08:00
parent 00df6bf92b
commit 2ac7248a65
3 changed files with 68 additions and 30 deletions

View File

@ -118,7 +118,7 @@ checkLcov(function () { function f() { ','.split(','); } //FN:$,top-level //FNDA
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,0
l.push(''); //DA:$,0
l.pop(); //DA:$,1
//FNF:1
@ -131,7 +131,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
if (l.length == 2) //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1
if (l.length == 2) //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1
l.push(''); //DA:$,1
l.pop(); //DA:$,1
//FNF:1
@ -144,7 +144,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,0
l.push(''); //DA:$,0
else
l.pop(); //DA:$,1
@ -158,7 +158,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
if (l.length == 2) //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1
if (l.length == 2) //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1
l.push(''); //DA:$,1
else
l.pop(); //DA:$,0
@ -172,7 +172,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
if (l.length == 2) //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1
if (l.length == 2) //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1
l.push(''); //DA:$,1
else {
if (l.length == 1) //DA:$,0 //BRDA:$,1,0,- //BRDA:$,1,1,-
@ -208,7 +208,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
try { //DA:$,1
var l = ",".split(','); //DA:$,1
if (l.length == 2) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1
if (l.length == 2) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1
l.push(''); //DA:$,1
throw l; //DA:$,1
}
@ -228,7 +228,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
try { //DA:$,1
try { //DA:$,1
if (l.length == 2) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1
if (l.length == 2) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1
l.push(''); //DA:$,1
throw l; //DA:$,1
}
@ -268,7 +268,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
// Test TableSwitch opcode
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,- //BRDA:$,0,4,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0 //BRDA:$,0,4,0
case 0:
l.push('0'); //DA:$,0
break;
@ -293,7 +293,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,- //BRDA:$,0,4,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0 //BRDA:$,0,4,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -315,7 +315,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
// Branches are ordered, and starting at 0
switch (l.length) { //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,- //BRDA:$,0,2,- //BRDA:$,0,3,- //BRDA:$,0,4,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,0 //BRDA:$,0,2,0 //BRDA:$,0,3,0 //BRDA:$,0,4,0
case 5:
l.push('5'); //DA:$,0
case 4:
@ -336,7 +336,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,- //BRDA:$,0,2,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,0 //BRDA:$,0,2,0
case 2:
l.push('2'); //DA:$,1
case 5:
@ -353,7 +353,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1
case 3:
l.push('1'); //DA:$,0
case 5:
@ -376,9 +376,9 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
}
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1
case f(-42): //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1
case f(-42): //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1
l.push('1'); //DA:$,0
case f(51): //DA:$,1 //BRDA:$,1,0,- //BRDA:$,1,1,1
case f(51): //DA:$,1 //BRDA:$,1,0,0 //BRDA:$,1,1,1
l.push('5'); //DA:$,0
}
l.pop(); //DA:$,1
@ -392,7 +392,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1 //BRDA:$,0,2,- //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1 //BRDA:$,0,2,0 //BRDA:$,0,3,0
case 0:
case 1:
l.push('0'); //DA:$,0
@ -413,7 +413,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -434,7 +434,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -456,7 +456,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -478,7 +478,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,- //BRDA:$,0,4,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0 //BRDA:$,0,4,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -501,7 +501,7 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,- //BRDA:$,0,3,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,0 //BRDA:$,0,3,1
case 0:
l.push('0'); //DA:$,0
case 1:
@ -520,5 +520,24 @@ checkLcov(function () { //FN:$,top-level //FNDA:1,%
//BRH:1
});
checkLcov(function () { //FN:$,top-level //FNDA:1,%
var l = ','.split(','); //DA:$,1
if (l.length === 45) { //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,0
switch (l[0]) { //DA:$,0 //BRDA:$,1,0,- //BRDA:$,1,1,-
case ',':
l.push('0'); //DA:$,0
default:
l.push('1'); //DA:$,0
}
}
l.pop(); //DA:$,1
//FNF:1
//FNH:1
//LF:6
//LH:3
//BRF:4
//BRH:1
});
// If you add a test case here, do the same in
// jit-test/tests/debug/Script-getOffsetsCoverage-01.js

View File

@ -350,7 +350,7 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,1 //BRDA:$,0,2,- //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,1 //BRDA:$,0,2,0 //BRDA:$,0,3,0
case 0:
case 1:
l.push('0'); //DA:$,0
@ -371,7 +371,7 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -392,7 +392,7 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -414,7 +414,7 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -436,7 +436,7 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,1 //BRDA:$,0,3,- //BRDA:$,0,4,-
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,1 //BRDA:$,0,3,0 //BRDA:$,0,4,0
case 0:
l.push('0'); //DA:$,0
case 1:
@ -459,7 +459,7 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ",".split(','); //DA:$,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,- //BRDA:$,0,1,- //BRDA:$,0,2,- //BRDA:$,0,3,1
switch (l.length) { //DA:$,1 //BRDA:$,0,0,0 //BRDA:$,0,1,0 //BRDA:$,0,2,0 //BRDA:$,0,3,1
case 0:
l.push('0'); //DA:$,0
case 1:
@ -478,5 +478,24 @@ checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
//BRH:1
});
checkGetOffsetsCoverage(function () { //FN:$,top-level //FNDA:1,%
var l = ','.split(','); //DA:$,1
if (l.length === 45) { //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,0
switch (l[0]) { //DA:$,0 //BRDA:$,1,0,- //BRDA:$,1,1,-
case ',':
l.push('0'); //DA:$,0
default:
l.push('1'); //DA:$,0
}
}
l.pop(); //DA:$,1
//FNF:1
//FNH:1
//LF:6
//LH:3
//BRF:4
//BRH:1
});
// If you add a test case here, do the same in
// jit-test/tests/coverage/simple.js

View File

@ -255,13 +255,13 @@ LCovSource::writeScript(JSScript* script)
uint64_t taken = hits - fallthroughHits;
outBRDA_.printf("BRDA:%zu,%zu,0,", lineno, branchId);
if (taken)
if (hits)
outBRDA_.printf("%" PRIu64 "\n", taken);
else
outBRDA_.put("-\n", 2);
outBRDA_.printf("BRDA:%zu,%zu,1,", lineno, branchId);
if (fallthroughHits)
if (hits)
outBRDA_.printf("%" PRIu64 "\n", fallthroughHits);
else
outBRDA_.put("-\n", 2);
@ -359,7 +359,7 @@ LCovSource::writeScript(JSScript* script)
outBRDA_.printf("BRDA:%zu,%zu,%zu,",
lineno, branchId, caseId);
if (caseHits)
if (hits)
outBRDA_.printf("%" PRIu64 "\n", caseHits);
else
outBRDA_.put("-\n", 2);
@ -424,7 +424,7 @@ LCovSource::writeScript(JSScript* script)
if (defaultHasOwnClause) {
outBRDA_.printf("BRDA:%zu,%zu,%zu,",
lineno, branchId, caseId);
if (defaultHits)
if (hits)
outBRDA_.printf("%" PRIu64 "\n", defaultHits);
else
outBRDA_.put("-\n", 2);