# In GOPATH mode, vendored packages can replace std packages.
env GO111MODULE=off
cd vend/hello
go test -v
stdout TestMsgInternal
stdout TestMsgExternal

# In module mode, they cannot.
env GO111MODULE=on
! go test -mod=vendor
stderr 'undefined: strings.Msg'

-- vend/hello/go.mod --
module vend/hello

go 1.16
-- vend/hello/hello.go --
package main

import (
	"fmt"
	"strings" // really ../vendor/strings
)

func main() {
	fmt.Printf("%s\n", strings.Msg)
}
-- vend/hello/hello_test.go --
package main

import (
	"strings" // really ../vendor/strings
	"testing"
)

func TestMsgInternal(t *testing.T) {
	if strings.Msg != "hello, world" {
		t.Fatalf("unexpected msg: %v", strings.Msg)
	}
}
-- vend/hello/hellox_test.go --
package main_test

import (
	"strings" // really ../vendor/strings
	"testing"
)

func TestMsgExternal(t *testing.T) {
	if strings.Msg != "hello, world" {
		t.Fatalf("unexpected msg: %v", strings.Msg)
	}
}
-- vend/vendor/strings/msg.go --
package strings

var Msg = "hello, world"
