]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9497 Detect timing issues when they affect test
authorOndřej Kuzník <ondra@mistotebe.net>
Thu, 3 Mar 2022 11:00:00 +0000 (11:00 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 7 Mar 2022 14:54:39 +0000 (14:54 +0000)
tests/scripts/test022-ppolicy

index 7ed9c7683a9d5ec09f05490e615f86130209f607..322b22a7998e52f47f4df5d2ab31cc9a50b7ee22 100755 (executable)
@@ -107,9 +107,14 @@ DELAYATTR=`$LDAPSEARCH -D "$MANAGERDN" -H $URI1 -w $PASSWD -b "$USER" -E account
 echo "$DELAYATTR" >> $SEARCHOUT
 DELAY=`echo "$DELAYATTR" | sed -n -e 's/.*seconds_before_unlock=\(\d*\)/\1/p'`
 
-echo "Waiting $DELAY seconds for lockout to reset..."
-sleep $DELAY
-sleep 1
+# $DELAY is empty if we were so slow that the lockout expired already,
+# continue test but the next part might fail anyway since we rely on
+# cumulative timing
+if test -n "$DELAY" ; then
+       echo "Waiting $DELAY seconds for lockout to reset..."
+       sleep $DELAY
+       sleep 1
+fi
 
 $LDAPSEARCH -e ppolicy -H $URI1 -D "$USER" -w $PASS \
        -b "$BASEDN" -s base >> $SEARCHOUT 2>&1
@@ -125,9 +130,12 @@ echo "$DELAYATTR" >> $SEARCHOUT
 DELAY=`echo "$DELAYATTR" | sed -n -e 's/.*expire=\(\d*\)/\1/p'`
 
 echo "Testing password expiration"
-echo "Waiting $DELAY seconds for password to expire..."
-sleep $DELAY
-sleep 1
+# $DELAY is empty if we were so slow that the password expired already
+if test -n "$DELAY" ; then
+       echo "Waiting $DELAY seconds for password to expire..."
+       sleep $DELAY
+       sleep 1
+fi
 
 $LDAPSEARCH -e ppolicy -H $URI1 -D "$USER" -w $PASS \
        -b "$BASEDN" -s base > $SEARCHOUT 2>&1
@@ -803,8 +811,12 @@ DELAY=`echo "$DELAYATTR" | sed -n -e 's/.*expire=\(\d*\)/\1/p'`
 DELAY=`expr $DELAY - 10`
 
 echo "Testing password expiration"
-echo "Waiting $DELAY seconds for password to expire..."
-sleep $DELAY
+# $DELAY is empty if we were so slow that the password expired already
+if test -n "$DELAY" ; then
+       echo "Waiting $DELAY seconds for password to expire..."
+       sleep $DELAY
+       sleep 1
+fi
 
 $LDAPSEARCH -H $URI1 -D "$USER" -w $PASS \
        -b "$BASEDN" -s base > $SEARCHOUT 2>&1