Skip to content

Commit 0f210f0

Browse files
committed
Simplify the signature of New{Local,UNIX}Parser()
It's really annoying that these functions can return errors. Especially because functions like path.Resolve() can also fail. Let's just make it so that these functions always return a parser. We can move the null byte check into ParseScope() to achieve what we want.
1 parent 998e0ba commit 0f210f0

11 files changed

+74
-91
lines changed

pkg/filesystem/local_directory_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestLocalDirectoryEnterFile(t *testing.T) {
4747

4848
func TestLocalDirectoryEnterSymlink(t *testing.T) {
4949
d := openTmpDir(t)
50-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("symlink")))
50+
require.NoError(t, d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("symlink")))
5151
_, err := d.EnterDirectory(path.MustNewComponent("symlink"))
5252
require.Equal(t, syscall.ENOTDIR, err)
5353
require.NoError(t, d.Close())
@@ -123,7 +123,7 @@ func TestLocalDirectoryLstatFile(t *testing.T) {
123123

124124
func TestLocalDirectoryLstatSymlink(t *testing.T) {
125125
d := openTmpDir(t)
126-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("symlink")))
126+
require.NoError(t, d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("symlink")))
127127
fi, err := d.Lstat(path.MustNewComponent("symlink"))
128128
require.NoError(t, err)
129129
require.Equal(t, path.MustNewComponent("symlink"), fi.Name())
@@ -143,7 +143,7 @@ func TestLocalDirectoryLstatDirectory(t *testing.T) {
143143

144144
func TestLocalDirectoryMkdirExisting(t *testing.T) {
145145
d := openTmpDir(t)
146-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("symlink")))
146+
require.NoError(t, d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("symlink")))
147147
require.True(t, os.IsExist(d.Mkdir(path.MustNewComponent("symlink"), 0o777)))
148148
require.NoError(t, d.Close())
149149
}
@@ -173,7 +173,7 @@ func TestLocalDirectoryOpenReadNonExistent(t *testing.T) {
173173

174174
func TestLocalDirectoryOpenReadSymlink(t *testing.T) {
175175
d := openTmpDir(t)
176-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/etc/passwd"), path.MustNewComponent("symlink")))
176+
require.NoError(t, d.Symlink(path.NewUNIXParser("/etc/passwd"), path.MustNewComponent("symlink")))
177177
_, err := d.OpenRead(path.MustNewComponent("symlink"))
178178
require.Equal(t, syscall.ELOOP, err)
179179
require.NoError(t, d.Close())
@@ -195,7 +195,7 @@ func TestLocalDirectoryReadDir(t *testing.T) {
195195
require.NoError(t, err)
196196
require.NoError(t, f.Close())
197197
require.NoError(t, d.Mkdir(path.MustNewComponent("directory"), 0o777))
198-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("symlink")))
198+
require.NoError(t, d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("symlink")))
199199

200200
// Validate directory listing.
201201
files, err := d.ReadDir()
@@ -238,7 +238,7 @@ func TestLocalDirectoryReadlinkFile(t *testing.T) {
238238

239239
func TestLocalDirectoryReadlinkSuccess(t *testing.T) {
240240
d := openTmpDir(t)
241-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/foo/bar/baz"), path.MustNewComponent("symlink")))
241+
require.NoError(t, d.Symlink(path.NewUNIXParser("/foo/bar/baz"), path.MustNewComponent("symlink")))
242242
targetParser, err := d.Readlink(path.MustNewComponent("symlink"))
243243
require.NoError(t, err)
244244
targetPath, scopeWalker := path.EmptyBuilder.Join(path.VoidScopeWalker)
@@ -275,7 +275,7 @@ func TestLocalDirectoryRemoveFile(t *testing.T) {
275275

276276
func TestLocalDirectoryRemoveSymlink(t *testing.T) {
277277
d := openTmpDir(t)
278-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("symlink")))
278+
require.NoError(t, d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("symlink")))
279279
require.NoError(t, d.Remove(path.MustNewComponent("symlink")))
280280
_, err := d.OpenRead(path.MustNewComponent("symlink"))
281281
require.True(t, os.IsNotExist(err))
@@ -303,13 +303,13 @@ func TestLocalDirectoryRenameSuccess(t *testing.T) {
303303
func TestLocalDirectorySymlinkExistent(t *testing.T) {
304304
d := openTmpDir(t)
305305
require.NoError(t, d.Mkdir(path.MustNewComponent("directory"), 0o777))
306-
require.True(t, os.IsExist(d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("directory"))))
306+
require.True(t, os.IsExist(d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("directory"))))
307307
require.NoError(t, d.Close())
308308
}
309309

