summaryrefslogtreecommitdiff
path: root/tests/normal
diff options
context:
space:
mode:
authorJakob Unterwurzacher2016-10-16 13:39:25 +0200
committerJakob Unterwurzacher2016-10-16 15:04:53 +0200
commit57e8df990c7c251b3cc73c2df6af6bf73367d234 (patch)
treecf58086c0707a66ee11b15b880bf14e6060bae88 /tests/normal
parentdc78e634aa76878026727a141c0e474d8466999a (diff)
tests: split "normal" tests into "cli" and "defaults"
Also fixes the failure to run the benchmarks do to the missing gocryptfs.diriv.
Diffstat (limited to 'tests/normal')
-rw-r--r--tests/normal/cli_test.go194
-rw-r--r--tests/normal/performance_test.go131
2 files changed, 0 insertions, 325 deletions
diff --git a/tests/normal/cli_test.go b/tests/normal/cli_test.go
deleted file mode 100644
index 18c0bd9..0000000
--- a/tests/normal/cli_test.go
+++ /dev/null
@@ -1,194 +0,0 @@
-package normal
-
-// Test CLI operations like "-init", "-password" etc
-
-import (
- "io/ioutil"
- "os"
- "os/exec"
- "testing"
-
- "github.com/rfjakob/gocryptfs/internal/configfile"
-
- "github.com/rfjakob/gocryptfs/tests/test_helpers"
-)
-
-func TestMain(m *testing.M) {
- test_helpers.ResetTmpDir(false)
- test_helpers.MountOrExit(test_helpers.DefaultCipherDir, test_helpers.DefaultPlainDir, "--zerokey")
- r := m.Run()
- test_helpers.UnmountPanic(test_helpers.DefaultPlainDir)
- os.Exit(r)
-}
-
-// Test -init flag
-func TestInit(t *testing.T) {
- dir := test_helpers.InitFS(t)
- _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfDefaultName, "test")
- if err != nil {
- t.Fatal(err)
- }
- if c.IsFeatureFlagSet(configfile.FlagAESSIV) {
- t.Error("AESSIV flag should not be set")
- }
-}
-
-// Test -init with -aessiv
-func TestInitAessiv(t *testing.T) {
- dir := test_helpers.InitFS(t, "-aessiv")
- _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfDefaultName, "test")
- if err != nil {
- t.Fatal(err)
- }
- if !c.IsFeatureFlagSet(configfile.FlagAESSIV) {
- t.Error("AESSIV flag should be set but is not")
- }
-}
-
-// Test -init with -reverse
-func TestInitReverse(t *testing.T) {
- dir := test_helpers.InitFS(t, "-reverse")
- _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfReverseName, "test")
- if err != nil {
- t.Fatal(err)
- }
- if !c.IsFeatureFlagSet(configfile.FlagAESSIV) {
- t.Error("AESSIV flag should be set but is not")
- }
-}
-
-func testPasswd(t *testing.T, dir string, extraArgs ...string) {
- // Change password using "-extpass"
- args := []string{"-q", "-passwd", "-extpass", "echo test"}
- args = append(args, extraArgs...)
- args = append(args, dir)
- cmd := exec.Command(test_helpers.GocryptfsBinary, args...)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err := cmd.Run()
- if err != nil {
- t.Error(err)
- }
- // Change password using stdin
- args = []string{"-q", "-passwd", "-extpass", "echo test"}
- args = append(args, extraArgs...)
- args = append(args, dir)
- cmd = exec.Command(test_helpers.GocryptfsBinary, args...)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- p, err := cmd.StdinPipe()
- if err != nil {
- t.Fatal(err)
- }
- err = cmd.Start()
- if err != nil {
- t.Error(err)
- }
- // Old password
- p.Write([]byte("test\n"))
- // New password
- p.Write([]byte("newpasswd\n"))
- p.Close()
- err = cmd.Wait()
- if err != nil {
- t.Error(err)
- }
-}
-
-// Test -passwd flag
-func TestPasswd(t *testing.T) {
- // Create FS
- dir := test_helpers.InitFS(t)
- testPasswd(t, dir)
-}
-
-// Test -passwd with -reverse
-func TestPasswdReverse(t *testing.T) {
- // Create FS
- dir := test_helpers.InitFS(t, "-reverse")
- testPasswd(t, dir, "-reverse")
-}
-
-// Test -init & -config flag
-func TestInitConfig(t *testing.T) {
- config := test_helpers.TmpDir + "/TestInitConfig.conf"
- dir := test_helpers.InitFS(t, "-config="+config)
-
- _, err := os.Stat(config)
- if err != nil {
- t.Fatal(err)
- }
-
- // Test -passwd & -config
- cmd2 := exec.Command(test_helpers.GocryptfsBinary, "-q", "-passwd", "-extpass", "echo test",
- "-config", config, dir)
- cmd2.Stdout = os.Stdout
- cmd2.Stderr = os.Stderr
- err = cmd2.Run()
- if err != nil {
- t.Error(err)
- }
-}
-
-// Test -ro
-func TestRo(t *testing.T) {
- dir := test_helpers.InitFS(t)
- mnt := dir + ".mnt"
- test_helpers.MountOrFatal(t, dir, mnt, "-ro", "-extpass=echo test")
- defer test_helpers.UnmountPanic(mnt)
-
- file := mnt + "/file"
- err := os.Mkdir(file, 0777)
- if err == nil {
- t.Errorf("Mkdir should have failed")
- }
- _, err = os.Create(file)
- if err == nil {
- t.Errorf("Create should have failed")
- }
-}
-
-// Test "-nonempty"
-func TestNonempty(t *testing.T) {
- dir := test_helpers.InitFS(t)
- mnt := dir + ".mnt"
- err := os.Mkdir(mnt, 0700)
- if err != nil {
- t.Fatal(err)
- }
- err = ioutil.WriteFile(mnt+"/somefile", []byte("xyz"), 0600)
- if err != nil {
- t.Fatal(err)
- }
- err = test_helpers.Mount(dir, mnt, false, "-extpass=echo test")
- if err == nil {
- t.Errorf("Mounting over a file should fail per default")
- }
- // Should work with "-nonempty"
- test_helpers.MountOrFatal(t, dir, mnt, "-nonempty", "-extpass=echo test")
- test_helpers.UnmountPanic(mnt)
-}
-
-// Test "mountpoint shadows cipherdir" handling
-func TestShadows(t *testing.T) {
- mnt := test_helpers.InitFS(t)
- cipher := mnt + ".cipher"
- err := os.Rename(mnt, cipher)
- if err != nil {
- t.Fatal(err)
- }
- // This should work
- // (note that MountOrFatal creates "mnt" again)
- test_helpers.MountOrFatal(t, cipher, mnt, "-extpass=echo test")
- test_helpers.UnmountPanic(mnt)
- cipher2 := mnt + "/cipher"
- err = os.Rename(cipher, cipher2)
- if err != nil {
- t.Fatal(err)
- }
- // This should fail
- err = test_helpers.Mount(cipher2, mnt, false, "-extpass=echo test")
- if err == nil {
- t.Errorf("Should have failed")
- }
-}
diff --git a/tests/normal/performance_test.go b/tests/normal/performance_test.go
deleted file mode 100644
index 78ecf41..0000000
--- a/tests/normal/performance_test.go
+++ /dev/null
@@ -1,131 +0,0 @@
-package normal
-
-// Benchmarks
-
-import (
- "fmt"
- "io"
- "io/ioutil"
- "os"
- "testing"
-
- "github.com/rfjakob/gocryptfs/tests/test_helpers"
-)
-
-func BenchmarkStreamWrite(t *testing.B) {
- buf := make([]byte, 1024*1024)
- t.SetBytes(int64(len(buf)))
-
- file, err := os.Create(test_helpers.DefaultPlainDir + "BenchmarkWrite")
- if err != nil {
- t.FailNow()
- }
-
- t.ResetTimer()
- var i int
- for i = 0; i < t.N; i++ {
- written, err := file.Write(buf)
- if err != nil {
- fmt.Printf("err=\"%s\", written=%d\n", err.Error(), written)
- t.FailNow()
- }
- }
- file.Close()
-}
-
-func BenchmarkStreamRead(t *testing.B) {
- buf := make([]byte, 1024*1024)
- t.SetBytes(int64(len(buf)))
-
- fn := test_helpers.DefaultPlainDir + "BenchmarkWrite"
- fi, err := os.Stat(fn)
- if err != nil {
- t.Fatal(err)
- }
- mb := int(fi.Size() / 1024 / 1024)
-
- if t.N > mb {
- // Grow file so we can satisfy the test
- //fmt.Printf("Growing file to %d MB... ", t.N)
- var f2 *os.File
- f2, err = os.OpenFile(fn, os.O_WRONLY|os.O_APPEND, 0666)
- if err != nil {
- fmt.Println(err)
- t.FailNow()
- }
- for h := 0; h < t.N-mb; h++ {
- _, err = f2.Write(buf)
- if err != nil {
- fmt.Println(err)
- t.FailNow()
- }
- }
- f2.Close()
- }
-
- file, err := os.Open(fn)
- if err != nil {
- t.FailNow()
- }
- t.ResetTimer()
- var i int
- for i = 0; i < t.N; i++ {
- _, err := file.Read(buf)
- if err == io.EOF {
- fmt.Println("Test file too small")
- t.SkipNow()
- } else if err != nil {
- fmt.Println(err)
- t.FailNow()
- }
- }
- file.Close()
-}
-
-// createFiles - create "count" files of size "size" bytes each
-func createFiles(t *testing.B, count int, size int) {
- dir := fmt.Sprintf("%s/createFiles_%d_%d", test_helpers.DefaultPlainDir, count, size)
- err := os.Mkdir(dir, 0777)
- if err != nil {
- t.Fatal(err)
- }
- buf := make([]byte, size)
- t.SetBytes(int64(len(buf)))
- t.ResetTimer()
- var i int
- for i = 0; i < count; i++ {
- file := fmt.Sprintf("%s/%d", dir, i)
- if size > 0 {
- err = ioutil.WriteFile(file, buf, 0666)
- } else {
- var fh *os.File
- fh, err = os.Create(file)
- fh.Close()
- }
- if err != nil {
- t.Fatal(err)
- }
- }
- t.StopTimer()
- os.RemoveAll(dir)
-}
-
-func BenchmarkCreate0B(t *testing.B) {
- createFiles(t, t.N, 0)
-}
-
-func BenchmarkCreate1B(t *testing.B) {
- createFiles(t, t.N, 1)
-}
-
-func BenchmarkCreate100B(t *testing.B) {
- createFiles(t, t.N, 100)
-}
-
-func BenchmarkCreate4kB(t *testing.B) {
- createFiles(t, t.N, 4*1024)
-}
-
-func BenchmarkCreate10kB(t *testing.B) {
- createFiles(t, t.N, 10*1024)
-}