diff options
author | Jakob Unterwurzacher | 2016-06-06 23:57:42 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2016-06-07 00:08:56 +0200 |
commit | c2a5303eebc84d616072163f74eef8483c9f5386 (patch) | |
tree | 181ffdbb956eb76351d137a4fa9f52ed98b8f242 /tests/integration_tests/cli_test.go | |
parent | 0f4d3501369e13c8ba6ee4c9fc7df02a3cc698b1 (diff) |
tests: split example_filesystems into its own package
Running these tests from integration_tests' TestMain() was awkward
because they were run twice with unchanged settings.
integration_tests tests everything with OpenSSL and with native
Go crypto, but this does not take affect for the example filesystems.
To make this work, test_helpers is also split into its own package.
Diffstat (limited to 'tests/integration_tests/cli_test.go')
-rw-r--r-- | tests/integration_tests/cli_test.go | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/integration_tests/cli_test.go b/tests/integration_tests/cli_test.go new file mode 100644 index 0000000..15bd063 --- /dev/null +++ b/tests/integration_tests/cli_test.go @@ -0,0 +1,120 @@ +package integration_tests + +// Test CLI operations like "-init", "-password" etc + +import ( + "os" + "os/exec" + "testing" + + "github.com/rfjakob/gocryptfs/internal/configfile" + "github.com/rfjakob/gocryptfs/internal/nametransform" + + "github.com/rfjakob/gocryptfs/tests/test_helpers" +) + +// Test -init flag +func TestInit(t *testing.T) { + dir := test_helpers.TmpDir + "TestInit/" + err := os.Mkdir(dir, 0777) + if err != nil { + t.Fatal(err) + } + cmd := exec.Command(test_helpers.GocryptfsBinary, "-init", "-extpass", "echo test", "-scryptn=10", dir) + if testing.Verbose() { + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + } + err = cmd.Run() + if err != nil { + t.Fatal(err) + } + _, err = os.Stat(dir + configfile.ConfDefaultName) + if err != nil { + t.Fatal(err) + } + + // Test -passwd + cmd2 := exec.Command(test_helpers.GocryptfsBinary, "-passwd", "-extpass", "echo test", dir) + if testing.Verbose() { + cmd2.Stdout = os.Stdout + cmd2.Stderr = os.Stderr + } + err = cmd2.Run() + if err != nil { + t.Error(err) + } +} + +// 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, "-init", "-extpass", "echo test", + "-config", config, "-scryptn=10", dir) + if testing.Verbose() { + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + } + err = cmd.Run() + if err != nil { + t.Fatal(err) + } + _, err = os.Stat(config) + if err != nil { + t.Fatal(err) + } + + // Test -passwd & -config + cmd2 := exec.Command(test_helpers.GocryptfsBinary, "-passwd", "-extpass", "echo test", + "-config", config, dir) + if testing.Verbose() { + cmd2.Stdout = os.Stdout + cmd2.Stderr = os.Stderr + } + err = cmd2.Run() + if err != nil { + t.Error(err) + } +} + +// 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, "-init", "-extpass", "echo test", + "-scryptn=10", "-plaintextnames", dir) + if testing.Verbose() { + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + } + err = cmd.Run() + if err != nil { + t.Fatal(err) + } + _, err = os.Stat(dir + configfile.ConfDefaultName) + if err != nil { + t.Fatal(err) + } + _, err = os.Stat(dir + nametransform.DirIVFilename) + if err == nil { + t.Errorf("gocryptfs.diriv should not have been created with -plaintextnames") + } + _, cf, err := configfile.LoadConfFile(dir+configfile.ConfDefaultName, "test") + if err != nil { + t.Fatal(err) + } + if !cf.IsFeatureFlagSet(configfile.FlagPlaintextNames) { + t.Error("PlaintextNames flag should be set but isnt") + } + if cf.IsFeatureFlagSet(configfile.FlagEMENames) || cf.IsFeatureFlagSet(configfile.FlagDirIV) { + t.Error("FlagEMENames and FlagDirIV should be not set") + } +} |