310310
func TestLocalDirectorySymlinkSuccess(t *testing.T) {
311311
d := openTmpDir(t)
312-
require.NoError(t, d.Symlink(path.MustNewUNIXParser("/"), path.MustNewComponent("symlink")))
312+
require.NoError(t, d.Symlink(path.NewUNIXParser("/"), path.MustNewComponent("symlink")))
313313
require.NoError(t, d.Close())
314314
}
315315

pkg/filesystem/local_directory_unix.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ func (d *localDirectory) Readlink(name path.Component) (path.Parser, error) {
241241
return nil, err
242242
}
243243
if n < l {
244-
return path.NewLocalParser(string(b[0:n]))
244+
return path.NewLocalParser(string(b[0:n])), nil
245245
}
246246
}
247247
}

pkg/filesystem/path/absolute_scope_walker_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func TestAbsoluteScopeWalker(t *testing.T) {
1919
componentWalker := mock.NewMockComponentWalker(ctrl)
2020
componentWalker.EXPECT().OnTerminal(path.MustNewComponent("hello"))
2121

22-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("/hello"), path.NewAbsoluteScopeWalker(componentWalker)))
22+
require.NoError(t, path.Resolve(path.NewUNIXParser("/hello"), path.NewAbsoluteScopeWalker(componentWalker)))
2323
})
2424

2525
t.Run("Relative", func(t *testing.T) {
@@ -28,6 +28,6 @@ func TestAbsoluteScopeWalker(t *testing.T) {
2828
require.Equal(
2929
t,
3030
status.Error(codes.InvalidArgument, "Path is relative, while an absolute path was expected"),
31-
path.Resolve(path.MustNewUNIXParser("hello"), path.NewAbsoluteScopeWalker(componentWalker)))
31+
path.Resolve(path.NewUNIXParser("hello"), path.NewAbsoluteScopeWalker(componentWalker)))
3232
})
3333
}

