diff options
Diffstat (limited to 'tests/normal/cli_test.go')
-rw-r--r-- | tests/normal/cli_test.go | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/tests/normal/cli_test.go b/tests/normal/cli_test.go deleted file mode 100644 index 18c0bd9..0000000 --- a/tests/normal/cli_test.go +++ /dev/null @@ -1,194 +0,0 @@ -package normal - -// Test CLI operations like "-init", "-password" etc - -import ( - "io/ioutil" - "os" - "os/exec" - "testing" - - "github.com/rfjakob/gocryptfs/internal/configfile" - - "github.com/rfjakob/gocryptfs/tests/test_helpers" -) - -func TestMain(m *testing.M) { - test_helpers.ResetTmpDir(false) - test_helpers.MountOrExit(test_helpers.DefaultCipherDir, test_helpers.DefaultPlainDir, "--zerokey") - r := m.Run() - test_helpers.UnmountPanic(test_helpers.DefaultPlainDir) - os.Exit(r) -} - -// Test -init flag -func TestInit(t *testing.T) { - dir := test_helpers.InitFS(t) - _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfDefaultName, "test") - if err != nil { - t.Fatal(err) - } - if c.IsFeatureFlagSet(configfile.FlagAESSIV) { - t.Error("AESSIV flag should not be set") - } -} - -// Test -init with -aessiv -func TestInitAessiv(t *testing.T) { - dir := test_helpers.InitFS(t, "-aessiv") - _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfDefaultName, "test") - if err != nil { - t.Fatal(err) - } - if !c.IsFeatureFlagSet(configfile.FlagAESSIV) { - t.Error("AESSIV flag should be set but is not") - } -} - -// Test -init with -reverse -func TestInitReverse(t *testing.T) { - dir := test_helpers.InitFS(t, "-reverse") - _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfReverseName, "test") - if err != nil { - t.Fatal(err) - } - if !c.IsFeatureFlagSet(configfile.FlagAESSIV) { - t.Error("AESSIV flag should be set but is not") - } -} - -func testPasswd(t *testing.T, dir string, extraArgs ...string) { - // Change password using "-extpass" - args := []string{"-q", "-passwd", "-extpass", "echo test"} - args = append(args, extraArgs...) - args = append(args, dir) - cmd := exec.Command(test_helpers.GocryptfsBinary, args...) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - t.Error(err) - } - // Change password using stdin - args = []string{"-q", "-passwd", "-extpass", "echo test"} - args = append(args, extraArgs...) - args = append(args, dir) - cmd = exec.Command(test_helpers.GocryptfsBinary, args...) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - p, err := cmd.StdinPipe() - if err != nil { - t.Fatal(err) - } - err = cmd.Start() - if err != nil { - t.Error(err) - } - // Old password - p.Write([]byte("test\n")) - // New password - p.Write([]byte("newpasswd\n")) - p.Close() - err = cmd.Wait() - if err != nil { - t.Error(err) - } -} - -// Test -passwd flag -func TestPasswd(t *testing.T) { - // Create FS - dir := test_helpers.InitFS(t) - testPasswd(t, dir) -} - -// Test -passwd with -reverse -func TestPasswdReverse(t *testing.T) { - // Create FS - dir := test_helpers.InitFS(t, "-reverse") - testPasswd(t, dir, "-reverse") -} - -// Test -init & -config flag -func TestInitConfig(t *testing.T) { - config := test_helpers.TmpDir + "/TestInitConfig.conf" - dir := test_helpers.InitFS(t, "-config="+config) - - _, err := os.Stat(config) - if err != nil { - t.Fatal(err) - } - - // Test -passwd & -config - cmd2 := exec.Command(test_helpers.GocryptfsBinary, "-q", "-passwd", "-extpass", "echo test", - "-config", config, dir) - cmd2.Stdout = os.Stdout - cmd2.Stderr = os.Stderr - err = cmd2.Run() - if err != nil { - t.Error(err) - } -} - -// Test -ro -func TestRo(t *testing.T) { - dir := test_helpers.InitFS(t) - mnt := dir + ".mnt" - test_helpers.MountOrFatal(t, dir, mnt, "-ro", "-extpass=echo test") - defer test_helpers.UnmountPanic(mnt) - - file := mnt + "/file" - err := os.Mkdir(file, 0777) - if err == nil { - t.Errorf("Mkdir should have failed") - } - _, err = os.Create(file) - if err == nil { - t.Errorf("Create should have failed") - } -} - -// Test "-nonempty" -func TestNonempty(t *testing.T) { - dir := test_helpers.InitFS(t) - mnt := dir + ".mnt" - err := os.Mkdir(mnt, 0700) - if err != nil { - t.Fatal(err) - } - err = ioutil.WriteFile(mnt+"/somefile", []byte("xyz"), 0600) - if err != nil { - t.Fatal(err) - } - err = test_helpers.Mount(dir, mnt, false, "-extpass=echo test") - if err == nil { - t.Errorf("Mounting over a file should fail per default") - } - // Should work with "-nonempty" - test_helpers.MountOrFatal(t, dir, mnt, "-nonempty", "-extpass=echo test") - test_helpers.UnmountPanic(mnt) -} - -// Test "mountpoint shadows cipherdir" handling -func TestShadows(t *testing.T) { - mnt := test_helpers.InitFS(t) - cipher := mnt + ".cipher" - err := os.Rename(mnt, cipher) - if err != nil { - t.Fatal(err) - } - // This should work - // (note that MountOrFatal creates "mnt" again) - test_helpers.MountOrFatal(t, cipher, mnt, "-extpass=echo test") - test_helpers.UnmountPanic(mnt) - cipher2 := mnt + "/cipher" - err = os.Rename(cipher, cipher2) - if err != nil { - t.Fatal(err) - } - // This should fail - err = test_helpers.Mount(cipher2, mnt, false, "-extpass=echo test") - if err == nil { - t.Errorf("Should have failed") - } -} |