From 72f8915843c5308336534d90286d2199c5d8932c Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sat, 4 Jun 2016 14:57:01 +0200 Subject: [PATCH] tests: add v0.9 example filesystem with a 255-byte filename gocryptfs v0.9 introduced long file names, so lets add an example filesystem that has that feature flag set. Operations on long file names are tested in the regular integration tests as well. --- .../v0.9/00msNUi5h5aKMX_f-4pBhA== | 1 + .../v0.9/R83PhW-BBA_q4rPYD7dEMg== | Bin 0 -> 60 bytes .../example_filesystems/v0.9/gocryptfs.conf | 17 +++++++ .../example_filesystems/v0.9/gocryptfs.diriv | 1 + ...J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ= | Bin 0 -> 60 bytes ...BX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name | 1 + .../v0.9/hwE1RKIXtF8hmQMvEXSTtg== | 1 + integration_tests/example_filesystems_test.go | 46 +++++++++++++++++- 8 files changed, 65 insertions(+), 2 deletions(-) create mode 120000 integration_tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA== create mode 100644 integration_tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg== create mode 100644 integration_tests/example_filesystems/v0.9/gocryptfs.conf create mode 100644 integration_tests/example_filesystems/v0.9/gocryptfs.diriv create mode 100644 integration_tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ= create mode 100644 integration_tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name create mode 120000 integration_tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg== diff --git a/integration_tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA== b/integration_tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA== new file mode 120000 index 0000000..c717734 --- /dev/null +++ b/integration_tests/example_filesystems/v0.9/00msNUi5h5aKMX_f-4pBhA== @@ -0,0 +1 @@ +5nI119EbCRtgT8AwTDPmxCuORvbGV4xdtmqnur7KK9ufir-ALyneV7Iy \ No newline at end of file diff --git a/integration_tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg== b/integration_tests/example_filesystems/v0.9/R83PhW-BBA_q4rPYD7dEMg== new file mode 100644 index 0000000000000000000000000000000000000000..1bc4a8175da0927760c050785a52988bed864caa GIT binary patch literal 60 zcmV-C0K@+P0^57j+YfMsxgZL6sK#EUyJ#NPWRA@2;aOXaB8RYDM@oH&Wa1I_DmGl} SZ=gyBZUhP(*&qn1s%l3HC0aYGUQU{9c7I`03A*x#}4a!H-(=&$B5q- S)eU(9n;OJ_uBkM=V%1>6R2d}z literal 0 HcmV?d00001 diff --git a/integration_tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name b/integration_tests/example_filesystems/v0.9/gocryptfs.longname.y4J-w3LBX165Mn_pGdDRY7Gb6EgHcTrdWjME3WGu-CQ=.name new file mode 100644 index 0000000..535cee7 --- /dev/null +++ b/integration_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/integration_tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg== b/integration_tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg== new file mode 120000 index 0000000..4190a7e --- /dev/null +++ b/integration_tests/example_filesystems/v0.9/hwE1RKIXtF8hmQMvEXSTtg== @@ -0,0 +1 @@ +XRx7Nqxt_zuPNo7h8_j1LLVzqzIZg9qAYGRN9Iuq3XBc11Y7_RoQsg== \ No newline at end of file diff --git a/integration_tests/example_filesystems_test.go b/integration_tests/example_filesystems_test.go index 3beca60..e3df950 100644 --- a/integration_tests/example_filesystems_test.go +++ b/integration_tests/example_filesystems_test.go @@ -11,8 +11,7 @@ import ( const statusTxtContent = "It works!\n" -// checkStatusTxt - read file "filename" and verify that it contains -// "It works!\n" +// 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") @@ -47,6 +46,27 @@ func checkExampleFS(t *testing.T, dir string) { 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) { @@ -159,3 +179,25 @@ func TestExampleFSv07(t *testing.T) { t.Error(err) } } + +// Test example_filesystems/v0.9 +// (gocryptfs v0.9 introduced long file name support) +func TestExampleFSv09(t *testing.T) { + cDir := "example_filesystems/v0.9" + pDir := tmpDir + "TestExampleFsV09/" + err := os.Mkdir(pDir, 0777) + if err != nil { + t.Fatal(err) + } + mount(cDir, pDir, "-extpass", "echo test") + checkExampleFSLongnames(t, pDir) + unmount(pDir) + mount(cDir, pDir, "-masterkey", "1cafe3f4-bc316466-2214c47c-ecd89bf3-"+ + "4e078fe4-f5faeea7-8b7cab02-884f5e1c") + checkExampleFSLongnames(t, pDir) + unmount(pDir) + err = os.Remove(pDir) + if err != nil { + t.Error(err) + } +}