aboutsummaryrefslogtreecommitdiff
path: root/tests/integration_tests/cli_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration_tests/cli_test.go')
-rw-r--r--tests/integration_tests/cli_test.go120
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")
+ }
+}