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 | ||