pkg/filesystem/path/builder_test.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func TestBuilder(t *testing.T) {
4040
} {
4141
t.Run(p, func(t *testing.T) {
4242
builder1, scopewalker1 := path.EmptyBuilder.Join(path.VoidScopeWalker)
43-
require.NoError(t, path.Resolve(path.MustNewUNIXParser(p), scopewalker1))
43+
require.NoError(t, path.Resolve(path.NewUNIXParser(p), scopewalker1))
4444
require.Equal(t, p, builder1.GetUNIXString())
4545

4646
builder2, scopewalker2 := path.EmptyBuilder.Join(path.VoidScopeWalker)
@@ -182,7 +182,7 @@ func TestBuilder(t *testing.T) {
182182
} {
183183
t.Run(from, func(t *testing.T) {
184184
builder1, scopeWalker1 := path.EmptyBuilder.Join(path.VoidScopeWalker)
185-
require.NoError(t, path.Resolve(path.MustNewUNIXParser(from), scopeWalker1))
185+
require.NoError(t, path.Resolve(path.NewUNIXParser(from), scopeWalker1))
186186
require.Equal(t, to, builder1.GetUNIXString())
187187

188188
builder2, scopeWalker2 := path.EmptyBuilder.Join(path.VoidScopeWalker)
@@ -209,7 +209,7 @@ func TestBuilder(t *testing.T) {
209209
} {
210210
t.Run(from, func(t *testing.T) {
211211
builder1, scopeWalker1 := path.EmptyBuilder.Join(path.VoidScopeWalker)
212-
require.NoError(t, path.Resolve(path.MustNewUNIXParser(from), scopeWalker1))
212+
require.NoError(t, path.Resolve(path.NewUNIXParser(from), scopeWalker1))
213213
require.Equal(t, to, mustGetWindowsString(builder1))
214214

215215
builder2, scopeWalker2 := path.EmptyBuilder.Join(path.VoidScopeWalker)
@@ -231,7 +231,7 @@ func TestBuilder(t *testing.T) {
231231
} {
232232
t.Run(from, func(t *testing.T) {
233233
builder1, scopeWalker1 := path.RootBuilder.Join(path.VoidScopeWalker)
234-
require.NoError(t, path.Resolve(path.MustNewUNIXParser(from), scopeWalker1))
234+
require.NoError(t, path.Resolve(path.NewUNIXParser(from), scopeWalker1))
235235
require.Equal(t, to, builder1.GetUNIXString())
236236

237237
builder2, scopeWalker2 := path.EmptyBuilder.Join(path.VoidScopeWalker)
@@ -257,7 +257,7 @@ func TestBuilder(t *testing.T) {
257257
componentWalker2.EXPECT().OnUp().Return(componentWalker3, nil)
258258

259259
builder, s := path.EmptyBuilder.Join(scopeWalker)
260-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("hello/.."), s))
260+
require.NoError(t, path.Resolve(path.NewUNIXParser("hello/.."), s))
261261
require.Equal(t, ".", builder.GetUNIXString())
262262
})
263263

@@ -276,7 +276,7 @@ func TestBuilder(t *testing.T) {
276276
componentWalker3.EXPECT().OnUp().Return(componentWalker4, nil)
277277

278278
builder, s := path.EmptyBuilder.Join(scopeWalker)
279-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("../hello/.."), s))
279+
require.NoError(t, path.Resolve(path.NewUNIXParser("../hello/.."), s))
280280
require.Equal(t, "..", builder.GetUNIXString())
281281
})
282282

@@ -298,7 +298,7 @@ func TestBuilder(t *testing.T) {
298298
componentWalker3.EXPECT().OnUp().Return(componentWalker4, nil)
299299

300300
builder, s := path.EmptyBuilder.Join(scopeWalker)
301-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("/hello/world/.."), s))
301+
require.NoError(t, path.Resolve(path.NewUNIXParser("/hello/world/.."), s))
302302
require.Equal(t, "/hello/", builder.GetUNIXString())
303303
})
304304
}

pkg/filesystem/path/local_unix.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package path
44

55
// NewLocalParser creates a pathname parser for paths that are native to
66
// the locally running operating system.
7-
func NewLocalParser(path string) (Parser, error) {
7+
func NewLocalParser(path string) Parser {
88
return NewUNIXParser(path)
99
}
1010

pkg/filesystem/path/loop_detecting_scope_walker_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ func TestLoopDetectingScopeWalker(t *testing.T) {
2222
componentWalker := mock.NewMockComponentWalker(ctrl)
2323
scopeWalker.EXPECT().OnRelative().Return(componentWalker, nil).Times(41)
2424
componentWalker.EXPECT().OnTerminal(path.MustNewComponent("foo")).
25-
Return(&path.GotSymlink{Parent: scopeWalker, Target: path.MustNewUNIXParser("foo")}, nil).
25+
Return(&path.GotSymlink{Parent: scopeWalker, Target: path.NewUNIXParser("foo")}, nil).
2626
Times(41)
2727

2828
require.Equal(
2929
t,
3030
status.Error(codes.InvalidArgument, "Maximum number of symbolic link redirections reached"),
31-
path.Resolve(path.MustNewUNIXParser("foo"), path.NewLoopDetectingScopeWalker(scopeWalker)))
31+
path.Resolve(path.NewUNIXParser("foo"), path.NewLoopDetectingScopeWalker(scopeWalker)))
3232
})
3333

3434
t.Run("Success", func(t *testing.T) {
@@ -38,7 +38,7 @@ func TestLoopDetectingScopeWalker(t *testing.T) {
3838
scopeWalker1.EXPECT().OnAbsolute().Return(componentWalker1, nil)
3939
scopeWalker2 := mock.NewMockScopeWalker(ctrl)
4040
componentWalker1.EXPECT().OnTerminal(path.MustNewComponent("tmp")).
41-
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.MustNewUNIXParser("private/tmp")}, nil)
41+
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.NewUNIXParser("private/tmp")}, nil)
4242
componentWalker2 := mock.NewMockComponentWalker(ctrl)
4343
scopeWalker2.EXPECT().OnRelative().Return(componentWalker2, nil)
4444
componentWalker3 := mock.NewMockComponentWalker(ctrl)
@@ -49,6 +49,6 @@ func TestLoopDetectingScopeWalker(t *testing.T) {
4949

5050
require.NoError(
5151
t,
52-
path.Resolve(path.MustNewUNIXParser("/tmp"), path.NewLoopDetectingScopeWalker(scopeWalker1)))
52+
path.Resolve(path.NewUNIXParser("/tmp"), path.NewLoopDetectingScopeWalker(scopeWalker1)))
5353
})
5454
}

