mirror of https://github.com/golang/go.git
os: use relative paths in a test dir in TestOpenError
Refactor TestOpenError to use relative paths in test cases, in preparation for extending it to test os.Root. Use a test temporary directory instead of system directory with presumed-known contents. Move the testcase type and case definitions inline with the test. For #67002 Change-Id: Idc53dd9fcecf763d3e4eb3b4643032e3003d7ef4 Reviewed-on: https://go-review.googlesource.com/c/go/+/620157 Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
cbdb3545ad
commit
70f4717e96
|
|
@ -1777,35 +1777,36 @@ func TestSeekError(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
type openErrorTest struct {
|
||||
path string
|
||||
mode int
|
||||
error error
|
||||
}
|
||||
|
||||
var openErrorTests = []openErrorTest{
|
||||
{
|
||||
sfdir + "/no-such-file",
|
||||
O_RDONLY,
|
||||
syscall.ENOENT,
|
||||
},
|
||||
{
|
||||
sfdir,
|
||||
O_WRONLY,
|
||||
syscall.EISDIR,
|
||||
},
|
||||
{
|
||||
sfdir + "/" + sfname + "/no-such-file",
|
||||
O_WRONLY,
|
||||
syscall.ENOTDIR,
|
||||
},
|
||||
}
|
||||
|
||||
func TestOpenError(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
for _, tt := range openErrorTests {
|
||||
f, err := OpenFile(tt.path, tt.mode, 0)
|
||||
dir := t.TempDir()
|
||||
if err := WriteFile(filepath.Join(dir, "is-a-file"), nil, 0o666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := Mkdir(filepath.Join(dir, "is-a-dir"), 0o777); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for _, tt := range []struct {
|
||||
path string
|
||||
mode int
|
||||
error error
|
||||
}{{
|
||||
"no-such-file",
|
||||
O_RDONLY,
|
||||
syscall.ENOENT,
|
||||
}, {
|
||||
"is-a-dir",
|
||||
O_WRONLY,
|
||||
syscall.EISDIR,
|
||||
}, {
|
||||
"is-a-file/no-such-file",
|
||||
O_WRONLY,
|
||||
syscall.ENOTDIR,
|
||||
}} {
|
||||
path := filepath.Join(dir, tt.path)
|
||||
f, err := OpenFile(path, tt.mode, 0)
|
||||
if err == nil {
|
||||
t.Errorf("Open(%q, %d) succeeded", tt.path, tt.mode)
|
||||
f.Close()
|
||||
|
|
|
|||
Loading…
Reference in New Issue