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