summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/setup.sh18
-rwxr-xr-xtests/t0010-validate-html.sh5
-rwxr-xr-xtests/t0101-index.sh6
-rwxr-xr-xtests/t0102-summary.sh6
-rwxr-xr-xtests/t0108-patch.sh37
5 files changed, 61 insertions, 11 deletions
diff --git a/tests/setup.sh b/tests/setup.sh
index 51d5a75..66bf406 100755
--- a/tests/setup.sh
+++ b/tests/setup.sh
@@ -54,7 +54,9 @@ summary-tags=5
 
 repo.url=foo
 repo.path=$PWD/trash/repos/foo/.git
-repo.desc=the foo repo
+# 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/trash/repos/bar/.git
@@ -65,8 +67,10 @@ 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)"
 }
 
@@ -75,7 +79,8 @@ tests_done()
 	printf "\n"
 	if test $test_failed -gt 0
 	then
-		printf "[%s of %s tests failed]\n" $test_failed $test_count
+		printf "test: *** %s failure(s), logfile=%s\n" \
+			$test_failed "$(pwd)/test-output.log"
 		false
 	fi
 }
@@ -85,14 +90,17 @@ run_test()
 	desc=$1
 	script=$2
 	((test_count++))
-	eval "$2" >test-output.log
+	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
 	then
-		printf "  %s: ok - %s\n" $test_count "$desc"
+		printf " %2d) %-60s [ok]\n" $test_count "$desc"
 	else
 		((test_failed++))
-		printf "  %s: fail - %s\n" $test_count "$desc"
+		printf " %2d) %-60s [failed]\n" $test_count "$desc"
 	fi
 }
 
diff --git a/tests/t0010-validate-html.sh b/tests/t0010-validate-html.sh
index 907a415..94aa52b 100755
--- a/tests/t0010-validate-html.sh
+++ b/tests/t0010-validate-html.sh
@@ -7,9 +7,12 @@ test_url()
 {
 	tidy_opt="-eq"
 	test -z "$NO_TIDY_WARNINGS" || tidy_opt+=" --show-warnings no"
-	cgit_url "$1" | sed -e "1,4d" >trash/tidy-$test_count
+	cgit_url "$1" >trash/tidy-$test_count || return
+	sed -ie "1,4d" trash/tidy-$test_count || return
 	tidy $tidy_opt trash/tidy-$test_count
 	rc=$?
+
+	# tidy returns with exitcode 1 on warnings, 2 on error
 	if test $rc = 2
 	then
 		false
diff --git a/tests/t0101-index.sh b/tests/t0101-index.sh
index 12ed00c..445af6a 100755
--- a/tests/t0101-index.sh
+++ b/tests/t0101-index.sh
@@ -6,8 +6,10 @@ prepare_tests "Check content on index page"
 
 run_test 'generate index page' 'cgit_url "" >trash/tmp'
 run_test 'find foo repo' 'grep -e "foo" trash/tmp'
+run_test 'find foo description' 'grep -e "\[no description\]" trash/tmp'
 run_test 'find bar repo' 'grep -e "bar" trash/tmp'
-run_test 'no tree-link' 'grep -ve "foo/tree" trash/tmp'
-run_test 'no log-link' 'grep -ve "foo/log" trash/tmp'
+run_test 'find bar description' 'grep -e "the bar repo" trash/tmp'
+run_test 'no tree-link' '! grep -e "foo/tree" trash/tmp'
+run_test 'no log-link' '! grep -e "foo/log" trash/tmp'
 
 tests_done
diff --git a/tests/t0102-summary.sh b/tests/t0102-summary.sh
index 7edd675..f0b0d9a 100755
--- a/tests/t0102-summary.sh
+++ b/tests/t0102-summary.sh
@@ -8,13 +8,13 @@ run_test 'generate foo summary' 'cgit_url "foo" >trash/tmp'
 run_test 'find commit 1' 'grep -e "commit 1" trash/tmp'
 run_test 'find commit 5' 'grep -e "commit 5" trash/tmp'
 run_test 'find branch master' 'grep -e "master" trash/tmp'
-run_test 'no tags' 'grep -ve "tags" trash/tmp'
+run_test 'no tags' '! grep -e "tags" trash/tmp'
 
 run_test 'generate bar summary' 'cgit_url "bar" >trash/tmp'
-run_test 'no commit 45' 'grep -ve "commit 45" trash/tmp'
+run_test 'no commit 45' '! grep -e "commit 45" trash/tmp'
 run_test 'find commit 46' 'grep -e "commit 46" trash/tmp'
 run_test 'find commit 50' 'grep -e "commit 50" trash/tmp'
 run_test 'find branch master' 'grep -e "master" trash/tmp'
-run_test 'no tags' 'grep -ve "tags" trash/tmp'
+run_test 'no tags' '! grep -e "tags" trash/tmp'
 
 tests_done
diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh
new file mode 100755
index 0000000..33351d6
--- /dev/null
+++ b/tests/t0108-patch.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+. ./setup.sh
+
+prepare_tests "Check content on patch page"
+
+run_test 'generate foo/patch' '
+	cgit_query "url=foo/patch" >trash/tmp
+'
+
+run_test 'find `From:` line' '
+	grep -e "^From: " trash/tmp
+'
+
+run_test 'find `Date:` line' '
+	grep -e "^Date: " trash/tmp
+'
+
+run_test 'find `Subject:` line' '
+	grep -e "^Subject: commit 5" trash/tmp
+'
+
+run_test 'find `cgit` signature' '
+	 tail -1 trash/tmp | grep -e "^cgit"
+'
+
+run_test 'find initial commit' '
+	root=$(git --git-dir=$PWD/trash/repos/foo/.git rev-list HEAD | tail -1)
+'
+
+run_test 'generate patch for initial commit' '
+	cgit_query "url=foo/patch&id=$root" >trash/tmp
+'
+
+run_test 'find `cgit` signature' '
+	tail -1 trash/tmp | grep -e "^cgit"
+'