diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/setup.sh | 130 | ||||
-rwxr-xr-x | tests/t0001-validate-git-versions.sh | 28 | ||||
-rwxr-xr-x | tests/t0010-validate-html.sh | 31 | ||||
-rwxr-xr-x | tests/t0020-validate-cache.sh | 32 | ||||
-rwxr-xr-x | tests/t0101-index.sh | 25 | ||||
-rwxr-xr-x | tests/t0102-summary.sh | 35 | ||||
-rwxr-xr-x | tests/t0103-log.sh | 33 | ||||
-rwxr-xr-x | tests/t0104-tree.sh | 33 | ||||
-rwxr-xr-x | tests/t0105-commit.sh | 41 | ||||
-rwxr-xr-x | tests/t0106-diff.sh | 21 | ||||
-rwxr-xr-x | tests/t0107-snapshot.sh | 77 | ||||
-rwxr-xr-x | tests/t0108-patch.sh | 37 |
12 files changed, 234 insertions, 289 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 | ||
diff --git a/tests/t0001-validate-git-versions.sh b/tests/t0001-validate-git-versions.sh index 3378358..754046e 100755 --- a/tests/t0001-validate-git-versions.sh +++ b/tests/t0001-validate-git-versions.sh | |||
@@ -1,36 +1,36 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | test_description='Check Git version is correct' | ||
4 | CGIT_TEST_NO_CREATE_REPOS=YesPlease | ||
3 | . ./setup.sh | 5 | . ./setup.sh |
4 | 6 | ||
5 | prepare_tests 'Check Git version is correct' | 7 | test_expect_success 'extract Git version from Makefile' ' |
6 | |||
7 | run_test 'extract Git version from Makefile' ' | ||
8 | sed -n -e "/^GIT_VER[ ]*=/ { | 8 | sed -n -e "/^GIT_VER[ ]*=/ { |
9 | s/^GIT_VER[ ]*=[ ]*// | 9 | s/^GIT_VER[ ]*=[ ]*// |
10 | p | 10 | p |
11 | }" ../Makefile >trash/makefile_version | 11 | }" ../../Makefile >makefile_version |
12 | ' | 12 | ' |
13 | 13 | ||
14 | run_test 'test Git version matches Makefile' ' | 14 | test_expect_success 'test Git version matches Makefile' ' |
15 | ( cat ../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) | | 15 | ( cat ../../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) | |
16 | sed -e "s/GIT_VERSION[ ]*=[ ]*//" >trash/git_version && | 16 | sed -e "s/GIT_VERSION[ ]*=[ ]*//" >git_version && |
17 | diff -u trash/git_version trash/makefile_version | 17 | test_cmp git_version makefile_version |
18 | ' | 18 | ' |
19 | 19 | ||
20 | run_test 'test submodule version matches Makefile' ' | 20 | test_expect_success 'test submodule version matches Makefile' ' |
21 | if ! test -e ../git/.git | 21 | if ! test -e ../../git/.git |
22 | then | 22 | then |
23 | echo "git/ is not a Git repository" >&2 | 23 | echo "git/ is not a Git repository" >&2 |
24 | else | 24 | else |
25 | ( | 25 | ( |
26 | cd .. && | 26 | cd ../.. && |
27 | sm_sha1=$(git ls-files --stage -- git | | 27 | sm_sha1=$(git ls-files --stage -- git | |
28 | sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") && | 28 | sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") && |
29 | cd git && | 29 | cd git && |
30 | git describe --match "v[0-9]*" $sm_sha1 | 30 | git describe --match "v[0-9]*" $sm_sha1 |
31 | ) | sed -e "s/^v//" >trash/sm_version && | 31 | ) | sed -e "s/^v//" >sm_version && |
32 | diff -u trash/sm_version trash/makefile_version | 32 | test_cmp sm_version makefile_version |
33 | fi | 33 | fi |
34 | ' | 34 | ' |
35 | 35 | ||
36 | tests_done | 36 | test_done |
diff --git a/tests/t0010-validate-html.sh b/tests/t0010-validate-html.sh index 3fe4800..5bd0a25 100755 --- a/tests/t0010-validate-html.sh +++ b/tests/t0010-validate-html.sh | |||
@@ -1,5 +1,6 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | test_description='Validate html with tidy' | ||
3 | . ./setup.sh | 4 | . ./setup.sh |
4 | 5 | ||
5 | 6 | ||
@@ -7,9 +8,9 @@ test_url() | |||
7 | { | 8 | { |
8 | tidy_opt="-eq" | 9 | tidy_opt="-eq" |
9 | test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no" | 10 | test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no" |
10 | cgit_url "$1" >trash/tidy-$test_count || return | 11 | cgit_url "$1" >tidy-$test_count || return |
11 | sed -ie "1,4d" trash/tidy-$test_count || return | 12 | sed -ie "1,4d" tidy-$test_count || return |
12 | "$tidy" $tidy_opt trash/tidy-$test_count | 13 | "$tidy" $tidy_opt tidy-$test_count |
13 | rc=$? | 14 | rc=$? |
14 | 15 | ||
15 | # tidy returns with exitcode 1 on warnings, 2 on error | 16 | # tidy returns with exitcode 1 on warnings, 2 on error |
@@ -21,21 +22,19 @@ test_url() | |||
21 | fi | 22 | fi |
22 | } | 23 | } |
23 | 24 | ||
24 | prepare_tests 'Validate html with tidy' | 25 | tidy=`which tidy 2>/dev/null` |
25 | |||
26 | tidy=`which tidy` | ||
27 | test -n "$tidy" || { | 26 | test -n "$tidy" || { |
28 | echo "Skipping tests: tidy not found" | 27 | skip_all='Skipping html validation tests: tidy not found' |
29 | tests_done | 28 | test_done |
30 | exit | 29 | exit |
31 | } | 30 | } |
32 | 31 | ||
33 | run_test 'index page' 'test_url ""' | 32 | test_expect_success 'index page' 'test_url ""' |
34 | run_test 'foo' 'test_url "foo"' | 33 | test_expect_success 'foo' 'test_url "foo"' |
35 | run_test 'foo/log' 'test_url "foo/log"' | 34 | test_expect_success 'foo/log' 'test_url "foo/log"' |
36 | run_test 'foo/tree' 'test_url "foo/tree"' | 35 | test_expect_success 'foo/tree' 'test_url "foo/tree"' |
37 | run_test 'foo/tree/file-1' 'test_url "foo/tree/file-1"' | 36 | test_expect_success 'foo/tree/file-1' 'test_url "foo/tree/file-1"' |
38 | run_test 'foo/commit' 'test_url "foo/commit"' | 37 | test_expect_success 'foo/commit' 'test_url "foo/commit"' |
39 | run_test 'foo/diff' 'test_url "foo/diff"' | 38 | test_expect_success 'foo/diff' 'test_url "foo/diff"' |
40 | 39 | ||
41 | tests_done | 40 | test_done |
diff --git a/tests/t0020-validate-cache.sh b/tests/t0020-validate-cache.sh index 53ec2eb..1910b47 100755 --- a/tests/t0020-validate-cache.sh +++ b/tests/t0020-validate-cache.sh | |||
@@ -1,13 +1,12 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | test_description='Validate cache' | ||
3 | . ./setup.sh | 4 | . ./setup.sh |
4 | 5 | ||
5 | prepare_tests 'Validate cache' | 6 | test_expect_success 'verify cache-size=0' ' |
6 | 7 | ||
7 | run_test 'verify cache-size=0' ' | 8 | rm -f cache/* && |
8 | 9 | sed -i -e "s/cache-size=1021$/cache-size=0/" cgitrc && | |
9 | rm -f trash/cache/* && | ||
10 | sed -i -e "s/cache-size=1021$/cache-size=0/" trash/cgitrc && | ||
11 | cgit_url "" && | 10 | cgit_url "" && |
12 | cgit_url "foo" && |