aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-11-06 20:50:45 +0100
committerTaras Madan <tarasmadan@google.com>2024-11-07 08:38:08 +0000
commit867e44df36d93e8127938eca6f6a5c339a2ba0b8 (patch)
tree5ac045074727eb4b67dc7f2d90414c43317a2dd8 /tools
parent69abf6c7a42942f529f2b3d5b6917f97c5aecc10 (diff)
pkg/coveragedb: store hitcount instead of coveredlines
Instrumented lines + hit count gives more information than instrumented + covered lines. Expected storage cost is at the same level.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/syz-covermerger/init_db.sh2
-rw-r--r--tools/syz-covermerger/syz_covermerger.go24
2 files changed, 15 insertions, 11 deletions
diff --git a/tools/syz-covermerger/init_db.sh b/tools/syz-covermerger/init_db.sh
index bc72218bc..d31f68e9a 100755
--- a/tools/syz-covermerger/init_db.sh
+++ b/tools/syz-covermerger/init_db.sh
@@ -18,7 +18,7 @@ CREATE TABLE
"instrumented" bigint,
"covered" bigint,
"linesinstrumented" bigint[],
- "linescovered" bigint[],
+ "hitcounts" bigint[],
PRIMARY KEY
(session, filepath) );')
gcloud spanner databases ddl update $db --instance=syzbot --project=syzkaller \
diff --git a/tools/syz-covermerger/syz_covermerger.go b/tools/syz-covermerger/syz_covermerger.go
index b64d4dae8..0f7782076 100644
--- a/tools/syz-covermerger/syz_covermerger.go
+++ b/tools/syz-covermerger/syz_covermerger.go
@@ -140,22 +140,26 @@ func mergeResultsToCoverage(mergedCoverage map[string]*covermerger.MergeResult,
if !lineStat.FileExists {
continue
}
- var linesInstrumented, linesCovered []int64
- for lineNum, lineHitCount := range lineStat.HitCounts {
- linesInstrumented = append(linesInstrumented, int64(lineNum))
- if lineHitCount > 0 {
- linesCovered = append(linesCovered, int64(lineNum))
+
+ lines := maps.Keys(lineStat.HitCounts)
+ slices.Sort(lines)
+
+ var linesInstrumented, hitCounts []int64
+ var instrumented, covered int64
+ for _, line := range lines {
+ instrumented++
+ linesInstrumented = append(linesInstrumented, int64(line))
+ hitCount := lineStat.HitCounts[line]
+ hitCounts = append(hitCounts, int64(hitCount))
+ if hitCount > 0 {
+ covered++
}
}
- slices.Sort(linesInstrumented)
- slices.Sort(linesCovered)
- instrumented := int64(len(linesInstrumented))
- covered := int64(len(linesCovered))
res[fileName] = &coveragedb.Coverage{
Instrumented: instrumented,
Covered: covered,
LinesInstrumented: linesInstrumented,
- LinesCovered: linesCovered,
+ HitCounts: hitCounts,
}
totalInstrumented += instrumented
totalCovered += covered