author | Lars Hjemli <hjemli@gmail.com> | 2007-11-10 23:40:58 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-11-11 11:00:13 (UTC) |
commit | b4649fc90597910c89c3f37a6aec9af54d9f416b (patch) (unidiff) | |
tree | c4542a13f9509ebd92baf4f26548ddc72ac1f05f /tests/setup.sh | |
parent | ab21082c21867e035cd925a06d6d55fb3143d883 (diff) | |
download | cgit-b4649fc90597910c89c3f37a6aec9af54d9f416b.zip cgit-b4649fc90597910c89c3f37a6aec9af54d9f416b.tar.gz cgit-b4649fc90597910c89c3f37a6aec9af54d9f416b.tar.bz2 |
Create initial testsuite
This creates a simple testsuite, heavily inspired by the testsuite in git.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rwxr-xr-x | tests/setup.sh | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/setup.sh b/tests/setup.sh new file mode 100755 index 0000000..51d5a75 --- a/dev/null +++ b/tests/setup.sh | |||
@@ -0,0 +1,108 @@ | |||
1 | # This file should be sourced by all test-scripts | ||
2 | # | ||
3 | # Main functions: | ||
4 | # prepare_tests(description) - setup for testing, i.e. create repos+config | ||
5 | # run_test(description, script) - run one test, i.e. eval script | ||
6 | # | ||
7 | # Helper functions | ||
8 | # cgit_query(querystring) - call cgit with the specified querystring | ||
9 | # cgit_url(url) - call cgit with the specified virtual url | ||
10 | # | ||
11 | # Example script: | ||
12 | # | ||
13 | # . setup.sh | ||
14 | # prepare_tests "html validation" | ||
15 | # run_test 'repo index' 'cgit_url "/" | tidy -e' | ||
16 | # run_test 'repo summary' 'cgit_url "/foo" | tidy -e' | ||
17 | |||
18 | |||
19 | mkrepo() { | ||
20 | name=$1 | ||
21 | count=$2 | ||
22 | dir=$PWD | ||
23 | test -d $name && return | ||
24 | printf "Creating testrepo %s\n" $name | ||
25 | mkdir -p $name | ||
26 | cd $name | ||
27 | git init | ||
28 | for ((n=1; n<=count; n++)) | ||
29 | do | ||
30 | echo $n >file-$n | ||
31 | git add file-$n | ||
32 | git commit -m "commit $n" | ||
33 | done | ||
34 | cd $dir | ||
35 | } | ||
36 | |||
37 | setup_repos() | ||
38 | { | ||
39 | rm -rf trash/cache | ||
40 | mkdir -p trash/cache | ||
41 | mkrepo trash/repos/foo 5 >/dev/null | ||
42 | mkrepo trash/repos/bar 50 >/dev/null | ||
43 | cat >trash/cgitrc <<EOF | ||
44 | virtual-root=/ | ||
45 | cache-root=$PWD/trash/cache | ||
46 | |||
47 | nocache=0 | ||
48 | snapshots=tar.gz tar.bz zip | ||
49 | enable-log-filecount=1 | ||
50 | enable-log-linecount=1 | ||
51 | summary-log=5 | ||
52 | summary-branches=5 | ||
53 | summary-tags=5 | ||
54 | |||
55 | repo.url=foo | ||
56 | repo.path=$PWD/trash/repos/foo/.git | ||
57 | repo.desc=the foo repo | ||
58 | |||
59 | repo.url=bar | ||
60 | repo.path=$PWD/trash/repos/bar/.git | ||
61 | repo.desc=the bar repo | ||
62 | EOF | ||
63 | } | ||
64 | |||
65 | prepare_tests() | ||
66 | { | ||
67 | setup_repos | ||
68 | test_count=0 | ||
69 | test_failed=0 | ||
70 | echo "$@" "($0)" | ||
71 | } | ||
72 | |||
73 | tests_done() | ||
74 | { | ||
75 | printf "\n" | ||
76 | if test $test_failed -gt 0 | ||
77 | then | ||
78 | printf "[%s of %s tests failed]\n" $test_failed $test_count | ||
79 | false | ||
80 | fi | ||
81 | } | ||
82 | |||
83 | run_test() | ||
84 | { | ||
85 | desc=$1 | ||
86 | script=$2 | ||
87 | ((test_count++)) | ||
88 | eval "$2" >test-output.log | ||
89 | res=$? | ||
90 | if test $res = 0 | ||
91 | then | ||
92 | printf " %s: ok - %s\n" $test_count "$desc" | ||
93 | else | ||
94 | ((test_failed++)) | ||
95 | printf " %s: fail - %s\n" $test_count "$desc" | ||
96 | fi | ||
97 | } | ||
98 | |||
99 | cgit_query() | ||
100 | { | ||
101 | CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="$1" "$PWD/../cgit" | ||
102 | } | ||
103 | |||
104 | cgit_url() | ||
105 | { | ||
106 | CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="url=$1" "$PWD/../cgit" | ||
107 | } | ||
108 | |||