diff options
author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-11-04 15:25:10 -0500 |
---|---|---|
committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-11-04 15:25:10 -0500 |
commit | 4014f1b815f6e6b2bd67112b374fd3c67ac09517 (patch) | |
tree | 460821f123fbfd80f90f3afd8cb413556b8b81c7 /tests | |
parent | a0e830deebd25457c53de135e770fb49bf00e384 (diff) | |
download | slapi-nis-4014f1b815f6e6b2bd67112b374fd3c67ac09517.tar.gz slapi-nis-4014f1b815f6e6b2bd67112b374fd3c67ac09517.tar.xz slapi-nis-4014f1b815f6e6b2bd67112b374fd3c67ac09517.zip |
- stop deref_r() and referred_r() stop returning empty strings when they
find nothing -- that was throwing things off
- add a combined check for collect, ifeq, and deref_r
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test15-schema-nested/before.sh | 14 | ||||
-rw-r--r-- | tests/test15-schema-nested/before.txt | 135 | ||||
-rw-r--r-- | tests/test15-schema-nested/description.txt | 1 | ||||
-rw-r--r-- | tests/test15-schema-nested/dse.ldif | 15 | ||||
-rw-r--r-- | tests/test15-schema-nested/userRoot.ldif | 199 |
5 files changed, 364 insertions, 0 deletions
diff --git a/tests/test15-schema-nested/before.sh b/tests/test15-schema-nested/before.sh new file mode 100755 index 0000000..28d2181 --- /dev/null +++ b/tests/test15-schema-nested/before.sh @@ -0,0 +1,14 @@ +#!/bin/sh +tmpfile=`mktemp ${TMP:-/tmp}/ldifXXXXXX` +if test -z "$tmpfile" ; then + echo error creating temporary file +fi +trap 'rm -f "$tmpfile"' EXIT +for scope in base one sub ; do + echo \[cn=ng,cn=compat,cn=accounts,dc=example,dc=com:${scope}\] + search -b cn=ng,cn=compat,cn=accounts,dc=example,dc=com -s $scope > $tmpfile + grep -i ^result: $tmpfile + grep -i ^matchedDN: $tmpfile + $LDIFSORT $tmpfile + echo "" +done diff --git a/tests/test15-schema-nested/before.txt b/tests/test15-schema-nested/before.txt new file mode 100644 index 0000000..6810bc7 --- /dev/null +++ b/tests/test15-schema-nested/before.txt @@ -0,0 +1,135 @@ +[cn=ng,cn=compat,cn=accounts,dc=example,dc=com:base] +result: 0 Success +dn: cn=ng,cn=compat,cn=Accounts,dc=example,dc=com +objectClass: extensibleObject +cn: ng + + +[cn=ng,cn=compat,cn=accounts,dc=example,dc=com:one] +result: 0 Success +dn: cn=ng1,cn=ng,cn=compat,cn=accounts,dc=example,dc=com +objectClass: nisNetgroup +objectClass: top +memberNisNetgroup: ng2 +nisNetgroupTriple: (myhost.lab.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,dev3,oldnis.domain.com) +cn: ng1 + +dn: cn=ng2,cn=ng,cn=compat,cn=accounts,dc=example,dc=com +objectClass: nisNetgroup +objectClass: top +nisNetgroupTriple: (foo.lab.domain.com,rcrow,lab.domain.com) +nisNetgroupTriple: (foo.lab.domain.com,support1,lab.domain.com) +nisNetgroupTriple: (foo.lab.domain.com,support2,lab.domain.com) +nisNetgroupTriple: (foo.lab.domain.com,support3,lab.domain.com) +cn: ng2 + +dn: cn=ng3,cn=ng,cn=compat,cn=accounts,dc=example,dc=com +objectClass: nisNetgroup +objectClass: top +nisNetgroupTriple: (,rcrow,lab.domain.com) +nisNetgroupTriple: (,support1,lab.domain.com) +nisNetgroupTriple: (,support2,lab.domain.com) +nisNetgroupTriple: (,support3,lab.domain.com) +cn: ng3 + + +[cn=ng,cn=compat,cn=accounts,dc=example,dc=com:sub] +result: 0 Success +dn: cn=ng,cn=compat,cn=Accounts,dc=example,dc=com +objectClass: extensibleObject +cn: ng + +dn: cn=ng1,cn=ng,cn=compat,cn=accounts,dc=example,dc=com +objectClass: nisNetgroup +objectClass: top +memberNisNetgroup: ng2 +nisNetgroupTriple: (myhost.lab.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (myhost.lab.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (guest1.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (guest2.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (guest3.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (nvguest1.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (nvguest2.vg.com,dev3,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,steve_sss,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,gorelock,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,dev1,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,dev2,oldnis.domain.com) +nisNetgroupTriple: (nvguest3.vg.com,dev3,oldnis.domain.com) +cn: ng1 + +dn: cn=ng2,cn=ng,cn=compat,cn=accounts,dc=example,dc=com +objectClass: nisNetgroup +objectClass: top +nisNetgroupTriple: (foo.lab.domain.com,rcrow,lab.domain.com) +nisNetgroupTriple: (foo.lab.domain.com,support1,lab.domain.com) +nisNetgroupTriple: (foo.lab.domain.com,support2,lab.domain.com) +nisNetgroupTriple: (foo.lab.domain.com,support3,lab.domain.com) +cn: ng2 + +dn: cn=ng3,cn=ng,cn=compat,cn=accounts,dc=example,dc=com +objectClass: nisNetgroup +objectClass: top +nisNetgroupTriple: (,rcrow,lab.domain.com) +nisNetgroupTriple: (,support1,lab.domain.com) +nisNetgroupTriple: (,support2,lab.domain.com) +nisNetgroupTriple: (,support3,lab.domain.com) +cn: ng3 + + diff --git a/tests/test15-schema-nested/description.txt b/tests/test15-schema-nested/description.txt new file mode 100644 index 0000000..3e5dc0c --- /dev/null +++ b/tests/test15-schema-nested/description.txt @@ -0,0 +1 @@ +conditional, collection, multi-level resolution diff --git a/tests/test15-schema-nested/dse.ldif b/tests/test15-schema-nested/dse.ldif new file mode 100644 index 0000000..faedfff --- /dev/null +++ b/tests/test15-schema-nested/dse.ldif @@ -0,0 +1,15 @@ +dn: cn=ng,cn=Schema Compatibility,cn=plugins,cn=config +objectClass: top +objectClass: extensibleObject +cn: ng +schema-compat-container-group: cn=compat, cn=Accounts, dc=example, dc=com +schema-compat-container-rdn: cn=ng +schema-compat-check-access: yes +schema-compat-search-base: cn=ng,cn=accounts,dc=example,dc=com +schema-compat-search-filter: !(cn=ng) +schema-compat-entry-rdn: cn=%{cn} +schema-compat-entry-attribute: objectclass=nisNetgroup +schema-compat-entry-attribute: memberNisNetgroup=%deref_r("member","cn") +schema-compat-entry-attribute: memberNisNetgroup=%referred_r("cn=ng","memberOf","cn") +schema-compat-entry-attribute: nisNetgroupTriple=(%ifeq("allHostsFlag","TRUE","","%collect(\"%{externalHost}\",\"%deref_r(\\\"memberHosts\\\",\\\"fqdn\\\")\",\"%deref_r(\\\"memberHosts\\\",\\\"member\\\",\\\"fqdn\\\")\")"),%ifeq("allUsersFlag","TRUE","","%collect(\"%deref_r(\\\"memberUsers\\\",\\\"uid\\\")\",\"%deref_r(\\\"memberUsers\\\",\\\"member\\\",\\\"uid\\\")\")"),%{nisDomainName:-}) + diff --git a/tests/test15-schema-nested/userRoot.ldif b/tests/test15-schema-nested/userRoot.ldif new file mode 100644 index 0000000..9dbb340 --- /dev/null +++ b/tests/test15-schema-nested/userRoot.ldif @@ -0,0 +1,199 @@ +dn: cn=ng,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: nsContainer +cn: ng + +dn: cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: nsContainer +cn: computers + +dn: fqdn=myhost.lab.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: myhost.lab.com + +dn: fqdn=otherhost.lab.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: otherhost.lab.com + +dn: fqdn=thirdhost.lab.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: thirdhost.lab.com + +dn: fqdn=nvguest1.vg.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: nvguest1.vg.com + +dn: fqdn=nvguest2.vg.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: nvguest2.vg.com + +dn: fqdn=nvguest3.vg.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: nvguest3.vg.com + +dn: fqdn=guest1.vg.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: guest1.vg.com + +dn: fqdn=guest2.vg.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: guest2.vg.com + +dn: fqdn=guest3.vg.com,cn=computers,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +fqdn: guest3.vg.com + +dn: cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: nsContainer +cn: users + +dn: cn=dev1,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +uid: dev1 + +dn: cn=dev2,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +uid: dev2 + +dn: cn=dev3,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +uid: dev3 + +dn: cn=support1,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +uid: support1 + +dn: cn=support2,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +uid: support2 + +dn: cn=support3,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +uid: support3 + +dn: uid=gorelock,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: Gorelock +uid: gorelock + +dn: cn=torgo,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: Torgo +uid: torgo + +dn: cn=sc,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: sc +uid: steve_sc + +dn: cn=sss,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: sss +uid: steve_sss + +dn: cn=Robert Crow,cn=users,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: Robert Crow +uid: rcrow + +dn: cn=groups,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: nsContainer +cn: groups + +dn: cn=Engineering,cn=groups,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: Engineering +member: cn=dev1,cn=users,cn=accounts,dc=example,dc=com +member: cn=dev2,cn=users,cn=accounts,dc=example,dc=com +member: cn=dev3,cn=users,cn=accounts,dc=example,dc=com + +dn: cn=Support,cn=groups,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: Support +member: cn=support1,cn=users,cn=accounts,dc=example,dc=com +member: cn=support2,cn=users,cn=accounts,dc=example,dc=com +member: cn=support3,cn=users,cn=accounts,dc=example,dc=com + +dn: cn=hostgroups,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: nsContainer +cn: hostgroups + +dn: cn=NestedVirtualGuests,cn=hostgroups,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +member: fqdn=nvguest1.vg.com,cn=computers,cn=accounts,dc=example,dc=com +member: fqdn=nvguest2.vg.com,cn=computers,cn=accounts,dc=example,dc=com +member: fqdn=nvguest3.vg.com,cn=computers,cn=accounts,dc=example,dc=com +cn: NestedVirtualGuests + +dn: cn=VirtGuests,cn=hostgroups,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +member: fqdn=guest1.vg.com,cn=computers,cn=accounts,dc=example,dc=com +member: fqdn=guest2.vg.com,cn=computers,cn=accounts,dc=example,dc=com +member: fqdn=guest3.vg.com,cn=computers,cn=accounts,dc=example,dc=com +member: cn=NestedVirtualGuests,cn=hostgroups,cn=accounts,dc=example,dc=com +cn: VirtGuests + +dn: cn=ng1,cn=ng,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: ng1 +allHostsFlag: false +allUsersFlag: false +memberHosts: fqdn=myhost.lab.com,cn=computers,cn=accounts,dc=example,dc=com +memberHosts: cn=VirtGuests,cn=hostgroups,cn=accounts,dc=example,dc=com +memberUsers: cn=sss,cn=users,cn=accounts,dc=example,dc=com +memberUsers: uid=gorelock,cn=users,cn=accounts,dc=example,dc=com +memberUsers: cn=Engineering,cn=groups,cn=accounts,dc=example,dc=com +nisDomainName: oldnis.domain.com +member: cn=ng2,cn=ng,cn=accounts,dc=example,dc=com + +dn: cn=ng2,cn=ng,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: ng2 +allHostsFlag: false +allUsersFlag: false +externalHost: foo.lab.domain.com +memberUsers: cn=Robert Crow,cn=users,cn=accounts,dc=example,dc=com +memberUsers: cn=Support,cn=groups,cn=accounts,dc=example,dc=com +nisDomainName: lab.domain.com + +dn: cn=ng3,cn=ng,cn=accounts,dc=example,dc=com +objectclass: top +objectclass: extensibleObject +cn: ng3 +allHostsFlag: true +allUsersFlag: false +memberUsers: cn=Robert Crow,cn=users,cn=accounts,dc=example,dc=com +memberUsers: cn=Support,cn=groups,cn=accounts,dc=example,dc=com +nisDomainName: lab.domain.com +memberOf: cn=ng1,cn=ng,cn=accounts,dc=example,dc=com + |