| Age | Commit message (Collapse) | Author | Lines |
|
"The cache" promises that a negative ttl never expires, but no age was
ever below a negative cache-scan-ttl, so every request started a
background rescan.
|
|
readdir hands entries back in whatever order the filesystem keeps
them, so proj111 could come before proj105 and a section could start
twice. section-sort is off by default to keep the order written in
cgitrc, and a scan has none to keep.
|
|
Two cgitrc files sharing a cache-root read one list, so strict-export
and trust-scan-config set in one applied to the other, and a changed
setting stayed stale until the list expired. The first request after
an upgrade scans again, and the files under the old names are never
read.
|
|
|
|
Both tests passed or failed with the order in which cgit and the exec
filter happened to run, about one run in four under UBSan.
|
|
Scintillua's detect() matches an extension by its case, and the fallback
e227d1f dropped had lowercased it, so MAIN.C and SETUP.PY lost their
colour. The fake lexer now answers only for the suffixes it knows, as
Scintillua does, which is what lets the check see it.
|
|
|
|
|
|
|
|
It asks for a log page, and the index never carries a feed link.
|
|
|
|
|
|
|
|
|
|
The one-line request wrappers go with them. Configs with several
repositories, a key out of place on purpose, the cache on or no
repository of their own stay written out.
|
|
The helpers are named by kind. cgitrc_repo and cgitrc_copy write the
config file named first, and cgit_url, cgit_query and cgit_rc run cgit,
each named after what it is handed first. A repository copies its
defaults from the globals read before its repo.url, so cgitrc_repo
places every setting itself, and a global can no longer land where it
silently stops applying. The t00xx and t01xx files move to them here.
|
|
|
|
The download row was already matched on the same tag page, no fold can
sit between the message and the signature the check requires, and the
submodule row is the one the test before extracted.
|
|
bar's copies read the same page code as foo's, and the clone url row
test that follows matches bar's url in full.
|
|
t0104 checks the same span, and what it holds, on the tree and blame
pages, and t0502 checks it on a highlighted page.
|
|
t0004 reads only the documents, and t0005 builds its own repository
and configs, so each run of either built five repositories for none.
|
|
|
|
A lazy prerequisite is checked only when a test asks for it, and
test-lib names the missing one on every skipped test, so the skip
notes go too. test-lib already defines UNZIP and the unzip it checks.
The test that unpacks a tag's tar.gz with gzip now asks for GZIP like
every other one that does.
|
|
|
|
|
|
Nothing sets NO_TIDY_WARNINGS, and a warning never fails the check, so
the knob only quieted the output of a verbose run.
|
|
test_done ends the script on every path, skip_all included.
|
|
|
|
All of them stop at the same early return in about_fn, so each now gets
the status, the html error page and a clean log.
|
|
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.
|
|
Test bodies run in the main shell, so the target named in the fixture
reaches every check that greps for it.
|
|
|
|
|
|
|
|
|
|
The about check already finds the div right before the filtered text, so
its copy went, and the tree page is flattened where it was first read.
|
|
|
|
|
|
The trash directory starts empty and setup.sh already made the cache,
the clamp check already fails on a short query, and the commit the setup
named is still there to pin.
|
|
t0103 already renders foo/log and finds commit 5, and its search for a
bracket fails the same way this literal search did if --fixed-strings
ever goes.
|
|
t0204 asks the tree, plain, blob and blame pages for one oversized blob
and checks the exact status and message, so the looser copy here went.
|
|
The diff page now names a revision that is no commit the way the
request wrote it, as the other pages already did, rather than as the
full id it resolved to. The helpers sit beside the error page in
ui-shared.c, since shared.c prints nothing.
|
|
|
|
The From, Date, Subject and signature lines are part of what the next
test compares in full against git format-patch, for the single commit
and for the range alike.
|
|
|
|
The library has read TEST_RESULTS_SAN_DIR for the last time by the
time it returns, and the trash directory it makes is empty, so there
is no cache to remove.
|
|
Every page holds foo in its footer element, the foo+bar row holds bar,
the branch switcher holds master, and commit 1 and file-1 also match
commits 10 to 19 and file-10 to file-19. A search page repeats its term
in the search box. So these checks passed on pages that lacked what
they look for, and each now matches the link itself.
|
|
When a filter cannot run, cgit dies mid-page with its Status line
already out, so the check passed with no filter at all. That is the
case wherever true lives only in /bin, as on busybox. true now comes
from the PATH, and the page has to reach its end.
|
|
The check asked for the summary page, which never runs an about filter,
so it passed with exec:/bin/true where no such file exists, and with a
filter that does not exist at all. Its first line read the stderr the
previous test left behind. execvp searches the PATH, so a plain true
runs the same everywhere.
|
|
A failed truncate or key write returned with the descriptor still open,
so the lock was held while the page rendered uncached and the file was
left behind. It is removed before its last close, as every holder does.
|