X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tests%2Fscripts%2Ftest022-ppolicy;h=a7ccc295a64d26db8a7696143bf41c7f29de1050;hb=d25dfcbe920cb9e44d4202c8e54bc6bd9625da10;hp=f78e257cd1b9af20caf483e5fd115a18ac43040c;hpb=f15a0f1dea500a4b59bfd5b268d58d46167d9b40;p=openldap diff --git a/tests/scripts/test022-ppolicy b/tests/scripts/test022-ppolicy index f78e257cd1..a7ccc295a6 100755 --- a/tests/scripts/test022-ppolicy +++ b/tests/scripts/test022-ppolicy @@ -2,7 +2,7 @@ # $OpenLDAP$ ## This work is part of OpenLDAP Software . ## -## Copyright 1998-2005 The OpenLDAP Foundation. +## Copyright 1998-2006 The OpenLDAP Foundation. ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without @@ -36,6 +36,8 @@ KILLPIDS="$PID" USER="uid=nd, ou=People, dc=example, dc=com" PASS=testpassword +sleep 1 + echo "Using ldapsearch to check that slapd is running..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ @@ -48,14 +50,17 @@ for i in 0 1 2 3 4 5; do sleep 5 done if test $RC != 0 ; then - echo "ldapsearch failed $(RC)!" + echo "ldapsearch failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi +echo /dev/null > $TESTOUT + echo "Using ldapadd to populate the database..." -$LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD -e manageDIT < \ - $LDIFPPOLICY > $TESTOUT 2>&1 +# may need "-e relax" for draft 09, but not yet. +$LDAPADD -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD < \ + $LDIFPPOLICY >> $TESTOUT 2>&1 RC=$? if test $RC != 0 ; then echo "ldapadd failed ($RC)!" @@ -110,7 +115,7 @@ RC=$? if test $RC = 0 ; then echo "Password expiration failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi COUNT=`grep "grace logins" $SEARCHOUT | wc -l` @@ -132,7 +137,7 @@ if test $RC != 0 ; then fi echo "Filling password history..." -$LDAPMODIFY -v -D "$USER" -h $LOCALHOST -p $PORT1 -w $PASS > \ +$LDAPMODIFY -v -D "$USER" -h $LOCALHOST -p $PORT1 -w $PASS >> \ $TESTOUT 2>&1 << EOMODS dn: uid=nd, ou=People, dc=example, dc=com changetype: modify @@ -190,7 +195,7 @@ if test $RC != 0 ; then exit $RC fi echo "Testing password history..." -$LDAPMODIFY -v -D "$USER" -h $LOCALHOST -p $PORT1 -w 20urgle12-6 > \ +$LDAPMODIFY -v -D "$USER" -h $LOCALHOST -p $PORT1 -w 20urgle12-6 >> \ $TESTOUT 2>&1 << EOMODS dn: uid=nd, ou=People, dc=example, dc=com changetype: modify @@ -205,12 +210,12 @@ RC=$? if test $RC = 0 ; then echo "ldapmodify failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi echo "Testing forced reset..." -$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \ +$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD >> \ $TESTOUT 2>&1 << EOMODS dn: uid=nd, ou=People, dc=example, dc=com changetype: modify @@ -234,7 +239,7 @@ RC=$? if test $RC = 0 ; then echo "Forced reset failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi COUNT=`grep "Operations are restricted" $SEARCHOUT | wc -l` @@ -246,7 +251,7 @@ fi echo "Clearing forced reset..." -$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \ +$LDAPMODIFY -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD >> \ $TESTOUT 2>&1 << EOMODS dn: uid=nd, ou=People, dc=example, dc=com changetype: modify @@ -273,19 +278,19 @@ echo "Testing Safe modify..." $LDAPPASSWD -h $LOCALHOST -p $PORT1 \ -w $PASS -s failexpect \ - -D "$USER" > $TESTOUT 2>&1 + -D "$USER" >> $TESTOUT 2>&1 RC=$? if test $RC = 0 ; then echo "Safe modify test 1 failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi sleep 2 $LDAPPASSWD -h $LOCALHOST -p $PORT1 \ -w $PASS -s failexpect -a $PASS \ - -D "$USER" > $TESTOUT 2>&1 + -D "$USER" >> $TESTOUT 2>&1 RC=$? if test $RC != 0 ; then echo "Safe modify test 2 failed ($RC)!" @@ -297,14 +302,15 @@ echo "Testing length requirement..." $LDAPPASSWD -h $LOCALHOST -p $PORT1 \ -w failexpect -a failexpect -s spw \ - -D "$USER" > $TESTOUT 2>&1 + -D "$USER" > ${TESTOUT}.2 2>&1 RC=$? +cat ${TESTOUT}.2 >> $TESTOUT if test $RC = 0 ; then echo "Length requirement test failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi -COUNT=`grep "Password fails quality" $TESTOUT | wc -l` +COUNT=`grep "Password fails quality" ${TESTOUT}.2 | wc -l` if test $COUNT != 1 ; then echo "Length requirement test failed" test $KILLSERVERS != no && kill -HUP $KILLPIDS @@ -314,7 +320,7 @@ fi echo "Testing hashed length requirement..." $LDAPMODIFY -h $LOCALHOST -p $PORT1 -D "$USER" -w failexpect > \ - $TESTOUT 2>&1 << EOMODS + ${TESTOUT}.2 2>&1 << EOMODS dn: $USER changetype: modify delete: userPassword @@ -325,19 +331,72 @@ userPassword: {MD5}xxxxxx EOMODS RC=$? +cat ${TESTOUT}.2 >> $TESTOUT if test $RC = 0 ; then echo "Hashed length requirement test failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS - exit $RC + exit 1 fi -COUNT=`grep "Password fails quality" $TESTOUT | wc -l` +COUNT=`grep "Password fails quality" ${TESTOUT}.2 | wc -l` if test $COUNT != 1 ; then echo "Hashed length requirement test failed" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit 1 fi +echo "Testing multiple password add/modify checks..." + +$LDAPMODIFY -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD >> \ + $TESTOUT 2>&1 << EOMODS +dn: cn=Add Should Fail, ou=People, dc=example, dc=com +changetype: add +objectClass: inetOrgPerson +cn: Add Should Fail +sn: Fail +userPassword: firstpw +userPassword: secondpw +EOMODS +RC=$? +if test $RC = 0 ; then + echo "Multiple password add test failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 +fi + +$LDAPMODIFY -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD >> \ + $TESTOUT 2>&1 << EOMODS +dn: $USER +changetype: modify +add: userPassword +userPassword: firstpw +userPassword: secondpw +EOMODS +RC=$? +if test $RC = 0 ; then + echo "Multiple password modify add test failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 +fi + +$LDAPMODIFY -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD >> \ + $TESTOUT 2>&1 << EOMODS +dn: $USER +changetype: modify +replace: userPassword +userPassword: firstpw +userPassword: secondpw +EOMODS +RC=$? +if test $RC = 0 ; then + echo "Multiple password modify replace test failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit 1 +fi + test $KILLSERVERS != no && kill -HUP $KILLPIDS echo ">>>>> Test succeeded" + +test $KILLSERVERS != no && wait + exit 0