Diffstat (limited to 'tests/setup.sh')
| -rwxr-xr-x | tests/setup.sh | 130 |
1 files changed, 89 insertions, 41 deletions
diff --git a/tests/setup.sh b/tests/setup.sh index 81e7220..e3c6c17 100755 --- a/tests/setup.sh +++ b/tests/setup.sh @@ -15,48 +15,46 @@ # run_test 'repo index' 'cgit_url "/" | tidy -e' # run_test 'repo summary' 'cgit_url "/foo" | tidy -e' -: ${TEST_DIRECTORY=$(pwd)/../git/t} -TEST_NO_CREATE_REPO=YesPlease -. "$TEST_DIRECTORY"/test-lib.sh - -# Prepend the directory containing cgit to PATH. -PATH="$(pwd)/../..:$PATH" +unset CDPATH mkrepo() { name=$1 count=$2 - test_create_repo "$name" - ( - cd "$name" - n=1 - while test $n -le $count - do - echo $n >file-$n - git add file-$n - git commit -m "commit $n" - n=$(expr $n + 1) - done - if test "$3" = "testplus" - then - echo "hello" >a+b - git add a+b - git commit -m "add a+b" - git branch "1+2" - fi - ) + dir=$PWD + test -d "$name" && return + printf "Creating testrepo %s\n" "$name" + mkdir -p "$name" + cd "$name" + git init + n=1 + while test $n -le $count + do + echo $n >file-$n + git add file-$n + git commit -m "commit $n" + n=$(expr $n + 1) + done + if test "$3" = "testplus" + then + echo "hello" >a+b + git add a+b + git commit -m "add a+b" + git branch "1+2" + fi + cd "$dir" } setup_repos() { - rm -rf cache - mkdir -p cache - mkrepo repos/foo 5 >/dev/null - mkrepo repos/bar 50 >/dev/null - mkrepo repos/foo+bar 10 testplus >/dev/null - mkrepo "repos/with space" 2 >/dev/null - cat >cgitrc <<EOF + rm -rf trash/cache + mkdir -p trash/cache + mkrepo trash/repos/foo 5 >/dev/null + mkrepo trash/repos/bar 50 >/dev/null + mkrepo trash/repos/foo+bar 10 testplus >/dev/null + mkrepo "trash/repos/with space" 2 >/dev/null + cat >trash/cgitrc <<EOF virtual-root=/ -cache-root=$PWD/cache +cache-root=$PWD/trash/cache cache-size=1021 snapshots=tar.gz tar.bz zip @@ -68,33 +66,83 @@ summary-tags=5 clone-url=git://example.org/\$CGIT_REPO_URL.git repo.url=foo -repo.path=$PWD/repos/foo/.git +repo.path=$PWD/trash/repos/foo/.git # Do not specify a description for this repo, as it then will be assigned # the constant value "[no description]" (which actually used to cause a # segfault). repo.url=bar -repo.path=$PWD/repos/bar/.git +repo.path=$PWD/trash/repos/bar/.git repo.desc=the bar repo repo.url=foo+bar -repo.path=$PWD/repos/foo+bar/.git +repo.path=$PWD/trash/repos/foo+bar/.git repo.desc=the foo+bar repo repo.url=with space -repo.path=$PWD/repos/with space/.git +repo.path=$PWD/trash/repos/with space/.git repo.desc=spaced repo EOF } +prepare_tests() +{ + setup_repos + rm -f test-output.log 2>/dev/null + test_count=0 + test_failed=0 + echo "[$0]" "$@" >test-output.log + echo "$@" "($0)" +} + +tests_done() +{ + printf "\n" + if test $test_failed -gt 0 + then + printf "test: *** %s failure(s), logfile=%s\n" \ + $test_failed "$(pwd)/test-output.log" + false + fi +} + +run_test() +{ + bug=0 + if test "$1" = "BUG" + then + bug=1 + shift + fi + desc=$1 + script=$2 + test_count=$(expr $test_count + 1) + printf "\ntest %d: name='%s'\n" $test_count "$desc" >>test-output.log + printf "test %d: eval='%s'\n" $test_count "$2" >>test-output.log + eval "$2" >>test-output.log 2>>test-output.log + res=$? + printf "test %d: exitcode=%d\n" $test_count $res >>test-output.log + if test $res = 0 -a $bug = 0 + then + printf " %2d) %-60s [ok]\n" $test_count "$desc" + elif test $res = 0 -a $bug = 1 + then + printf " %2d) %-60s [BUG FIXED]\n" $test_count "$desc" + elif test $bug = 1 + then + printf " %2d) %-60s [KNOWN BUG]\n" $test_count "$desc" + else + test_failed=$(expr $test_failed + 1) + printf " %2d) %-60s [failed]\n" $test_count "$desc" + fi +} + cgit_query() { - CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="$1" cgit + CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="$1" "$PWD/../cgit" } cgit_url() { - CGIT_CONFIG="$PWD/cgitrc" QUERY_STRING="url=$1" cgit + CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="url=$1" "$PWD/../cgit" } - -test -z "$CGIT_TEST_NO_CREATE_REPOS" && setup_repos |