Files
deb-subunit/shell/subunit-ui.patch
2006-04-15 02:43:57 +10:00

363 lines
9.6 KiB
Diff

Index: shUnit
===================================================================
RCS file: /cvsroot/shunit/ShUnit/shUnit,v
retrieving revision 1.14
diff -u -p -r1.14 shUnit
--- shUnit 18 Mar 2006 04:53:18 -0000 1.14
+++ shUnit 14 Apr 2006 16:18:51 -0000
@@ -88,16 +88,59 @@ shuFmtNbrTests() {
fi
}
+function shuPrintStartRun () {
+ # print out the start of a test run.
+ printf "\n****** `basename ${0}` ******\n"
+ printf "%s to run:\n" "$shuRetFmtNbrTests"
+}
+
+function shuPrintStart () {
+ # print out the prelude to a single test
+ # $1 is the test name
+ # $2 the test number
+ printf " Test %i: %s " ${2} "${1}"
+}
+
+function shuPrintAfter () {
+ # print out the result of a single test
+ # $1 is the test name
+ # SHU_STR_FAILED contains error text (if any)
+ printf "\n"
+
+ if test -n "${SHU_STR_FAILED}"
+ then
+
+ OLD_IFS="${IFS}"
+ IFS="^"
+ set -- ${SHU_STR_FAILED}
+ IFS="${OLD_IFS}"
+ while [ ${#} -gt 0 ]
+ do
+ printf " \"%s\" failed.\n" "${1}"
+ shift
+ done
+ fi
+}
+
+function shuPrintAfterRun () {
+ # print out the result of the run
+ # $1 is the number of tests run
+ # $2 the pass count
+ # $3 the failure count.
+ printf "\n%s run.\n" "${1}"
+ printf " %s succeeded.\n" "${2}"
+ printf " %s failed.\n\n" "${3}"
+}
+
shuStart() {
strInitFunction="${1}"
eval ${strInitFunction}
- printf "\n****** `basename ${0}` ******\n"
-
SHU_TOTAL_NR_OF_TESTS=`echo ${SHU_STR_ALL_TESTS} | wc -w | sed -e 's/ *//'`
shuFmtNbrTests "${SHU_TOTAL_NR_OF_TESTS}"
- printf "%s to run:\n" "$shuRetFmtNbrTests"
+
+ shuPrintStartRun
SHU_TOTAL_NR_SUCCEEDED=0
shuTestNbr=0
@@ -105,33 +148,19 @@ shuStart() {
do
SHU_STR_FAILED=""
shuTestNbr=`expr ${shuTestNbr} + 1`
- printf " Test %i: %s " ${shuTestNbr} "${STR_TEST}"
+ shuPrintStart "${STR_TEST}" ${shuTestNbr}
shuRunOneTest ${STR_TEST}
- printf "\n"
-
- if test -n "${SHU_STR_FAILED}"
- then
-
- OLD_IFS="${IFS}"
- IFS="^"
- set -- ${SHU_STR_FAILED}
- IFS="${OLD_IFS}"
- while [ ${#} -gt 0 ]
- do
- printf " \"%s\" failed.\n" "${1}"
- shift
- done
- fi
+ shuPrintAfter "${STR_TEST}"
done
shuFmtNbrTests "${shuTestNbr}"
- printf "\n%s run.\n" "${shuRetFmtNbrTests}"
-
+ number_run="${shuRetFmtNbrTests}"
shuFmtNbrTests "${SHU_TOTAL_NR_SUCCEEDED}"
- printf " %s succeeded.\n" "${shuRetFmtNbrTests}"
-
+ number_passed="${shuRetFmtNbrTests}"
shuFmtNbrTests `expr ${shuTestNbr} - ${SHU_TOTAL_NR_SUCCEEDED}`
- printf " %s failed.\n\n" "${shuRetFmtNbrTests}"
+ number_failed="${shuRetFmtNbrTests}"
+
+ shuPrintAfterRun "${number_run}" "${number_passed}" "${number_failed}"
}
shuRegisterFailedTest() {
Index: shUnitTest
===================================================================
RCS file: /cvsroot/shunit/ShUnit/shUnitTest,v
retrieving revision 1.16
diff -u -p -r1.16 shUnitTest
--- shUnitTest 31 Dec 2005 06:35:29 -0000 1.16
+++ shUnitTest 14 Apr 2006 16:18:51 -0000
@@ -121,6 +121,53 @@ TestShuFmtNbrTests() {
shuAssert "Failed test case 100 returned [$shuRetFmtNbrTests]" $?
}
+
+TestShuPrintStartRun() {
+ # when not using subunit, print output an idea of what tests will run before starting.
+ expected=$(printf "\n****** `basename ${0}` ******\n"; printf "%s to run:\n" "$shuRetFmtNbrTests")
+ result=$(shuPrintStartRun)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+
+TestShuPrintStart() {
+ # when not using subunit, print output a human readable pre-test intro.
+ expected=$(printf " Test 1: phwoar ")
+ result=$(shuPrintStart phwoar 1)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+
+TestShuPrintAfter() {
+ # when not using subunit, print the error text normally.
+
+ # case one : passes
+ expected=$(printf "\n")
+ SHU_STR_FAILED=""
+ result=$(shuPrintAfter phwoar)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+
+ # case two: errors
+ SHU_STR_FAILED=$(printf "some test\nmore text")
+ expected=$(printf "\n \"some test\nmore text\" failed.")
+ result=$(shuPrintAfter phwoar)
+ SHU_STR_FAILED=""
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+
+TestShuPrintAfterRun() {
+ # print out a summary of the tests run
+ expected=$(printf "\n5 run.\n 4 succeeded.\n 1 failed.\n\n")
+ result=$(shuPrintAfterRun 5 4 1)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
InitFunction() {
shuRegTest TestIntentionalFailure
shuRegTest TestShuRegisterFailedTest
@@ -130,6 +177,10 @@ InitFunction() {
shuRegTest TestShuRunOneTest
shuRegTest TestSetupCalledCorrectly
shuRegTest TestShuFmtNbrTests
+ shuRegTest TestShuPrintStartRun
+ shuRegTest TestShuPrintAfterRun
+ shuRegTest TestShuPrintStart
+ shuRegTest TestShuPrintAfter
}
--- /dev/null 2006-03-28 06:29:48.000000000 +1100
+++ shUnitSubUnit 2006-04-15 02:17:38.000000000 +1000
@@ -0,0 +1,74 @@
+################################################################################
+# shUnit subunit integration
+# original by Robert Collins
+# $Source: $
+# $Id: $
+################################################################################
+#
+
+. subunit.sh
+
+function shuPrintStartRun () {
+ # print out the start of a test run. This prints nothing
+ # when using subunit, because we are no longer doing the UI.
+ :
+}
+
+function shuPrintAfterRun () {
+ # print out the end of a test run. This prints nothing
+ # when using subunit, because we are no longer doing the UI.
+ :
+}
+
+function shuPrintStart () {
+ # print out the prelude to a single test
+ # $1 is the test name
+ # $2 the test number
+ subunit_start_test "${1}"
+}
+
+function shuPrintAfter () {
+ # print out the result of a single test
+ # $1 is the test name
+ # SHU_STR_FAILED contains error text (if any)
+ test_name="${1}"
+ if test -n "${SHU_STR_FAILED}"
+ then
+
+ OLD_IFS="${IFS}"
+ IFS="^"
+ set -- ${SHU_STR_FAILED}
+ subunit_fail_test "${test_name}" <<<${SHU_STR_FAILED}
+ IFS="${OLD_IFS}"
+ else
+ subunit_pass_test "${1}"
+ fi
+}
+
+
+shuAssert() {
+ # override assert to be quiet.
+ strMessage="${1:-}"
+ boolResult="${2:-${SHU_FALSE}}"
+
+ if [ ${boolResult} -ne ${SHU_TRUE} ]
+ then
+ shuRegisterFailedTest "${strMessage}"
+ else
+ SHU_TEST_SUCCEEDED=${SHU_TRUE}
+ fi
+}
+
+shuDeny() {
+ # override deny to be quiet.
+ strMessage="${1:-}"
+ boolResult="${2:-${SHU_TRUE}}"
+
+ if [ ${boolResult} -eq ${SHU_TRUE} ]
+ then
+ shuRegisterFailedTest "${strMessage}"
+ else
+ SHU_TEST_SUCCEEDED=${SHU_TRUE}
+ fi
+}
+
--- /dev/null 2006-03-28 06:29:48.000000000 +1100
+++ shUnitSubUnitTest 2006-04-15 02:18:19.000000000 +1000
@@ -0,0 +1,99 @@
+#! /usr/bin/env sh
+# Tests for the subunit client UI.
+################################################################################
+# $Id: $
+################################################################################
+
+#
+# find the shUnit file using the command as a reference
+#
+inherit() {
+ d=`expr ${0} : '\([a-zA-Z/._-]*\/\)'`
+ test `expr "$d" : '[./]'` -eq 0 && d="./$d"
+ . ${d}${1}
+}
+
+inherit shUnit
+inherit shUnitSubUnit
+
+
+shuSetUp() {
+ touch ./test.$$
+}
+
+shuTearDown() {
+ [ -f ./test.$$ ] && rm ./test.$$
+}
+
+TestShuAssert() {
+ shuAssert "" "${SHU_TRUE}"
+ shuAssert "Test case ${SHU_TRUE} failed" "${SHU_TRUE}"
+}
+
+TestShuDeny() {
+ shuDeny "" "${SHU_FALSE}"
+ shuDeny "return code ${SHU_FALSE} failed" "${SHU_FALSE}"
+ shuDeny "return code -1 failed" -1
+ shuDeny "return code 222 failed" 222
+}
+
+TestShuPrintAfter() {
+ # for subunit, we delegate to subunit on pass and fail output.
+
+ # case one : passes
+ expected=$(subunit_pass_test "Test 1")
+ SHU_STR_FAILED=""
+ result=$(shuPrintAfter "Test 1")
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+
+ # case two: errors
+ SHU_STR_FAILED=$(printf "some test\nmore text")
+ expected=$(subunit_fail_test "phwoar" <<END
+some test
+more text
+END)
+ result=$(shuPrintAfter phwoar)
+ SHU_STR_FAILED=""
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+TestShuPrintStartRun() {
+ # when using subunit, print nothing at the start of the program run
+ expected=""
+ result=$(shuPrintStartRun)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+TestShuPrintStart() {
+ # when using subunit, print the subunit header
+ expected=$(subunit_start_test phwoar)
+ result=$(shuPrintStart phwoar 1)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+TestShuPrintAfterRun() {
+ # in subunit the runner UI prints out statistics.
+ expected=""
+ result=$(shuPrintAfterRun 5 4 1)
+ [ "x$expected" = "x$result" ] && pass=0 || pass=1
+ shuAssert "Failed test case incorrect output [$result] wanted [$expected]" ${pass}
+}
+
+InitFunction() {
+ shuRegTest TestShuAssert
+ shuRegTest TestShuDeny
+ shuRegTest TestShuPrintStartRun
+ shuRegTest TestShuPrintAfterRun
+ shuRegTest TestShuPrintStart
+ shuRegTest TestShuPrintAfter
+}
+
+
+### Main
+
+shuStart InitFunction
+