summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/integration_tests/cli_test.go65
-rw-r--r--tests/test_helpers/helpers.go45
2 files changed, 52 insertions, 58 deletions
diff --git a/tests/integration_tests/cli_test.go b/tests/integration_tests/cli_test.go
index 0e88581..ae6ef7f 100644
--- a/tests/integration_tests/cli_test.go
+++ b/tests/integration_tests/cli_test.go
@@ -3,7 +3,6 @@ package integration_tests
// Test CLI operations like "-init", "-password" etc
import (
- "io/ioutil"
"os"
"os/exec"
"path/filepath"
@@ -17,18 +16,8 @@ import (
// Test -init flag
func TestInit(t *testing.T) {
- dir, err := ioutil.TempDir(test_helpers.TmpDir, "TestInit")
- if err != nil {
- t.Fatal(err)
- }
- cmd := exec.Command(test_helpers.GocryptfsBinary, "-q", "-init", "-extpass", "echo test", "-scryptn=10", dir)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err = cmd.Run()
- if err != nil {
- t.Fatal(err)
- }
- _, err = os.Stat(filepath.Join(dir, configfile.ConfDefaultName))
+ dir := test_helpers.InitFS(t)
+ _, err := os.Stat(filepath.Join(dir, configfile.ConfDefaultName))
if err != nil {
t.Fatal(err)
}
@@ -37,22 +26,12 @@ func TestInit(t *testing.T) {
// Test -passwd flag
func TestPasswd(t *testing.T) {
// Create FS
- dir, err := ioutil.TempDir(test_helpers.TmpDir, "TestPasswd")
- if err != nil {
- t.Fatal(err)
- }
- cmd := exec.Command(test_helpers.GocryptfsBinary, "-q", "-init", "-extpass", "echo test", "-scryptn=10", dir)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err = cmd.Run()
- if err != nil {
- t.Fatal(err)
- }
+ dir := test_helpers.InitFS(t)
// Change password using "-extpass"
- cmd = exec.Command(test_helpers.GocryptfsBinary, "-q", "-passwd", "-extpass", "echo test", dir)
+ cmd := exec.Command(test_helpers.GocryptfsBinary, "-q", "-passwd", "-extpass", "echo test", dir)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
- err = cmd.Run()
+ err := cmd.Run()
if err != nil {
t.Error(err)
}
@@ -81,21 +60,10 @@ func TestPasswd(t *testing.T) {
// Test -init & -config flag
func TestInitConfig(t *testing.T) {
- dir := test_helpers.TmpDir + "TestInitConfig/"
config := test_helpers.TmpDir + "TestInitConfig.conf"
- err := os.Mkdir(dir, 0777)
- if err != nil {
- t.Fatal(err)
- }
- cmd := exec.Command(test_helpers.GocryptfsBinary, "-q", "-init", "-extpass", "echo test",
- "-config", config, "-scryptn=10", dir)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err = cmd.Run()
- if err != nil {
- t.Fatal(err)
- }
- _, err = os.Stat(config)
+ dir := test_helpers.InitFS(t, "-config="+config)
+
+ _, err := os.Stat(config)
if err != nil {
t.Fatal(err)
}
@@ -113,20 +81,9 @@ func TestInitConfig(t *testing.T) {
// Test -init -plaintextnames
func TestInitPlaintextNames(t *testing.T) {
- dir := test_helpers.TmpDir + "TestInitPlaintextNames/"
- err := os.Mkdir(dir, 0777)
- if err != nil {
- t.Fatal(err)
- }
- cmd := exec.Command(test_helpers.GocryptfsBinary, "-q", "-init", "-extpass", "echo test",
- "-scryptn=10", "-plaintextnames", dir)
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- err = cmd.Run()
- if err != nil {
- t.Fatal(err)
- }
- _, err = os.Stat(dir + configfile.ConfDefaultName)
+ dir := test_helpers.InitFS(t, "-plaintextnames")
+ dir = dir + "/"
+ _, err := os.Stat(dir + configfile.ConfDefaultName)
if err != nil {
t.Fatal(err)
}
diff --git a/tests/test_helpers/helpers.go b/tests/test_helpers/helpers.go
index 2f3bf0c..c006e8b 100644
--- a/tests/test_helpers/helpers.go
+++ b/tests/test_helpers/helpers.go
@@ -21,7 +21,12 @@ const DefaultCipherDir = TmpDir + "cipher/"
const GocryptfsBinary = "../../gocryptfs"
-// ResetTmpDir - delete old tmp dir, create new one, write gocryptfs.diriv
+// ResetTmpDir - delete TmpDir, create new dir tree:
+//
+// TmpDir
+// |-- DefaultPlainDir
+// *-- DefaultCipherDir
+// *-- gocryptfs.diriv
func ResetTmpDir(plaintextNames bool) {
// Try to unmount everything
@@ -59,7 +64,33 @@ func ResetTmpDir(plaintextNames bool) {
}
}
+// InitFS calls "gocryptfs -init" on a new directory in TmpDir, passing
+// "extraArgs" in addition to practical defaults.
+// The returned "dir" has NO trailing slash.
+func InitFS(t *testing.T, extraArgs ...string) string {
+ dir, err := ioutil.TempDir(TmpDir, "")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ args := []string{"-q", "-init", "-extpass", "echo test", "-scryptn=10"}
+ args = append(args, extraArgs...)
+ args = append(args, dir)
+
+ cmd := exec.Command(GocryptfsBinary, args...)
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
+
+ err = cmd.Run()
+ if err != nil {
+ t.Fatalf("InitFS with args %v failed: %v", args, err)
+ }
+
+ return dir
+}
+
// Mount CIPHERDIR "c" on PLAINDIR "p"
+// Creates "p" if it does not exist.
func Mount(c string, p string, extraArgs ...string) error {
var args []string
args = append(args, extraArgs...)
@@ -68,11 +99,17 @@ func Mount(c string, p string, extraArgs ...string) error {
//args = append(args, "-d")
args = append(args, c)
args = append(args, p)
+
+ if _, err := os.Stat(p); err != nil {
+ err = os.Mkdir(p, 0777)
+ if err != nil {
+ return err
+ }
+ }
+
cmd := exec.Command(GocryptfsBinary, args...)
cmd.Stderr = os.Stderr
- if testing.Verbose() {
- cmd.Stdout = os.Stdout
- }
+ cmd.Stdout = os.Stdout
return cmd.Run()
}