1 # Test editing go.work files.
2
3 go work init m
4 cmpenv go.work go.work.want_initial
5
6 go work edit -use n
7 cmpenv go.work go.work.want_use_n
8
9 grep go go.work
10 go work edit -go none
11 ! grep go go.work
12
13 go work edit -go 1.18
14 cmp go.work go.work.want_go_118
15
16 go work edit -dropuse m
17 cmp go.work go.work.want_dropuse_m
18
19 go work edit -replace=x.1@v1.3.0=y.1@v1.4.0 -replace='x.1@v1.4.0 = ../z'
20 cmp go.work go.work.want_add_replaces
21
22 go work edit -use n -use ../a -use /b -use c -use c
23 cmp go.work go.work.want_multiuse
24
25 go work edit -dropuse /b -dropuse n
26 cmp go.work go.work.want_multidropuse
27
28 go work edit -dropreplace='x.1@v1.4.0'
29 cmp go.work go.work.want_dropreplace
30
31 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
32 cmp stdout go.work.want_print
33
34 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 -toolchain go1.20 -godebug key=value
35 cmp stdout go.work.want_json
36
37 # go work edit -godebug
38 cd $WORK/g
39 cp go.work.start go.work
40 go work edit -godebug key=value
41 cmpenv go.work go.work.edit
42 go work edit -dropgodebug key2
43 cmpenv go.work go.work.edit
44 go work edit -dropgodebug key
45 cmpenv go.work go.work.start
46
47 # go work edit -print -fmt
48 env GOWORK=$GOPATH/src/unformatted
49 go work edit -print -fmt
50 cmp stdout $GOPATH/src/formatted
51
52 -- m/go.mod --
53 module m
54
55 go 1.18
56 -- go.work.want_initial --
57 go $goversion
58
59 use ./m
60 -- go.work.want_use_n --
61 go $goversion
62
63 use (
64 ./m
65 ./n
66 )
67 -- go.work.want_go_118 --
68 go 1.18
69
70 use (
71 ./m
72 ./n
73 )
74 -- go.work.want_dropuse_m --
75 go 1.18
76
77 use ./n
78 -- go.work.want_add_replaces --
79 go 1.18
80
81 use ./n
82
83 replace (
84 x.1 v1.3.0 => y.1 v1.4.0
85 x.1 v1.4.0 => ../z
86 )
87 -- go.work.want_multiuse --
88 go 1.18
89
90 use (
91 ../a
92 ./c
93 ./n
94 /b
95 )
96
97 replace (
98 x.1 v1.3.0 => y.1 v1.4.0
99 x.1 v1.4.0 => ../z
100 )
101 -- go.work.want_multidropuse --
102 go 1.18
103
104 use (
105 ../a
106 ./c
107 )
108
109 replace (
110 x.1 v1.3.0 => y.1 v1.4.0
111 x.1 v1.4.0 => ../z
112 )
113 -- go.work.want_dropreplace --
114 go 1.18
115
116 use (
117 ../a
118 ./c
119 )
120
121 replace x.1 v1.3.0 => y.1 v1.4.0
122 -- go.work.want_print --
123 go 1.19
124
125 use (
126 ../a
127 ./b
128 )
129
130 replace 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 --
162 go 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 --
173 go 1.18
174
175 use (
176 a
177 b
178 c
179 )
180
181 replace (
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 --
186 use g
187
188 go 1.10
189 -- $WORK/g/go.work.edit --
190 use g
191
192 go 1.10
193
194 godebug key=value
195
View as plain text