aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/testdata/script/mod_invalid_path.txt
blob: 766e9c09093f8f5281eab1fb61a0467d400ed501 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Test that mod files with invalid or missing paths produce an error.

# Test that go list fails on a go.mod with no module declaration.
cd $WORK/gopath/src/mod
! go list .
stderr '^go: no module declaration in go.mod. To specify the module path:\n\tgo mod edit -module=example.com/mod$'

# Test that go mod init in GOPATH doesn't add a module declaration
# with a path that can't possibly be a module path, because
# it isn't even a valid import path.
# The single quote and backtick are the only characters which are not allowed
# but are a valid Windows file name.
cd $WORK/'gopath/src/m''d'
! go mod init
stderr 'cannot determine module path'

# Test that a go.mod file is rejected when its module declaration has a path that can't
# possibly be a module path, because it isn't even a valid import path
cd $WORK/gopath/src/badname
! go list .
stderr 'malformed module path'

# Test that an import path containing an element with a leading dot is valid,
# but such a module path is not.
# Verifies #43985.
cd $WORK/gopath/src/dotname
go list ./.dot
stdout '^example.com/dotname/.dot$'
go list ./use
stdout '^example.com/dotname/use$'
! go list -m example.com/dotname/.dot@latest
stderr '^go: example.com/dotname/.dot@latest: malformed module path "example.com/dotname/.dot": leading dot in path element$'
go get -d example.com/dotname/.dot
go get -d example.com/dotname/use
go mod tidy

-- mod/go.mod --

-- mod/foo.go --
package foo

-- m'd/foo.go --
package mad

-- badname/go.mod --

module .\.

-- badname/foo.go --
package badname

-- dotname/go.mod --
module example.com/dotname

go 1.16
-- dotname/.dot/dot.go --
package dot
-- dotname/use/use.go --
package use

import _ "example.com/dotname/.dot"