diff options
author | Jakob Unterwurzacher | 2018-03-05 21:20:07 +0100 |
---|---|---|
committer | Jakob Unterwurzacher | 2018-03-05 21:20:07 +0100 |
commit | 7db5395c5346a1b32656b27e504417779435edc8 (patch) | |
tree | 043385b6b07d778b108bd9d08ddfc3437988eadd /internal/syscallcompat | |
parent | 3860a82c21733d981bbd5a90a0c0a802121e7d3f (diff) |
macos: fix second TestEmulateSymlinkat test failure
Diffstat (limited to 'internal/syscallcompat')
-rw-r--r-- | internal/syscallcompat/emulate_test.go | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/internal/syscallcompat/emulate_test.go b/internal/syscallcompat/emulate_test.go index 77fec5f..ddb012e 100644 --- a/internal/syscallcompat/emulate_test.go +++ b/internal/syscallcompat/emulate_test.go @@ -205,6 +205,22 @@ func TestEmulateFchownat(t *testing.T) { t.Skipf("TODO") } +// symlinkCheckMode looks if the mode bits in "st" say that this is a symlink. +// Calls t.Fatal() if not. +func symlinkCheckMode(t *testing.T, st syscall.Stat_t) { + if runtime.GOOS == "darwin" { + // On MacOS, symlinks don't carry their own permissions, so + // only check the file type. + if st.Mode&syscall.S_IFMT != syscall.S_IFLNK { + t.Fatalf("This is not a symlink: mode = 0%o", st.Mode) + } + return + } + if st.Mode != 0120777 { + t.Fatalf("Wrong mode, have 0%o, want 0120777", st.Mode) + } +} + func TestEmulateSymlinkat(t *testing.T) { err := emulateSymlinkat("/foo/bar/baz", tmpDirFd, "symlink1") if err != nil { @@ -215,17 +231,7 @@ func TestEmulateSymlinkat(t *testing.T) { if err != nil { t.Fatal(err) } - if runtime.GOOS == "darwin" { - // On MacOS, symlinks don't carry their own permissions, so - // only check the file type. - if st.Mode&syscall.S_IFMT != syscall.S_IFLNK { - t.Fatalf("This is not a symlink: mode = 0%o", st.Mode) - } - } else { - if st.Mode != 0120777 { - t.Fatalf("Wrong mode, have 0%o, want 0120777", st.Mode) - } - } + symlinkCheckMode(t, st) // Test with absolute path err = emulateSymlinkat("/foo/bar/baz", -1, tmpDir+"/symlink2") if err != nil { @@ -235,9 +241,7 @@ func TestEmulateSymlinkat(t *testing.T) { if err != nil { t.Fatal(err) } - if st.Mode != 0120777 { - t.Fatalf("Wrong mode, have %o, want 0120777", st.Mode) - } + symlinkCheckMode(t, st) } func TestEmulateMkdirat(t *testing.T) { |