| env GO111MODULE=off |
| |
| # Test that you cannot import a main package. |
| # See golang.org/issue/4210 and golang.org/issue/17475. |
| |
| [short] skip |
| cd $WORK |
| |
| # Importing package main from that package main's test should work. |
| go build x |
| go test -c x |
| |
| # Importing package main from another package should fail. |
| ! go build p1 |
| stderr 'import "x" is a program, not an importable package' |
| |
| # ... even in that package's test. |
| go build p2 |
| ! go test -c p2 |
| stderr 'import "x" is a program, not an importable package' |
| |
| # ... even if that package's test is an xtest. |
| go build p3 |
| ! go test p3 |
| stderr 'import "x" is a program, not an importable package' |
| |
| # ... even if that package is a package main |
| go build p4 |
| ! go test -c p4 |
| stderr 'import "x" is a program, not an importable package' |
| |
| # ... even if that package is a package main using an xtest. |
| go build p5 |
| ! go test -c p5 |
| stderr 'import "x" is a program, not an importable package' |
| |
| -- x/main.go -- |
| package main |
| |
| var X int |
| |
| func main() {} |
| -- x/main_test.go -- |
| package main_test |
| |
| import ( |
| "testing" |
| xmain "x" |
| ) |
| |
| var _ = xmain.X |
| |
| func TestFoo(t *testing.T) {} |
| -- p1/p.go -- |
| package p1 |
| |
| import xmain "x" |
| |
| var _ = xmain.X |
| -- p2/p.go -- |
| package p2 |
| -- p2/p_test.go -- |
| package p2 |
| |
| import ( |
| "testing" |
| xmain "x" |
| ) |
| |
| var _ = xmain.X |
| |
| func TestFoo(t *testing.T) {} |
| -- p3/p.go -- |
| package p |
| -- p3/p_test.go -- |
| package p_test |
| |
| import ( |
| "testing" |
| xmain "x" |
| ) |
| |
| var _ = xmain.X |
| |
| func TestFoo(t *testing.T) {} |
| -- p4/p.go -- |
| package main |
| |
| func main() {} |
| -- p4/p_test.go -- |
| package main |
| |
| import ( |
| "testing" |
| xmain "x" |
| ) |
| |
| var _ = xmain.X |
| |
| func TestFoo(t *testing.T) {} |
| -- p5/p.go -- |
| package main |
| func main() {} |
| -- p5/p_test.go -- |
| package main_test |
| |
| import ( |
| "testing" |
| xmain "x" |
| ) |
| |
| var _ = xmain.X |
| |
| func TestFoo(t *testing.T) {} |