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
35 cmp stdout go.work.want_json
36
37 env GOWORK=$GOPATH/src/unformatted
38 go work edit -print -fmt
39 cmp stdout formatted
40
41 -- m/go.mod --
42 module m
43
44 go 1.18
45 -- go.work.want_initial --
46 go $goversion
47
48 use ./m
49 -- go.work.want_use_n --
50 go $goversion
51
52 use (
53 ./m
54 ./n
55 )
56 -- go.work.want_go_118 --
57 go 1.18
58
59 use (
60 ./m
61 ./n
62 )
63 -- go.work.want_dropuse_m --
64 go 1.18
65
66 use ./n
67 -- go.work.want_add_replaces --
68 go 1.18
69
70 use ./n
71
72 replace (
73 x.1 v1.3.0 => y.1 v1.4.0
74 x.1 v1.4.0 => ../z
75 )
76 -- go.work.want_multiuse --
77 go 1.18
78
79 use (
80 ../a
81 ./c
82 ./n
83 /b
84 )
85
86 replace (
87 x.1 v1.3.0 => y.1 v1.4.0
88 x.1 v1.4.0 => ../z
89 )
90 -- go.work.want_multidropuse --
91 go 1.18
92
93 use (
94 ../a
95 ./c
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_dropreplace --
103 go 1.18
104
105 use (
106 ../a
107 ./c
108 )
109
110 replace x.1 v1.3.0 => y.1 v1.4.0
111 -- go.work.want_print --
112 go 1.19
113
114 use (
115 ../a
116 ./b
117 )
118
119 replace x.1 v1.4.0 => ../z
120 -- go.work.want_json --
121 {
122 "Go": "1.19",
123 "Use": [
124 {
125 "DiskPath": "../a"
126 },
127 {
128 "DiskPath": "./b"
129 }
130 ],
131 "Replace": [
132 {
133 "Old": {
134 "Path": "x.1",
135 "Version": "v1.4.0"
136 },
137 "New": {
138 "Path": "../z"
139 }
140 }
141 ]
142 }
143 -- unformatted --
144 go 1.18
145 use (
146 a
147 b
148 c
149 )
150 replace (
151 x.1 v1.3.0 => y.1 v1.4.0
152 x.1 v1.4.0 => ../z
153 )
154 -- formatted --
155 go 1.18
156
157 use (
158 a
159 b
160 c
161 )
162
163 replace (
164 x.1 v1.3.0 => y.1 v1.4.0
165 x.1 v1.4.0 => ../z
166 )
167
View as plain text