diff options
Diffstat (limited to 'tests/setup.sh')
-rwxr-xr-x | tests/setup.sh | 130 |
1 files changed, 41 insertions, 89 deletions
diff --git a/tests/setup.sh b/tests/setup.sh index e3c6c17..81e7220 100755 --- a/tests/setup.sh +++ b/tests/setup.sh | |||
@@ -15,46 +15,48 @@ | |||
15 | # run_test 'repo index' 'cgit_url "/" | tidy -e' | 15 | # run_test 'repo index' 'cgit_url "/" | tidy -e' |
16 | # run_test 'repo summary' 'cgit_url "/foo" | tidy -e' | 16 | # run_test 'repo summary' 'cgit_url "/foo" | tidy -e' |
17 | 17 | ||
18 | unset CDPATH | 18 | : ${TEST_DIRECTORY=$(pwd)/../git/t} |
19 | TEST_NO_CREATE_REPO=YesPlease | ||
20 | . "$TEST_DIRECTORY"/test-lib.sh | ||
21 | |||
22 | # Prepend the directory containing cgit to PATH. | ||
23 | PATH="$(pwd)/../..:$PATH" | ||
19 | 24 | ||
20 | mkrepo() { | 25 | mkrepo() { |
21 | name=$1 | 26 | name=$1 |
22 | count=$2 | 27 | count=$2 |
23 | dir=$PWD | 28 | test_create_repo "$name" |
24 | test -d "$name" && return | 29 | ( |
25 | printf "Creating testrepo %s\n" "$name" | 30 | cd "$name" |
26 | mkdir -p "$name" | 31 | n=1 |
27 | cd "$name" | 32 | while test $n -le $count |
28 | git init | 33 | do |
29 | n=1 | 34 | echo $n >file-$n |
30 | while test $n -le $count | 35 | git add file-$n |
31 | do | 36 | git commit -m "commit $n" |
32 | echo $n >file-$n | 37 | n=$(expr $n + 1) |
33 | git add file-$n | 38 | done |
34 | git commit -m "commit $n" | 39 | if test "$3" = "testplus" |
35 | n=$(expr $n + 1) | 40 | then |
36 | done | 41 | echo "hello" >a+b |
37 | if test "$3" = "testplus" | 42 | git add a+b |
38 | then | 43 | git commit -m "add a+b" |
39 | echo "hello" >a+b | 44 | git branch "1+2" |
40 | git add a+b | 45 | fi |
41 | git commit -m "add a+b" | 46 | ) |
42 | git branch "1+2" | ||
43 | fi | ||
44 | cd "$dir" | ||
45 | } | 47 | } |
46 | 48 | ||
47 | setup_repos() | 49 | setup_repos() |
48 | { | 50 | { |
49 | rm -rf trash/cache | 51 | rm -rf cache |
50 | mkdir -p trash/cache | 52 | mkdir -p cache |
51 | mkrepo trash/repos/foo 5 >/dev/null | 53 | mkrepo repos/foo 5 >/dev/null |
52 | mkrepo trash/repos/bar 50 >/dev/null | 54 | mkrepo repos/bar 50 >/dev/null |
53 | mkrepo trash/repos/foo+bar 10 testplus >/dev/null | 55 | mkrepo repos/foo+bar 10 testplus >/dev/null |
54 | mkrepo "trash/repos/with space" 2 >/dev/null | 56 | mkrepo "repos/with space" 2 >/dev/null |
55 | cat >trash/cgitrc <<EOF | 57 | cat >cgitrc <<EOF |
56 | virtual-root=/ | 58 | virtual-root=/ |
57 | cache-root=$PWD/trash/cache | 59 | cache-root=$PWD/cache |
58 | 60 | ||
59 | cache-size=1021 | 61 | cache-size=1021 |
60 | snapshots=tar.gz tar.bz zip | 62 | snapshots=tar.gz tar.bz zip |
@@ -66,83 +68,33 @@ summary-tags=5 | |||
66 | clone-url=git://example.org/\$CGIT_REPO_URL.git | 68 | clone-url=git://example.org/\$CGIT_REPO_URL.git |
67 | 69 | ||
68 | repo.url=foo | 70 | repo.url=foo |
69 | repo.path=$PWD/trash/repos/foo/.git | 71 | repo.path=$PWD/repos/foo/.git |
70 | # Do not specify a description for this repo, as it then will be assigned | 72 | # Do not specify a description for this repo, as it then will be assigned |
71 | # the constant value "[no description]" (which actually used to cause a | 73 | # the constant value "[no description]" (which actually used to cause a |
72 | # segfault). | 74 | # segfault). |
73 | 75 | ||
74 | repo.url=bar | 76 | repo.url=bar |
75 | repo.path=$PWD/trash/repos/bar/.git | 77 | repo.path=$PWD/repos/bar/.git |
76 | repo.desc=the bar repo | 78 | repo.desc=the bar repo |
77 | 79 | ||
78 | repo.url=foo+bar | 80 | repo.url=foo+bar |
79 | repo.path=$PWD/trash/repos/foo+bar/.git | 81 | repo.path=$PWD/repos/foo+bar/.git |
80 | repo.desc=the foo+bar repo | 82 | repo.desc=the foo+bar repo |
81 | 83 | ||
82 | repo.url=with space | 84 | repo.url=with space |
83 | repo.path=$PWD/trash/repos/with space/.git | 85 | repo.path=$PWD/repos/with space/.git |
84 | repo.desc=spaced repo | 86 | repo.desc=spaced repo |
85 | EOF | 87 | EOF |
86 | } | 88 | } |
87 | 89 | ||
88 | prepare_tests() | ||
89 | { | ||
90 | setup_repos | ||
91 | rm -f test-output.log 2>/dev/null | ||
92 | test_count=0 | ||
93 | test_failed=0 | ||
94 | echo "[$0]" "$@" >test-output.log | ||
95 | echo "$@" "($0)" | ||
96 | } | ||
97 | |||
98 | tests_done() | ||
99 | { | ||
100 | printf "\n" | ||
101 | if test $test_failed -gt 0 | ||
102 | then | ||
103 | printf "test: *** %s failure(s), logfile=%s\n" \ | ||
104 | $test_failed "$(pwd)/test-output.log" | ||
105 | false | ||
106 | fi | ||
107 | } | ||
108 | |||
109 | run_test() | ||
110 | { | ||
111 | bug=0 | ||
112 | if test "$1" = "BUG" | ||
113 | then | ||
114 | bug=1 | ||
115 | shift | ||
116 | fi | ||
117 | desc=$1 | ||
118 | script=$2 | ||
119 | test_count=$(expr $test_count + 1) | ||
120 | printf "\ntest %d: name='%s'\n" $test_count "$desc" >>test-output.log | ||
121 | printf "test %d: eval='%s'\n" $test_count "$2" >>test-output.log | ||
122 | eval "$2" >>test-output.log 2>>test-output.log | ||
123 | res=$? | ||
124 | printf "test %d: exitcode=%d\n" $test_count $res >>test-output.log | ||
125 | if test $res = 0 -a $bug = 0 | ||
126 | then | ||
127 | printf " %2d) %-60s [ok]\n" $test_count "$desc" | ||
128 | elif test $res = 0 -a $bug = 1 | ||
129 | then | ||
130 | printf " %2d) %-60s [BUG FIXED]\n" $test_count "$desc" | ||
131 | elif test $bug = 1 | ||
132 | then | ||
133 | printf " %2d) %-60s [KNOWN BUG]\n" $test_count "$desc" | ||
134 | else | ||
135 | test_failed=$(expr $test_failed + 1) | ||
136 | printf " %2d) %-60s [failed]\n" $test_count "$desc" | ||
137 | fi | ||
138 | } | ||
139 | |||
140 | cgit_query() | 90 | cgit_query() |
141 | { | 91 | { |
142 | CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="$1" "$PWD/../cgit" | 92 | CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="$1" cgit |
143 | } | 93 | } |
144 | 94 | ||
145 | cgit_url() | 95 | cgit_url() |
146 | { | 96 | { |
147 | CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="url=$1" "$PWD/../cgit" | 97 | CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit |
148 | } | 98 | } |
99 | |||
100 | test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos | ||