aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/testdata/script/mod_list_retract.txt
blob: 4e177b3f5493edbb45a9bf180714ce2e3e96bc0c (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# 'go list -mod=vendor -retracted' reports an error.
go mod vendor
! go list -m -retracted -mod=vendor
stderr '^go list -retracted cannot be used when vendoring is enabled$'
rm vendor

# 'go list -retracted' reports an error in GOPATH mode.
env GO111MODULE=off
! go list -retracted
stderr '^go list -retracted can only be used in module-aware mode$'
env GO111MODULE=

# 'go list pkg' does not show retraction.
go list -f '{{with .Module}}{{with .Retracted}}retracted{{end}}{{end}}' example.com/retract
! stdout .

# 'go list -retracted pkg' shows retraction.
go list -retracted -f '{{with .Module}}{{with .Retracted}}retracted{{end}}{{end}}' example.com/retract
stdout retracted

# 'go list -m' does not show retraction.
go list -m -f '{{with .Retracted}}retracted{{end}}' example.com/retract
! stdout .

# 'go list -m -retracted' shows retraction.
go list -m -retracted -f '{{with .Retracted}}retracted{{end}}' example.com/retract

# 'go list -m mod@version' does not show retraction.
go list -m -f '{{with .Retracted}}retracted{{end}}' example.com/retract@v1.0.0-unused
! stdout .

# 'go list -m -retracted mod@version' shows an error if the go.mod that should
# contain the retractions is not available.
! go list -m -retracted example.com/retract/missingmod@v1.0.0
stderr '^go list -m: loading module retractions: example.com/retract/missingmod@v1.9.0:.*404 Not Found$'
go list -e -m -retracted -f '{{.Error.Err}}' example.com/retract/missingmod@v1.0.0
stdout '^loading module retractions: example.com/retract/missingmod@v1.9.0:.*404 Not Found$'

# 'go list -m -retracted mod@version' shows retractions.
go list -m -retracted example.com/retract@v1.0.0-unused
stdout '^example.com/retract v1.0.0-unused \(retracted\)$'
go list -m -retracted -f '{{with .Retracted}}retracted{{end}}' example.com/retract@v1.0.0-unused
stdout retracted

# 'go list -m mod@latest' selects a previous release version, not self-retracted latest.
go list -m -f '{{.Version}}{{with .Retracted}} retracted{{end}}' example.com/retract/self/prev@latest
stdout '^v1.1.0$'

# 'go list -m -retracted mod@latest' selects the self-retracted latest version.
go list -m -retracted -f '{{.Version}}{{with .Retracted}} retracted{{end}}' example.com/retract/self/prev@latest
stdout '^v1.9.0 retracted$'

# 'go list -m mod@latest' selects a pre-release version if all release versions are retracted.
go list -m -f '{{.Version}}{{with .Retracted}} retracted{{end}}' example.com/retract/self/prerelease@latest
stdout '^v1.9.1-pre$'

# 'go list -m -retracted mod@latest' selects the self-retracted latest version.
go list -m -retracted -f '{{.Version}}{{with .Retracted}} retracted{{end}}' example.com/retract/self/prerelease@latest
stdout '^v1.9.0 retracted$'

# 'go list -m mod@latest' selects a pseudo-version if all versions are retracted.
# TODO(golang.org/issue/24031): the proxy does not expose the pseudo-version,
# even if all release versions are retracted.
go list -m -e -f '{{.Error.Err}}' example.com/retract/self/pseudo@latest
stdout '^module example.com/retract/self/pseudo: no matching versions for query "latest"$'

# 'go list -m mod@latest' reports an error if all versions are retracted.
go list -m -e -f '{{.Error.Err}}' example.com/retract/self/all@latest
stdout '^module example.com/retract/self/all: no matching versions for query "latest"$'

# 'go list -m mod@<v1.10' selects a previous release version, not self-retracted latest.
# The @latest query is not special with respect to retractions.
go list -m -f '{{.Version}}{{with .Retracted}} retracted{{end}}' example.com/retract/self/prev@<v1.10
stdout '^v1.1.0$'

# 'go list -m -versions' hides retracted versions.
go list -m -versions example.com/retract
stdout '^example.com/retract v1.0.0-good v1.1.0$'

# 'go list -m -retracted -versions' shows retracted versions.
go list -m -retracted -versions example.com/retract
stdout '^example.com/retract v1.0.0-bad v1.0.0-good v1.0.0-unused v1.1.0$'

# 'go list -m -u -versions' loads retractions and does not show retracted versions.
go list -m -u -versions example.com/retract
stdout '^example.com/retract v1.0.0-good v1.1.0$'
go list -m -u -versions -f '{{with .Retracted}}retracted{{end}}' example.com/retract
stdout retracted

# 'go list -m -u' shows retraction.
go list -m -u -f '{{with .Retracted}}retracted{{end}}' example.com/retract
stdout retracted

# 'go list -m -u' does not suggest an update to a self-retracted latest version.
go list -m -u -f '{{with .Update}}{{.Version}}{{with .Retracted}} retracted{{end}}{{end}}' example.com/retract/self/prev@v1.0.0-bad
stdout '^v1.1.0$'

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

go 1.15

require example.com/retract v1.0.0-bad

-- use.go --
package use

import _ "example.com/retract"