From 993b19c19c26eac480d88cc67bfe7455e67faada Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 6 Sep 2020 11:35:25 +0200 Subject: gocryptfs -init: fix wrong exit code on non-empty dir Fixes https://github.com/rfjakob/gocryptfs/pull/503 --- tests/cli/cli_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/cli/cli_test.go') diff --git a/tests/cli/cli_test.go b/tests/cli/cli_test.go index bb1558c..6aa2feb 100644 --- a/tests/cli/cli_test.go +++ b/tests/cli/cli_test.go @@ -800,3 +800,23 @@ func TestPassfileX2(t *testing.T) { test_helpers.MountOrFatal(t, dir, mnt, "-passfile="+passfile1, "-passfile="+passfile2) defer test_helpers.UnmountPanic(mnt) } + +// TestInitNotEmpty checks that `gocryptfs -init` returns the right error code +// if CIPHERDIR is not empty. See https://github.com/rfjakob/gocryptfs/pull/503 +func TestInitNotEmpty(t *testing.T) { + dir := test_helpers.TmpDir + "/" + t.Name() + if err := os.Mkdir(dir, 0700); err != nil { + t.Fatal(err) + } + if err := ioutil.WriteFile(dir+"/foo", nil, 0700); err != nil { + t.Fatal(err) + } + cmd := exec.Command(test_helpers.GocryptfsBinary, "-init", "-extpass", "echo test", dir) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + exitCode := test_helpers.ExtractCmdExitCode(err) + if exitCode != exitcodes.CipherDir { + t.Fatalf("wrong exit code: have=%d, want=%d", exitCode, exitcodes.CipherDir) + } +} -- cgit v1.2.3