Skip to content
This repository was archived by the owner on May 4, 2021. It is now read-only.

Commit ae92b34

Browse files
author
Yiran Wang
authored
Refactor tests (#312)
1 parent d94239b commit ae92b34

File tree

1 file changed

+82
-56
lines changed

1 file changed

+82
-56
lines changed

lib/snapshot/copy_op_test.go

Lines changed: 82 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,18 @@ func TestExecuteCopyOperation(t *testing.T) {
8181
t.Run("absolute file to absolute file", func(t *testing.T) {
8282
require := require.New(t)
8383

84+
srcRoot, err := ioutil.TempDir("/tmp", "makisu-test")
85+
require.NoError(err)
86+
defer os.RemoveAll(srcRoot)
87+
workDir, err := ioutil.TempDir("/tmp", "makisu-test")
88+
require.NoError(err)
89+
defer os.RemoveAll(workDir)
90+
91+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "/test.txt"), _hello, os.ModePerm))
92+
require.NoError(os.Chown(filepath.Join(srcRoot, "/test.txt"), testutil.CurrUID(), testutil.CurrGID()))
93+
8494
srcs := []string{"/test.txt"}
85-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "/test.txt"), _hello, os.ModePerm))
86-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "/test.txt"), testutil.CurrUID(), testutil.CurrGID()))
87-
srcRoot := tmpRoot1
88-
dst := filepath.Join(tmpRoot2, "test2/test.txt")
95+
dst := filepath.Join(workDir, "test2/test.txt")
8996
c, err := NewCopyOperation(
9097
srcs, srcRoot, "", dst, validChown, pathutils.DefaultBlacklist, false, true)
9198
require.NoError(err)
@@ -94,129 +101,148 @@ func TestExecuteCopyOperation(t *testing.T) {
94101
require.NoError(err)
95102
require.Equal(_hello, b)
96103
})
97-
removeAllChildren(tmpRoot1, nil)
98-
removeAllChildren(tmpRoot2, nil)
99104

100105
t.Run("absolute file to relative file", func(t *testing.T) {
101106
require := require.New(t)
102107

108+
srcRoot, err := ioutil.TempDir("/tmp", "makisu-test")
109+
require.NoError(err)
110+
defer os.RemoveAll(srcRoot)
111+
workDir, err := ioutil.TempDir("/tmp", "makisu-test")
112+
require.NoError(err)
113+
defer os.RemoveAll(workDir)
114+
115+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test.txt"), _hello, os.ModePerm))
116+
require.NoError(os.Chown(filepath.Join(srcRoot, "/test.txt"), testutil.CurrUID(), testutil.CurrGID()))
117+
103118
srcs := []string{"/test.txt"}
104-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test.txt"), _hello, os.ModePerm))
105-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "/test.txt"), testutil.CurrUID(), testutil.CurrGID()))
106-
srcRoot := tmpRoot1
107-
workDir := tmpRoot2
108119
dst := "test2/test.txt"
109120
c, err := NewCopyOperation(
110121
srcs, srcRoot, workDir, dst, validChown, pathutils.DefaultBlacklist, false, false)
111122
require.NoError(err)
112123
require.NoError(c.Execute())
113-
b, err := ioutil.ReadFile(filepath.Join(tmpRoot2, dst))
124+
b, err := ioutil.ReadFile(filepath.Join(workDir, dst))
114125
require.NoError(err)
115126
require.Equal(_hello, b)
116127
})
117-
removeAllChildren(tmpRoot1, nil)
118-
removeAllChildren(tmpRoot2, nil)
119128

