AgeCommit message (Collapse)AuthorLines
Make the home access test see a rendered pageBryce Kwon-2/+18
Nothing checked that the traced request worked, and one that failed early opened fewer files and passed. cgit unsets HOME, so a read that fell back on the account's entry in the password database would name that home rather than the missing one the test set. Under Valgrind every test would have failed, as strace follows valgrind into the .valgrindrc it reads from the home directory.
Let a test run require the tools it must not skipBryce Kwon-8/+8
Nothing could make a missing prerequisite fail. A host without pkg-config builds without Lua, and make test then passed with every Lua test skipped and the lua pass of t0201 never run. The whole-script skips become named prerequisites so the same list covers them, and the strace probe now traces the file class of calls the tests use, so an strace too old for it skips rather than fails.
Drop the exit lines that follow test_doneBryce Kwon-2/+0
test_done ends the script on every path, skip_all included.
Name the missing home without searching for oneBryce Kwon-10/+1
strace logs a call that names the path whether or not it succeeds, so a home that existed would still be caught, and cgit unsets HOME before git runs anyway.
Isolate git from HOME before git's own setupBryce Kwon-3/+4
Git reads the global config for its trace settings before cmd_main is reached, so the isolation there came too late and every request probed $HOME/.gitconfig. The home-access test had passed only because access is not a syscall of its own everywhere, so it now traces every call that takes a path.
Test the hardening passBryce Kwon-2/+3
Prefer POSIX forms throughout the test scriptsBryce Kwon-1/+1
Renumber the test scripts into themed rangesBryce Kwon-0/+0
The numbering walks outward from the ground the suite stands on. - t000x for the git version, html validity and the cache - t01xx for page content, one script per page - t02xx for filters, submodule links, dates and limits, which cut across pages - t03xx for defence, the security regressions and the $HOME promise - t04xx for the helper tools under tools/
Tidy the test comments and shell portabilityBryce Kwon-5/+18
git: update to v2.29.0Christian Hesse-1/+1
Update to git version v2.29.0, this requires changes for these upstream commits: * dbbcd44fb47347a3fdbee88ea21805b7f4ac0b98 strvec: rename files from argv-array to strvec * 873cd28a8b17ff21908c78c7929a7615f8c94992 argv-array: rename to strvec * d70a9eb611a9d242c1d26847d223b8677609305b strvec: rename struct fields * 6a67c759489e1025665adf78326e9e0d0981bab5 test-lib-functions: restrict test_must_fail usage Signed-off-by: Christian Hesse <mail@eworm.de>
tests: skip tests if strace is not functionalChristian Hesse-0/+6
Chances are that strace is available but not functional due to restricted permissions: strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Operation not permitted strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted +++ exited with 1 +++ Just skip the tests then. Signed-off-by: Christian Hesse <mail@eworm.de>
global: spelling fixesVille Skyttä-5/+5
Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
t0109: "function" is a bash-ismJohn Keeping-1/+1
We try to stick to POSIX shell in the tests but a "function" keyword has found its way into t0109. Remove it. This makes the tests work with dash again. Signed-off-by: John Keeping <john@keeping.me.uk>
ui-snapshot: do not access $HOMEJason A. Donenfeld-0/+1
It's a bit tedious to have to do this here too. If we encounter other issues with $HOME down the line, I'll look into adding some nice utility functions to handle this, or perhaps giving up on the hope that we could keep $HOME defined for scripts. This commit additionally adds a test case, should the issue surface again. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
t0109: test more URLsJohn Keeping-4/+20
In order to ensure that we don't access $HOME at some point after initial startup when rendering a specific view, run the strace test on a range of different pages. This ensures that we don't end up reading a configuration later for some specific view. Signed-off-by: John Keeping <john@keeping.me.uk>
t0109: chain operations with &&John Keeping-1/+1
Without '&&' between operations, we will not detect if strace or cgit exit with an error status, which would cause a false positive test status in this case. Signed-off-by: John Keeping <john@keeping.me.uk>
tests: Make sure that git does not access $HOMEJason A. Donenfeld-0/+25
With the latest changes to prevent git from accessing configuration files that it should not, it's important to be sure that we won't have further breakage in the future. Use strace to implement a test to make sure cgit does not access() anything built from $HOME. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>