Descriptioncmd/go: always build _test.go files and link into test
go test's handling of _test.go files when the entire
package's set of files has no Test functions has varied
over the past few releases. There are a few interesting
cases (all contain no Test functions):
(1) x_test.go has syntax errors
(2) x_test.go has type errors
(3) x_test.go has runtime errors (say, a func init that panics)
In Go 1.1, tests with (1) or (2) failed; (3) passed.
In Go 1.2, tests with (1) or (2) failed; (3) passed.
In Go 1.3, tests with (1) failed; (2) or (3) passed.
After this CL, tests with (1), (2), or (3) all fail.
This is clearly a corner case, but it seems to me that
the behavior of the test should not change if you
add or remove a line like
func TestAlwaysPasses(t *testing.T) {}
That implies that the _test.go files must always
be built and always be imported into the test binary.
Doing so means that (1), (2), and (3) must all fail.
Fixes issue 8337.
Patch Set 1 #Patch Set 2 : diff -r d62cdebe7513197cbf70b87bbade7154d4359a55 https://code.google.com/p/go/ #Patch Set 3 : diff -r d62cdebe7513197cbf70b87bbade7154d4359a55 https://code.google.com/p/go/ #Patch Set 4 : diff -r 6592b0fb7a5db6b3351cfae6db876f155d626eef https://code.google.com/p/go/ #
MessagesTotal messages: 3
|