[PATCH 1/2] Test suite fixup.

Exposing test_expect_success and test_expect_failure turns out
to be enough for the test scripts and there is no need for
exposing test_ok or test_failure.  This patch cleans it up and
fixes the users of test_ok and test_failure.

Also test scripts have acquired a new command line flag
'--immediate' to cause them to exit upon the first failure.
This is useful especially during the development of a new test.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Petr Baudis <pasky@ucw.cz>
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 9b88cc4..d3f71d1 100755
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -50,6 +50,8 @@
 	case "$1" in
 	-d|--d|--de|--deb|--debu|--debug)
 		debug=t; shift ;;
+	-i|--i|--im|--imm|--imme|--immed|--immedi|--immedia|--immediat|--immediate)
+		immediate=t; shift ;;
 	-h|--h|--he|--hel|--help)
 		echo "$test_description"
 		exit 0 ;;
@@ -70,19 +72,25 @@
 test_failure=0
 test_count=0
 
-test_debug () {
-	test "$debug" == "" || eval "$1"
-}
 
-test_ok () {
+# You are not expected to call test_ok_ and test_failure_ directly, use
+# the text_expect_* functions instead.
+
+test_ok_ () {
 	test_count=$(expr "$test_count" + 1)
 	say "  ok $test_count: $@"
 }
 
-test_failure () {
+test_failure_ () {
 	test_count=$(expr "$test_count" + 1)
 	test_failure=$(expr "$test_failure" + 1);
 	say "FAIL $test_count: $@"
+	test "$immediate" == "" || exit 1
+}
+
+
+test_debug () {
+	test "$debug" == "" || eval "$1"
 }
 
 test_expect_failure () {
@@ -91,9 +99,9 @@
 	say >&3 "expecting failure: $2"
 	if eval >&3 2>&4 "$2"
 	then
-		test_failure "$@"
+		test_failure_ "$@"
 	else
-		test_ok "$1"
+		test_ok_ "$1"
 	fi
 }
 
@@ -103,9 +111,9 @@
 	say >&3 "expecting success: $2"
 	if eval >&3 2>&4 "$2"
 	then
-		test_ok "$1"
+		test_ok_ "$1"
 	else
-		test_failure "$@"
+		test_failure_ "$@"
 	fi
 }