mirror of https://github.com/golang/go.git
testing: fix invalid error message about argument of TestMain
Also, this commit adds a test for ensuring that TestMain(t *testing.T) is a normal test. Fixes #22388 Change-Id: Iffcb1db5cdcf34b9c822fcdb58f8926535415177 Reviewed-on: https://go-review.googlesource.com/72591 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
50181df8ff
commit
e4a3043d1d
|
|
@ -2901,6 +2901,21 @@ func TestGoTestFooTestWorks(t *testing.T) {
|
|||
tg.run("test", "testdata/standalone_test.go")
|
||||
}
|
||||
|
||||
// Issue 22388
|
||||
func TestGoTestMainWithWrongSignature(t *testing.T) {
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.runFail("test", "testdata/standalone_main_wrong_test.go")
|
||||
tg.grepStderr(`wrong signature for TestMain, must be: func TestMain\(m \*testing.M\)`, "detected wrong error message")
|
||||
}
|
||||
|
||||
func TestGoTestMainAsNormalTest(t *testing.T) {
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.run("test", "testdata/standalone_main_normal_test.go")
|
||||
tg.grepBoth(okPattern, "go test did not say ok")
|
||||
}
|
||||
|
||||
func TestGoTestFlagsAfterPackage(t *testing.T) {
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
|
|
|
|||
|
|
@ -1694,7 +1694,16 @@ func (t *testFuncs) load(filename, pkg string, doImport, seen *bool) error {
|
|||
}
|
||||
name := n.Name.String()
|
||||
switch {
|
||||
case name == "TestMain" && isTestFunc(n, "M"):
|
||||
case name == "TestMain":
|
||||
if isTestFunc(n, "T") {
|
||||
t.Tests = append(t.Tests, testFunc{pkg, name, "", false})
|
||||
*doImport, *seen = true, true
|
||||
continue
|
||||
}
|
||||
err := checkTestFunc(n, "M")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if t.TestMain != nil {
|
||||
return errors.New("multiple definitions of TestMain")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package standalone_main_normal_test
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestMain(t *testing.T) {
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package standalone_main_wrong_test
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestMain(m *testing.Main) {
|
||||
}
|
||||
Loading…
Reference in New Issue