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