Blame tests/wrapper-utils.sh

Packit 2d622a
#!/bin/bash
Packit 2d622a
Packit 2d622a
# Standard return codes
Packit 2d622a
RC_PASS=0
Packit 2d622a
RC_CONFIG=1
Packit 2d622a
RC_FAIL=2
Packit 2d622a
RC_XFAIL=3
Packit 2d622a
RC_XPASS=4
Packit 2d622a
RC_BUG=99
Packit 2d622a
Packit 2d622a
function unexpected_pass()
Packit 2d622a
{
Packit 2d622a
	echo -n "UNEXPECTED "
Packit 2d622a
}
Packit 2d622a
Packit 2d622a
function expected_fail()
Packit 2d622a
{
Packit 2d622a
	echo -n "EXPECTED "
Packit 2d622a
}
Packit 2d622a
Packit 2d622a
# check_rc (<expected return code>, <actual return code>)
Packit 2d622a
# Returns: Adjusted return code
Packit 2d622a
#
Packit 2d622a
# Check the actual and expected return codes to identify
Packit 2d622a
# expected failures and unexpected passes.
Packit 2d622a
function check_rc()
Packit 2d622a
{
Packit 2d622a
	EXP_RC=$1
Packit 2d622a
	ACT_RC=$2
Packit 2d622a
Packit 2d622a
	if [ $ACT_RC -eq $RC_PASS -a $EXP_RC -ne $RC_PASS ]; then
Packit 2d622a
		unexpected_pass
Packit 2d622a
		return $RC_XPASS
Packit 2d622a
	elif [ $EXP_RC -ne $RC_PASS -a $EXP_RC -eq $ACT_RC ]; then
Packit 2d622a
		expected_fail
Packit 2d622a
		return $RC_XFAIL
Packit 2d622a
	else
Packit 2d622a
		return $ACT_RC
Packit 2d622a
	fi
Packit 2d622a
}
Packit 2d622a
Packit 2d622a
# exec_and_check (<expected return code>, <command-line ...>)
Packit 2d622a
# Does not return
Packit 2d622a
# Execute a test command and check for expected failures and unexpected passes.
Packit 2d622a
function exec_and_check()
Packit 2d622a
{
Packit 2d622a
	EXP_RC=$1
Packit 2d622a
	shift
Packit 2d622a
Packit 2d622a
	OUTPUT=`$@`
Packit 2d622a
	check_rc $EXP_RC $?
Packit 2d622a
	RC=$?
Packit 2d622a
	echo $OUTPUT
Packit 2d622a
Packit 2d622a
	exit $RC
Packit 2d622a
}