diff --git a/tests/data/dynlist.out b/tests/data/dynlist.out index 2cdfdc2ad9..c7bc8c350c 100644 --- a/tests/data/dynlist.out +++ b/tests/data/dynlist.out @@ -58,6 +58,60 @@ cn: Dynamic List memberURL: ldap:///ou=People,dc=example,dc=com?cn,mail?sub?(objectClass=person ) +# Testing filtered search with all attrs... +dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com +objectClass: groupOfURLs +cn: Dynamic List +cn: Barbara Jensen +cn: Babs Jensen +cn: Bjorn Jensen +cn: Biiff Jensen +cn: Dorothy Stevens +cn: Dot Stevens +cn: James A Jones 1 +cn: James Jones +cn: Jim Jones +cn: James A Jones 2 +cn: Jane Doe +cn: Jane Alverson +cn: Jennifer Smith +cn: Jen Smith +cn: John Doe +cn: Jonathon Doe +cn: Mark Elliot +cn: Mark A Elliot +cn: Ursula Hampster +memberURL: ldap:///ou=People,dc=example,dc=com?cn,mail?sub?(objectClass=person + ) +mail: bjensen@mailgw.example.com +mail: bjorn@mailgw.example.com +mail: dots@mail.alumni.example.com +mail: jaj@mail.alumni.example.com +mail: jjones@mailgw.example.com +mail: jdoe@woof.net +mail: jen@mail.alumni.example.com +mail: johnd@mailgw.example.com +mail: melliot@mail.alumni.example.com +mail: uham@mail.alumni.example.com + +# Testing filtered search of a listed attr... +dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com +mail: bjensen@mailgw.example.com +mail: bjorn@mailgw.example.com +mail: dots@mail.alumni.example.com +mail: jaj@mail.alumni.example.com +mail: jjones@mailgw.example.com +mail: jdoe@woof.net +mail: jen@mail.alumni.example.com +mail: johnd@mailgw.example.com +mail: melliot@mail.alumni.example.com +mail: uham@mail.alumni.example.com + +# Testing filtered search of a non-listed attr... +dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com +objectClass: groupOfURLs + +# Testing filtered search of a non-present attr... # Testing list compare... TRUE @@ -273,3 +327,41 @@ member: cn=John Doe,ou=Information Technology Division,ou=People,dc=example,dc member: cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com member: cn=Ursula Hampster,ou=Alumni Association,ou=People,dc=example,dc=com +# Testing memberOf functionality... +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com +objectClass: OpenLDAPperson +cn: Mark Elliot +cn: Mark A Elliot +sn: Elliot +uid: melliot +postalAddress: Alumni Association $ 111 Maple St $ Anytown, MI 48109 +seeAlso: cn=All Staff,ou=Groups,dc=example,dc=com +homePostalAddress: 199 Outer Drive $ Ypsilanti, MI 48198 +homePhone: +1 313 555 0388 +drink: Gasoline +title: Director, UM Alumni Association +mail: melliot@mail.alumni.example.com +pager: +1 313 555 7671 +facsimileTelephoneNumber: +1 313 555 7762 +telephoneNumber: +1 313 555 4177 +dgMemberOf: cn=dynamic list of members,ou=dynamic lists,dc=example,dc=com + +# Testing filtered memberOf functionality... +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com +objectClass: OpenLDAPperson +cn: Mark Elliot +cn: Mark A Elliot +sn: Elliot +uid: melliot +postalAddress: Alumni Association $ 111 Maple St $ Anytown, MI 48109 +seeAlso: cn=All Staff,ou=Groups,dc=example,dc=com +homePostalAddress: 199 Outer Drive $ Ypsilanti, MI 48198 +homePhone: +1 313 555 0388 +drink: Gasoline +title: Director, UM Alumni Association +mail: melliot@mail.alumni.example.com +pager: +1 313 555 7671 +facsimileTelephoneNumber: +1 313 555 7762 +telephoneNumber: +1 313 555 4177 +dgMemberOf: cn=dynamic list of members,ou=dynamic lists,dc=example,dc=com + diff --git a/tests/scripts/test044-dynlist b/tests/scripts/test044-dynlist index 3bb5371e3c..10d86399cf 100755 --- a/tests/scripts/test044-dynlist +++ b/tests/scripts/test044-dynlist @@ -38,15 +38,14 @@ else fi echo "Running slapadd to build slapd database..." -. $CONFFILTER $BACKEND $MONITORDB < $MCONF > $ADDCONF -$SLAPADD -f $ADDCONF -l $LDIFORDERED +. $CONFFILTER $BACKEND $MONITORDB < $DYNLISTCONF > $CONF1 +$SLAPADD -f $CONF1 -l $LDIFORDERED RC=$? if test $RC != 0 ; then echo "slapadd failed ($RC)!" exit $RC fi -. $CONFFILTER $BACKEND $MONITORDB < $DYNLISTCONF > $CONF1 echo "Starting slapd on TCP/IP port $PORT1..." $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 & @@ -141,6 +140,54 @@ if test $RC != 0 ; then exit $RC fi +echo "Testing filtered search with all attrs..." +echo "# Testing filtered search with all attrs..." >> $SEARCHOUT +$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \ + '(mail=jdoe@woof.net)' '*' \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Testing filtered search of a listed attr..." +echo "# Testing filtered search of a listed attr..." >> $SEARCHOUT +$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \ + '(mail=jdoe@woof.net)' mail \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Testing filtered search of a non-listed attr..." +echo "# Testing filtered search of a non-listed attr..." >> $SEARCHOUT +$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \ + '(mail=jdoe@woof.net)' objectClass \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Testing filtered search of a non-present attr..." +echo "# Testing filtered search of a non-present attr..." >> $SEARCHOUT +$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \ + '(mail=nobody@nowhere)' objectClass \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + echo "Testing list compare..." echo "# Testing list compare..." >> $SEARCHOUT $LDAPCOMPARE -h $LOCALHOST -p $PORT1 \ @@ -645,6 +692,47 @@ if test $RC != 0 ; then exit $RC fi +echo "Reconfiguring slapd..." +$LDAPMODIFY -x -D cn=config -h $LOCALHOST -p $PORT1 -y $CONFIGPWF > \ + $TESTOUT 2>&1 << EOMODS +version: 1 +dn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config +changetype: modify +delete: olcDLattrSet +olcDLattrSet: {0} +- +add: olcDLattrSet +olcDLattrSet: groupOfURLs memberURL member@dgMemberOf +- +EOMODS + +echo "==========================================================" >> $LOG1 + +echo "Testing memberOf functionality..." +echo "# Testing memberOf functionality..." >> $SEARCHOUT +$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -h $LOCALHOST -p $PORT1 \ + -D "$BABSDN" -w bjensen \ + '(cn=Mark Elliot)' '*' \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Testing filtered memberOf functionality..." +echo "# Testing filtered memberOf functionality..." >> $SEARCHOUT +$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -h $LOCALHOST -p $PORT1 \ + -D "$BABSDN" -w bjensen \ + '(&(dgMemberOf=cn=Dynamic List of Members,ou=Dynamic Lists,dc=example,dc=com)(cn=Mark Elliot))' '*' \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi test $KILLSERVERS != no && kill -HUP $KILLPIDS LDIF=$DYNLISTOUT