# Tests Issue #38478
# Tests that go get in GOMOD mode returns a specific error if the argument
# ends with '.go', has no version, and either has no slash or refers to an
# existing file.

env GO111MODULE=on

# argument doesn't have .go suffix and has no version
! go get test
! stderr 'arguments must be package or module paths'
! stderr 'exists as a file, but ''go get'' requires package arguments'

# argument has .go suffix and has version
! go get test.go@v1.0.0
! stderr 'arguments must be package or module paths'
! stderr 'exists as a file, but ''go get'' requires package arguments'

# argument has .go suffix, is a file and exists
! go get test.go
stderr 'go get test.go: arguments must be package or module paths'

# argument has .go suffix, doesn't exist and has no slashes
! go get test_missing.go
stderr 'arguments must be package or module paths'

# argument has .go suffix, is a file and exists in sub-directory
! go get test/test.go
stderr 'go get: test/test.go exists as a file, but ''go get'' requires package arguments'

# argument has .go suffix, doesn't exist and has slashes
! go get test/test_missing.go
! stderr 'arguments must be package or module paths'
! stderr 'exists as a file, but ''go get'' requires package arguments'

# argument has .go suffix, is a symlink and exists
[symlink] symlink test_sym.go -> test.go
[symlink] ! go get test_sym.go
[symlink] stderr 'go get test_sym.go: arguments must be package or module paths'
[symlink] rm test_sym.go

# argument has .go suffix, is a symlink and exists in sub-directory
[symlink] symlink test/test_sym.go -> test.go
[symlink] ! go get test/test_sym.go
[symlink] stderr 'go get: test/test_sym.go exists as a file, but ''go get'' requires package arguments'
[symlink] rm test_sym.go

# argument has .go suffix, is a directory and exists
mkdir test_dir.go
! go get test_dir.go
stderr 'go get test_dir.go: arguments must be package or module paths'
rm test_dir.go

# argument has .go suffix, is a directory and exists in sub-directory
mkdir test/test_dir.go
! go get test/test_dir.go
! stderr 'arguments must be package or module paths'
! stderr 'exists as a file, but ''go get'' requires package arguments'
rm test/test_dir.go


-- test.go --
package main
func main() {println("test")}


-- test/test.go --
package main
func main() {println("test")}
