...
1# Test editing go.work files.
2
3go work init m
4cmpenv go.work go.work.want_initial
5
6go work edit -use n
7cmpenv go.work go.work.want_use_n
8
9grep go go.work
10go work edit -go none
11! grep go go.work
12
13go work edit -go 1.18
14cmp go.work go.work.want_go_118
15
16go work edit -dropuse m
17cmp go.work go.work.want_dropuse_m
18
19go work edit -replace=x.1@v1.3.0=y.1@v1.4.0 -replace='x.1@v1.4.0 = ../z'
20cmp go.work go.work.want_add_replaces
21
22go work edit -use n -use ../a -use /b -use c -use c
23cmp go.work go.work.want_multiuse
24
25go work edit -dropuse /b -dropuse n
26cmp go.work go.work.want_multidropuse
27
28go work edit -dropreplace='x.1@v1.4.0'
29cmp go.work go.work.want_dropreplace
30
31go work edit -print -go 1.19 -use b -dropuse c -replace 'x.1@v1.4.0 = ../z' -dropreplace x.1 -dropreplace x.1@v1.3.0
32cmp stdout go.work.want_print
33
34go work edit -json -go 1.19 -use b -dropuse c -replace 'x.1@v1.4.0 = ../z' -dropreplace x.1 -dropreplace x.1@v1.3.0 -toolchain go1.20 -godebug key=value
35cmp stdout go.work.want_json
36
37# go work edit -godebug
38cd $WORK/g
39cp go.work.start go.work
40go work edit -godebug key=value
41cmpenv go.work go.work.edit
42go work edit -dropgodebug key2
43cmpenv go.work go.work.edit
44go work edit -dropgodebug key
45cmpenv go.work go.work.start
46
47# go work edit -print -fmt
48env GOWORK=$GOPATH/src/unformatted
49go work edit -print -fmt
50cmp stdout $GOPATH/src/formatted
51
52-- m/go.mod --
53module m
54
55go 1.18
56-- go.work.want_initial --
57go $goversion
58
59use ./m
60-- go.work.want_use_n --
61go $goversion
62
63use (
64 ./m
65 ./n
66)
67-- go.work.want_go_118 --
68go 1.18
69
70use (
71 ./m
72 ./n
73)
74-- go.work.want_dropuse_m --
75go 1.18
76
77use ./n
78-- go.work.want_add_replaces --
79go 1.18
80
81use ./n
82
83replace (
84 x.1 v1.3.0 => y.1 v1.4.0
85 x.1 v1.4.0 => ../z
86)
87-- go.work.want_multiuse --
88go 1.18
89
90use (
91 ../a
92 ./c
93 ./n
94 /b
95)
96
97replace (
98 x.1 v1.3.0 => y.1 v1.4.0
99 x.1 v1.4.0 => ../z
100)
101-- go.work.want_multidropuse --
102go 1.18
103
104use (
105 ../a
106 ./c
107)
108
109replace (
110 x.1 v1.3.0 => y.1 v1.4.0
111 x.1 v1.4.0 => ../z
112)
113-- go.work.want_dropreplace --
114go 1.18
115
116use (
117 ../a
118 ./c
119)
120
121replace x.1 v1.3.0 => y.1 v1.4.0
122-- go.work.want_print --
123go 1.19
124
125use (
126 ../a
127 ./b
128)
129
130replace x.1 v1.4.0 => ../z
131-- go.work.want_json --
132{
133 "Go": "1.19",
134 "Toolchain": "go1.20",
135 "Godebug": [
136 {
137 "Key": "key",
138 "Value": "value"
139 }
140 ],
141 "Use": [
142 {
143 "DiskPath": "../a"
144 },
145 {
146 "DiskPath": "./b"
147 }
148 ],
149 "Replace": [
150 {
151 "Old": {
152 "Path": "x.1",
153 "Version": "v1.4.0"
154 },
155 "New": {
156 "Path": "../z"
157 }
158 }
159 ]
160}
161-- unformatted --
162go 1.18
163 use (
164 a
165 b
166 c
167 )
168 replace (
169 x.1 v1.3.0 => y.1 v1.4.0
170 x.1 v1.4.0 => ../z
171 )
172-- formatted --
173go 1.18
174
175use (
176 a
177 b
178 c
179)
180
181replace (
182 x.1 v1.3.0 => y.1 v1.4.0
183 x.1 v1.4.0 => ../z
184)
185-- $WORK/g/go.work.start --
186use g
187
188go 1.10
189-- $WORK/g/go.work.edit --
190use g
191
192go 1.10
193
194godebug key=value
View as plain text