aboutsummaryrefslogtreecommitdiff
path: root/tests/defaults
diff options
context:
space:
mode:
Diffstat (limited to 'tests/defaults')
-rw-r--r--tests/defaults/acl_test.go11
-rw-r--r--tests/defaults/diriv_test.go5
-rw-r--r--tests/defaults/getdents_linux.go9
-rw-r--r--tests/defaults/getdents_other.go11
-rw-r--r--tests/defaults/main_test.go56
-rw-r--r--tests/defaults/overlayfs_test.go9
-rw-r--r--tests/defaults/performance_test.go3
7 files changed, 84 insertions, 20 deletions
diff --git a/tests/defaults/acl_test.go b/tests/defaults/acl_test.go
index 2ab5dc1..0dae018 100644
--- a/tests/defaults/acl_test.go
+++ b/tests/defaults/acl_test.go
@@ -1,7 +1,6 @@
package defaults
import (
- "io/ioutil"
"math/rand"
"os"
"os/exec"
@@ -35,7 +34,7 @@ func TestCpA(t *testing.T) {
var modeWant os.FileMode = os.FileMode(rand.Int31n(0777+1) | 0400)
// Create file outside mount
- err := ioutil.WriteFile(fn1, nil, modeWant)
+ err := os.WriteFile(fn1, nil, modeWant)
if err != nil {
t.Fatal(err)
}
@@ -45,7 +44,7 @@ func TestCpA(t *testing.T) {
t.Fatal(err)
}
if fi.Mode() != modeWant {
- t.Errorf("ioutil.WriteFile created wrong permissions: want %o have %o", modeWant, fi.Mode())
+ t.Errorf("os.WriteFile created wrong permissions: want %o have %o", modeWant, fi.Mode())
}
// "cp -a" from outside to inside mount
@@ -93,7 +92,7 @@ func TestAcl543(t *testing.T) {
}
// Set acl on file outside gocryptfs mount
- err := ioutil.WriteFile(fn1, nil, modeWant)
+ err := os.WriteFile(fn1, nil, modeWant)
if err != nil {
t.Fatal(err)
}
@@ -117,7 +116,7 @@ func TestAcl543(t *testing.T) {
}
// Set acl on file inside gocryptfs mount
- err = ioutil.WriteFile(fn2, nil, modeWant)
+ err = os.WriteFile(fn2, nil, modeWant)
if err != nil {
t.Fatal(err)
}
@@ -164,7 +163,7 @@ func TestAcl543(t *testing.T) {
// Check that we handle zero-sized and undersized buffers correctly
func TestXattrOverflow(t *testing.T) {
fn := filepath.Join(test_helpers.DefaultPlainDir, t.Name())
- ioutil.WriteFile(fn, nil, 0600)
+ os.WriteFile(fn, nil, 0600)
attr := "user.foo123"
val := []byte("12341234")
diff --git a/tests/defaults/diriv_test.go b/tests/defaults/diriv_test.go
index 639b33d..48ba39a 100644
--- a/tests/defaults/diriv_test.go
+++ b/tests/defaults/diriv_test.go
@@ -1,7 +1,6 @@
package defaults
import (
- "io/ioutil"
"os"
"sync"
"sync/atomic"
@@ -19,7 +18,7 @@ func TestDirIVRace(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- err = ioutil.WriteFile(dir1+"/file", nil, 0600)
+ err = os.WriteFile(dir1+"/file", nil, 0600)
if err != nil {
t.Fatal(err)
}
@@ -31,7 +30,7 @@ func TestDirIVRace(t *testing.T) {
t.Fatal(err)
}
file2 := dir2 + "/file"
- err = ioutil.WriteFile(file2, nil, 0600)
+ err = os.WriteFile(file2, nil, 0600)
if err != nil {
t.Fatal(err)
}
diff --git a/tests/defaults/getdents_linux.go b/tests/defaults/getdents_linux.go
new file mode 100644
index 0000000..57956ce
--- /dev/null
+++ b/tests/defaults/getdents_linux.go
@@ -0,0 +1,9 @@
+package defaults
+
+import (
+ "golang.org/x/sys/unix"
+)
+
+func getdents(fd int, buf []byte) (int, error) {
+ return unix.Getdents(fd, buf)
+}
diff --git a/tests/defaults/getdents_other.go b/tests/defaults/getdents_other.go
new file mode 100644
index 0000000..c0552a8
--- /dev/null
+++ b/tests/defaults/getdents_other.go
@@ -0,0 +1,11 @@
+//go:build !linux
+
+package defaults
+
+import (
+ "golang.org/x/sys/unix"
+)
+
+func getdents(fd int, buf []byte) (int, error) {
+ return unix.Getdirentries(fd, buf, nil)
+}
diff --git a/tests/defaults/main_test.go b/tests/defaults/main_test.go
index d0210e2..a19f079 100644
--- a/tests/defaults/main_test.go
+++ b/tests/defaults/main_test.go
@@ -3,8 +3,8 @@ package defaults
import (
"bytes"
+ "fmt"
"io"
- "io/ioutil"
"os"
"os/exec"
"path/filepath"
@@ -175,7 +175,7 @@ func TestXfs124(t *testing.T) {
func TestWrite0200File(t *testing.T) {
fn := test_helpers.DefaultPlainDir + "/TestWrite0200File"
- err := ioutil.WriteFile(fn, nil, 0200)
+ err := os.WriteFile(fn, nil, 0200)
if err != nil {
t.Fatalf("creating empty file failed: %v", err)
}
@@ -211,7 +211,7 @@ func TestWrite0200File(t *testing.T) {
// Now we return EOPNOTSUPP and mv is happy.
func TestMvWarnings(t *testing.T) {
fn := test_helpers.TmpDir + "/TestMvWarnings"
- err := ioutil.WriteFile(fn, nil, 0600)
+ err := os.WriteFile(fn, nil, 0600)
if err != nil {
t.Fatalf("creating file failed: %v", err)
}
@@ -256,7 +256,7 @@ func TestMvWarningSymlink(t *testing.T) {
// See TestMvWarnings.
func TestCpWarnings(t *testing.T) {
fn := test_helpers.TmpDir + "/TestCpWarnings"
- err := ioutil.WriteFile(fn, []byte("foo"), 0600)
+ err := os.WriteFile(fn, []byte("foo"), 0600)
if err != nil {
t.Fatalf("creating file failed: %v", err)
}
@@ -506,3 +506,51 @@ func TestForceOwner(t *testing.T) {
t.Errorf("LOOKUP returned uid or gid != 1234: %#v", st)
}
}
+
+func TestSeekDir(t *testing.T) {
+ wd := test_helpers.DefaultPlainDir + "/" + t.Name()
+ err := os.Mkdir(wd, 0700)
+ if err != nil {
+ t.Fatal(err)
+ }
+ for i := 0; i < 10; i++ {
+ path := fmt.Sprintf(wd+"/%3d", i)
+ err = os.WriteFile(path, nil, 0600)
+ if err != nil {
+ t.Fatal(err)
+ }
+ }
+
+ fd, err := syscall.Open(wd, syscall.O_DIRECTORY|syscall.O_RDONLY, 0)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer syscall.Close(fd)
+
+ buf := make([]byte, 1000)
+ n, err := getdents(fd, buf)
+ if err != nil {
+ t.Fatal(err)
+ }
+ t.Logf("1st getdents returned %d bytes", n)
+
+ n, err = getdents(fd, buf)
+ if err != nil {
+ t.Fatal(err)
+ }
+ t.Logf("2nd getdents returned %d bytes", n)
+
+ _, err = unix.Seek(fd, 0, 0)
+ if err != nil {
+ t.Error(err)
+ }
+
+ n, err = getdents(fd, buf)
+ if err != nil {
+ t.Fatal(err)
+ }
+ t.Logf("3rd getdents (after seek) returned %d bytes", n)
+ if n == 0 {
+ t.Error("Seek did not have any effect")
+ }
+}
diff --git a/tests/defaults/overlayfs_test.go b/tests/defaults/overlayfs_test.go
index 8cb773d..32c0a90 100644
--- a/tests/defaults/overlayfs_test.go
+++ b/tests/defaults/overlayfs_test.go
@@ -4,7 +4,6 @@
package defaults
import (
- "io/ioutil"
"os"
"strings"
"testing"
@@ -43,7 +42,7 @@ func TestRenameWhiteout(t *testing.T) {
for _, n := range names {
pSrc := test_helpers.DefaultPlainDir + "/" + n[0]
pDst := test_helpers.DefaultPlainDir + "/" + n[1]
- if err := ioutil.WriteFile(pSrc, nil, 0200); err != nil {
+ if err := os.WriteFile(pSrc, nil, 0200); err != nil {
t.Fatalf("creating empty file failed: %v", err)
}
err := unix.Renameat2(-1, pSrc, -1, pDst, flags)
@@ -96,10 +95,10 @@ func TestRenameExchange(t *testing.T) {
for _, n := range names {
pSrc := test_helpers.DefaultPlainDir + "/" + n[0]
pDst := test_helpers.DefaultPlainDir + "/" + n[1]
- if err := ioutil.WriteFile(pSrc, nil, 0200); err != nil {
+ if err := os.WriteFile(pSrc, nil, 0200); err != nil {
t.Fatalf("creating empty file failed: %v", err)
}
- if err := ioutil.WriteFile(pDst, nil, 0200); err != nil {
+ if err := os.WriteFile(pDst, nil, 0200); err != nil {
t.Fatalf("creating empty file failed: %v", err)
}
err := unix.Renameat2(-1, pSrc, -1, pDst, unix.RENAME_EXCHANGE)
@@ -119,7 +118,7 @@ func TestRenameExchange(t *testing.T) {
}
}
-// Looks like the FUSE protocol does support O_TMPFILE yet
+// Looks like the FUSE protocol does not support O_TMPFILE yet
func TestOTmpfile(t *testing.T) {
p := test_helpers.DefaultPlainDir + "/" + t.Name()
fd, err := unix.Openat(-1, p, unix.O_TMPFILE, 0600)
diff --git a/tests/defaults/performance_test.go b/tests/defaults/performance_test.go
index 11d827f..8bae5c1 100644
--- a/tests/defaults/performance_test.go
+++ b/tests/defaults/performance_test.go
@@ -4,7 +4,6 @@ package defaults
import (
"fmt"
"io"
- "io/ioutil"
"os"
"testing"
@@ -96,7 +95,7 @@ func createFiles(t *testing.B, count int, size int) {
for i = 0; i < count; i++ {
file := fmt.Sprintf("%s/%d", dir, i)
if size > 0 {
- err = ioutil.WriteFile(file, buf, 0666)
+ err = os.WriteFile(file, buf, 0666)
} else {
var fh *os.File
fh, err = os.Create(file)