pkg/filesystem/path/relative_scope_walker_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func TestRelativeScopeWalker(t *testing.T) {
1919
componentWalker := mock.NewMockComponentWalker(ctrl)
2020
componentWalker.EXPECT().OnTerminal(path.MustNewComponent("hello"))
2121

22-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("hello"), path.NewRelativeScopeWalker(componentWalker)))
22+
require.NoError(t, path.Resolve(path.NewUNIXParser("hello"), path.NewRelativeScopeWalker(componentWalker)))
2323
})
2424

2525
t.Run("Absolute", func(t *testing.T) {
@@ -28,6 +28,6 @@ func TestRelativeScopeWalker(t *testing.T) {
2828
require.Equal(
2929
t,
3030
status.Error(codes.InvalidArgument, "Path is absolute, while a relative path was expected"),
31-
path.Resolve(path.MustNewUNIXParser("/hello"), path.NewRelativeScopeWalker(componentWalker)))
31+
path.Resolve(path.NewUNIXParser("/hello"), path.NewRelativeScopeWalker(componentWalker)))
3232
})
3333
}

pkg/filesystem/path/resolve_test.go

+20-19
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ func TestResolve(t *testing.T) {
1616
ctrl := gomock.NewController(t)
1717

1818
t.Run("NullByte", func(t *testing.T) {
19-
_, err := path.NewUNIXParser("hello\x00world")
19+
scopeWalker := mock.NewMockScopeWalker(ctrl)
20+
2021
require.Equal(
2122
t,
2223
status.Error(codes.InvalidArgument, "Path contains a null byte"),
23-
err,
24+
path.Resolve(path.NewUNIXParser("hello\x00world"), scopeWalker),
2425
)
2526
})
2627

@@ -29,15 +30,15 @@ func TestResolve(t *testing.T) {
2930
componentWalker := mock.NewMockComponentWalker(ctrl)
3031
scopeWalker.EXPECT().OnRelative().Return(componentWalker, nil)
3132

32-
require.NoError(t, path.Resolve(path.MustNewUNIXParser(""), scopeWalker))
33+
require.NoError(t, path.Resolve(path.NewUNIXParser(""), scopeWalker))
3334
})
3435

3536
t.Run("Dot", func(t *testing.T) {
3637
scopeWalker := mock.NewMockScopeWalker(ctrl)
3738
componentWalker := mock.NewMockComponentWalker(ctrl)
3839
scopeWalker.EXPECT().OnRelative().Return(componentWalker, nil)
3940

40-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("."), scopeWalker))
41+
require.NoError(t, path.Resolve(path.NewUNIXParser("."), scopeWalker))
4142
})
4243

4344
t.Run("SingleFileRelative", func(t *testing.T) {
@@ -46,7 +47,7 @@ func TestResolve(t *testing.T) {
4647
scopeWalker.EXPECT().OnRelative().Return(componentWalker, nil)
4748
componentWalker.EXPECT().OnTerminal(path.MustNewComponent("hello"))
4849

49-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("hello"), scopeWalker))
50+
require.NoError(t, path.Resolve(path.NewUNIXParser("hello"), scopeWalker))
5051
})
5152

