aboutsummaryrefslogtreecommitdiff
path: root/test.bash
AgeCommit message (Collapse)Author
2021-08-19Fix issues found by "go vet"Jakob Unterwurzacher
Issues were: # github.com/rfjakob/gocryptfs/contrib/findholes/holes contrib/findholes/holes/holes.go:136:2: unreachable code # github.com/rfjakob/gocryptfs/tests/root_test_test tests/root_test/root_test.go:139:2: unreachable code Also make sure we actually run "go vet" against the whole codebase.
2021-03-12tests: add TestDiskFullJakob Unterwurzacher
Also fix incomplete uid restoration in TestSupplementaryGroups and replace syscall.Setregid and friends with unix.Setregid and friends. This test is added to check if have problems handling a full disk. The ticket https://github.com/rfjakob/gocryptfs/issues/550 states that the full disk was not where the backing gocryptfs filesystem was, but this has no effect on gocryptfs, so we test the harder case.
2021-02-06syscallcompat: MknodatUser: work around changed syscall.Setgroups semanticsJakob Unterwurzacher
Since go1.16beta1 (commit d1b1145cace8b968307f9311ff611e4bb810710c , https://go-review.googlesource.com/c/go/+/210639 ) syscall.{Setgroups,Setregid,Setreuid} affects all threads, which is exactly what we not want. We now use unix.{Setgroups,Setregid,Setreuid} instead. Workarounds https://github.com/golang/go/issues/1435 .
2020-04-13travis: fix Go Modules build problemsJakob Unterwurzacher
2020-04-13Convert build and packaging scripts to Go ModulesJakob Unterwurzacher
2020-04-13shellcheck: make top-level bash scripts warning-freeJakob Unterwurzacher
And run shellcheck in test.bash.
2019-10-06test.bash: export TMPDIRJakob Unterwurzacher
We have to export TMPDIR, otherwise the Go tests to not pick it up.
2019-10-06tests: use /var/tmp by defaultJakob Unterwurzacher
On Fedora, /tmp is tmpfs, which behaves differently than ext4 (inode numbers are never reused, for example). Use /var/tmp, which is ext4 on Fedora, to get a more realistic test environment. This also allows us to drop the xattr workaround.
2019-05-01tests: split testParentDir by UIDJakob Unterwurzacher
When we run tests as root, they will leave root-owned files in testParentDir, which causes trouble when we run tests as a normal user later on. Split by UID.
2019-03-31test.bash: pass flags on to "go vet"Jakob Unterwurzacher
Fixes this problem when openssl headers are not installed: $ ./test-without-openssl.bash gocryptfs v1.7-11-g8f2723b without_openssl; go-fuse v1.0.0-133-gcc423d1; 2019-03-31 go1.12.1 Package libcrypto was not found in the pkg-config search path. Perhaps you should add the directory containing `libcrypto.pc' to the PKG_CONFIG_PATH environment variable No package 'libcrypto' found pkg-config: exit status 1
2019-03-02Go 1.12 dropped "go tool vet", use "go vet" insteadJakob Unterwurzacher
Also add Go 1.12 to Travis.
2018-10-10tests: respect TMPDIR if setJakob Unterwurzacher
Setting TMPDIR now allows to run the tests against a directory of your choice, making it easier to test different filesystems.
2018-07-01main: replace naked panic with log.PanicJakob Unterwurzacher
Fix the check that failed to find the case as well.
2018-03-06tests: exit with error if we have leftover filesystemsJakob Unterwurzacher
2018-03-06tests: macos: try to unmount before rm -RfJakob Unterwurzacher
macos does not have "rm --one-file-system", so try to unmount all remaining test filesystems to protect the backing stores. https://github.com/rfjakob/gocryptfs/issues/213
2018-03-05macos: tests: fix deleting of scratch dirJakob Unterwurzacher
macos rm does not understand --one-file-system, and it cannot handle unreadable directories.
2018-03-05test.bash: Don't build with openssl if we were passed "-tags without_openssl"Jakob Unterwurzacher
test-without-openssl.bash now fails, as it should: gocryptfs has been compiled without openssl support but you are still trying to use openssl mount failed: exit status 18 FAIL github.com/rfjakob/gocryptfs/tests/matrix 1.943s
2018-03-05test-without-openssl: accept extra argsJakob Unterwurzacher
Accept extra args, like test.bash does.
2018-03-05test.bash: skip flock if not availableJakob Unterwurzacher
MacOS does not have it installed by default.
2018-02-26test.bash: disable result cachingJakob Unterwurzacher
Go 1.10 has introduced test result caching and enabled it by default. This does not work properly for our integration tests because they test the compiled binary and do not have a source level dependency on the gocryptfs code. Disable caching.
2017-11-12test.bash: don't run "go tool vet" if vendor dir existsJakob Unterwurzacher
...this fails in a thousand ways: [...] vendor/golang.org/x/crypto/sha3/keccakf_amd64.s:324: [amd64] keccakF1600: unknown variable state; offset 0 is a+0(FP) vendor/golang.org/x/crypto/ssh/certs.go:172: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/certs.go:166 vendor/golang.org/x/crypto/ssh/certs.go:187: declaration of "rest" shadows declaration at vendor/golang.org/x/crypto/ssh/certs.go:161 vendor/golang.org/x/crypto/ssh/certs.go:187: declaration of "ok" shadows declaration at vendor/golang.org/x/crypto/ssh/certs.go:161 vendor/golang.org/x/crypto/ssh/client_auth.go:226: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/client_auth.go:193 vendor/golang.org/x/crypto/ssh/client_auth.go:394: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/client_auth.go:380 vendor/golang.org/x/crypto/ssh/client_auth.go:405: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/client_auth.go:380 vendor/golang.org/x/crypto/ssh/handshake.go:566: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/handshake.go:547 vendor/golang.org/x/crypto/ssh/handshake.go:592: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/handshake.go:547 vendor/golang.org/x/crypto/ssh/handshake.go:630: declaration of "err" shadows declaration at vendor/golang.org/x/crypto/ssh/handshake.go:620 [...]
2017-10-22Revert "test.bash: use "go vet" instead of "go tool vet""Jakob Unterwurzacher
"go vet" on Go 1.8 and older does not support flags: $ go version go version go1.8.3 linux/amd64 $ ./test.bash gocryptfs v1.4.1-27-g8c1b363 without_openssl; go-fuse v20170619-21-gcf21bc2; 2017-10-22 go1.8.3 gocryptfs v1.4.1-27-g8c1b363; go-fuse v20170619-21-gcf21bc2; 2017-10-22 go1.8.3 flag provided but not defined: -all usage: vet [-n] [-x] [build flags] [packages] Vet runs the Go vet command on the packages named by the import paths. For more about vet, see 'go doc cmd/vet'. For more about specifying packages, see 'go help packages'. To run the vet tool with specific options, run 'go tool vet'. The -n flag prints commands that would be executed. The -x flag prints commands as they are executed. For more about build flags, see 'go help build'. See also: go fmt, go fix. This reverts commit a1170be979cb75da11e84f45f67d3f5468d97669.
2017-10-22test.bash: use "go vet" instead of "go tool vet"Jakob Unterwurzacher
"go vet" automatically skips the vendor directory. "go tool vet" does not, and it will complain about a lot of things in there.
2017-04-30golint.bash: fix exit codesJakob Unterwurzacher
We want to exit with 1 only if we we have complaints left after the greps.
2017-03-05test.bash: execute build-without-openssl.bash instead of sourcing itJakob Unterwurzacher
Sourcing the script breaks the "cd $(dirname $0)" logic in build-without-openssl.bash.
2017-02-17tests.bash: OSX compat: use "flock -n" and skip openssl buildJakob Unterwurzacher
Mac OS X flock does not support "--nonblock", but does support "-n": https://github.com/discoteq/flock/blob/master/man/flock.1.ronn Skip the openssl build because it requires 1) openssl 2) fixing the import paths in gocryptfs Reported at https://github.com/rfjakob/gocryptfs/issues/15#issuecomment-280464400
2017-02-16tests: OSX compat: use "mount" command instead of /proc/mountsJakob Unterwurzacher
Mac OS X does not have /proc. Reported at https://github.com/rfjakob/gocryptfs/issues/15#issuecomment-279130217
2017-02-15OSX compat: replace fusermount calls with fuse-unmount.bashJakob Unterwurzacher
Mac OS X does not have fusermount and uses umount instead. The fuse-unmount.bash calls the appropriate command.
2017-01-03test.bash: don't let the test process inherit the lock fileJakob Unterwurzacher
This meant that dangling mounts (and gocryptfs processes) kept the lock open.
2016-12-10test.bash: call vet earlyJakob Unterwurzacher
2016-12-10stupidgcm: Fix without_openssl build failureJakob Unterwurzacher
Also, always call build-without-openssl.bash from test.bash. Failure was: internal/stupidgcm/without_openssl.go:29: missing return at end of function
2016-12-10test.bash: check for naked "panic()" callsJakob Unterwurzacher
2016-11-26test.bash: lock against multiple parallel incovationsJakob Unterwurzacher
Running multiple test.bash in parallel causes all kinds of mayham.
2016-10-08tests: unmount leftover filesystems before starting the testsJakob Unterwurzacher
A panic during the tests can leave mounted filesystems behind.
2016-10-04tests: skip "go tool vet" if the command is not availableJakob Unterwurzacher
"vet" is not availably by default on Go 1.4.
2016-09-25tests: enable all go vet checksJakob Unterwurzacher
...and fix reported errors: internal/fusefrontend_reverse/rfile.go:40: github.com/rfjakob/gocryptfs/internal/contentenc.FileHeader composite literal uses unkeyed fields internal/fusefrontend_reverse/rfs.go:249: github.com/hanwen/go-fuse/fuse.DirEntry composite literal uses unkeyed fields internal/fusefrontend_reverse/rfs.go:264: github.com/hanwen/go-fuse/fuse.DirEntry composite literal uses unkeyed fields
2016-09-25reverse: add gcmsiv flag and associated testsJakob Unterwurzacher
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-04-10Fix "go tool vet -shadow=true" warningsJakob Unterwurzacher
Among those one real bug.
2016-02-06test.bash: Accept flagsJakob Unterwurzacher
2016-02-06Fix tests - were broken by the refactoringJakob Unterwurzacher
2016-02-06Major refactoring: Split up "cryptfs" into several internal packagesJakob Unterwurzacher
"git status" for reference: deleted: cryptfs/cryptfs.go deleted: cryptfs/names_core.go modified: integration_tests/cli_test.go modified: integration_tests/helpers.go renamed: cryptfs/config_file.go -> internal/configfile/config_file.go renamed: cryptfs/config_test.go -> internal/configfile/config_test.go renamed: cryptfs/config_test/.gitignore -> internal/configfile/config_test/.gitignore renamed: cryptfs/config_test/PlaintextNames.conf -> internal/configfile/config_test/PlaintextNames.conf renamed: cryptfs/config_test/StrangeFeature.conf -> internal/configfile/config_test/StrangeFeature.conf renamed: cryptfs/config_test/v1.conf -> internal/configfile/config_test/v1.conf renamed: cryptfs/config_test/v2.conf -> internal/configfile/config_test/v2.conf renamed: cryptfs/kdf.go -> internal/configfile/kdf.go renamed: cryptfs/kdf_test.go -> internal/configfile/kdf_test.go renamed: cryptfs/cryptfs_content.go -> internal/contentenc/content.go new file: internal/contentenc/content_api.go renamed: cryptfs/content_test.go -> internal/contentenc/content_test.go renamed: cryptfs/file_header.go -> internal/contentenc/file_header.go renamed: cryptfs/intrablock.go -> internal/contentenc/intrablock.go renamed: cryptfs/address_translation.go -> internal/contentenc/offsets.go new file: internal/cryptocore/crypto_api.go renamed: cryptfs/gcm_go1.4.go -> internal/cryptocore/gcm_go1.4.go renamed: cryptfs/gcm_go1.5.go -> internal/cryptocore/gcm_go1.5.go renamed: cryptfs/nonce.go -> internal/cryptocore/nonce.go renamed: cryptfs/openssl_aead.go -> internal/cryptocore/openssl_aead.go renamed: cryptfs/openssl_benchmark.bash -> internal/cryptocore/openssl_benchmark.bash renamed: cryptfs/openssl_test.go -> internal/cryptocore/openssl_test.go new file: internal/nametransform/name_api.go new file: internal/nametransform/names_core.go renamed: cryptfs/names_diriv.go -> internal/nametransform/names_diriv.go renamed: cryptfs/names_noiv.go -> internal/nametransform/names_noiv.go renamed: cryptfs/names_test.go -> internal/nametransform/names_test.go new file: internal/nametransform/pad16.go renamed: cryptfs/log.go -> internal/toggledlog/log.go renamed: cryptfs/log_go1.4.go -> internal/toggledlog/log_go1.4.go renamed: cryptfs/log_go1.5.go -> internal/toggledlog/log_go1.5.go modified: main.go modified: masterkey.go modified: pathfs_frontend/file.go modified: pathfs_frontend/file_holes.go modified: pathfs_frontend/fs.go modified: pathfs_frontend/fs_dir.go modified: pathfs_frontend/names.go modified: test.bash
2016-01-09Make test.bash work when called from outside the gocryptfs directoryJakob Unterwurzacher
Also, get rid of useless intermediate build step
2015-11-12tests: move integration tests to separate directoryJakob Unterwurzacher
Also, use new "-defaultonly" flag for benchmarks (only tests with openssl=true plaintextnames=false)
2015-11-03tests: reduce noise but make test.bash accept "-v"Jakob Unterwurzacher
2015-11-01Update test.bash to call build.bashv0.3.1Jakob Unterwurzacher
This makes sure the version number is baked into the binary that is built
2015-11-01Refactor ciphertext <-> plaintext offset translation functionsJakob Unterwurzacher
Move all the intelligence into the new file address_translation.go. That the calculations were spread out too much became apparent when adding the file header. This should make the code much easier to modify in the future.
2015-11-01tests: run unit tests before integration testsJakob Unterwurzacher
2015-10-11Fix helper scripts for new top-level pathJakob Unterwurzacher
2015-10-07Add test.bashv0.1Jakob Unterwurzacher
...also adapt the cryptfs tests for 256 bit long keys