AgeCommit message (Collapse)AuthorLines
Test serving a snapshot signatureBryce Kwon-23/+61
No test fetched a signature within the size limit, so the status, the headers that keep a browser from sniffing it and the body went unchecked, as did the answer for a ref with none and the plain tar signature a compressed tar falls back to.
Request every snapshot name back to its refBryce Kwon-69/+197
The names on the links were checked but never requested back, and the tests shared one repository whose refs each test added to, so a run of a subset broke them. On a case-insensitive filesystem a loose V1.0 also answered lookups for v1.0, so the case tests checked different tags from one filesystem to another. The slash ref sat at master's tip, where the commit compare could not tell it from the default branch.
Compare each snapshot format with git archiveBryce Kwon-58/+47
Only the entry count and one file were checked, never the archive itself. git's own writer at the same commit gives the same bytes, so each format is held to it, which also proves the commit served. That leaves unzip -t unused, which busybox may not have.
Compare more of the patch page with gitBryce Kwon-33/+82
The root patch was checked for its signature alone, so one that lost its diff passed. The headers, the note a path adds to the stat and a merge in a range had no test, and a renamed file's patch was grepped rather than compared. The version is read in the test that needs it, so a missing build/VERSION fails there instead of surfacing later as a mismatch.
Check which commits max-patch-count keepsBryce Kwon-9/+21
Only the number of patches was counted, so keeping the oldest two of a range would have passed. The default of 50 and the 0 that lifts the bound had no test.
Check the rawdiff is served as plain textBryce Kwon-24/+17
strip_headers dropped the headers before every compare, so a rawdiff served under another type passed. Each test now makes its own request, and the ids it needs, rather than reading what an earlier one left.
Test the diff options a request or config setsBryce Kwon-0/+94
None of dt=2, ignorews, context and its cap, side-by-side-diffs or rename-limit had a test anywhere in the suite, nor the 0 that the MANUAL says lifts the rename limit.
Check what each side-by-side cell holdsBryce Kwon-18/+106
The span checks compared page totals, so a span on the wrong side or over the wrong characters passed while the totals agreed. A fill that read cells a longer pair left behind passed as well, since only a literal pair after a longer one shows it. Nothing checked the cell classes the forced-colours border keys on, or the rows for unpaired, overlong, tabbed, binary and cut short lines.
Test enable-plain-email=0 where it changes outputBryce Kwon-0/+28
No test set it, though it switches the patch to a format of cgit's own and drops the address from the feed and the trailer idents.
Check the stats page counts and orders authorsBryce Kwon-10/+60
No test asserted a count, and the fixture had a single author, so a page that stopped counting or sorting passed. The commit graph came in for a language breakdown that is gone. It stays because the walk still releases each commit as it goes, which a commit read from the graph has to survive.
Check the feed escapes what XML cannot carryBryce Kwon-0/+45
Every fixture subject was plain ASCII, so xmllint never met a byte the escaping exists for. git commit rewrites stray bytes as Latin-1 and the commit parser replaces any that are left, so the commit is written by hand and the description carries a stray byte to the feed's own check.
Name the followed path in the diffstat headerBryce Kwon-0/+22
With follow set the diff runs over the whole commit and show_filepair applies the path, so the header read (limited to '') whether or not a path was given.
Check a renamed file's diff leaves the rest outBryce Kwon-8/+15
A new path is diffed across the whole commit so the rename can be found, and a filter then keeps that path alone. The rename commit touched one file, so a diff that dropped the filter passed.
Check each side's line numbers in a later hunkBryce Kwon-6/+31
The test for a hunk that carries a length ran on foo's diff, whose only numbered side is +1 with no length, so it repeated the comma-less test. Every fixture hunk started at line 1, so a parser that always answered 1 passed. A line 0 never gets a link, so the absent 0 link could not show either way.
Test stray bytes in a tag's tagger and messageBryce Kwon-0/+21
Test the link from a tag to the tag it tagsBryce Kwon-0/+14
A robustness test asked for the inner tag's page by id, but nothing checked that the outer tag's page links there.
Test the tag page for a name that is no tagBryce Kwon-0/+6
Hold the tag tests to a working pageBryce Kwon-14/+16
The tag requests passed on any answer short of a crash, and the title test read a page the cache kept from an earlier test. The id pattern also matched an empty id, the date row was checked only for its opening tag, and the lightweight tag was never shown to lack a date row. Two tests read a page an earlier test wrote.
Test the download row on the commit pageBryce Kwon-0/+10
Test a note on the commit pageBryce Kwon-0/+8
Test subject links on the commit pageBryce Kwon-0/+7
Test a stray byte in a message with no encodingBryce Kwon-1/+9
The comment names a message with no encoding header as one case, but only a header naming an unknown charset was tested. Without a header the text is taken as UTF-8 and never converted, so only the clean-up stands between its stray bytes and the page.
Check the octopus merge draws no diffBryce Kwon-7/+19
The octopus took its first parent's tree, so its diff would have been empty whether drawn or not, and only the missing options were checked, with nothing to show the right page rendered. A merge of two parents, the other side of the limit, had no test.
Hold the commit tests to a working pageBryce Kwon-18/+14
The commit requests passed on any answer short of a crash, and the root commit checks read a page another test wrote. The tree row was found by its href alone, never by the tree id it names.
Test the blob page by object idBryce Kwon-1/+29
Only a robustness test touched the blob page, so a request by bare id, the binary type, the untrusted headers and the refusal of a malformed id had no check.
Test plain on a symlink and a submodule entryBryce Kwon-0/+24
Test the PDF exception to the unsafe plain typesBryce Kwon-0/+18
Test the untrusted headers on a plain fileBryce Kwon-0/+16
The content security policy had no test anywhere, and nosniff was only checked on a scanned repository.
Test a plain listing below the rootBryce Kwon-0/+23
Hold the plain tests to a working pageBryce Kwon-16/+12
The plain requests passed on any answer short of a crash, and the listing test never looked at where its links led. The types config was a copy of the shared one with its page cache still on, which cgitrc_copy exists to switch off.
Read the stylesheet rules by selectorBryce Kwon-7/+51
Both tests cut one block out of cgit.css by its opening line, so rewriting that selector list broke them while a later rule overriding the declaration passed. The helper gathers a property's declarations from every rule naming the selector, so the last one is the one a browser would apply. A rule under some other selector can still win, which only a browser shows.
Test the blame tooltip with and without addressesBryce Kwon-0/+13
Test a link target that climbs above the rootBryce Kwon-2/+6
Only an absolute target was tested, so ignoring a failed normalisation passed, and the mutation run left that change alive.
Follow the blame page's crumb and previous linksBryce Kwon-2/+9
Both fixes were for links that led to a 404, and the tests read the href without asking for the page it names.
Test what blame says for paths it cannot blameBryce Kwon-0/+12
Test that blame is refused while disabledBryce Kwon-0/+6
Test the blame link in the file view's headerBryce Kwon-0/+8
Prove the rows the blame link check looks pastBryce Kwon-6/+10
The checks that blob.bin, big.bin and large.txt get no blame link never showed those rows were in the listing, so a listing that dropped them passed.
Hold the tree tests to a working pageBryce Kwon-36/+50
The tree requests passed on any answer short of a crash. Several tests read a page or a row an earlier test wrote, so run alone they passed or failed by accident, and two leant on a repository from the test before without saying so. The file-50 check also matched its href, and the blame check skipped the form feed and NEL its title covers.
Check the tag message line by lineBryce Kwon-2/+3
The check removed every newline before matching, so a body that kept the blank line after the subject read the same, and the page would have shown that line under white-space pre-wrap.
Check the commit page's parent rowBryce Kwon-1/+4
The pattern also matched the commit row's link to itself, so the test passed with no parent row at all.
Pin the listing's blame link for a late NULBryce Kwon-0/+23
The listing judges binary by the first 8000 bytes, as git does, while the blame page and the file view look for a NUL anywhere, since one past that window would end a Lua filter's output early. The listing keeps the cheap sniff, because the whole-blob check would inflate every blob it names, so a file whose NUL lies past the window gets a blame link that ends on "Blob is binary". The test pins that trade, so a change to either side has to face it.
Test a long subject in the expanded logBryce Kwon-0/+13
Test the lowest message limit that cutsBryce Kwon-0/+10
Test the log search by case and by committerBryce Kwon-0/+19
Test the log orders commit-sort selectsBryce Kwon-0/+41
commit-sort had no test anywhere. The history here is one where the plain walk, date order and topo order all differ, which the test checks first so a fixture that stopped telling them apart would fail rather than pass.
Test the file and line counts in the logBryce Kwon-0/+17
The shared config turns both columns on, but no test read a count, so a wrong or swapped one passed.
Test the branch and tag labels in the logBryce Kwon-0/+15
No test anywhere drew a label, so the peel that tells an annotated tag from a lightweight one had no check.
Test the switcher on a page pinned to a commitBryce Kwon-0/+12
Hold the log tests to a working pageBryce Kwon-36/+54
The log requests passed on any answer short of a crash. The search checks after the first read a page an earlier test wrote, so run alone they passed with no page at all, and three tests shared one title. The switcher checks found the right option selected but not that it was the only one, and a failed check left its tag behind for the tests after it. The broken walk's log was written and never read.