summaryrefslogtreecommitdiff
path: root/gocryptfs-xray/xray_tests/xray_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'gocryptfs-xray/xray_tests/xray_test.go')
-rw-r--r--gocryptfs-xray/xray_tests/xray_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/gocryptfs-xray/xray_tests/xray_test.go b/gocryptfs-xray/xray_tests/xray_test.go
index dfd21e6..790d2db 100644
--- a/gocryptfs-xray/xray_tests/xray_test.go
+++ b/gocryptfs-xray/xray_tests/xray_test.go
@@ -6,6 +6,8 @@ import (
"io/ioutil"
"os/exec"
"testing"
+
+ "github.com/rfjakob/gocryptfs/tests/test_helpers"
)
func TestAesgcmXray(t *testing.T) {
@@ -58,3 +60,51 @@ func TestDumpmasterkey(t *testing.T) {
fmt.Printf("have: %s\n", out)
}
}
+
+func TestEncryptPaths(t *testing.T) {
+ cDir := test_helpers.InitFS(t)
+ pDir := cDir + ".mnt"
+ sock := cDir + ".sock"
+ test_helpers.MountOrFatal(t, cDir, pDir, "-ctlsock="+sock, "-extpass", "echo test")
+ defer test_helpers.UnmountPanic(pDir)
+
+ testCases := []struct {
+ in []string
+ sep0 bool
+ }{
+ {
+ []string{
+ "test1",
+ "test1\n",
+ "test1\ntest2",
+ "test1\ntest2\n",
+ },
+ false,
+ },
+ {
+ []string{
+ "test1",
+ "test1\000",
+ "test1\000test2",
+ "test1\000test2\000",
+ },
+ true,
+ },
+ }
+
+ for _, tc := range testCases {
+ for _, in := range tc.in {
+ sepArg := "-0=false"
+ if tc.sep0 {
+ sepArg = "-0=true"
+ }
+ cmd := exec.Command("../gocryptfs-xray", "-encrypt-paths", sepArg, sock)
+ cmd.Stdin = bytes.NewBuffer([]byte(in))
+ out, err := cmd.CombinedOutput()
+ t.Logf("%q", string(out))
+ if err != nil {
+ t.Fatal(err)
+ }
+ }
+ }
+}