
# Rudimentary test of testing.Coverage().

[short] 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)
	}
}

