diff options
author | Lars Hjemli <hjemli@gmail.com> | 2007-11-11 00:40:58 +0100 |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-11-11 12:00:13 +0100 |
commit | b4649fc90597910c89c3f37a6aec9af54d9f416b (patch) | |
tree | c4542a13f9509ebd92baf4f26548ddc72ac1f05f /tests/setup.sh | |
parent | ab21082c21867e035cd925a06d6d55fb3143d883 (diff) |
Create initial testsuite
This creates a simple testsuite, heavily inspired by the testsuite in git.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'tests/setup.sh')
-rwxr-xr-x | tests/setup.sh | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/setup.sh b/tests/setup.sh new file mode 100755 index 0000000..51d5a75 --- /dev/null +++ b/tests/setup.sh @@ -0,0 +1,108 @@ +# This file should be sourced by all test-scripts +# +# Main functions: +# prepare_tests(description) - setup for testing, i.e. create repos+config +# run_test(description, script) - run one test, i.e. eval script +# +# Helper functions +# cgit_query(querystring) - call cgit with the specified querystring +# cgit_url(url) - call cgit with the specified virtual url +# +# Example script: +# +# . setup.sh +# prepare_tests "html validation" +# run_test 'repo index' 'cgit_url "/" | tidy -e' +# run_test 'repo summary' 'cgit_url "/foo" | tidy -e' + + +mkrepo() { + name=$1 + count=$2 + dir=$PWD + test -d $name && return + printf "Creating testrepo %s\n" $name + mkdir -p $name + cd $name + git init + for ((n=1; n<=count; n++)) + do + echo $n >file-$n + git add file-$n + git commit -m "commit $n" + done + cd $dir +} + +setup_repos() +{ + rm -rf trash/cache + mkdir -p trash/cache + mkrepo trash/repos/foo 5 >/dev/null + mkrepo trash/repos/bar 50 >/dev/null + cat >trash/cgitrc <<EOF +virtual-root=/ +cache-root=$PWD/trash/cache + +nocache=0 +snapshots=tar.gz tar.bz zip +enable-log-filecount=1 +enable-log-linecount=1 +summary-log=5 +summary-branches=5 +summary-tags=5 + +repo.url=foo +repo.path=$PWD/trash/repos/foo/.git +repo.desc=the foo repo + +repo.url=bar +repo.path=$PWD/trash/repos/bar/.git +repo.desc=the bar repo +EOF +} + +prepare_tests() +{ + setup_repos + test_count=0 + test_failed=0 + echo "$@" "($0)" +} + +tests_done() +{ + printf "\n" + if test $test_failed -gt 0 + then + printf "[%s of %s tests failed]\n" $test_failed $test_count + false + fi +} + +run_test() +{ + desc=$1 + script=$2 + ((test_count++)) + eval "$2" >test-output.log + res=$? + if test $res = 0 + then + printf " %s: ok - %s\n" $test_count "$desc" + else + ((test_failed++)) + printf " %s: fail - %s\n" $test_count "$desc" + fi +} + +cgit_query() +{ + CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="$1" "$PWD/../cgit" +} + +cgit_url() +{ + CGIT_CONFIG="$PWD/trash/cgitrc" QUERY_STRING="url=$1" "$PWD/../cgit" +} + |