aboutsummaryrefslogtreecommitdiff
path: root/go/tools/bzltestutil/lcov_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/tools/bzltestutil/lcov_test.go')
-rw-r--r--go/tools/bzltestutil/lcov_test.go71
1 files changed, 71 insertions, 0 deletions
diff --git a/go/tools/bzltestutil/lcov_test.go b/go/tools/bzltestutil/lcov_test.go
new file mode 100644
index 00000000..3dc595b6
--- /dev/null
+++ b/go/tools/bzltestutil/lcov_test.go
@@ -0,0 +1,71 @@
+package bzltestutil
+
+import (
+ "strings"
+ "testing"
+)
+
+func TestConvertCoverToLcov(t *testing.T) {
+ var tests = []struct {
+ name string
+ goCover string
+ expectedLcov string
+ }{
+ {
+ "empty",
+ "",
+ "",
+ },
+ {
+ "mode only",
+ "mode: set\n",
+ "",
+ },
+ {
+ "single file",
+ `mode: count
+file.go:0.4,2.10 0 0
+`,
+ `SF:file.go
+DA:0,0
+DA:1,0
+DA:2,0
+LH:0
+LF:3
+end_of_record
+`,
+ },
+ {
+ "narrow ranges",
+ `mode: atomic
+path/to/pkg/file.go:0.1,0.2 5 1
+path/to/pkg/file2.go:1.2,1.2 4 2
+`,
+ `SF:path/to/pkg/file.go
+DA:0,1
+LH:1
+LF:1
+end_of_record
+SF:path/to/pkg/file2.go
+DA:1,2
+LH:1
+LF:1
+end_of_record
+`,
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ in := strings.NewReader(tt.goCover)
+ var out strings.Builder
+ err := convertCoverToLcov(in, &out)
+ if err != nil {
+ t.Errorf("convertCoverToLcov returned unexpected error: %+v", err)
+ }
+ actualLcov := out.String()
+ if actualLcov != tt.expectedLcov {
+ t.Errorf("covertCoverToLcov returned:\n%q\n, expected:\n%q\n", actualLcov, tt.expectedLcov)
+ }
+ })
+ }
+}