From 31605b3e1a107ab83d814ec4183cec07bb670655 Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Fri, 12 Jul 2024 10:58:12 +0200 Subject: pkg/cover: add heatmap_test.go --- pkg/cover/heatmap_test.go | 113 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 pkg/cover/heatmap_test.go (limited to 'pkg') diff --git a/pkg/cover/heatmap_test.go b/pkg/cover/heatmap_test.go new file mode 100644 index 000000000..c40d14ccc --- /dev/null +++ b/pkg/cover/heatmap_test.go @@ -0,0 +1,113 @@ +// Copyright 2024 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +package cover + +import ( + "testing" + "time" + + "cloud.google.com/go/civil" + "github.com/stretchr/testify/assert" +) + +func TestFilesCoverageToTemplateData(t *testing.T) { + tests := []struct { + name string + input []*fileCoverageAndDate + want *templateHeatmap + }{ + { + name: "empty input", + input: []*fileCoverageAndDate{}, + want: &templateHeatmap{ + Root: &templateHeatmapRow{ + Items: []*templateHeatmapRow{}, + }, + }, + }, + { + name: "single file", + input: []*fileCoverageAndDate{ + { + Filepath: "file1", + Instrumented: 1, + Covered: 1, + Dateto: civil.Date{Year: 2024, Month: time.July, Day: 1}, + }, + }, + want: &templateHeatmap{ + Root: &templateHeatmapRow{ + Items: []*templateHeatmapRow{ + { + Items: []*templateHeatmapRow{}, + Name: "file1", + Coverage: []int64{100}, + IsDir: false, + Depth: 0, + }, + }, + Name: "", + Coverage: []int64{100}, + IsDir: false, + Depth: 0, + }, + Dates: []string{"2024-07-01"}, + }, + }, + { + name: "tree data", + input: []*fileCoverageAndDate{ + { + Filepath: "dir/file2", + Instrumented: 1, + Covered: 0, + Dateto: civil.Date{Year: 2024, Month: time.July, Day: 2}, + }, + { + Filepath: "dir/file1", + Instrumented: 1, + Covered: 1, + Dateto: civil.Date{Year: 2024, Month: time.July, Day: 1}, + }, + }, + want: &templateHeatmap{ + Root: &templateHeatmapRow{ + Items: []*templateHeatmapRow{ + { + Items: []*templateHeatmapRow{ + { + Items: []*templateHeatmapRow{}, + Name: "file1", + Coverage: []int64{100, 0}, + IsDir: false, + Depth: 1, + }, + { + Items: []*templateHeatmapRow{}, + Name: "file2", + Coverage: []int64{0, 0}, + IsDir: false, + Depth: 1, + }, + }, + Name: "dir", + Coverage: []int64{100, 0}, + IsDir: true, + Depth: 0, + }, + }, + Name: "", + Coverage: []int64{100, 0}, + }, + Dates: []string{"2024-07-01", "2024-07-02"}, + }, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + got := filesCoverageToTemplateData(test.input) + assert.EqualExportedValues(t, test.want, got) + }) + } +} -- cgit mrf-deployment