120129
t.Run("absolute files to absolute dir", func(t *testing.T) {
121130
require := require.New(t)
122131

132+
srcRoot, err := ioutil.TempDir("/tmp", "makisu-test")
133+
require.NoError(err)
134+
defer os.RemoveAll(srcRoot)
135+
workDir, err := ioutil.TempDir("/tmp", "makisu-test")
136+
require.NoError(err)
137+
defer os.RemoveAll(workDir)
138+
139+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test.txt"), _hello, os.ModePerm))
140+
require.NoError(os.Chown(filepath.Join(srcRoot, "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
141+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test2.txt"), _hello2, os.ModePerm))
142+
require.NoError(os.Chown(filepath.Join(srcRoot, "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
143+
123144
srcs := []string{"/test.txt", "/test2.txt"}
124-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test.txt"), _hello, os.ModePerm))
125-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
126-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test2.txt"), _hello2, os.ModePerm))
127-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
128-
srcRoot := tmpRoot1
129-
workDir := tmpRoot2
130145
dst := "test2/"
131146
c, err := NewCopyOperation(
132147
srcs, srcRoot, workDir, dst, validChown, pathutils.DefaultBlacklist, false, false)
133148
require.NoError(err)
134149
require.NoError(c.Execute())
135-
b, err := ioutil.ReadFile(filepath.Join(tmpRoot2, dst, "test.txt"))
150+
b, err := ioutil.ReadFile(filepath.Join(workDir, dst, "test.txt"))
136151
require.NoError(err)
137152
require.Equal(_hello, b)
138-
b, err = ioutil.ReadFile(filepath.Join(tmpRoot2, dst, "test2.txt"))
153+
b, err = ioutil.ReadFile(filepath.Join(workDir, dst, "test2.txt"))
139154
require.NoError(err)
140155
require.Equal(_hello2, b)
141156
})
142-
removeAllChildren(tmpRoot1, nil)
143-
removeAllChildren(tmpRoot2, nil)
144157

145158
t.Run("absolute files to relative dir", func(t *testing.T) {
146159
require := require.New(t)
147160

161+
srcRoot, err := ioutil.TempDir("/tmp", "makisu-test")
162+
require.NoError(err)
163+
defer os.RemoveAll(srcRoot)
164+
workDir, err := ioutil.TempDir("/tmp", "makisu-test")
165+
require.NoError(err)
166+
defer os.RemoveAll(workDir)
167+
168+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test.txt"), _hello, os.ModePerm))
169+
require.NoError(os.Chown(filepath.Join(srcRoot, "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
170+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test2.txt"), _hello2, os.ModePerm))
171+
require.NoError(os.Chown(filepath.Join(srcRoot, "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
172+
148173
srcs := []string{"/test.txt", "/test2.txt"}
149-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test.txt"), _hello, os.ModePerm))
150-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
151-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test2.txt"), _hello2, os.ModePerm))
152-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
153-
srcRoot := tmpRoot1
154-
workDir := filepath.Join(tmpRoot2, "test2")
174+
workDir = filepath.Join(workDir, "test2")
155175
dst := "."
156176
c, err := NewCopyOperation(
157177
srcs, srcRoot, workDir, dst, validChown, pathutils.DefaultBlacklist, false, true)
158178
require.NoError(err)
159179
require.NoError(c.Execute())
160-
b, err := ioutil.ReadFile(filepath.Join(tmpRoot2, "test2", "test.txt"))
180+
b, err := ioutil.ReadFile(filepath.Join(workDir, "test.txt"))
161181
require.NoError(err)
162182
require.Equal(_hello, b)
163-
b, err = ioutil.ReadFile(filepath.Join(tmpRoot2, "test2", "test2.txt"))
183+
b, err = ioutil.ReadFile(filepath.Join(workDir, "test2.txt"))
164184
require.NoError(err)
165185
require.Equal(_hello2, b)
166186
})
167-
removeAllChildren(tmpRoot1, nil)
168-
removeAllChildren(tmpRoot2, nil)
169187

170188
t.Run("absolute dirs to relative dir", func(t *testing.T) {
171189
require := require.New(t)
172190

191+
srcRoot, err := ioutil.TempDir("/tmp", "makisu-test")
192+
require.NoError(err)
193+
defer os.RemoveAll(srcRoot)
194+
workDir, err := ioutil.TempDir("/tmp", "makisu-test")
195+
require.NoError(err)
196+
defer os.RemoveAll(workDir)
197+
198+
require.NoError(os.MkdirAll(filepath.Join(srcRoot, "test"), os.ModePerm))
199+
require.NoError(os.MkdirAll(filepath.Join(srcRoot, "test2"), os.ModePerm))
200+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test", "test.txt"), _hello, os.ModePerm))
201+
require.NoError(os.Chown(filepath.Join(srcRoot, "test", "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
202+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test2", "test2.txt"), _hello2, os.ModePerm))
203+
require.NoError(os.Chown(filepath.Join(srcRoot, "test2", "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
204+
173205
srcs := []string{"/test/", "/test2/"}
174-
require.NoError(os.MkdirAll(filepath.Join(tmpRoot1, "test"), os.ModePerm))
175-
require.NoError(os.MkdirAll(filepath.Join(tmpRoot1, "test2"), os.ModePerm))
176-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test", "test.txt"), _hello, os.ModePerm))
177-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test", "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
178-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test2", "test2.txt"), _hello2, os.ModePerm))
179-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test2", "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
180-
srcRoot := tmpRoot1
181-
workDir := tmpRoot2
182206
dst := "test2/"
183207
c, err := NewCopyOperation(
184208
srcs, srcRoot, workDir, dst, validChown, pathutils.DefaultBlacklist, false, false)
185209
require.NoError(err)
186210
require.NoError(c.Execute())
187-
b, err := ioutil.ReadFile(filepath.Join(tmpRoot2, dst, "test.txt"))
211+
b, err := ioutil.ReadFile(filepath.Join(workDir, dst, "test.txt"))
188212
require.NoError(err)
189213
require.Equal(_hello, b)
190-
b, err = ioutil.ReadFile(filepath.Join(tmpRoot2, dst, "test2.txt"))
214+
b, err = ioutil.ReadFile(filepath.Join(workDir, dst, "test2.txt"))
191215
require.NoError(err)
192216
require.Equal(_hello2, b)
193217
})
194-
removeAllChildren(tmpRoot1, nil)
195-
removeAllChildren(tmpRoot2, nil)
196218

197219
t.Run("absolute dir and file to relative dir", func(t *testing.T) {
198220
require := require.New(t)
199221

222+
srcRoot, err := ioutil.TempDir("/tmp", "makisu-test")
223+
require.NoError(err)
224+
defer os.RemoveAll(srcRoot)
225+
workDir, err := ioutil.TempDir("/tmp", "makisu-test")
226+
require.NoError(err)
227+
defer os.RemoveAll(workDir)
228+
229+
require.NoError(os.MkdirAll(filepath.Join(srcRoot, "test"), os.ModePerm))
230+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test", "test.txt"), _hello, os.ModePerm))
231+
require.NoError(os.Chown(filepath.Join(srcRoot, "test", "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
232+
require.NoError(ioutil.WriteFile(filepath.Join(srcRoot, "test2.txt"), _hello2, os.ModePerm))
233+
require.NoError(os.Chown(filepath.Join(srcRoot, "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
234+
200235
srcs := []string{"/test/", "/test2.txt"}
201-
require.NoError(os.MkdirAll(filepath.Join(tmpRoot1, "test"), os.ModePerm))
202-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test", "test.txt"), _hello, os.ModePerm))
203-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test", "test.txt"), testutil.CurrUID(), testutil.CurrGID()))
204-
require.NoError(ioutil.WriteFile(filepath.Join(tmpRoot1, "test2.txt"), _hello2, os.ModePerm))
205-
require.NoError(os.Chown(filepath.Join(tmpRoot1, "test2.txt"), testutil.CurrUID(), testutil.CurrGID()))
206-
srcRoot := tmpRoot1
207-
workDir := tmpRoot2
208236
dst := "test2/"
209237
c, err := NewCopyOperation(
210238
srcs, srcRoot, workDir, dst, validChown, pathutils.DefaultBlacklist, false, false)
211239
require.NoError(err)
212240
require.NoError(c.Execute())
213-
b, err := ioutil.ReadFile(filepath.Join(tmpRoot2, dst, "test.txt"))
241+
b, err := ioutil.ReadFile(filepath.Join(workDir, dst, "test.txt"))
214242
require.NoError(err)
215243
require.Equal(_hello, b)
216-
b, err = ioutil.ReadFile(filepath.Join(tmpRoot2, dst, "test2.txt"))
244+
b, err = ioutil.ReadFile(filepath.Join(workDir, dst, "test2.txt"))
217245
require.NoError(err)
218246
require.Equal(_hello2, b)
219247
})
220-
removeAllChildren(tmpRoot1, nil)
221-
removeAllChildren(tmpRoot2, nil)
222248
}

0 commit comments

Comments
 (0)