diff options
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") + } +} |