summaryrefslogtreecommitdiffstats
path: root/src/cmd/go/testdata/script/testing_coverage.txt
blob: 6cf6adbbd7a49f09b05f4b42594ccafe39cbed7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Rudimentary test of testing.Coverage().

[short] skip
[!GOEXPERIMENT:coverageredesign] skip

# Simple test.
go test -v -cover -count=1

# Make sure test still passes when test executable is built and
# run outside the go command.
go test -c -o t.exe -cover
exec ./t.exe

-- go.mod --
module hello

go 1.20
-- hello.go --
package hello

func Hello() {
	println("hello")
}

// contents not especially interesting, just need some code
func foo(n int) int {
	t := 0
	for i := 0; i < n; i++ {
		for j := 0; j < i; j++ {
			t += i ^ j
			if t == 1010101 {
				break
			}
		}
	}
	return t
}

-- hello_test.go --
package hello

import "testing"

func TestTestCoverage(t *testing.T) {
	Hello()
	C1 := testing.Coverage()
	foo(29)
	C2 := testing.Coverage()
	if C1 == 0.0 || C2 == 0.0 {
		t.Errorf("unexpected zero values C1=%f C2=%f", C1, C2)
	}
	if C1 >= C2 {
		t.Errorf("testing.Coverage() not monotonically increasing C1=%f C2=%f", C1, C2)
	}
}