blob: 932b8b66f92fe54eed912ee0c8a02f35fc1021a0 [file] [log] [blame]
# go/build's Import should find modules by invoking the go command
go build -o $WORK/testimport.exe ./testimport
# GO111MODULE=off
env GO111MODULE=off
! exec $WORK/testimport.exe x/y/z/w .
# GO111MODULE=auto in GOPATH/src
env GO111MODULE=
! exec $WORK/testimport.exe x/y/z/w .
env GO111MODULE=auto
! exec $WORK/testimport.exe x/y/z/w .
# GO111MODULE=auto outside GOPATH/src
cd $GOPATH/other
env GO111MODULE=
exec $WORK/testimport.exe other/x/y/z/w .
stdout w2.go
! exec $WORK/testimport.exe x/y/z/w .
stderr 'cannot find module providing package x/y/z/w'
cd z
env GO111MODULE=auto
exec $WORK/testimport.exe other/x/y/z/w .
stdout w2.go
# GO111MODULE=on outside GOPATH/src
env GO111MODULE=on
exec $WORK/testimport.exe other/x/y/z/w .
stdout w2.go
# GO111MODULE=on in GOPATH/src
cd $GOPATH/src
exec $WORK/testimport.exe x/y/z/w .
stdout w1.go
cd w
exec $WORK/testimport.exe x/y/z/w ..
stdout w1.go
-- go.mod --
module x/y/z
-- z.go --
package z
-- w/w1.go --
package w
-- testimport/x.go --
package main
import (
"fmt"
"go/build"
"log"
"os"
"strings"
)
func main() {
p, err := build.Import(os.Args[1], os.Args[2], 0)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n%s\n", p.Dir, strings.Join(p.GoFiles, " "))
}
-- $GOPATH/other/go.mod --
module other/x/y
-- $GOPATH/other/z/w/w2.go --
package w