From c2a5303eebc84d616072163f74eef8483c9f5386 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Mon, 6 Jun 2016 23:57:42 +0200 Subject: 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. --- tests/integration_tests/cli_test.go | 120 ++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 tests/integration_tests/cli_test.go (limited to 'tests/integration_tests/cli_test.go') 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") + } +} -- cgit v1.2.3