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" && | 11 | cgit_url "foo" && |
| 13 | cgit_url "foo/refs" && | 12 | cgit_url "foo/refs" && |
| @@ -21,13 +20,14 @@ run_test 'verify cache-size=0' ' | |||
| 21 | cgit_url "bar/log" && | 20 | cgit_url "bar/log" && |
| 22 | cgit_url "bar/diff" && | 21 | cgit_url "bar/diff" && |
| 23 | cgit_url "bar/patch" && | 22 | cgit_url "bar/patch" && |
| 24 | test 0 -eq $(ls trash/cache | wc -l) | 23 | ls cache >output && |
| 24 | test_line_count = 0 output | ||
| 25 | ' | 25 | ' |
| 26 | 26 | ||
| 27 | run_test 'verify cache-size=1' ' | 27 | test_expect_success 'verify cache-size=1' ' |
| 28 | 28 | ||
| 29 | rm -f trash/cache/* && | 29 | rm -f cache/* && |
| 30 | sed -i -e "s/cache-size=0$/cache-size=1/" trash/cgitrc && | 30 | sed -i -e "s/cache-size=0$/cache-size=1/" cgitrc && |
| 31 | cgit_url "" && | 31 | cgit_url "" && |
| 32 | cgit_url "foo" && | 32 | cgit_url "foo" && |
| 33 | cgit_url "foo/refs" && | 33 | cgit_url "foo/refs" && |
| @@ -41,13 +41,14 @@ run_test 'verify cache-size=1' ' | |||
| 41 | cgit_url "bar/log" && | 41 | cgit_url "bar/log" && |
| 42 | cgit_url "bar/diff" && | 42 | cgit_url "bar/diff" && |
| 43 | cgit_url "bar/patch" && | 43 | cgit_url "bar/patch" && |
