diff options
Diffstat (limited to 'tests/reverse/ctlsock_test.go')
-rw-r--r-- | tests/reverse/ctlsock_test.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/reverse/ctlsock_test.go b/tests/reverse/ctlsock_test.go new file mode 100644 index 0000000..0e4a29b --- /dev/null +++ b/tests/reverse/ctlsock_test.go @@ -0,0 +1,52 @@ +package reverse_test + +import ( + "io/ioutil" + "testing" + + "github.com/rfjakob/gocryptfs/internal/ctlsock" + "github.com/rfjakob/gocryptfs/tests/test_helpers" +) + +var ctlSockTestCases = [][]string{ + {"4RQq1dJlfvQPaVU5Xypf0w==", "file"}, + {"gocryptfs.longname.ZQCAoi5li3xvDZRO8McBV0L_kzJc4IcAOEzuW-2S1Y4=", "longfile." + x240}, + {"v6puXntoQOk7Mhl8zJ4Idg==", "dir"}, + {"v6puXntoQOk7Mhl8zJ4Idg==/UVy2gV0RQTUC8AE4wYoMwg==", "dir/file"}, + {"v6puXntoQOk7Mhl8zJ4Idg==/fvHFLHlxHCQ7EpVMJu0AZg==", "dir/dir"}, + {"v6puXntoQOk7Mhl8zJ4Idg==/fvHFLHlxHCQ7EpVMJu0AZg==/_4uudIGniACke55JoDsqDA==", "dir/dir/dir"}, + {"v6puXntoQOk7Mhl8zJ4Idg==/fvHFLHlxHCQ7EpVMJu0AZg==/QvPahkkeVRKTw2kdZFZxwQ==", "dir/dir/file"}, + {"v6puXntoQOk7Mhl8zJ4Idg==/gocryptfs.longname.y6rxCn6Id8hIZL2t_STpdLZpu-aE2HpprJR25xD60mk=", "dir/longfile." + x240}, + {"gocryptfs.longname.cvRximo1ATRJVEzw_V9MZieHFlod9y2iv2Sug1kbiTE=", "longdir." + x240}, + {"gocryptfs.longname.cvRximo1ATRJVEzw_V9MZieHFlod9y2iv2Sug1kbiTE=/-LMdFgFt6UxO-z5iJvuC9w==", "longdir." + x240 + "/dir"}, + {"gocryptfs.longname.cvRximo1ATRJVEzw_V9MZieHFlod9y2iv2Sug1kbiTE=/rBPJYAzcHWLdPj1T8kgh8A==", "longdir." + x240 + "/file"}, +} + +func TestCtlSockDecryptPath(t *testing.T) { + mnt, err := ioutil.TempDir(test_helpers.TmpDir, "reverse_mnt_") + if err != nil { + t.Fatal(err) + } + sock := mnt + ".sock" + test_helpers.MountOrFatal(t, "ctlsock_reverse_test_fs", mnt, "-reverse", "-extpass", "echo test", "-ctlsock="+sock) + defer test_helpers.UnmountPanic(mnt) + var req ctlsock.RequestStruct + for i, tc := range ctlSockTestCases { + // Decrypt + req = ctlsock.RequestStruct{DecryptPath: tc[0]} + response := test_helpers.QueryCtlSock(t, sock, req) + if response.ErrNo != 0 { + t.Errorf("Testcase %d Decrypt: %q ErrNo=%d ErrText=%s", i, tc[0], response.ErrNo, response.ErrText) + } else if response.Result != tc[1] { + t.Errorf("Testcase %d Decrypt: Want %q got %q", i, tc[1], response.Result) + } + // Encrypt + req = ctlsock.RequestStruct{EncryptPath: tc[1]} + response = test_helpers.QueryCtlSock(t, sock, req) + if response.ErrNo != 0 { + t.Errorf("Testcase %d Encrypt: %q ErrNo=%d ErrText=%s", i, tc[0], response.ErrNo, response.ErrText) + } else if response.Result != tc[0] { + t.Errorf("Testcase %d Encrypt: Want %q got %q", i, tc[1], response.Result) + } + } +} |