From 8dea22af7e2cff7aa737e75f80e327532aa1f8ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Fri, 11 Jan 2019 15:15:07 +0000 Subject: [PATCH] Test updating memberof config works --- tests/data/memberof.out | 45 +++++++++++++++++++++++++++++++ tests/scripts/test052-memberof | 49 +++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/tests/data/memberof.out b/tests/data/memberof.out index 32691bb33c..82fb924f8d 100644 --- a/tests/data/memberof.out +++ b/tests/data/memberof.out @@ -294,3 +294,48 @@ cn: person2 sn: person2 memberOfB: cn=group2,ou=Groups,dc=example,dc=com +# Re-search the entire database after updating memberof configuration... +dn: dc=example,dc=com +objectClass: organization +objectClass: dcObject +o: Example, Inc. +dc: example + +dn: cn=group1,ou=Groups,dc=example,dc=com +objectClass: groupA +cn: group1 +memberA: cn=person1,ou=People,dc=example,dc=com +memberA: cn=person2,ou=People,dc=example,dc=com + +dn: cn=group2,ou=Groups,dc=example,dc=com +objectClass: groupB +cn: group2 +memberB: cn=person1,ou=People,dc=example,dc=com +memberB: cn=person2,ou=People,dc=example,dc=com + +dn: ou=Groups,dc=example,dc=com +objectClass: organizationalUnit +ou: Groups + +dn: ou=People,dc=example,dc=com +objectClass: organizationalUnit +ou: People + +dn: cn=person1,ou=People,dc=example,dc=com +objectClass: person +objectClass: groupMemberA +objectClass: groupMemberB +cn: person1 +sn: person1 +memberOfB: cn=group2,ou=Groups,dc=example,dc=com +memberOfC: cn=group1,ou=Groups,dc=example,dc=com + +dn: cn=person2,ou=People,dc=example,dc=com +objectClass: person +objectClass: groupMemberA +objectClass: groupMemberB +cn: person2 +sn: person2 +memberOfB: cn=group2,ou=Groups,dc=example,dc=com +memberOfC: cn=group1,ou=Groups,dc=example,dc=com + diff --git a/tests/scripts/test052-memberof b/tests/scripts/test052-memberof index 7f86a16507..340fb06381 100755 --- a/tests/scripts/test052-memberof +++ b/tests/scripts/test052-memberof @@ -94,10 +94,12 @@ olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.3 NAME 'memberB' SUP distinguishedName ) olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.4 NAME 'memberOfB' SUP distinguishedName ) +olcAttributeTypes: ( 1.3.6.1.4.1.4754.31.1.5 + NAME 'memberOfC' SUP distinguishedName ) olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.1 NAME 'groupA' SUP top STRUCTURAL MUST cn MAY memberA ) olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.2 - NAME 'groupMemberA' SUP top AUXILIARY MAY memberOfA ) + NAME 'groupMemberA' SUP top AUXILIARY MAY ( memberOfA $ memberOfC ) ) olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.3 NAME 'groupB' SUP top STRUCTURAL MUST cn MAY memberB ) olcObjectClasses: ( 1.3.6.1.4.1.4754.31.2.4 @@ -391,6 +393,51 @@ if test $RC != 0 ; then exit $RC fi +echo "Running ldapmodify to reconfigure the schema used..." +$LDAPADD -h $LOCALHOST -p $PORT1 -D 'cn=config' -w `cat $CONFIGPWF` \ + >> $TESTOUT 2>&1 <> $TESTOUT 2>&1 <> $SEARCHOUT +$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT1 \ + '(objectClass=*)' '*' memberOf >> $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=$MEMBEROFOUT