blob: 6f43e79d1acca1c8c3002409bc1eb89e0c2b22ac [file] [log] [blame]
#!/usr/bin/env bash
#
# vim:et:ft=sh:sts=2:sw=2
#
#/**
# * Licensed to the Apache Software Foundation (ASF) under one
# * or more contributor license agreements. See the NOTICE file
# * distributed with this work for additional information
# * regarding copyright ownership. The ASF licenses this file
# * to you under the Apache License, Version 2.0 (the
# * "License"); you may not use this file except in compliance
# * with the License. You may obtain a copy of the License at
# *
# * http://www.apache.org/licenses/LICENSE-2.0
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# */
# name of script
BK_ARGV0=`basename "$0"`
# path to shUnit2 library. can be overridden by setting BK_SHUNIT_INC.
BK_SHUNIT=${BK_SHUNIT_INC:-../../../target/lib/shunit2-2.1.7/shunit2}
# path to bk bin directory.
TESTDIR=`dirname "$0"`
BK_BINDIR=`cd ${TESTDIR}/../../../../../bin;pwd`
BK_HOMEDIR=`cd ${TESTDIR}/../../../../..;pwd`
BK_CONFDIR=`cd ${TESTDIR}/../../../../../conf;pwd`
#
# test helper functions
#
# message functions
bk_trace() { echo "bk_test:TRACE $@" >&2; }
bk_debug() { echo "bk_test:DEBUG $@" >&2; }
bk_info() { echo "bk_test:INFO $@" >&2; }
bk_warn() { echo "bk_test:WARN $@" >&2; }
bk_error() { echo "bk_test:ERROR $@" >&2; }
bk_fatal() { echo "bk_test:FATAL $@" >&2; }
bk_oneTimeSetUp() {
# these will be cleaned up automatically by shunit2
BK_TMPDIR=${SHUNIT_TMPDIR}
stdoutF="${BK_TMPDIR}/stdout"
stderrF="${BK_TMPDIR}/stderr"
expectedF="${BK_TMPDIR}/expected"
}
# Assert the success of an operation.
#
# If an operation is not successful (i.e. it returns a non-zero return code)
# dump the output of the stderrF to the screen.
#
# Args:
# message: string: message to output [optional]
# result: integer: operation result
assertSuccess() {
if [ $# -eq 2 ]; then
bk_message_=$1
shift
else
bk_message_=''
fi
bk_result_=$1
assertEquals "${bk_message_}" ${SHUNIT_TRUE} ${bk_result_}
[ ${bk_result_} -eq ${SHUNIT_TRUE} ] || cat "${stderrF}"
unset bk_message_ bk_result_
}
assertError() {
if [ $# -eq 2 ]; then
bk_message_="$1: "
shift
else
bk_message_=''
fi
bk_error_=$1
bk_file_=${stderrF}
grep "^bk_test:ERROR.*${bk_error_}" "${bk_file_}" >/dev/null
bk_result_=$?
assertTrue "${bk_message_}missing '${bk_error_}' error" ${bk_result_}
[ ${bk_result_} -eq 0 ] || cat "${bk_file_}"
unset bk_file_ bk_error_ bk_message_ bk_result_
}