GitHunt
SK

skipor/golang-x-tools-packages-load-fail-reproduce

Repository reproduces packages.Load error: internal error: go list gives conflicting information for package
which happens, when there is import cycle in code, but there are no 'cycle' import in test files.

$ go version
go version go1.16.4 darwin/amd64
$ ./reproduce.sh
+ echo 'Given two packages with import cycle Then packages.Load ok'
Given two packages with import cycle Then packages.Load ok
+ go run .
github.com/skipor/load-fail-reproduce/reproduce/b errors: []
github.com/skipor/load-fail-reproduce/reproduce/a errors: [-: import cycle not allowed: import stack: [github.com/skipor/load-fail-reproduce/reproduce/a github.com/skipor/load-fail-reproduce/reproduce/b github.com/skipor/load-fail-reproduce/reproduce/a] /Users/skipor/dev/src/github.com/skipor/load-fail-reproduce/reproduce/a/a.go:4:2: could not import github.com/skipor/load-fail-reproduce/reproduce/b (import cycle: [github.com/skipor/load-fail-reproduce/reproduce/b github.com/skipor/load-fail-reproduce/reproduce/a])]
+ go list ./...
package github.com/skipor/load-fail-reproduce/reproduce/a
	imports github.com/skipor/load-fail-reproduce/reproduce/b
	imports github.com/skipor/load-fail-reproduce/reproduce/a: import cycle not allowed
+ true
+ echo 'When there is test file WITHOUT import cycle Then packages.Load FAILS'
When there is test file WITHOUT import cycle Then packages.Load FAILS
+ cat
+ cat ./reproduce/a/a_test.go
package a
+ go run .
packages.Load error: internal error: go list gives conflicting information for package github.com/skipor/load-fail-reproduce/reproduce/a [github.com/skipor/load-fail-reproduce/reproduce/a.test]
+ go list ./...
package github.com/skipor/load-fail-reproduce/reproduce/a
	imports github.com/skipor/load-fail-reproduce/reproduce/b
	imports github.com/skipor/load-fail-reproduce/reproduce/a: import cycle not allowed
+ true
+ echo 'When there is test file WITH import cycle Then packages.Load ok'
When there is test file WITH import cycle Then packages.Load ok
+ cat
+ cat ./reproduce/a/a_test.go
package a
import "github.com/skipor/load-fail-reproduce/reproduce/b"
func ImportCycleToo() {b.Bar()}
+ go run .
github.com/skipor/load-fail-reproduce/reproduce/b errors: []
github.com/skipor/load-fail-reproduce/reproduce/a errors: [-: import cycle not allowed: import stack: [github.com/skipor/load-fail-reproduce/reproduce/a github.com/skipor/load-fail-reproduce/reproduce/b github.com/skipor/load-fail-reproduce/reproduce/a] /Users/skipor/dev/src/github.com/skipor/load-fail-reproduce/reproduce/a/a.go:4:2: could not import github.com/skipor/load-fail-reproduce/reproduce/b (import cycle: [github.com/skipor/load-fail-reproduce/reproduce/b github.com/skipor/load-fail-reproduce/reproduce/a])]
github.com/skipor/load-fail-reproduce/reproduce/a [github.com/skipor/load-fail-reproduce/reproduce/a.test] errors: [-: import cycle not allowed in test]
github.com/skipor/load-fail-reproduce/reproduce/a.test errors: []
+ go list ./...
package github.com/skipor/load-fail-reproduce/reproduce/a
	imports github.com/skipor/load-fail-reproduce/reproduce/b
	imports github.com/skipor/load-fail-reproduce/reproduce/a: import cycle not allowed
+ true
+ rm ./reproduce/a/a_test.go

Languages

Shell51.2%Go48.8%

Contributors

Created July 6, 2021
Updated July 6, 2021