summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/include.rc33
1 files changed, 32 insertions, 1 deletions
diff --git a/tests/include.rc b/tests/include.rc
index bb541eaa1e4..de28241c2ac 100644
--- a/tests/include.rc
+++ b/tests/include.rc
@@ -14,7 +14,7 @@ mkdir -p $B0;
mkdir -p $M0 $M1;
mkdir -p $N0 $N1;
-testcnt=`egrep '^[[:space:]]*(EXPECT|TEST|EXPECT_WITHIN|EXPECT_KEYWORD)[[:space:]]' $0 | wc -l`
+testcnt=`egrep '^[[:space:]]*(EXPECT|EXPECT_NOT|TEST|EXPECT_WITHIN|EXPECT_KEYWORD)[[:space:]]' $0 | wc -l`
expect_tests=`egrep '^[[:space:]]*TESTS_EXPECTED_IN_LOOP[[:space:]]*' $0`
x_ifs=$IFS
@@ -71,6 +71,7 @@ function test_expect_footer()
err="Got \"$a\" instead of \"$e\""
fi
[[ "x${e}" == "x${a}" ]];
+
test_footer "$err";
}
@@ -89,6 +90,35 @@ function _EXPECT()
test_expect_footer "$e" "$a";
}
+function test_expect_not_footer()
+{
+ local e=$1
+ local a=$2
+ local err=""
+
+ if [ "x${e}" == "x${a}" ]; then
+ err="Got \"$a\" when not expecting it"
+ fi
+
+ [[ "x${e}" != "x${a}" ]];
+ test_footer "$err";
+}
+
+function _EXPECT_NOT()
+{
+ TESTLINE=$1;
+ shift;
+ local a=""
+
+ test_header "$@";
+
+ e="$1";
+ shift;
+ a=$("$@" | tail -1)
+
+ test_expect_not_footer "$e" "$a";
+}
+
function _EXPECT_KEYWORD()
{
TESTLINE=$1;
@@ -238,6 +268,7 @@ function process_leak_count ()
}
alias EXPECT='_EXPECT $LINENO'
+alias EXPECT_NOT='_EXPECT_NOT $LINENO'
alias TEST='_TEST $LINENO'
alias EXPECT_WITHIN='_EXPECT_WITHIN $LINENO'
alias EXPECT_KEYWORD='_EXPECT_KEYWORD $LINENO'