aboutsummaryrefslogtreecommitdiff
path: root/tests/example_filesystems
diff options
context:
space:
mode:
authorJakob Unterwurzacher2016-06-06 23:57:42 +0200
committerJakob Unterwurzacher2016-06-07 00:08:56 +0200
commitc2a5303eebc84d616072163f74eef8483c9f5386 (patch)
tree181ffdbb956eb76351d137a4fa9f52ed98b8f242 /tests/example_filesystems
parent0f4d3501369e13c8ba6ee4c9fc7df02a3cc698b1 (diff)
tests: split example_filesystems into its own package
Running these tests from integration_tests' TestMain() was awkward because they were run twice with unchanged settings. integration_tests tests everything with OpenSSL and with native Go crypto, but this does not take affect for the example filesystems. To make this work, test_helpers is also split into its own package.
Diffstat (limited to 'tests/example_filesystems')
l---------tests/example_filesystems/abs1
-rw-r--r--tests/example_filesystems/example_filesystems_test.go210
l---------tests/example_filesystems/rel1
-rw-r--r--tests/example_filesystems/status.txt1
-rw-r--r--tests/example_filesystems/v0.4/3-HZSwv99agoWgTErV0YFQ==bin0 -> 56 bytes
l---------tests/example_filesystems/v0.4/6hL2fPVB2aMSh4-UoDn5Kw==1
l---------tests/example_filesystems/v0.4/TBIgdfhDKwkXVTnWLVzFSg==1
-rw-r--r--tests/example_filesystems/v0.4/gocryptfs.conf12
l---------tests/example_filesystems/v0.5/AOtl_i4xQWDyG0_zUqntOw==1
l---------tests/example_filesystems/v0.5/Pf35wlWlf43N68EbhIgTcQ==1
-rw-r--r--tests/example_filesystems/v0.5/gocryptfs.conf14
-rw-r--r--tests/example_filesystems/v0.5/gocryptfs.diriv1
-rw-r--r--tests/example_filesystems/v0.5/j2BpGUT5kOtia20PWQ2rEA==bin0 -> 56 bytes
l---------tests/example_filesystems/v0.6-plaintextnames/abs1
-rw-r--r--tests/example_filesystems/v0.6-plaintextnames/gocryptfs.conf14
l---------tests/example_filesystems/v0.6-plaintextnames/rel1
-rw-r--r--tests/example_filesystems/v0.6-plaintextnames/status.txtbin0 -> 56 bytes
l---------tests/example_filesystems/v0.6/9pOs0yjJI5A67pv5CnqomQ==1
l---------tests/example_filesystems/v0.6/G79Zdu41H3bgwdaQlrz-dg==1
-rw-r--r--tests/example_filesystems/v0.6/RuYvQG_raW_-H_LcyJC4LQ==bin0 -> 56 bytes
-rw-r--r--tests/example_filesystems/v0.6/gocryptfs.conf15
-rw-r--r--tests/example_filesystems/v0.6/gocryptfs.diriv1
l---------tests/example_filesystems/v0.7/4tRF1LdULRFLiXwfze671Q==1
-rw-r--r--tests/example_filesystems/v0.7/RWPXmXkRFrWw1aOpq7C-NQ==bin0 -> 60 bytes
l---------tests/example_filesystems/v0.7/dwPcZNei4HN4qPA6FxoG_A==1
-rw-r--r--tests/example_filesystems/v0.7/gocryptfs.conf16
-rw-r--r--tests/example_filesystems/v0.7/gocryptfs.diriv1
l---------tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA==1
-rw-r--r--tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg==bin0 -> 60 bytes
-rw-r--r--tests/example_filesystems/v0.9/gocryptfs.conf17
-rw-r--r--tests/example_filesystems/v0.9/gocryptfs.diriv1
-rw-r--r--tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=bin0 -> 60 bytes
-rw-r--r--tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name1
l---------tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg==1
34 files changed, 318 insertions, 0 deletions
diff --git a/tests/example_filesystems/abs b/tests/example_filesystems/abs
new file mode 120000
index 0000000..e1740fa
--- /dev/null
+++ b/tests/example_filesystems/abs
@@ -0,0 +1 @@
+/a/b/c/d \ No newline at end of file
diff --git a/tests/example_filesystems/example_filesystems_test.go b/tests/example_filesystems/example_filesystems_test.go
new file mode 100644
index 0000000..7517bc5
--- /dev/null
+++ b/tests/example_filesystems/example_filesystems_test.go
@@ -0,0 +1,210 @@
+package example_filesystems
+
+// Mount example filesystems and check that the file "status.txt" is there
+
+import (
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "testing"
+
+ "github.com/rfjakob/gocryptfs/tests/test_helpers"
+)
+
+const statusTxtContent = "It works!\n"
+
+func TestMain(m *testing.M) {
+ test_helpers.ResetTmpDir(true)
+ m.Run()
+}
+
+// checkExampleFS - verify that "dir" contains the expected test files
+func checkExampleFS(t *testing.T, dir string) {
+ // Read regular file
+ statusFile := filepath.Join(dir, "status.txt")
+ contentBytes, err := ioutil.ReadFile(statusFile)
+ if err != nil {
+ t.Fatal(err)
+ }
+ content := string(contentBytes)
+ if content != statusTxtContent {
+ t.Errorf("Unexpected content: %s\n", content)
+ }
+ // Read relative symlink
+ symlink := filepath.Join(dir, "rel")
+ target, err := os.Readlink(symlink)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if target != "status.txt" {
+ t.Errorf("Unexpected link target: %s\n", target)
+ }
+ // Read absolute symlink
+ symlink = filepath.Join(dir, "abs")
+ target, err = os.Readlink(symlink)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if target != "/a/b/c/d" {
+ t.Errorf("Unexpected link target: %s\n", target)
+ }
+ // Test directory operations
+ test_helpers.TestRename(t, dir)
+ test_helpers.TestMkdirRmdir(t, dir)
+}
+
+// checkExampleFSLongnames - verify that "dir" contains the expected test files
+// plus the long file name test file
+func checkExampleFSLongnames(t *testing.T, dir string) {
+ // regular tests
+ checkExampleFS(t, dir)
+ // long name test file
+ longname := "longname_255_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +
+ "xxxxxxxxxxxxxxxxxxxxxxxx"
+ contentBytes, err := ioutil.ReadFile(filepath.Join(dir, longname))
+ if err != nil {
+ t.Fatal(err)
+ }
+ content := string(contentBytes)
+ if content != statusTxtContent {
+ t.Errorf("longname_255: unexpected content: %s\n", content)
+ }
+
+}
+
+// Test example_filesystems/v0.4
+// with password mount and -masterkey mount
+func TestExampleFSv04(t *testing.T) {
+ pDir := test_helpers.TmpDir + "TestExampleFsV04/"
+ cDir := "v0.4"
+ err := os.Mkdir(pDir, 0777)
+ if err != nil {
+ t.Fatal(err)
+ }
+ test_helpers.MountOrFatal(t, cDir, pDir, "-extpass", "echo test")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ test_helpers.MountOrFatal(t, cDir, pDir, "-masterkey", "74676e34-0b47c145-00dac61a-17a92316-"+
+ "bb57044c-e205b71f-65f4fdca-7cabd4b3", "-diriv=false", "-emenames=false", "-gcmiv128=false")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ err = os.Remove(pDir)
+ if err != nil {
+ t.Error(err)
+ }
+}
+
+// Test example_filesystems/v0.5
+// with password mount and -masterkey mount
+func TestExampleFSv05(t *testing.T) {
+ pDir := test_helpers.TmpDir + "TestExampleFsV05/"
+ cDir := "v0.5"
+ err := os.Mkdir(pDir, 0777)
+ if err != nil {
+ t.Fatal(err)
+ }
+ test_helpers.MountOrFatal(t, cDir, pDir, "-extpass", "echo test")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ test_helpers.MountOrFatal(t, cDir, pDir, "-masterkey", "199eae55-36bff4af-83b9a3a2-4fa16f65-"+
+ "1549ccdb-2d08d1f0-b1b26965-1b61f896", "-emenames=false", "-gcmiv128=false")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ err = os.Remove(pDir)
+ if err != nil {
+ t.Error(err)
+ }
+}
+
+// Test example_filesystems/v0.6
+// with password mount and -masterkey mount
+func TestExampleFSv06(t *testing.T) {
+ pDir := test_helpers.TmpDir + "TestExampleFsV06/"
+ cDir := "v0.6"
+ err := os.Mkdir(pDir, 0777)
+ if err != nil {
+ t.Fatal(err)
+ }
+ test_helpers.MountOrFatal(t, cDir, pDir, "-extpass", "echo test")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ test_helpers.MountOrFatal(t, cDir, pDir, "-masterkey", "7bc8deb0-5fc894ef-a093da43-61561a81-"+
+ "0e8dee83-fdc056a4-937c37dd-9df5c520", "-gcmiv128=false")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ err = os.Remove(pDir)
+ if err != nil {
+ t.Error(err)
+ }
+}
+
+// Test example_filesystems/v0.6-plaintextnames
+// with password mount and -masterkey mount
+// v0.6 changed the file name handling a lot, hence the explicit test case for
+// plaintextnames.
+func TestExampleFSv06PlaintextNames(t *testing.T) {
+ pDir := test_helpers.TmpDir + "TestExampleFsV06PlaintextNames/"
+ cDir := "v0.6-plaintextnames"
+ err := os.Mkdir(pDir, 0777)
+ if err != nil {
+ t.Fatal(err)
+ }
+ test_helpers.MountOrFatal(t, cDir, pDir, "-extpass", "echo test")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ test_helpers.MountOrFatal(t, cDir, pDir, "-masterkey", "f4690202-595e4593-64c4f7e0-4dddd7d1-"+
+ "303147f9-0ca8aea2-966341a7-52ea8ae9", "-plaintextnames", "-gcmiv128=false")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ err = os.Remove(pDir)
+ if err != nil {
+ t.Error(err)
+ }
+}
+
+// Test example_filesystems/v0.7
+// with password mount and -masterkey mount
+// v0.7 adds 128 bit GCM IVs
+func TestExampleFSv07(t *testing.T) {
+ pDir := test_helpers.TmpDir + "TestExampleFsV07/"
+ cDir := "v0.7"
+ err := os.Mkdir(pDir, 0777)
+ if err != nil {
+ t.Fatal(err)
+ }
+ test_helpers.MountOrFatal(t, cDir, pDir, "-extpass", "echo test")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ test_helpers.MountOrFatal(t, cDir, pDir, "-masterkey", "ed7f6d83-40cce86c-0e7d79c2-a9438710-"+
+ "575221bf-30a0eb60-2821fa8f-7f3123bf")
+ checkExampleFS(t, pDir)
+ test_helpers.Unmount(pDir)
+ err = os.Remove(pDir)
+ if err != nil {
+ t.Error(err)
+ }
+}
+
+// Test example_filesystems/v0.9
+// (gocryptfs v0.9 introduced long file name support)
+func TestExampleFSv09(t *testing.T) {
+ cDir := "v0.9"
+ pDir := test_helpers.TmpDir + "TestExampleFsV09/"
+ err := os.Mkdir(pDir, 0777)
+ if err != nil {
+ t.Fatal(err)
+ }
+ test_helpers.MountOrFatal(t, cDir, pDir, "-extpass", "echo test")
+ checkExampleFSLongnames(t, pDir)
+ test_helpers.Unmount(pDir)
+ test_helpers.MountOrFatal(t, cDir, pDir, "-masterkey", "1cafe3f4-bc316466-2214c47c-ecd89bf3-"+
+ "4e078fe4-f5faeea7-8b7cab02-884f5e1c")
+ checkExampleFSLongnames(t, pDir)
+ test_helpers.Unmount(pDir)
+ err = os.Remove(pDir)
+ if err != nil {
+ t.Error(err)
+ }
+}
diff --git a/tests/example_filesystems/rel b/tests/example_filesystems/rel
new file mode 120000
index 0000000..8279c75
--- /dev/null
+++ b/tests/example_filesystems/rel
@@ -0,0 +1 @@
+status.txt \ No newline at end of file
diff --git a/tests/example_filesystems/status.txt b/tests/example_filesystems/status.txt
new file mode 100644
index 0000000..68300b8
--- /dev/null
+++ b/tests/example_filesystems/status.txt
@@ -0,0 +1 @@
+It works!
diff --git a/tests/example_filesystems/v0.4/3-HZSwv99agoWgTErV0YFQ== b/tests/example_filesystems/v0.4/3-HZSwv99agoWgTErV0YFQ==
new file mode 100644
index 0000000..5d0af82
--- /dev/null
+++ b/tests/example_filesystems/v0.4/3-HZSwv99agoWgTErV0YFQ==
Binary files differ
diff --git a/tests/example_filesystems/v0.4/6hL2fPVB2aMSh4-UoDn5Kw== b/tests/example_filesystems/v0.4/6hL2fPVB2aMSh4-UoDn5Kw==
new file mode 120000
index 0000000..31b9013
--- /dev/null
+++ b/tests/example_filesystems/v0.4/6hL2fPVB2aMSh4-UoDn5Kw==
@@ -0,0 +1 @@
+3-HZSwv99agoWgTErV0YFQ== \ No newline at end of file
diff --git a/tests/example_filesystems/v0.4/TBIgdfhDKwkXVTnWLVzFSg== b/tests/example_filesystems/v0.4/TBIgdfhDKwkXVTnWLVzFSg==
new file mode 120000
index 0000000..7a15694
--- /dev/null
+++ b/tests/example_filesystems/v0.4/TBIgdfhDKwkXVTnWLVzFSg==
@@ -0,0 +1 @@
+/tTXhw8tmmz4PK9YG21Whug==/Qe8z0HUArb5bZJjUqEo2Nw==/wv68UB9DLF9OfAcxgRKKtQ==/9No5n3deBUGa-BsvPRi3DQ== \ No newline at end of file
diff --git a/tests/example_filesystems/v0.4/gocryptfs.conf b/tests/example_filesystems/v0.4/gocryptfs.conf
new file mode 100644
index 0000000..354b4bb
--- /dev/null
+++ b/tests/example_filesystems/v0.4/gocryptfs.conf
@@ -0,0 +1,12 @@
+{
+ "EncryptedKey": "He757VFOKOWbMJqJ7HBs67SMSi3Vu8/2vgWNI6j1tVo4JBlNvrQSw6KkCh0lGrHrh6ICbPv4MyoyFdGa",
+ "ScryptObject": {
+ "Salt": "MeHSsxsnJwngAwptNzuXQlj7JtF1b0uzZuWvVV3cH3w=",
+ "N": 65536,
+ "R": 8,
+ "P": 1,
+ "KeyLen": 32
+ },
+ "Version": 2,
+ "FeatureFlags": null
+} \ No newline at end of file
diff --git a/tests/example_filesystems/v0.5/AOtl_i4xQWDyG0_zUqntOw== b/tests/example_filesystems/v0.5/AOtl_i4xQWDyG0_zUqntOw==
new file mode 120000
index 0000000..7c52a28
--- /dev/null
+++ b/tests/example_filesystems/v0.5/AOtl_i4xQWDyG0_zUqntOw==
@@ -0,0 +1 @@
+LFInXW9Djd1p8VfnwbhBaQy7MowhfNUDhsPPXXEiAfrfaVar6Ec= \ No newline at end of file
diff --git a/tests/example_filesystems/v0.5/Pf35wlWlf43N68EbhIgTcQ== b/tests/example_filesystems/v0.5/Pf35wlWlf43N68EbhIgTcQ==
new file mode 120000
index 0000000..596cc3d
--- /dev/null
+++ b/tests/example_filesystems/v0.5/Pf35wlWlf43N68EbhIgTcQ==
@@ -0,0 +1 @@
+OrWiZIVoBo4qbbJdsPy1MCwlvGTE4t_ackP4lbcLdKiTA-Zf \ No newline at end of file
diff --git a/tests/example_filesystems/v0.5/gocryptfs.conf b/tests/example_filesystems/v0.5/gocryptfs.conf
new file mode 100644
index 0000000..f839664
--- /dev/null
+++ b/tests/example_filesystems/v0.5/gocryptfs.conf
@@ -0,0 +1,14 @@
+{
+ "EncryptedKey": "zIY8foMncKrAG8USA1/AQ+R8z+xRge3QZqDpGRIDAeNOkMeQQsnMsJzFJbZHcGlRbUye0CwRghR/UX4R",
+ "ScryptObject": {
+ "Salt": "BFQklFzt3j9ZDa8zcR9pwHfa8nDdLqyCzNp5kA+V6Y0=",
+ "N": 1024,
+ "R": 8,
+ "P": 1,
+ "KeyLen": 32
+ },
+ "Version": 2,
+ "FeatureFlags": [
+ "DirIV"
+ ]
+} \ No newline at end of file
diff --git a/tests/example_filesystems/v0.5/gocryptfs.diriv b/tests/example_filesystems/v0.5/gocryptfs.diriv
new file mode 100644
index 0000000..3670294
--- /dev/null
+++ b/tests/example_filesystems/v0.5/gocryptfs.diriv
@@ -0,0 +1 @@
+VLlgk# \ No newline at end of file
diff --git a/tests/example_filesystems/v0.5/j2BpGUT5kOtia20PWQ2rEA== b/tests/example_filesystems/v0.5/j2BpGUT5kOtia20PWQ2rEA==
new file mode 100644
index 0000000..1ad2358
--- /dev/null
+++ b/tests/example_filesystems/v0.5/j2BpGUT5kOtia20PWQ2rEA==
Binary files differ
diff --git a/tests/example_filesystems/v0.6-plaintextnames/abs b/tests/example_filesystems/v0.6-plaintextnames/abs
new file mode 120000
index 0000000..e1740fa
--- /dev/null
+++ b/tests/example_filesystems/v0.6-plaintextnames/abs
@@ -0,0 +1 @@
+/a/b/c/d \ No newline at end of file
diff --git a/tests/example_filesystems/v0.6-plaintextnames/gocryptfs.conf b/tests/example_filesystems/v0.6-plaintextnames/gocryptfs.conf
new file mode 100644
index 0000000..257b7ee
--- /dev/null
+++ b/tests/example_filesystems/v0.6-plaintextnames/gocryptfs.conf
@@ -0,0 +1,14 @@
+{
+ "EncryptedKey": "SoTMt+DMqVDia42c7cx8YW6KrnzF9EQVYIq5DGR1yFqNKxtOCBIuXEIKJHYSw1Z8VluKRQmkugTOvyTU",
+ "ScryptObject": {
+ "Salt": "83wR2p5eDPtozsP48vizN1rAbYeXOtksvwoAZ9Y0vn4=",
+ "N": 1024,
+ "R": 8,
+ "P": 1,
+ "KeyLen": 32
+ },
+ "Version": 2,
+ "FeatureFlags": [
+ "PlaintextNames"
+ ]
+} \ No newline at end of file
diff --git a/tests/example_filesystems/v0.6-plaintextnames/rel b/tests/example_filesystems/v0.6-plaintextnames/rel
new file mode 120000
index 0000000..8279c75
--- /dev/null
+++ b/tests/example_filesystems/v0.6-plaintextnames/rel
@@ -0,0 +1 @@
+status.txt \ No newline at end of file
diff --git a/tests/example_filesystems/v0.6-plaintextnames/status.txt b/tests/example_filesystems/v0.6-plaintextnames/status.txt
new file mode 100644
index 0000000..e5b62fb
--- /dev/null
+++ b/tests/example_filesystems/v0.6-plaintextnames/status.txt
Binary files differ
diff --git a/tests/example_filesystems/v0.6/9pOs0yjJI5A67pv5CnqomQ== b/tests/example_filesystems/v0.6/9pOs0yjJI5A67pv5CnqomQ==
new file mode 120000
index 0000000..11b0234
--- /dev/null
+++ b/tests/example_filesystems/v0.6/9pOs0yjJI5A67pv5CnqomQ==
@@ -0,0 +1 @@
+OoEsnmmWQzBSl3E471yZkI2t2vB4SteL_l1J60HYXZ7g0W3CkTM= \ No newline at end of file
diff --git a/tests/example_filesystems/v0.6/G79Zdu41H3bgwdaQlrz-dg== b/tests/example_filesystems/v0.6/G79Zdu41H3bgwdaQlrz-dg==
new file mode 120000
index 0000000..b72a393
--- /dev/null
+++ b/tests/example_filesystems/v0.6/G79Zdu41H3bgwdaQlrz-dg==
@@ -0,0 +1 @@
+4IGGj21t4IYWI76F46v3gG-JwTcw_QxGDFMSk_19bJav2WNw \ No newline at end of file
diff --git a/tests/example_filesystems/v0.6/RuYvQG_raW_-H_LcyJC4LQ== b/tests/example_filesystems/v0.6/RuYvQG_raW_-H_LcyJC4LQ==
new file mode 100644
index 0000000..5821d87
--- /dev/null
+++ b/tests/example_filesystems/v0.6/RuYvQG_raW_-H_LcyJC4LQ==
Binary files differ
diff --git a/tests/example_filesystems/v0.6/gocryptfs.conf b/tests/example_filesystems/v0.6/gocryptfs.conf
new file mode 100644
index 0000000..1c72781
--- /dev/null
+++ b/tests/example_filesystems/v0.6/gocryptfs.conf
@@ -0,0 +1,15 @@
+{
+ "EncryptedKey": "/PhLwDblkFRGfoIA0egXikG0ZSZTWrOOoFZJPPX0R8JgU5+XnT2M2rxUzHIKKeuGoqZN55phgJjhTu0J",
+ "ScryptObject": {
+ "Salt": "YSHRXpcWYp95npMxAy9cf27LoaPR3gvrFpk3Xhg2tM8=",
+ "N": 1024,
+ "R": 8,
+ "P": 1,
+ "KeyLen": 32
+ },
+ "Version": 2,
+ "FeatureFlags": [
+ "DirIV",
+ "EMENames"
+ ]
+} \ No newline at end of file
diff --git a/tests/example_filesystems/v0.6/gocryptfs.diriv b/tests/example_filesystems/v0.6/gocryptfs.diriv
new file mode 100644
index 0000000..ec9f503
--- /dev/null
+++ b/tests/example_filesystems/v0.6/gocryptfs.diriv
@@ -0,0 +1 @@
+('<7Q \ No newline at end of file
diff --git a/tests/example_filesystems/v0.7/4tRF1LdULRFLiXwfze671Q== b/tests/example_filesystems/v0.7/4tRF1LdULRFLiXwfze671Q==
new file mode 120000
index 0000000..f06d136
--- /dev/null
+++ b/tests/example_filesystems/v0.7/4tRF1LdULRFLiXwfze671Q==
@@ -0,0 +1 @@
+_IdSjAmPQOJW6QkskuyQJS9bFTjntqx9kdg4Z3y8EzKBnIb_Ihqz4w== \ No newline at end of file
diff --git a/tests/example_filesystems/v0.7/RWPXmXkRFrWw1aOpq7C-NQ== b/tests/example_filesystems/v0.7/RWPXmXkRFrWw1aOpq7C-NQ==
new file mode 100644
index 0000000..6ddcd1e
--- /dev/null
+++ b/tests/example_filesystems/v0.7/RWPXmXkRFrWw1aOpq7C-NQ==
Binary files differ
diff --git a/tests/example_filesystems/v0.7/dwPcZNei4HN4qPA6FxoG_A== b/tests/example_filesystems/v0.7/dwPcZNei4HN4qPA6FxoG_A==
new file mode 120000
index 0000000..c0c731f
--- /dev/null
+++ b/tests/example_filesystems/v0.7/dwPcZNei4HN4qPA6FxoG_A==
@@ -0,0 +1 @@
+Ygqk_pYyxE_ac_ufVgxKCPxWHMGqQ8xUohIaHcmgeLU4uQB3_UmicPKB \ No newline at end of file
diff --git a/tests/example_filesystems/v0.7/gocryptfs.conf b/tests/example_filesystems/v0.7/gocryptfs.conf
new file mode 100644
index 0000000..80c2673
--- /dev/null
+++ b/tests/example_filesystems/v0.7/gocryptfs.conf
@@ -0,0 +1,16 @@
+{
+ "EncryptedKey": "0crm+qEf00XPxQrc8NIMp/0rgfaLb8wzTj+3G1slSytjsLHctj/fOKkGJIFyBk7xzvnWdkhyxxvHgfMS",
+ "ScryptObject": {
+ "Salt": "yZn+QMjR2ENZ6MoiURpqEqr8mgnCX8WN87KJafgiXhU=",
+ "N": 1024,
+ "R": 8,
+ "P": 1,
+ "KeyLen": 32
+ },
+ "Version": 2,
+ "FeatureFlags": [
+ "GCMIV128",
+ "DirIV",
+ "EMENames"
+ ]
+} \ No newline at end of file
diff --git a/tests/example_filesystems/v0.7/gocryptfs.diriv b/tests/example_filesystems/v0.7/gocryptfs.diriv
new file mode 100644
index 0000000..3adef3c
--- /dev/null
+++ b/tests/example_filesystems/v0.7/gocryptfs.diriv
@@ -0,0 +1 @@
+iȤ\?=Mc \ No newline at end of file
diff --git a/tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA== b/tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA==
new file mode 120000
index 0000000..c717734
--- /dev/null
+++ b/tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA==
@@ -0,0 +1 @@
+5nI119EbCRtgT8AwTDPmxCuORvbGV4xdtmqnur7KK9ufir-ALyneV7Iy \ No newline at end of file
diff --git a/tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg== b/tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg==
new file mode 100644
index 0000000..1bc4a81
--- /dev/null
+++ b/tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg==
Binary files differ
diff --git a/tests/example_filesystems/v0.9/gocryptfs.conf b/tests/example_filesystems/v0.9/gocryptfs.conf
new file mode 100644
index 0000000..4d9b089
--- /dev/null
+++ b/tests/example_filesystems/v0.9/gocryptfs.conf
@@ -0,0 +1,17 @@
+{
+ "EncryptedKey": "sAB/dsiDbFBbMr7ppsB3Fu81hVr6BBxlcfY1wZYRHlRvRV2uwRdYAACNM39CDxLBHZuNjk9UyWh87McP",
+ "ScryptObject": {
+ "Salt": "3mphl9Hmhzd6exmc8Um0jOOCgR8hAYvbzbEpTnIEMPg=",
+ "N": 1024,
+ "R": 8,
+ "P": 1,
+ "KeyLen": 32
+ },
+ "Version": 2,
+ "FeatureFlags": [
+ "GCMIV128",
+ "DirIV",
+ "EMENames",
+ "LongNames"
+ ]
+} \ No newline at end of file
diff --git a/tests/example_filesystems/v0.9/gocryptfs.diriv b/tests/example_filesystems/v0.9/gocryptfs.diriv
new file mode 100644
index 0000000..47d97ee
--- /dev/null
+++ b/tests/example_filesystems/v0.9/gocryptfs.diriv
@@ -0,0 +1 @@
+~HA|ԁ \ No newline at end of file
diff --git a/tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ= b/tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=
new file mode 100644
index 0000000..78eb3ff
--- /dev/null
+++ b/tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=
Binary files differ
diff --git a/tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name b/tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name
new file mode 100644
index 0000000..535cee7
--- /dev/null
+++ b/tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name
@@ -0,0 +1 @@
+Py7wkyXYf1YXvFvHuizOqva6WWWYEQ-JYv1rOAvWWaARLyGdQdxuW-iBf1Vwd8orZjqkcIGgnxOfuRsarXKmn4-3L2MRIZKPhhx2QRqpPRtFylEABH1KwZ_2ZZnx5cpcO8TIoeVdL6NXnRw-WrT06zTUzVRioNPRLPa0J6c8_eb5QFb4EG5wPpn-XlJSedjAw31MUNvFxKYQku_UwJF0CvvXLCozVnNM_dDNWsgBevzB8VBySbfW7XgYMRPJRlJe3Pjeues9tyGJvAxGJVjfo4nZyWusMF2G4f9w06m3Bxjc7ladgJR6F6pyI4Z65DCIL7G6G2y__agmNcKtFwCS_Q== \ No newline at end of file
diff --git a/tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg== b/tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg==
new file mode 120000
index 0000000..4190a7e
--- /dev/null
+++ b/tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg==
@@ -0,0 +1 @@
+XRx7Nqxt_zuPNo7h8_j1LLVzqzIZg9qAYGRN9Iuq3XBc11Y7_RoQsg== \ No newline at end of file