diff options
Diffstat (limited to 'tests/reverse')
-rw-r--r-- | tests/reverse/correctness_test.go | 17 | ||||
-rw-r--r-- | tests/reverse/longname_perf_test.go | 45 | ||||
-rw-r--r-- | tests/reverse/main_test.go | 32 |
3 files changed, 61 insertions, 33 deletions
diff --git a/tests/reverse/correctness_test.go b/tests/reverse/correctness_test.go new file mode 100644 index 0000000..e268815 --- /dev/null +++ b/tests/reverse/correctness_test.go @@ -0,0 +1,17 @@ +package reverse_test + +import ( + "os" + "testing" +) + +func TestLongnameStat(t *testing.T) { + _, err := os.Stat(dirA + "/" + "") + if err != nil { + t.Error(err) + } + _, err = os.Stat(dirA + "/" + "") + if err != nil { + t.Error(err) + } +} diff --git a/tests/reverse/longname_perf_test.go b/tests/reverse/longname_perf_test.go index 43acd25..f170ad7 100644 --- a/tests/reverse/longname_perf_test.go +++ b/tests/reverse/longname_perf_test.go @@ -5,34 +5,17 @@ import ( "fmt" "os" "testing" - - "github.com/rfjakob/gocryptfs/tests/test_helpers" ) -var dirA, dirB, x240 string - -func TestMain(m *testing.M) { - x240 = string(bytes.Repeat([]byte("x"), 240)) - dirA = test_helpers.TmpDir + "/a" - dirB = test_helpers.TmpDir + "/b" - os.Mkdir(dirA, 0700) - os.Mkdir(dirB, 0700) - generateFiles(dirA) - test_helpers.MountOrExit(dirA, dirB, "-zerokey", "-reverse") - r := m.Run() - test_helpers.UnmountPanic(dirB) - os.RemoveAll(test_helpers.TmpDir) - os.Exit(r) -} - -func genName(i int) string { - return fmt.Sprintf("%04d.%s", i, x240) +func genName(i int, postfix string) string { + return fmt.Sprintf("%04d.%s", i, postfix) } // Create 10000 files with long names -func generateFiles(dir string) { +func generateLongnameFiles(dir string) { + x240 := string(bytes.Repeat([]byte("x"), 240)) for i := 0; i < 100000; i++ { - n := genName(i) + n := genName(i, x240) f, err := os.Create(dir + "/" + n) if err != nil { panic(err) @@ -41,18 +24,9 @@ func generateFiles(dir string) { } } -func TestLongnameStat(t *testing.T) { - _, err := os.Stat(dirA + "/" + genName(0)) - if err != nil { - t.Error(err) - } - _, err = os.Stat(dirA + "/" + genName(9999)) - if err != nil { - t.Error(err) - } -} - func BenchmarkLongnameStat(b *testing.B) { + // Setup + generateLongnameFiles(dirA) dirFd, err := os.Open(dirB) if err != nil { b.Fatal(err) @@ -63,6 +37,7 @@ func BenchmarkLongnameStat(b *testing.B) { } l := len(encryptedNames) dirFd.Close() + // Benchmark b.ResetTimer() for i := 0; i < b.N; i++ { _, err := os.Stat(dirB + "/" + encryptedNames[i%l]) @@ -70,4 +45,8 @@ func BenchmarkLongnameStat(b *testing.B) { b.Fatal(err) } } + // Cleanup + b.StopTimer() + os.RemoveAll(dirA) + os.Mkdir(dirA, 0700) } diff --git a/tests/reverse/main_test.go b/tests/reverse/main_test.go new file mode 100644 index 0000000..3d10750 --- /dev/null +++ b/tests/reverse/main_test.go @@ -0,0 +1,32 @@ +package reverse_test + +import ( + "os" + "testing" + + "github.com/rfjakob/gocryptfs/tests/test_helpers" +) + +var dirA, dirB, dirC string + +func TestMain(m *testing.M) { + dirA = test_helpers.TmpDir + "/a" + dirB = test_helpers.TmpDir + "/b" + dirC = test_helpers.TmpDir + "/c" + if err := os.Mkdir(dirA, 0700); err != nil { + panic(err) + } + if err := os.Mkdir(dirB, 0700); err != nil { + panic(err) + } + if err := os.Mkdir(dirC, 0700); err != nil { + panic(err) + } + test_helpers.MountOrExit(dirA, dirB, "-zerokey", "-reverse") + test_helpers.MountOrExit(dirB, dirC, "-zerokey", "-gcmsiv") + r := m.Run() + test_helpers.UnmountPanic(dirC) + test_helpers.UnmountPanic(dirB) + os.RemoveAll(test_helpers.TmpDir) + os.Exit(r) +} |