5253
t.Run("SingleFileAbsolute", func(t *testing.T) {
@@ -55,7 +56,7 @@ func TestResolve(t *testing.T) {
5556
scopeWalker.EXPECT().OnAbsolute().Return(componentWalker, nil)
5657
componentWalker.EXPECT().OnTerminal(path.MustNewComponent("hello"))
5758

58-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("/hello"), scopeWalker))
59+
require.NoError(t, path.Resolve(path.NewUNIXParser("/hello"), scopeWalker))
5960
})
6061

6162
t.Run("SingleDirectoryWithSlash", func(t *testing.T) {
@@ -66,7 +67,7 @@ func TestResolve(t *testing.T) {
6667
componentWalker1.EXPECT().OnDirectory(path.MustNewComponent("hello")).
6768
Return(path.GotDirectory{Child: componentWalker2}, nil)
6869

69-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("hello/"), scopeWalker))
70+
require.NoError(t, path.Resolve(path.NewUNIXParser("hello/"), scopeWalker))
7071
})
7172

7273
t.Run("SingleDirectoryWithSlashDot", func(t *testing.T) {
@@ -77,7 +78,7 @@ func TestResolve(t *testing.T) {
7778
componentWalker1.EXPECT().OnDirectory(path.MustNewComponent("hello")).
7879
Return(path.GotDirectory{Child: componentWalker2}, nil)
7980

80-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("hello/."), scopeWalker))
81+
require.NoError(t, path.Resolve(path.NewUNIXParser("hello/."), scopeWalker))
8182
})
8283

8384
t.Run("MultipleComponents", func(t *testing.T) {
@@ -99,7 +100,7 @@ func TestResolve(t *testing.T) {
99100
componentWalker5.EXPECT().OnUp().Return(componentWalker6, nil)
100101
componentWalker6.EXPECT().OnTerminal(path.MustNewComponent("d"))
101102

102-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("./a////../b/c/../d"), scopeWalker))
103+
require.NoError(t, path.Resolve(path.NewUNIXParser("./a////../b/c/../d"), scopeWalker))
103104
})
104105

105106
t.Run("SymlinkWithoutSlash", func(t *testing.T) {
@@ -108,12 +109,12 @@ func TestResolve(t *testing.T) {
108109
scopeWalker1.EXPECT().OnRelative().Return(componentWalker1, nil)
109110
scopeWalker2 := mock.NewMockScopeWalker(ctrl)
110111
componentWalker1.EXPECT().OnTerminal(path.MustNewComponent("a")).
111-
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.MustNewUNIXParser("b")}, nil)
112+
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.NewUNIXParser("b")}, nil)
112113
componentWalker2 := mock.NewMockComponentWalker(ctrl)
113114
scopeWalker2.EXPECT().OnRelative().Return(componentWalker2, nil)
114115
componentWalker2.EXPECT().OnTerminal(path.MustNewComponent("b"))
115116

116-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("a"), scopeWalker1))
117+
require.NoError(t, path.Resolve(path.NewUNIXParser("a"), scopeWalker1))
117118
})
118119

119120
t.Run("SymlinkWithSlashInSymlink", func(t *testing.T) {
@@ -122,14 +123,14 @@ func TestResolve(t *testing.T) {
122123
scopeWalker1.EXPECT().OnRelative().Return(componentWalker1, nil)
123124
scopeWalker2 := mock.NewMockScopeWalker(ctrl)
124125
componentWalker1.EXPECT().OnTerminal(path.MustNewComponent("a")).
125-
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.MustNewUNIXParser("b/")}, nil)
126+
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.NewUNIXParser("b/")}, nil)
126127
componentWalker2 := mock.NewMockComponentWalker(ctrl)
127128
scopeWalker2.EXPECT().OnRelative().Return(componentWalker2, nil)
128129
componentWalker3 := mock.NewMockComponentWalker(ctrl)
129130
componentWalker2.EXPECT().OnDirectory(path.MustNewComponent("b")).
130131
Return(path.GotDirectory{Child: componentWalker3}, nil)
131132

