From 822094f04756b31344c0533eb0e390464e1cbf5b Mon Sep 17 00:00:00 2001 From: Michael Matloob Date: Thu, 26 Dec 2019 17:47:26 -0500 Subject: [PATCH] cmd/go: convert some cgo-related testcases to script framework This change converts TestCoverageWithCgo and TestCgoConsistentResults to the script framework. Change-Id: Ic5a13f6dd6099d3d73a5cda8cbc724a79a3d2c58 Reviewed-on: https://go-review.googlesource.com/c/go/+/212621 Run-TryBot: Michael Matloob Reviewed-by: Jay Conrod --- src/cmd/go/go_test.go | 33 -------------- src/cmd/go/testdata/script/cgo_asm_error.txt | 21 +++++++++ src/cmd/go/testdata/script/cover_cgo.txt | 37 ++++++++++++++++ .../testdata/script/cover_cgo_extra_file.txt | 43 ++++++++++++++++++ .../testdata/script/cover_cgo_extra_test.txt | 44 +++++++++++++++++++ .../go/testdata/script/cover_cgo_xtest.txt | 40 +++++++++++++++++ src/cmd/go/testdata/src/cgoasm/p.go | 8 ---- src/cmd/go/testdata/src/cgoasm/p.s | 2 - src/cmd/go/testdata/src/cgocover/p.go | 19 -------- src/cmd/go/testdata/src/cgocover/p_test.go | 7 --- src/cmd/go/testdata/src/cgocover2/p.go | 19 -------- src/cmd/go/testdata/src/cgocover2/x_test.go | 10 ----- src/cmd/go/testdata/src/cgocover3/p.go | 19 -------- src/cmd/go/testdata/src/cgocover3/p_test.go | 1 - src/cmd/go/testdata/src/cgocover3/x_test.go | 10 ----- src/cmd/go/testdata/src/cgocover4/notcgo.go | 1 - src/cmd/go/testdata/src/cgocover4/p.go | 19 -------- src/cmd/go/testdata/src/cgocover4/x_test.go | 10 ----- 18 files changed, 185 insertions(+), 158 deletions(-) create mode 100644 src/cmd/go/testdata/script/cgo_asm_error.txt create mode 100644 src/cmd/go/testdata/script/cover_cgo.txt create mode 100644 src/cmd/go/testdata/script/cover_cgo_extra_file.txt create mode 100644 src/cmd/go/testdata/script/cover_cgo_extra_test.txt create mode 100644 src/cmd/go/testdata/script/cover_cgo_xtest.txt delete mode 100644 src/cmd/go/testdata/src/cgoasm/p.go delete mode 100644 src/cmd/go/testdata/src/cgoasm/p.s delete mode 100644 src/cmd/go/testdata/src/cgocover/p.go delete mode 100644 src/cmd/go/testdata/src/cgocover/p_test.go delete mode 100644 src/cmd/go/testdata/src/cgocover2/p.go delete mode 100644 src/cmd/go/testdata/src/cgocover2/x_test.go delete mode 100644 src/cmd/go/testdata/src/cgocover3/p.go delete mode 100644 src/cmd/go/testdata/src/cgocover3/p_test.go delete mode 100644 src/cmd/go/testdata/src/cgocover3/x_test.go delete mode 100644 src/cmd/go/testdata/src/cgocover4/notcgo.go delete mode 100644 src/cmd/go/testdata/src/cgocover4/p.go delete mode 100644 src/cmd/go/testdata/src/cgocover4/x_test.go diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index b2d92b7668..77917b84b6 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -2311,39 +2311,6 @@ func main() { tg.grepStderrNot(`os.Stat .* no such file or directory`, "unexpected stat of archive file") } -func TestCoverageWithCgo(t *testing.T) { - skipIfGccgo(t, "gccgo has no cover tool") - tooSlow(t) - if !canCgo { - t.Skip("skipping because cgo not enabled") - } - - for _, dir := range []string{"cgocover", "cgocover2", "cgocover3", "cgocover4"} { - t.Run(dir, func(t *testing.T) { - tg := testgo(t) - tg.parallel() - defer tg.cleanup() - tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata")) - tg.run("test", "-short", "-cover", dir) - data := tg.getStdout() + tg.getStderr() - checkCoverage(tg, data) - }) - } -} - -func TestCgoAsmError(t *testing.T) { - if !canCgo { - t.Skip("skipping because cgo not enabled") - } - - tg := testgo(t) - tg.parallel() - defer tg.cleanup() - tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata")) - tg.runFail("build", "cgoasm") - tg.grepBoth("package using cgo has Go assembly file", "did not detect Go assembly file") -} - func TestCgoDependsOnSyscall(t *testing.T) { if testing.Short() { t.Skip("skipping test that removes $GOROOT/pkg/*_race in short mode") diff --git a/src/cmd/go/testdata/script/cgo_asm_error.txt b/src/cmd/go/testdata/script/cgo_asm_error.txt new file mode 100644 index 0000000000..e656106940 --- /dev/null +++ b/src/cmd/go/testdata/script/cgo_asm_error.txt @@ -0,0 +1,21 @@ +[!cgo] skip + +# Test that cgo package can't contain a go assembly file. + +# Ensure the build fails and reports that the package has a Go assembly file. +! go build cgoasm +stderr 'package using cgo has Go assembly file' + +-- cgoasm/p.go -- +package p + +/* +// hi +*/ +import "C" + +func F() {} +-- cgoasm/p.s -- +TEXT asm(SB),$0 + RET + diff --git a/src/cmd/go/testdata/script/cover_cgo.txt b/src/cmd/go/testdata/script/cover_cgo.txt new file mode 100644 index 0000000000..8016358eef --- /dev/null +++ b/src/cmd/go/testdata/script/cover_cgo.txt @@ -0,0 +1,37 @@ +[!cgo] skip +[gccgo] skip # gccgo has no cover tool + +# Test coverage on cgo code. + +go test -short -cover cgocover +stdout 'coverage:.*[1-9][0-9.]+%' +! stderr '[^0-9]0\.0%' + +-- cgocover/p.go -- +package p + +/* +void +f(void) +{ +} +*/ +import "C" + +var b bool + +func F() { + if b { + for { + } + } + C.f() +} +-- cgocover/p_test.go -- +package p + +import "testing" + +func TestF(t *testing.T) { + F() +} diff --git a/src/cmd/go/testdata/script/cover_cgo_extra_file.txt b/src/cmd/go/testdata/script/cover_cgo_extra_file.txt new file mode 100644 index 0000000000..65376f8e6e --- /dev/null +++ b/src/cmd/go/testdata/script/cover_cgo_extra_file.txt @@ -0,0 +1,43 @@ +[!cgo] skip +[gccgo] skip # gccgo has no cover tool + +# Test coverage on cgo code. This test case includes an +# extra empty non-cgo file in the package being checked. + +go test -short -cover cgocover4 +stdout 'coverage:.*[1-9][0-9.]+%' +! stderr '[^0-9]0\.0%' + +-- cgocover4/notcgo.go -- +package p +-- cgocover4/p.go -- +package p + +/* +void +f(void) +{ +} +*/ +import "C" + +var b bool + +func F() { + if b { + for { + } + } + C.f() +} +-- cgocover4/x_test.go -- +package p_test + +import ( + . "cgocover4" + "testing" +) + +func TestF(t *testing.T) { + F() +} \ No newline at end of file diff --git a/src/cmd/go/testdata/script/cover_cgo_extra_test.txt b/src/cmd/go/testdata/script/cover_cgo_extra_test.txt new file mode 100644 index 0000000000..1c4257846f --- /dev/null +++ b/src/cmd/go/testdata/script/cover_cgo_extra_test.txt @@ -0,0 +1,44 @@ +[!cgo] skip +[gccgo] skip # gccgo has no cover tool + +# Test coverage on cgo code. This test case has an external +# test that tests the code and an in-package test file with +# no test cases. + +go test -short -cover cgocover3 +stdout 'coverage:.*[1-9][0-9.]+%' +! stderr '[^0-9]0\.0%' + +-- cgocover3/p.go -- +package p + +/* +void +f(void) +{ +} +*/ +import "C" + +var b bool + +func F() { + if b { + for { + } + } + C.f() +} +-- cgocover3/p_test.go -- +package p +-- cgocover3/x_test.go -- +package p_test + +import ( + . "cgocover3" + "testing" +) + +func TestF(t *testing.T) { + F() +} \ No newline at end of file diff --git a/src/cmd/go/testdata/script/cover_cgo_xtest.txt b/src/cmd/go/testdata/script/cover_cgo_xtest.txt new file mode 100644 index 0000000000..40e2a8d6bd --- /dev/null +++ b/src/cmd/go/testdata/script/cover_cgo_xtest.txt @@ -0,0 +1,40 @@ +[!cgo] skip +[gccgo] skip # gccgo has no cover tool + +# Test cgo coverage with an external test. + +go test -short -cover cgocover2 +stdout 'coverage:.*[1-9][0-9.]+%' +! stderr '[^0-9]0\.0%' + +-- cgocover2/p.go -- +package p + +/* +void +f(void) +{ +} +*/ +import "C" + +var b bool + +func F() { + if b { + for { + } + } + C.f() +} +-- cgocover2/x_test.go -- +package p_test + +import ( + . "cgocover2" + "testing" +) + +func TestF(t *testing.T) { + F() +} \ No newline at end of file diff --git a/src/cmd/go/testdata/src/cgoasm/p.go b/src/cmd/go/testdata/src/cgoasm/p.go deleted file mode 100644 index 148b47f6a5..0000000000 --- a/src/cmd/go/testdata/src/cgoasm/p.go +++ /dev/null @@ -1,8 +0,0 @@ -package p - -/* -// hi -*/ -import "C" - -func F() {} diff --git a/src/cmd/go/testdata/src/cgoasm/p.s b/src/cmd/go/testdata/src/cgoasm/p.s deleted file mode 100644 index aaade03a43..0000000000 --- a/src/cmd/go/testdata/src/cgoasm/p.s +++ /dev/null @@ -1,2 +0,0 @@ -TEXT asm(SB),$0 - RET diff --git a/src/cmd/go/testdata/src/cgocover/p.go b/src/cmd/go/testdata/src/cgocover/p.go deleted file mode 100644 index a6a3891cd4..0000000000 --- a/src/cmd/go/testdata/src/cgocover/p.go +++ /dev/null @@ -1,19 +0,0 @@ -package p - -/* -void -f(void) -{ -} -*/ -import "C" - -var b bool - -func F() { - if b { - for { - } - } - C.f() -} diff --git a/src/cmd/go/testdata/src/cgocover/p_test.go b/src/cmd/go/testdata/src/cgocover/p_test.go deleted file mode 100644 index a8f057e358..0000000000 --- a/src/cmd/go/testdata/src/cgocover/p_test.go +++ /dev/null @@ -1,7 +0,0 @@ -package p - -import "testing" - -func TestF(t *testing.T) { - F() -} diff --git a/src/cmd/go/testdata/src/cgocover2/p.go b/src/cmd/go/testdata/src/cgocover2/p.go deleted file mode 100644 index a6a3891cd4..0000000000 --- a/src/cmd/go/testdata/src/cgocover2/p.go +++ /dev/null @@ -1,19 +0,0 @@ -package p - -/* -void -f(void) -{ -} -*/ -import "C" - -var b bool - -func F() { - if b { - for { - } - } - C.f() -} diff --git a/src/cmd/go/testdata/src/cgocover2/x_test.go b/src/cmd/go/testdata/src/cgocover2/x_test.go deleted file mode 100644 index f4790d2367..0000000000 --- a/src/cmd/go/testdata/src/cgocover2/x_test.go +++ /dev/null @@ -1,10 +0,0 @@ -package p_test - -import ( - . "cgocover2" - "testing" -) - -func TestF(t *testing.T) { - F() -} diff --git a/src/cmd/go/testdata/src/cgocover3/p.go b/src/cmd/go/testdata/src/cgocover3/p.go deleted file mode 100644 index a6a3891cd4..0000000000 --- a/src/cmd/go/testdata/src/cgocover3/p.go +++ /dev/null @@ -1,19 +0,0 @@ -package p - -/* -void -f(void) -{ -} -*/ -import "C" - -var b bool - -func F() { - if b { - for { - } - } - C.f() -} diff --git a/src/cmd/go/testdata/src/cgocover3/p_test.go b/src/cmd/go/testdata/src/cgocover3/p_test.go deleted file mode 100644 index c89cd18d0f..0000000000 --- a/src/cmd/go/testdata/src/cgocover3/p_test.go +++ /dev/null @@ -1 +0,0 @@ -package p diff --git a/src/cmd/go/testdata/src/cgocover3/x_test.go b/src/cmd/go/testdata/src/cgocover3/x_test.go deleted file mode 100644 index 97d0e0f098..0000000000 --- a/src/cmd/go/testdata/src/cgocover3/x_test.go +++ /dev/null @@ -1,10 +0,0 @@ -package p_test - -import ( - . "cgocover3" - "testing" -) - -func TestF(t *testing.T) { - F() -} diff --git a/src/cmd/go/testdata/src/cgocover4/notcgo.go b/src/cmd/go/testdata/src/cgocover4/notcgo.go deleted file mode 100644 index c89cd18d0f..0000000000 --- a/src/cmd/go/testdata/src/cgocover4/notcgo.go +++ /dev/null @@ -1 +0,0 @@ -package p diff --git a/src/cmd/go/testdata/src/cgocover4/p.go b/src/cmd/go/testdata/src/cgocover4/p.go deleted file mode 100644 index a6a3891cd4..0000000000 --- a/src/cmd/go/testdata/src/cgocover4/p.go +++ /dev/null @@ -1,19 +0,0 @@ -package p - -/* -void -f(void) -{ -} -*/ -import "C" - -var b bool - -func F() { - if b { - for { - } - } - C.f() -} diff --git a/src/cmd/go/testdata/src/cgocover4/x_test.go b/src/cmd/go/testdata/src/cgocover4/x_test.go deleted file mode 100644 index fd9bae743c..0000000000 --- a/src/cmd/go/testdata/src/cgocover4/x_test.go +++ /dev/null @@ -1,10 +0,0 @@ -package p_test - -import ( - . "cgocover4" - "testing" -) - -func TestF(t *testing.T) { - F() -} -- 2.50.0