| env GO111MODULE=off |
| |
| # Test that 'go build -i' installs dependencies of the requested package. |
| |
| [short] skip |
| |
| # Since we are checking installation of dependencies, use a clean cache |
| # to ensure that multiple runs of the test do not interfere. |
| env GOCACHE=$WORK/cache |
| |
| # The initial 'go build -i' for bar should install its dependency foo. |
| |
| go build -v -i x/y/bar |
| stderr 'x/y/foo' # should be rebuilt |
| go build -v -i x/y/bar |
| ! stderr 'x/y/foo' # should already be installed |
| |
| # After modifying the source files, both packages should be rebuild. |
| |
| cp x/y/foo/foo.go.next x/y/foo/foo.go |
| cp x/y/bar/bar.go.next x/y/bar/bar.go |
| |
| go build -v -i x/y/bar |
| stderr 'x/y/foo' # should be rebuilt |
| go build -v -i x/y/bar |
| ! stderr 'x/y/foo' # should already be installed |
| |
| -- x/y/foo/foo.go -- |
| package foo |
| func F() {} |
| -- x/y/bar/bar.go -- |
| package bar |
| import "x/y/foo" |
| func F() { foo.F() } |
| -- x/y/foo/foo.go.next -- |
| package foo |
| func F() { F() } |
| -- x/y/bar/bar.go.next -- |
| package main |
| import "x/y/foo" |
| func main() { foo.F() } |