aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2016-09-25Implement changes proposed by gosimple.Jakob Unterwurzacher
Also delete the unused "dirIVNameStruct", found by deadcode.
2016-09-25reverse: add symlink encryption and Readlink supportJakob Unterwurzacher
2016-09-25reverse: more thorough longname stat testJakob Unterwurzacher
Now also verifies the returned file size.
2016-09-25reverse: add gcmsiv flag and associated testsJakob Unterwurzacher
2016-09-25tests: smarter error handling in ResetTmpDirJakob Unterwurzacher
Look at the error code from os.Remove and decide about the right thing to do. Gets rid of spurious fusermount error messages.
2016-09-25reverse: add longname benchmarkJakob Unterwurzacher
2016-09-25tests: extractloop: use tmp dir based on script nameJakob Unterwurzacher
This is how this should be done as well in future test scripts.
2016-09-25tests: skip the nanosecond compare for nowJakob Unterwurzacher
2016-09-25tests: set the times on a symlinkJakob Unterwurzacher
This currently fails as reported in https://github.com/rfjakob/gocryptfs/issues/35 . Also remove the spurious sleep in the test.
2016-08-09tests: add TestUtimesNanoJakob Unterwurzacher
Make sure setting nanoseconds works by path and fd.
2016-07-16tests: add RSS tracking to extractloopJakob Unterwurzacher
This obsoletes loopback-mem.bash.
2016-07-16tests: factor out fs-agnostic benchmark scriptJakob Unterwurzacher
"canonical-benchmarks.bash TESTDIR" can now be used on any filesystem.
2016-07-16tests: add maxlen.bash helperJakob Unterwurzacher
Simple script that finds out the maximum supported filename length.
2016-07-14tests: add loopback-mem scriptJakob Unterwurzacher
Helps to find memory leaks in go-fuse's loopback, which gocryptfs builds upon.
2016-07-12tests: extractloop: add loopback supportJakob Unterwurzacher
loopback is an example app that comes with the go-fuse lib. It uses all the same APIs as gocryptfs, minus the encryption.
2016-07-11tests: add encfs support to benchmark.bash and extractloop.bashJakob Unterwurzacher
Pass "-encfs" to test encfs instead of gocryptfs.
2016-07-11tests: matrix: print name in verbose outputJakob Unterwurzacher
2016-07-11tests: add verbose output when unmountingJakob Unterwurzacher
2016-07-11tests: use unmount wrapper in ResetTmpDirJakob Unterwurzacher
This should make it work on OSX. Also, split unmount into two functions. Depending on what you want, * UnmountErr returns the resulting error * UnmountPanic panics if the error was not nil
2016-07-06tests: fix shadow warningJakob Unterwurzacher
"go tool vet -shadow=true" complained about the md5 package being shadowed by variables called "md5". Fix by using the Md5hex helper and dropping the md5 import.
2016-07-04tests: OSX: cast st.Blksize to int64Jakob Unterwurzacher
On Linux, Blksize is already int64. But on OSX it is int32 and that caused a compile failure. https://github.com/rfjakob/gocryptfs/issues/15
2016-07-03syscallcompat: OSX: add Fallocate and Openat wrappersJakob Unterwurzacher
...and convert all calls to syscall.{Fallocate,Openat} to syscallcompat . Both syscalls are not available on OSX. We emulate Openat and just return EOPNOTSUPP for Fallocate.
2016-07-02tests: call umount instead of fusermount on OSXJakob Unterwurzacher
Reported at https://github.com/rfjakob/gocryptfs/issues/15
2016-07-02fusefrontend: add fallocate supportJakob Unterwurzacher
Mode=0 (default) and mode=1 (keep size) are supported. The patch includes test cases and the whole thing passed xfstests. Fixes https://github.com/rfjakob/gocryptfs/issues/1 .
2016-07-01fusefrontend: coalesce grows in Truncate()Jakob Unterwurzacher
We were growing the file block-by-block which was pretty inefficient. We now coalesce all the grows into a single Ftruncate. Also simplifies the code! Simplistic benchmark: Before: $ time truncate -s 1000M foo real 0m0.568s After: $ time truncate -s 1000M foo real 0m0.205s
2016-06-30test: split up integration_testsJakob Unterwurzacher
...into "matrix" and "normal". Also: * Make running multiple packages in parallel safe, see http://stackoverflow.com/questions/23715302/go-how-to-run-tests-for-multiple-packages * Don't depent on test_helper.TmpDir and friends to have a terminating slash
2016-06-27tests: run example_filesystems with "-openssl=false" AND "=true"Jakob Unterwurzacher
Run the tests twice, once with openssl and once with Go crypto.
2016-06-27tests: give "-plaintextnames" its own test packageJakob Unterwurzacher
...and add tests for checking that gocryptfs.diriv does not get created. The main "integration_tests" package has become quite big and convoluted over time. This small separate package should make writing tests for "-plaintextnames" easier. As seen in "fusefrontend: fix PlaintextNames versions of Mkdir, Rmdir", we need more of them.
2016-06-26tests: add missing file "example_test_helpers.go"Jakob Unterwurzacher
This file was forgotten in commit "tests: make tests for unsupported FSs more compact".
2016-06-23Drop deprecated "-gcmiv128" optionJakob Unterwurzacher
The GCMIV128 feature flag is already mandatory, dropping the command line option is the final step. Completes https://github.com/rfjakob/gocryptfs/issues/29 .
2016-06-23tests: make tests for unsupported FSs more compactJakob Unterwurzacher
There is no need to test that deprecated command-line options produce an error. I trust the flags package. Also split the example_filesystem helper functions into a separate file.
2016-06-23Drop deprecated "-emenames" optionJakob Unterwurzacher
The EMENames feature flag is already mandatory, dropping the command line option is the final step.
2016-06-23Drop deprecated "-diriv" optionJakob Unterwurzacher
The DirIV feature flag is already mandatory, dropping the command line option is the final step.
2016-06-23tests: add v0.7-plaintextnames example filesystemJakob Unterwurzacher
The v0.6-plaintextnames example FS lacks the GCMIV128 feature flag, is no longer mountable and can no longer be used for testing. Add a new "-plaintextnames" filesystem created by gocryptfs v0.7. There have been no format changes to "-plaintextnames" since then.
2016-06-19tests: expect mount failure for v0.6 and older example filesystemsJakob Unterwurzacher
2016-06-16tests: adapt for read-only operationJakob Unterwurzacher
The v0.6 and older example filesystem are mounted read-only because they are deprecated, so skip the read-write tests.
2016-06-16tests: exit with correct error code from TestMainJakob Unterwurzacher
extpass_test and example_filesystems_test did it wrong, always returning 0.
2016-06-16Add "-ro" (read-only) flagJakob Unterwurzacher
From the man page: **-ro** : Mount the filesystem read-only Also add a test.
2016-06-16tests: add InitFS helperJakob Unterwurzacher
2016-06-15readpassword: create internal package for password readingJakob Unterwurzacher
* Supports stdin * Add tests for extpass and stdin As per user request at https://github.com/rfjakob/gocryptfs/issues/30
2016-06-14tests: spin off TestPasswd from TestInitJakob Unterwurzacher
Also, capture all stderr and stdout but pass "-q". This way we get to see error messages if there are any, or spurious output when there should be none due to "-q".
2016-06-09test: add pingpong.bash and pingping-rsync.bashJakob Unterwurzacher
Mounts two gocryptfs filesystems, "ping" and "pong" and moves the linux-3.0 kernel tree back and forth between them. When called as "pingpong-rsync.bash" it uses "rsync --remove-source-files" for moving the files, otherwise plain "mv".
2016-06-08fusefrontend: fix chown on dangling symlinksJakob Unterwurzacher
We (actually, go-fuse) used to call Chown() instead of Lchown() which meant that the operation would fail on dangling symlinks. Fix this by calling os.Lchown() ourself. Also add a test case for this.
2016-06-08tests: rename extractloop.md5sums to linux-3.0.md5sumsJakob Unterwurzacher
This file will also be used by other tests, so it should have a generic name.
2016-06-07tests: split example_filesystems into its own packageJakob Unterwurzacher
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.