replaced with 2.1.4
diff --git a/source/1.0/lib/shunit2 b/source/1.0/lib/shunit2
index cb47701..eef19d4 100644
--- a/source/1.0/lib/shunit2
+++ b/source/1.0/lib/shunit2
@@ -1,4 +1,4 @@
-# $Id: shunit2 151 2008-05-10 22:07:29Z sfsetse $
+# $Id: shunit2 189 2008-07-11 11:46:54Z kate.ward@forestent.com $
# vim:et:ft=sh:sts=2:sw=2
# vim:foldmethod=marker:foldmarker=/**,*/
#
@@ -6,7 +6,7 @@
# <?xml version="1.0" encoding="UTF-8"?>
# <s:shelldoc xmlns:s="http://www.forestent.com/projects/shelldoc/xsl/2005.0">
# <s:header>
-# shUnit 2.1.3
+# shUnit 2.1.4
# Shell Unit Test Framework
#
# http://shunit2.sourceforge.net/
@@ -18,7 +18,7 @@
# </s:header>
#*/
-__SHUNIT_VERSION='2.1.3'
+SHUNIT_VERSION='2.1.4'
_shunit_warn() { echo "shunit2:WARN $@" >&2; }
_shunit_error() { echo "shunit2:ERROR $@" >&2; }
@@ -30,8 +30,9 @@
# specific shell checks
if [ -n "${ZSH_VERSION:-}" ]; then
- if [ "`set -o |grep "^shwordsplit" |awk '{print $2}'`" = 'off' ]; then
- _shunit_fatal 'shwordsplit option required for proper zsh operation'
+ setopt |grep "^shwordsplit$" >/dev/null
+ if [ $? -ne ${SHUNIT_TRUE} ]; then
+ _shunit_fatal 'zsh shwordsplit option is required for proper operation'
exit ${SHUNIT_ERROR}
fi
if [ -z "${SHUNIT_PARENT:-}" ]; then
@@ -46,10 +47,10 @@
__SHUNIT_SHELL_FLAGS='u'
# save the current set of shell flags, and then set some for ourself
-_shunit_shellFlags="$-"
-for _shunit_shellFlag in `echo "${__SHUNIT_SHELL_FLAGS}" |sed 's/\(.\)/\1 /g'`
+shunit_shellFlags_="$-"
+for shunit_shellFlag_ in `echo "${__SHUNIT_SHELL_FLAGS}" |sed 's/\(.\)/\1 /g'`
do
- set -${_shunit_shellFlag}
+ set -${shunit_shellFlag_}
done
#
@@ -60,20 +61,23 @@
__SHUNIT_PARENT=${SHUNIT_PARENT:-$0}
# set the constants readonly
-_shunit_constants=`set |grep "^__SHUNIT_" |cut -d= -f1`
-echo "${_shunit_constants}" |grep "^Binary file" >/dev/null
+shunit_constants_=`set |grep "^__SHUNIT_" |cut -d= -f1`
+echo "${shunit_constants_}" |grep "^Binary file" >/dev/null
if [ $? -eq 0 ]; then
# deal with binary junk in 'set' output
- _shunit_constants=`set |grep -a "^__SHUNIT_" |cut -d= -f1`
+ shunit_constants_=`set |grep -a "^__SHUNIT_" |cut -d= -f1`
fi
-for _shunit_const in ${_shunit_constants}; do
+for shunit_const_ in ${shunit_constants_}; do
+ shunit_ro_opts_=''
if [ -n "${ZSH_VERSION:-}" ]; then
- readonly -g ${_shunit_const} # declare readonly constants globally
- else
- readonly ${_shunit_const}
+ case ${ZSH_VERSION} in
+ [123].*) ;;
+ *) shunit_ro_opts_='-g' ;; # declare readonly constants globally
+ esac
fi
+ readonly ${shunit_ro_opts_} ${shunit_const_}
done
-unset _shunit_const _shunit_constants
+unset shunit_const_ shunit_constants_ shunit_ro_opts_
# variables
__shunit_skip=${SHUNIT_FALSE}
@@ -84,6 +88,9 @@
__shunit_testsSkipped=0
__shunit_testsTotal=0
+# macros
+_SHUNIT_LINENO_='eval if [ "${1:-}" = "--lineno" ]; then [ -n "$2" ] && shunit_message_="[$2]"; shift 2; fi'
+
#-----------------------------------------------------------------------------
# assert functions
#
@@ -110,30 +117,33 @@
#*/
assertEquals()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error 'assertEquals() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=''
- if [ $# -lt 2 ]; then
- _shunit_error 'assertEquals()/assertSame() require at least two arguments'
- return ${SHUNIT_ERROR}
- elif [ $# -eq 3 ]; then
- _su_message=$1
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
+ if [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
shift
fi
- _su_expected=${1:-}
- _su_actual=${2:-}
+ shunit_expected_=$1
+ shunit_actual_=$2
shunit_return=${SHUNIT_TRUE}
- if [ "${_su_expected}" = "${_su_actual}" ]; then
+ if [ "${shunit_expected_}" = "${shunit_actual_}" ]; then
_shunit_testPassed
else
- failNotEquals "${_su_message}" "${_su_expected}" "${_su_actual}"
+ failNotEquals "${shunit_message_}" "${shunit_expected_}" "${shunit_actual_}"
shunit_return=${SHUNIT_FALSE}
fi
- unset _su_message _su_expected _su_actual
+ unset shunit_message_ shunit_expected_ shunit_actual_ __shunit_lineno
return ${shunit_return}
}
+_ASSERT_EQUALS_='eval assertEquals --lineno "${LINENO:-}"'
#/**
# <s:function group="asserts">
@@ -155,17 +165,25 @@
#*/
assertNull()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error 'assertNull() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- if [ $# -lt 1 ]; then
- _shunit_error 'assertNull() requires at least one arguments'
- return ${SHUNIT_ERROR}
- elif [ $# -eq 2 ]; then
- assertTrue "$1" "[ -z '$2' ]"
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
+ if [ $# -eq 2 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
+ if [ $# -eq 2 ]; then
+ assertTrue "${shunit_message_}$1" "[ -z '$2' ]"
else
- assertTrue "[ -z '${1:-}' ]"
+ assertTrue "[ -z '$1' ]"
fi
}
+_ASSERT_NULL_='eval assertNull --lineno "${LINENO:-}"'
#/**
# <s:function group="asserts">
@@ -188,6 +206,11 @@
#*/
assertNotNull()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -gt 2 ]; then # allowing 0 arguments as $1 might actually be null
+ _shunit_error 'assertNotNull() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
if [ $# -eq 2 ]; then
@@ -196,6 +219,7 @@
assertTrue "[ -n '${1:-}' ]"
fi
}
+_ASSERT_NOT_NULL_='eval assertNotNull --lineno "${LINENO:-}"'
#/**
# <s:function group="asserts">
@@ -218,8 +242,20 @@
#*/
assertSame()
{
- assertEquals "${@:-}"
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error 'assertSame() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ if [ $# -eq 2 ]; then
+ assertEquals "$1" "$2"
+ else
+ assertEquals "$1" "$2" "$3"
+ fi
}
+_ASSERT_SAME_='eval assertSame --lineno "${LINENO:-}"'
#/**
# <s:function group="asserts">
@@ -243,27 +279,33 @@
#*/
assertNotSame()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error 'assertNotSame() requires two or three arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=''
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
if [ $# -eq 3 ]; then
- _su_message=$1
+ shunit_message_="${shunit_message_}$1"
shift
fi
- _su_unexpected=${1:-}
- _su_actual=${2:-}
+ shunit_unexpected_=$1
+ shunit_actual_=$2
shunit_return=${SHUNIT_TRUE}
- if [ "${_su_unexpected}" != "${_su_actual}" ]; then
+ if [ "${shunit_unexpected_}" != "${shunit_actual_}" ]; then
_shunit_testPassed
else
- failSame "${_su_message}"
+ failSame "${shunit_message_}" "$@"
shunit_return=${SHUNIT_FALSE}
fi
- unset _su_message _su_unexpected _su_actual
+ unset shunit_message_ shunit_unexpected_ shunit_actual_
return ${shunit_return}
}
+_ASSERT_NOT_SAME_='eval assertNotSame --lineno "${LINENO:-}"'
#/**
# <s:function group="asserts">
@@ -294,28 +336,32 @@
#*/
assertTrue()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -gt 2 ]; then
+ _shunit_error 'assertTrue() takes one two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=''
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
if [ $# -eq 2 ]; then
- _su_message=$1
+ shunit_message_="${shunit_message_}$1"
shift
fi
- _su_condition=${1:-}
-
- shunit_return=${SHUNIT_TRUE}
+ shunit_condition_=$1
# see if condition is an integer, i.e. a return value
- _su_match=`expr "${_su_condition}" : '\([0-9]*\)'`
- if [ -z "${_su_condition}" ]; then
+ shunit_match_=`expr "${shunit_condition_}" : '\([0-9]*\)'`
+ shunit_return=${SHUNIT_TRUE}
+ if [ -z "${shunit_condition_}" ]; then
# null condition
shunit_return=${SHUNIT_FALSE}
- elif [ "${_su_condition}" = "${_su_match}" ]; then
+ elif [ "${shunit_condition_}" = "${shunit_match_}" ]; then
# possible return value. treating 0 as true, and non-zero as false.
- [ ${_su_condition} -ne 0 ] && shunit_return=${SHUNIT_FALSE}
+ [ ${shunit_condition_} -ne 0 ] && shunit_return=${SHUNIT_FALSE}
else
# (hopefully) a condition
- ( eval ${_su_condition} ) >/dev/null 2>&1
+ ( eval ${shunit_condition_} ) >/dev/null 2>&1
[ $? -ne 0 ] && shunit_return=${SHUNIT_FALSE}
fi
@@ -323,12 +369,13 @@
if [ ${shunit_return} -eq ${SHUNIT_TRUE} ]; then
_shunit_testPassed
else
- _shunit_testFailed "${_su_message}"
+ _shunit_testFailed "${shunit_message_}"
fi
- unset _su_message _su_condition _su_match
+ unset shunit_message_ shunit_condition_ shunit_match_
return ${shunit_return}
}
+_ASSERT_TRUE_='eval assertTrue --lineno "${LINENO:-}"'
#/**
# <s:function group="asserts">
@@ -359,28 +406,32 @@
#*/
assertFalse()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 1 -o $# -gt 2 ]; then
+ _shunit_error 'assertFalse() quires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=''
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
if [ $# -eq 2 ]; then
- _su_message=$1
+ shunit_message_="${shunit_message_}$1"
shift
fi
- _su_condition=${1:-}
-
- shunit_return=${SHUNIT_TRUE}
+ shunit_condition_=$1
# see if condition is an integer, i.e. a return value
- _su_match=`expr "${_su_condition}" : '\([0-9]*\)'`
- if [ -z "${_su_condition}" ]; then
+ shunit_match_=`expr "${shunit_condition_}" : '\([0-9]*\)'`
+ shunit_return=${SHUNIT_TRUE}
+ if [ -z "${shunit_condition_}" ]; then
# null condition
shunit_return=${SHUNIT_FALSE}
- elif [ "${_su_condition}" = "${_su_match}" ]; then
+ elif [ "${shunit_condition_}" = "${shunit_match_}" ]; then
# possible return value. treating 0 as true, and non-zero as false.
- [ ${_su_condition} -eq 0 ] && shunit_return=${SHUNIT_FALSE}
+ [ ${shunit_condition_} -eq 0 ] && shunit_return=${SHUNIT_FALSE}
else
# (hopefully) a condition
- ( eval ${_su_condition} ) >/dev/null 2>&1
+ ( eval ${shunit_condition_} ) >/dev/null 2>&1
[ $? -eq 0 ] && shunit_return=${SHUNIT_FALSE}
fi
@@ -388,12 +439,13 @@
if [ ${shunit_return} -eq ${SHUNIT_TRUE} ]; then
_shunit_testPassed
else
- _shunit_testFailed "${_su_message}"
+ _shunit_testFailed "${shunit_message_}"
fi
- unset _su_message _su_condition _su_match
+ unset shunit_message_ shunit_condition_ shunit_match_
return ${shunit_return}
}
+_ASSERT_FALSE_='eval assertFalse --lineno "${LINENO:-}"'
#-----------------------------------------------------------------------------
# failure functions
@@ -417,14 +469,25 @@
#*/
fail()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -gt 1 ]; then
+ _shunit_error 'fail() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=${1:-}
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
+ if [ $# -eq 1 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
- _shunit_testFailed "${_su_message}"
+ _shunit_testFailed "${shunit_message_}"
- unset _su_message
+ unset shunit_message_
+ return ${SHUNIT_FALSE}
}
+_FAIL_='eval fail --lineno "${LINENO:-}"'
#/**
# <s:function group="failures">
@@ -448,20 +511,27 @@
#*/
failNotEquals()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error 'failNotEquals() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=''
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
if [ $# -eq 3 ]; then
- _su_message=$1
+ shunit_message_="${shunit_message_}$1"
shift
fi
- _su_unexpected=${1:-}
- _su_actual=${2:-}
+ shunit_unexpected_=$1
+ shunit_actual_=$2
- _shunit_testFailed "${_su_message:+${_su_message} }expected:<${_su_unexpected}> but was:<${_su_actual}>"
+ _shunit_testFailed "${shunit_message_:+${shunit_message_} }expected:<${shunit_unexpected_}> but was:<${shunit_actual_}>"
- unset _su_message _su_unexpected _su_actual
+ unset shunit_message_ shunit_unexpected_ shunit_actual_
+ return ${SHUNIT_FALSE}
}
+_FAIL_NOT_EQUALS_='eval failNotEquals --lineno "${LINENO:-}"'
#/**
# <s:function group="failures">
@@ -482,14 +552,25 @@
#*/
failSame()
{
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error 'failSame() requires two or three arguments'
+ return ${SHUNIT_ERROR}
+ fi
_shunit_shouldSkip && return ${SHUNIT_TRUE}
- _su_message=${1:-}
+ [ -z "${shunit_message_:-}" ] && shunit_message_=''
+ if [ $# -eq 3 ]; then
+ shunit_message_="${shunit_message_}$1"
+ shift
+ fi
- _shunit_testFailed "${_su_message:+${_su_message} }expected not same"
+ _shunit_testFailed "${shunit_message_:+${shunit_message_} }expected not same"
- unset _su_message
+ unset shunit_message_
+ return ${SHUNIT_FALSE}
}
+_FAIL_SAME_='eval failSame --lineno "${LINENO:-}"'
#/**
# <s:function group="failures">
@@ -513,8 +594,20 @@
#*/
failNotSame()
{
- failNotEquals "${@:-}"
+ ${_SHUNIT_LINENO_}
+ if [ $# -lt 2 -o $# -gt 3 ]; then
+ _shunit_error 'failNotEquals() requires one or two arguments'
+ return ${SHUNIT_ERROR}
+ fi
+ _shunit_shouldSkip && return ${SHUNIT_TRUE}
+
+ if [ $# -eq 2 ]; then
+ failNotEquals "$1" "$2"
+ else
+ failNotEquals "$1" "$2" "$3"
+ fi
}
+_FAIL_NOT_SAME_='eval failNotSame --lineno "${LINENO:-}"'
#-----------------------------------------------------------------------------
# skipping functions
@@ -757,9 +850,8 @@
_shunit_generateReport
# disable EXIT trap
trap 0
- # add 127 to signal and exit
- signal=`expr ${signal} + 127`
- exit ${signal}
+ # add 128 to signal and exit
+ exit `expr ${signal} + 128`
fi
}
@@ -786,15 +878,6 @@
unset _su_func
}
-_shunit_functionExists()
-{
- _su__func=$1
- type ${_su__func} 2>/dev/null |grep "is a function$" >/dev/null
- _su__return=$?
- unset _su__func
- return ${_su__return}
-}
-
_shunit_generateReport()
{
_su__awkPercent='{printf("%4d %3.0f%%", $1, $1*100/$2)}'
@@ -847,7 +930,7 @@
_su__random=`expr ${_su__date} / $$`
fi
- _su__tmpDir="${TMPDIR-/tmp}/shunit.${_su__random}"
+ _su__tmpDir="${TMPDIR:-/tmp}/shunit.${_su__random}"
( umask 077 && mkdir "${_su__tmpDir}" ) || {
echo 'shUnit:FATAL could not create temporary directory! exiting' >&2
exit 1
@@ -918,7 +1001,6 @@
PATH="${__shunit_tmpDir}:${PATH}"
# execute the oneTimeSetUp function (if it exists)
-#_shunit_functionExists oneTimeSetUp && oneTimeSetUp
oneTimeSetUp
# execute the suite function defined in the parent test script
@@ -927,12 +1009,13 @@
# if no suite function was defined, dynamically build a list of functions
if [ -z "${__shunit_suite}" ]; then
- funcs=`grep "^[ \t]*test[A-Za-z0-9_]* *()" ${__SHUNIT_PARENT} \
+ shunit_funcs_=`grep "^[ \t]*test[A-Za-z0-9_]* *()" ${__SHUNIT_PARENT} \
|sed 's/[^A-Za-z0-9_]//g'`
- for func in ${funcs}; do
- suite_addTest ${func}
+ for shunit_func_ in ${shunit_funcs_}; do
+ suite_addTest ${shunit_func_}
done
fi
+unset shunit_func_ shunit_funcs_
# execute the tests
_shunit_execSuite
@@ -944,11 +1027,11 @@
_shunit_generateReport
# restore the previous set of shell flags
-for _shunit_shellFlag in ${__SHUNIT_SHELL_FLAGS}; do
- echo ${_shunit_shellFlags} |grep ${_shunit_shellFlag} >/dev/null \
- || set +${_shunit_shellFlag}
+for shunit_shellFlag_ in ${__SHUNIT_SHELL_FLAGS}; do
+ echo ${shunit_shellFlags_} |grep ${shunit_shellFlag_} >/dev/null \
+ || set +${shunit_shellFlag_}
done
-unset _shunit_shellFlag _shunit_shellFlags
+unset shunit_shellFlag_ shunit_shellFlags_
[ ${__shunit_testsFailed} -eq 0 ] || exit 1