tests: cli: add TestZerokey
TestZerokey verifies that `gocryptfs -zerokey` uses the same options as `gocryptfs -init`.
This commit is contained in:
parent
6b0e63c1a8
commit
e244b51491
60
tests/cli/zerokey.go
Normal file
60
tests/cli/zerokey.go
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package cli
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/rfjakob/gocryptfs/tests/test_helpers"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestZerokey verifies that `gocryptfs -zerokey` uses the same options as
|
||||||
|
// `gocryptfs -init`.
|
||||||
|
func TestZerokey(t *testing.T) {
|
||||||
|
// Create FS
|
||||||
|
dir := test_helpers.InitFS(t)
|
||||||
|
|
||||||
|
// Change masterkey to all-zero using password change
|
||||||
|
args := []string{"-q", "-passwd", "-masterkey",
|
||||||
|
"00000000-00000000-00000000-00000000-00000000-00000000-00000000-00000000"}
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
// New password = old password
|
||||||
|
p.Write([]byte("test\n"))
|
||||||
|
p.Close()
|
||||||
|
err = cmd.Wait()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add content
|
||||||
|
mnt := dir + ".mnt"
|
||||||
|
test_helpers.MountOrFatal(t, dir, mnt, "-extpass", "echo test")
|
||||||
|
file1 := mnt + "/file1"
|
||||||
|
err = ioutil.WriteFile(file1, []byte("somecontent"), 0600)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
test_helpers.UnmountPanic(mnt)
|
||||||
|
|
||||||
|
// Mount using -zerokey and verify we get the same result
|
||||||
|
test_helpers.MountOrFatal(t, dir, mnt, "-extpass", "echo test")
|
||||||
|
content, err := ioutil.ReadFile(file1)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
} else if string(content) != "somecontent" {
|
||||||
|
t.Errorf("wrong content: %q", string(content))
|
||||||
|
}
|
||||||
|
test_helpers.UnmountPanic(mnt)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user