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() }
