]> Cypherpunks repositories - gostls13.git/commit
cmd/go, testing: streamline direct use of test binaries
authorRuss Cox <rsc@golang.org>
Sat, 13 Jul 2013 00:40:30 +0000 (20:40 -0400)
committerRuss Cox <rsc@golang.org>
Sat, 13 Jul 2013 00:40:30 +0000 (20:40 -0400)
commitccc4553491ea4df4b5b3489811359eadb24899bf
treeb30db9c8be579b0c95bc9f0a5a3b7047f4bc85ee
parent4419d7e53cba0d897c5962af4ad1dd0b4aaf0b21
cmd/go, testing: streamline direct use of test binaries

Before:

        $ go test -c -cover fmt
        $ ./fmt.test -test.covermode=set
        PASS
        coverage: 65.1% of statements in strconv
        $

After:

        $ go test -c -cover fmt
        $ ./fmt.test
        PASS
        coverage: 65.1% of statements in strconv
        $

In addition to being cumbersome, the old flag didn't make sense:
the cover mode cannot be changed after the binary has been built.

Another useful effect of this CL is that if you happen to do

        $ go test -c -covermode=atomic fmt

and then forget you did that and run benchmarks,
the final line of the output (the coverage summary) reminds you
that you are benchmarking with coverage enabled, which might
not be what you want.

        $ ./fmt.test -test.bench .
        PASS
        BenchmarkSprintfEmpty 10000000        217 ns/op
        BenchmarkSprintfString  2000000        755 ns/op
        BenchmarkSprintfInt  2000000        774 ns/op
        BenchmarkSprintfIntInt  1000000       1363 ns/op
        BenchmarkSprintfPrefixedInt  1000000       1501 ns/op
        BenchmarkSprintfFloat  1000000       1257 ns/op
        BenchmarkManyArgs   500000       5346 ns/op
        BenchmarkScanInts     1000    2562402 ns/op
        BenchmarkScanRecursiveInt      500    3189457 ns/op
        coverage: 91.4% of statements
        $

As part of passing the new mode setting in via _testmain.go, merge
the two registration mechanisms into one extensible mechanism
(a struct).

R=r
CC=golang-dev
https://golang.org/cl/11219043
src/cmd/go/doc.go
src/cmd/go/test.go
src/cmd/go/testflag.go
src/pkg/testing/cover.go
src/pkg/testing/testing.go