132-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("a"), scopeWalker1))
133+
require.NoError(t, path.Resolve(path.NewUNIXParser("a"), scopeWalker1))
133134
})
134135

135136
t.Run("SymlinkWithSlashInPath", func(t *testing.T) {
@@ -138,14 +139,14 @@ func TestResolve(t *testing.T) {
138139
scopeWalker1.EXPECT().OnRelative().Return(componentWalker1, nil)
139140
scopeWalker2 := mock.NewMockScopeWalker(ctrl)
140141
componentWalker1.EXPECT().OnDirectory(path.MustNewComponent("a")).
141-
Return(path.GotSymlink{Parent: scopeWalker2, Target: path.MustNewUNIXParser("b")}, nil)
142+
Return(path.GotSymlink{Parent: scopeWalker2, Target: path.NewUNIXParser("b")}, nil)
142143
componentWalker2 := mock.NewMockComponentWalker(ctrl)
143144
scopeWalker2.EXPECT().OnRelative().Return(componentWalker2, nil)
144145
componentWalker3 := mock.NewMockComponentWalker(ctrl)
145146
componentWalker2.EXPECT().OnDirectory(path.MustNewComponent("b")).
146147
Return(path.GotDirectory{Child: componentWalker3}, nil)
147148

148-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("a/"), scopeWalker1))
149+
require.NoError(t, path.Resolve(path.NewUNIXParser("a/"), scopeWalker1))
149150
})
150151

151152
t.Run("SymlinkInSymlinkInSymlink", func(t *testing.T) {
@@ -154,17 +155,17 @@ func TestResolve(t *testing.T) {
154155
scopeWalker1.EXPECT().OnRelative().Return(componentWalker1, nil)
155156
scopeWalker2 := mock.NewMockScopeWalker(ctrl)
156157
componentWalker1.EXPECT().OnTerminal(path.MustNewComponent("a")).
157-
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.MustNewUNIXParser("b/z")}, nil)
158+
Return(&path.GotSymlink{Parent: scopeWalker2, Target: path.NewUNIXParser("b/z")}, nil)
158159
componentWalker2 := mock.NewMockComponentWalker(ctrl)
159160
scopeWalker2.EXPECT().OnRelative().Return(componentWalker2, nil)
160161
scopeWalker3 := mock.NewMockScopeWalker(ctrl)
161162
componentWalker2.EXPECT().OnDirectory(path.MustNewComponent("b")).
162-
Return(path.GotSymlink{Parent: scopeWalker3, Target: path.MustNewUNIXParser("c/y")}, nil)
163+
Return(path.GotSymlink{Parent: scopeWalker3, Target: path.NewUNIXParser("c/y")}, nil)
163164
componentWalker3 := mock.NewMockComponentWalker(ctrl)
164165
scopeWalker3.EXPECT().OnRelative().Return(componentWalker3, nil)
165166
scopeWalker4 := mock.NewMockScopeWalker(ctrl)
166167
componentWalker3.EXPECT().OnDirectory(path.MustNewComponent("c")).
167-
Return(path.GotSymlink{Parent: scopeWalker4, Target: path.MustNewUNIXParser("x")}, nil)
168+
Return(path.GotSymlink{Parent: scopeWalker4, Target: path.NewUNIXParser("x")}, nil)
168169
componentWalker4 := mock.NewMockComponentWalker(ctrl)
169170
scopeWalker4.EXPECT().OnRelative().Return(componentWalker4, nil)
170171
componentWalker5 := mock.NewMockComponentWalker(ctrl)
@@ -175,6 +176,6 @@ func TestResolve(t *testing.T) {
175176
Return(path.GotDirectory{Child: componentWalker6}, nil)
176177
componentWalker6.EXPECT().OnTerminal(path.MustNewComponent("z"))
177178

178-
require.NoError(t, path.Resolve(path.MustNewUNIXParser("a"), scopeWalker1))
179+
require.NoError(t, path.Resolve(path.NewUNIXParser("a"), scopeWalker1))
179180
})
180181
}

0 commit comments

Comments
 (0)