blob: d31ecda881266d436f01805f3752e310d9ba5ec8 [file] [log] [blame] [edit]
# golang.org/issue/34055
# Starting in Go 1.25, go-import meta tag support an optional subdirectory paramater.
# The corresponding go-import meta tag is specified as
# <meta name="go-import" content="vcs-test.golang.org/go/gitreposubdir git https://vcs-test.golang.org/git/gitreposubdir foo/subdir">
# and contains the module in vcs-test.golang.org/git/gitreposubdir/foo/subdir.
# See testdata/vcstest/go/gitreposubdir.txt and testdata/vcstest/git/gitreposubdir.txt
[short] skip 'builds a go program'
[!git] skip
env GO111MODULE=on
env GOPROXY=direct
env GOSUMDB=off
# Get the module without having to specify the subdir.
cd a
cp go.mod go.mod.orig
go get vcs-test.golang.org/go/gitreposubdir@v1.2.3
exists $GOPATH/pkg/mod/vcs-test.golang.org/go/gitreposubdir@v1.2.3
go get vcs-test.golang.org/go/gitreposubdirv2/v2@v2.0.0
exists $GOPATH/pkg/mod/vcs-test.golang.org/go/gitreposubdirv2/v2@v2.0.0
# Import the module without having to specify the subdir.
cp go.mod.orig go.mod
go mod tidy
# Run main.go which has the import.
go run main.go
stdout 'hello, world'
stdout 'hello, world v2'
# Fail if subdir is specified in get.
! go get vcs-test.golang.org/go/gitreposubdir/foo/subdir
stderr 'module vcs-test.golang.org/go/gitreposubdir@upgrade found \(v1.2.3\), but does not contain package vcs-test.golang.org/go/gitreposubdir/foo/subdir'
! go get vcs-test.golang.org/go/gitreposubdirv2/v2/foo/subdir
stderr 'module vcs-test.golang.org/go/gitreposubdirv2/v2@upgrade found \(v2.0.0\), but does not contain package vcs-test.golang.org/go/gitreposubdirv2/v2/foo/subdir'
# Fail if subdir is specified in the import.
cd ../b
! go mod tidy
stderr 'module vcs-test.golang.org/go/gitreposubdir@latest found \(v1.2.3\), but does not contain package vcs-test.golang.org/go/gitreposubdir/foo/subdir'
stderr 'module vcs-test.golang.org/go/gitreposubdirv2/v2@latest found \(v2.0.0\), but does not contain package vcs-test.golang.org/go/gitreposubdirv2/v2/foo/subdir'
-- a/main.go --
package main
import (
"fmt"
"vcs-test.golang.org/go/gitreposubdir"
"vcs-test.golang.org/go/gitreposubdirv2/v2"
)
func main() {
fmt.Println(greeter.Hello())
fmt.Println(greeterv2.Hello())
}
-- a/go.mod --
module example
go 1.24
-- b/main.go --
package main
import (
"fmt"
"vcs-test.golang.org/go/gitreposubdir/foo/subdir"
"vcs-test.golang.org/go/gitreposubdirv2/v2/foo/subdir"
)
func main() {
fmt.Println(greeter.Hello())
fmt.Println(greeterv2.Hello())
}
-- b/go.mod --
module example
go 1.24