aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeLines
...
* ui-commit: handle root commitsGravatar Lars Hjemli2008-05-19-0/+15
| | | | | | | | | Both cgit_print_diff() and cgit_diff_tree() handles root commits nicely, but cgit_print_commit() forgot to check the case of 0 parents. This fixes it, and adds tests to avoid future regressions. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Redesign the caching layerGravatar Lars Hjemli2008-04-28-1/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original caching layer in cgit has no upper bound on the number of concurrent cache entries, so when cgit is traversed by a spider (like the googlebot), the cache might end up filling your disk. Also, if any error occurs in the cache layer, no content is returned to the client. This patch redesigns the caching layer to avoid these flaws by * giving the cache a bound number of slots * disabling the cache for the current request when errors occur The cache size limit is implemented by hashing the querystring (the cache lookup key) and generating a cache filename based on this hash modulo the cache size. In order to detect hash collisions, the full lookup key (i.e. the querystring) is stored in the cache file (separated from its associated content by ascii 0). The cache filename is the reversed 8-digit hexadecimal representation of hash(key) % cache_size which should make the filesystem lookup pretty fast (if directory content is indexed/sorted); reversing the representation avoids the problem where all keys have equal prefix. There is a new config option, cache-size, which sets the upper bound for the cache. Default value for this option is 0, which has the same effect as setting nocache=1 (hence nocache is now deprecated). Included in this patch is also a new testfile which verifies that the new option works as intended. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix segfault in patch view for root commitGravatar Lars Hjemli2008-03-18-0/+37
| | | | | | | | | | The code for patch view assumed the current commit would always have a parent, which made cgit segfault when that wasn't the case. This fixes the bug and adds a test-script for patch view which includes a test for the inital commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* tests/setup.sh: cleanup test script output and loggingGravatar Lars Hjemli2008-02-25-2/+8
| | | | | | | Log the complete output from each test-script in test-output.log and tell the user about the logfile when a test-script fails. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* t0010-validate.sh: return on cgit errorsGravatar Lars Hjemli2008-02-25-1/+4
| | | | | | | | | | The earlier segfault in cgit passed by unnoticed by this test-script due to the pipe between cgit and sed. There might be a more elegant solution to this problem, but my shellscript- foo is weak. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Make output from `make test` more readableGravatar Lars Hjemli2008-02-25-2/+2
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Brown paper bag: don't use `grep -v`Gravatar Lars Hjemli2008-02-24-5/+5
| | | | | | | | | | | For some inexplicable reason I'd gotten the semantics of `grep -v` totally backwards, thinking it somehow would make the exitcode from grep indicate the non-match of the specified pattern. This fixes the broken tests and gives me a valuable lession about shell programming at the same time. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add regression-test for description-less reposGravatar Lars Hjemli2008-02-24-1/+5
| | | | | | | | | | | | | | | | The segfault fixed in commit eacde43d7184452e1fdc90b982b531f1f5239923 was triggered when the html-functions manipulated string literals. One callpatch which could trigger the bug is in ui-repolist.c when repo descriptions are passed to html_ntxt(): if a repo is lacking a description, the literal string "[no description]" is used. This patch changes test/setup.sh such that the first repo has no description, and adds tests for both "[no description]" and "the bar repo" (description of the other repo) to tests/t0101-index.sh, which should be enought to catch regressions in these functions. Noticed-by: Hiroki Hattori <seagull.kamome@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Fix html error detected by test-suiteGravatar Lars Hjemli2007-11-11-3/+9
| | | | Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Create initial testsuiteGravatar Lars Hjemli2007-11-11-0/+295
This creates a simple testsuite, heavily inspired by the testsuite in git. Signed-off-by: Lars Hjemli <hjemli@gmail.com>