| # $Id$ |
| # vim:et:ft=sh:sts=2:sw=2 |
| # |
| # Copyright 2008 Kate Ward. All Rights Reserved. |
| # Released under the LGPL (GNU Lesser General Public License) |
| # |
| # Author: kate.ward@forestent.com (Kate Ward) |
| # |
| # shFlags unit test common functions |
| |
| __th_skipping=0 |
| |
| # treat unset variables as an error |
| set -u |
| |
| # set shwordsplit for zsh |
| [ -n "${ZSH_VERSION:-}" ] && setopt shwordsplit |
| |
| # my name |
| TH_MY_NAME=`basename "$0"` |
| |
| # path to shFlags library. can be overridden by setting SHFLAGS_INC |
| TH_SHFLAGS=${SHFLAGS_INC:-./shflags} |
| |
| # path to shUnit2 library. can be overridden by setting SHUNIT_INC |
| TH_SHUNIT=${SHUNIT_INC:-../lib/shunit2} |
| |
| TH_BOOL_VALID='true t 0 false f 1' |
| TH_BOOL_INVALID='123 123.0 blah' |
| TH_FLOAT_VALID='-1234.0 -1234 -1.0 -1 0.0 0 1.0 1 1234.0 1234' |
| TH_FLOAT_INVALID='true false invalid 1.2.3 -1.2.3 0. -.5' |
| TH_INT_VALID='-1234 -1 0 1 1234' |
| TH_INT_INVALID='-1.0 0.0 1.0 invalid' |
| |
| # |
| # test helper functions |
| # |
| |
| # message functions |
| th_trace() { echo "test:TRACE $@" >&2; } |
| th_debug() { echo "test:DEBUG $@" >&2; } |
| th_info() { echo "test:INFO $@" >&2; } |
| th_warn() { echo "test:WARN $@" >&2; } |
| th_error() { echo "test:ERROR $@" >&2; } |
| th_fatal() { echo "test:FATAL $@" >&2; } |
| |
| th_showOutput() |
| { |
| _th_rtrn=$1 |
| _th_stdout=$2 |
| _th_stderr=$3 |
| |
| isSkipping |
| if [ $? -eq ${SHUNIT_FALSE} -a ${_th_rtrn} != ${FLAGS_TRUE} ]; then |
| if [ -n "${_th_stdout}" ]; then |
| echo '--- stdout ---' >&2 |
| cat "${_th_stdout}" >&2 |
| fi |
| if [ -n "${_th_stderr}" ]; then |
| echo '--- stderr ---' >&2 |
| cat "${_th_stderr}" >&2 |
| fi |
| fi |
| |
| unset _th_rtrn _th_stdout _th_stderr |
| } |
| |
| _th_assertMsg() |
| { |
| _th_alert_type_=$1 |
| _th_alert_msg_=$2 |
| _th_msg_=$3 |
| |
| case ${_th_alert_type_} in |
| WARN) _th_alert_str_='a warning' ;; |
| ERROR) _th_alert_str_='an error' ;; |
| esac |
| [ -z "${_th_alert_msg_}" ] && _th_alert_msg_='.*' |
| [ -n "${_th_msg_}" ] && _th_msg_="(${_th_msg_}) " |
| |
| grep -- "^flags:${_th_alert_type_} ${_th_alert_msg_}" "${stderrF}" \ |
| >/dev/null |
| assertTrue \ |
| "FLAGS ${_th_msg_}failure did not generate ${_th_alert_str_} message" $? |
| |
| unset _th_alert_type_ _th_alert_msg_ _th_alert_str_ _th_msg_ |
| } |
| |
| assertWarnMsg() { _th_assertMsg 'WARN' "${1:-}" "${2:-}"; } |
| assertErrorMsg() { _th_assertMsg 'ERROR' "${1:-}" "${2:-}"; } |