summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-11-04 15:25:10 -0500
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-11-04 15:25:10 -0500
commit4014f1b815f6e6b2bd67112b374fd3c67ac09517 (patch)
tree460821f123fbfd80f90f3afd8cb413556b8b81c7 /tests
parenta0e830deebd25457c53de135e770fb49bf00e384 (diff)
downloadslapi-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-xtests/test15-schema-nested/before.sh14
-rw-r--r--tests/test15-schema-nested/before.txt135
-rw-r--r--tests/test15-schema-nested/description.txt1
-rw-r--r--tests/test15-schema-nested/dse.ldif15
-rw-r--r--tests/test15-schema-nested/userRoot.ldif199
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
+