diff options
| author | Jakob Unterwurzacher | 2017-05-14 13:14:00 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2017-05-14 13:14:00 +0200 | 
| commit | 18f354d84b4ae58c620474a544b9929662b108d8 (patch) | |
| tree | ea3c91bab468662bd99bf00edb650c885a75b98a | |
| parent | d5adde1eeb13ba377f7c05b9f21893c01f61ec16 (diff) | |
main: password change: exit with code 12 on wrong password
We used to return code 8, now we return code 12 as documented in
the man page.
Also adds a test.
| -rw-r--r-- | main.go | 2 | ||||
| -rw-r--r-- | tests/cli/cli_test.go | 37 | 
2 files changed, 34 insertions, 5 deletions
| @@ -76,7 +76,7 @@ func loadConfig(args *argContainer) (masterkey []byte, confFile *configfile.Conf  func changePassword(args *argContainer) {  	masterkey, confFile, err := loadConfig(args)  	if err != nil { -		os.Exit(exitcodes.LoadConf) +		exitcodes.Exit(err)  	}  	tlog.Info.Println("Please enter your new password.")  	newPw := readpassword.Twice(args.extpass) diff --git a/tests/cli/cli_test.go b/tests/cli/cli_test.go index 905a890..f5eaf9e 100644 --- a/tests/cli/cli_test.go +++ b/tests/cli/cli_test.go @@ -318,10 +318,10 @@ func TestInitTrailingGarbage(t *testing.T) {  	}  } -// TestPasswordIncorrect makes sure the correct exit code is used when the password -// was incorrect -func TestPasswordIncorrect(t *testing.T) { -	cDir := test_helpers.InitFS(t) +// TestMountPasswordIncorrect makes sure the correct exit code is used when the password +// was incorrect while mounting +func TestMountPasswordIncorrect(t *testing.T) { +	cDir := test_helpers.InitFS(t) // Create filesystem with password "test"  	pDir := cDir + ".mnt"  	err := test_helpers.Mount(cDir, pDir, false, "-extpass", "echo WRONG", "-wpanic=false")  	//          vvvvvvvvvvvvvv OMG vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv @@ -330,3 +330,32 @@ func TestPasswordIncorrect(t *testing.T) {  		t.Errorf("want=%d, got=%d", exitcodes.PasswordIncorrect, exitCode)  	}  } + +// TestPasswdPasswordIncorrect makes sure the correct exit code is used when the password +// was incorrect while changing the password +func TestPasswdPasswordIncorrect(t *testing.T) { +	cDir := test_helpers.InitFS(t) // Create filesystem with password "test" +	// Change password +	cmd := exec.Command(test_helpers.GocryptfsBinary, "-passwd", cDir) +	childStdin, err := cmd.StdinPipe() +	if err != nil { +		t.Fatal(err) +	} +	err = cmd.Start() +	if err != nil { +		t.Fatal(err) +	} +	_, err = childStdin.Write([]byte("WRONGPASSWORD\nNewPassword")) +	if err != nil { +		t.Fatal(err) +	} +	err = childStdin.Close() +	if err != nil { +		t.Fatal(err) +	} +	err = cmd.Wait() +	exitCode := err.(*exec.ExitError).Sys().(syscall.WaitStatus).ExitStatus() +	if exitCode != exitcodes.PasswordIncorrect { +		t.Errorf("want=%d, got=%d", exitcodes.PasswordIncorrect, exitCode) +	} +} | 
