summaryrefslogtreecommitdiffstats
path: root/tests/include.rc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/include.rc')
-rw-r--r--tests/include.rc37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/include.rc b/tests/include.rc
index 585a4e2c885..cfa9390aaef 100644
--- a/tests/include.rc
+++ b/tests/include.rc
@@ -13,7 +13,7 @@ mkdir -p $B0;
mkdir -p $M0 $M1;
mkdir -p $N0 $N1;
-testcnt=`egrep '^[ \t]*(EXPECT|TEST)' $0 | wc -l`;
+testcnt=`egrep '^[ \t]*(EXPECT|TEST|EXPECT_WITHIN)' $0 | wc -l`;
echo 1..$testcnt
t=1
@@ -74,6 +74,40 @@ function _TEST()
test_footer;
}
+function _EXPECT_WITHIN()
+{
+ TESTLINE=$1
+ shift;
+
+ local timeout=$1
+ shift;
+
+ test_header "$@"
+
+ e=$1;
+ shift;
+
+ local endtime=$(( ${timeout}+`date +%s` ))
+
+ local success=0
+ while [ `date +%s` -lt $endtime ]; do
+ "$@" | tail -1 | egrep -q "^${e}\$"
+ if [ $? -eq 0 ]; then
+ success=1;
+ break;
+ fi
+ sleep 1;
+ done
+
+ if [ $success -eq 1 ]; then
+ true;
+ else
+ false;
+ fi
+
+ test_footer;
+}
+
function cleanup()
{
@@ -90,4 +124,5 @@ function cleanup()
alias EXPECT='_EXPECT $LINENO'
alias TEST='_TEST $LINENO'
+alias EXPECT_WITHIN='_EXPECT_WITHIN $LINENO'
shopt -s expand_aliases