1 # Tests Issue #38478
2 # Tests that go get in GOMOD mode returns a specific error if the argument
3 # ends with '.go', has no version, and either has no slash or refers to an
4 # existing file.
5
6 env GO111MODULE=on
7
8 # argument doesn't have .go suffix and has no version
9 ! go get test
10 ! stderr 'arguments must be package or module paths'
11 ! stderr 'exists as a file, but ''go get'' requires package arguments'
12
13 # argument has .go suffix and has version
14 ! go get test.go@v1.0.0
15 ! stderr 'arguments must be package or module paths'
16 ! stderr 'exists as a file, but ''go get'' requires package arguments'
17
18 # argument has .go suffix, is a file and exists
19 ! go get test.go
20 stderr 'go: test.go: arguments must be package or module paths'
21
22 # argument has .go suffix, doesn't exist and has no slashes
23 ! go get test_missing.go
24 stderr 'arguments must be package or module paths'
25
26 # argument has .go suffix, is a file and exists in sub-directory
27 ! go get test/test.go
28 stderr 'go: test/test.go exists as a file, but ''go get'' requires package arguments'
29
30 # argument has .go suffix, doesn't exist and has slashes
31 ! go get test/test_missing.go
32 ! stderr 'arguments must be package or module paths'
33 ! stderr 'exists as a file, but ''go get'' requires package arguments'
34
35 # argument has .go suffix, is a symlink and exists
36 [symlink] symlink test_sym.go -> test.go
37 [symlink] ! go get test_sym.go
38 [symlink] stderr 'go: test_sym.go: arguments must be package or module paths'
39 [symlink] rm test_sym.go
40
41 # argument has .go suffix, is a symlink and exists in sub-directory
42 [symlink] symlink test/test_sym.go -> test.go
43 [symlink] ! go get test/test_sym.go
44 [symlink] stderr 'go: test/test_sym.go exists as a file, but ''go get'' requires package arguments'
45 [symlink] rm test_sym.go
46
47 # argument has .go suffix, is a directory and exists
48 mkdir test_dir.go
49 ! go get test_dir.go
50 stderr 'go: test_dir.go: arguments must be package or module paths'
51 rm test_dir.go
52
53 # argument has .go suffix, is a directory and exists in sub-directory
54 mkdir test/test_dir.go
55 ! go get test/test_dir.go
56 ! stderr 'arguments must be package or module paths'
57 ! stderr 'exists as a file, but ''go get'' requires package arguments'
58 rm test/test_dir.go
59
60
61 -- go.mod --
62 module m
63
64 go 1.18
65
66 -- test.go --
67 package main
68 func main() {println("test")}
69
70
71 -- test/test.go --
72 package main
73 func main() {println("test")}
74
View as plain text