363 lines
9.6 KiB
Diff
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
|
|
+
|