summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-12-03 19:44:26 -0500
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-12-03 19:44:26 -0500
commit59d01ea63a252c51af00f5975aad12fd2d69aa25 (patch)
treed981823ca3a34922241ebb9ececf7618aef31db4
parent0eda5952b2deee997d540c2b11be11015262806d (diff)
downloadslapi-nis-59d01ea63a252c51af00f5975aad12fd2d69aa25.tar.gz
slapi-nis-59d01ea63a252c51af00f5975aad12fd2d69aa25.tar.xz
slapi-nis-59d01ea63a252c51af00f5975aad12fd2d69aa25.zip
- test detection of changes to attributes munged by other plugins
-rwxr-xr-xtests/test18-schema-compat/after.sh14
-rw-r--r--tests/test18-schema-compat/after.txt199
-rwxr-xr-xtests/test18-schema-compat/before.sh14
-rw-r--r--tests/test18-schema-compat/before.txt194
-rwxr-xr-xtests/test18-schema-compat/change.sh9
-rw-r--r--tests/test18-schema-compat/change.txt2
-rw-r--r--tests/test18-schema-compat/description.txt1
-rw-r--r--tests/test18-schema-compat/dse.ldif51
-rw-r--r--tests/test18-schema-compat/userRoot.ldif42
9 files changed, 526 insertions, 0 deletions
diff --git a/tests/test18-schema-compat/after.sh b/tests/test18-schema-compat/after.sh
new file mode 100755
index 0000000..78e580f
--- /dev/null
+++ b/tests/test18-schema-compat/after.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
+search -b cn=users2,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
+search -b cn=groups,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
+search -b cn=users,cn=compat,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
+search -b cn=groups,cn=compat,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
diff --git a/tests/test18-schema-compat/after.txt b/tests/test18-schema-compat/after.txt
new file mode 100644
index 0000000..5b69796
--- /dev/null
+++ b/tests/test18-schema-compat/after.txt
@@ -0,0 +1,199 @@
+dn: cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: nsContainer
+objectClass: top
+cn: Users2
+
+dn: uid=user2a, cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: posixAccount
+objectClass: inetUser
+objectClass: top
+uid: user2a
+uidNumber: 2001
+gidNumber: 2001
+cn: User 2 A
+gecos: User 2 A
+loginShell: /bin/sh
+homeDirectory: /home/user2a
+
+dn: uid=user2b, cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: posixAccount
+objectClass: inetUser
+objectClass: top
+uid: user2b
+uidNumber: 2002
+gidNumber: 2002
+cn: User 2 B
+gecos: User 2 B
+loginShell: /bin/sh
+homeDirectory: /home/user2b
+memberOf: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+memberOf: cn=group2c,cn=groups,cn=accounts,dc=example,dc=com
+
+dn: uid=user2c, cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: posixAccount
+objectClass: inetUser
+objectClass: top
+uid: user2c
+uidNumber: 2003
+gidNumber: 2003
+cn: User 2 C
+gecos: User 2 C
+loginShell: /bin/sh
+homeDirectory: /home/user2c
+
+dn: cn=Groups, cn=Accounts, dc=example, dc=com
+objectClass: nsContainer
+objectClass: top
+cn: Groups
+
+dn: cn=group1a,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1a
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 3001
+
+dn: cn=group1b,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1b
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 3002
+
+dn: cn=group1c,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1c
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 3002
+
+dn: cn=group2a,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2a
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 4001
+
+dn: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2b
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+member: cn=group2a,cn=groups,cn=accounts,dc=example,dc=com
+member: uid=user2b,cn=users2,cn=accounts,dc=example,dc=com
+gidNumber: 4002
+
+dn: cn=group2c,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2c
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+member: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+gidNumber: 4002
+
+dn: cn=users,cn=compat,cn=Accounts,dc=example,dc=com
+objectClass: extensibleObject
+cn: users
+
+dn: uid=user1a,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user1a
+objectClass: posixaccount
+objectClass: top
+uidNumber: 1001
+gidNumber: 1001
+homeDirectory: /home/user1a
+loginShell: /bin/sh
+uid: user1a
+
+dn: uid=user1b,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user1b
+objectClass: posixaccount
+objectClass: top
+uidNumber: 1002
+gidNumber: 1002
+homeDirectory: /home/user1b
+loginShell: /bin/sh
+uid: user1b
+
+dn: uid=user1c,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user1c
+objectClass: posixaccount
+objectClass: top
+uidNumber: 1003
+gidNumber: 1003
+homeDirectory: /home/user1c
+loginShell: /bin/sh
+uid: user1c
+
+dn: uid=user2a,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user2a
+objectClass: posixaccount
+objectClass: top
+uidNumber: 2001
+gidNumber: 2001
+homeDirectory: /home/user2a
+loginShell: /bin/sh
+uid: user2a
+
+dn: uid=user2b,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user2b
+objectClass: posixaccount
+objectClass: top
+uidNumber: 2002
+gidNumber: 2002
+homeDirectory: /home/user2b
+loginShell: /bin/sh
+uid: user2b
+
+dn: uid=user2c,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user2c
+objectClass: posixaccount
+objectClass: top
+uidNumber: 2003
+gidNumber: 2003
+homeDirectory: /home/user2c
+loginShell: /bin/sh
+uid: user2c
+
+dn: cn=group1a,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 3001
+cn: group1a
+
+dn: cn=group1b,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 3002
+cn: group1b
+
+dn: cn=group1c,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 3002
+cn: group1c
+
+dn: cn=group2a,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 4001
+cn: group2a
+
+dn: cn=group2b,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 4002
+memberUid: user2b
+cn: group2b
+
+dn: cn=group2c,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 4002
+memberUid: user2b
+cn: group2c
+
+dn: cn=groups,cn=compat,cn=Accounts,dc=example,dc=com
+objectClass: extensibleObject
+cn: groups
+
diff --git a/tests/test18-schema-compat/before.sh b/tests/test18-schema-compat/before.sh
new file mode 100755
index 0000000..78e580f
--- /dev/null
+++ b/tests/test18-schema-compat/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
+search -b cn=users2,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
+search -b cn=groups,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
+search -b cn=users,cn=compat,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
+search -b cn=groups,cn=compat,cn=accounts,dc=example,dc=com "*" memberOf > $tmpfile
+$LDIFSORT $tmpfile
diff --git a/tests/test18-schema-compat/before.txt b/tests/test18-schema-compat/before.txt
new file mode 100644
index 0000000..ce63d10
--- /dev/null
+++ b/tests/test18-schema-compat/before.txt
@@ -0,0 +1,194 @@
+dn: cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: nsContainer
+objectClass: top
+cn: Users2
+
+dn: uid=user2a, cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: posixAccount
+objectClass: inetUser
+objectClass: top
+uid: user2a
+uidNumber: 2001
+gidNumber: 2001
+cn: User 2 A
+gecos: User 2 A
+loginShell: /bin/sh
+homeDirectory: /home/user2a
+
+dn: uid=user2b, cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: posixAccount
+objectClass: inetUser
+objectClass: top
+uid: user2b
+uidNumber: 2002
+gidNumber: 2002
+cn: User 2 B
+gecos: User 2 B
+loginShell: /bin/sh
+homeDirectory: /home/user2b
+
+dn: uid=user2c, cn=Users2, cn=Accounts, dc=example, dc=com
+objectClass: posixAccount
+objectClass: inetUser
+objectClass: top
+uid: user2c
+uidNumber: 2003
+gidNumber: 2003
+cn: User 2 C
+gecos: User 2 C
+loginShell: /bin/sh
+homeDirectory: /home/user2c
+
+dn: cn=Groups, cn=Accounts, dc=example, dc=com
+objectClass: nsContainer
+objectClass: top
+cn: Groups
+
+dn: cn=group1a,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1a
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 3001
+
+dn: cn=group1b,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1b
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 3002
+
+dn: cn=group1c,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1c
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 3002
+
+dn: cn=group2a,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2a
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+gidNumber: 4001
+
+dn: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2b
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+member: cn=group2a,cn=groups,cn=accounts,dc=example,dc=com
+gidNumber: 4002
+
+dn: cn=group2c,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2c
+objectClass: posixgroup
+objectClass: groupofnames
+objectClass: top
+member: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+gidNumber: 4002
+
+dn: cn=users,cn=compat,cn=Accounts,dc=example,dc=com
+objectClass: extensibleObject
+cn: users
+
+dn: uid=user1a,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user1a
+objectClass: posixaccount
+objectClass: top
+uidNumber: 1001
+gidNumber: 1001
+homeDirectory: /home/user1a
+loginShell: /bin/sh
+uid: user1a
+
+dn: uid=user1b,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user1b
+objectClass: posixaccount
+objectClass: top
+uidNumber: 1002
+gidNumber: 1002
+homeDirectory: /home/user1b
+loginShell: /bin/sh
+uid: user1b
+
+dn: uid=user1c,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user1c
+objectClass: posixaccount
+objectClass: top
+uidNumber: 1003
+gidNumber: 1003
+homeDirectory: /home/user1c
+loginShell: /bin/sh
+uid: user1c
+
+dn: uid=user2a,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user2a
+objectClass: posixaccount
+objectClass: top
+uidNumber: 2001
+gidNumber: 2001
+homeDirectory: /home/user2a
+loginShell: /bin/sh
+uid: user2a
+
+dn: uid=user2b,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user2b
+objectClass: posixaccount
+objectClass: top
+uidNumber: 2002
+gidNumber: 2002
+homeDirectory: /home/user2b
+loginShell: /bin/sh
+uid: user2b
+
+dn: uid=user2c,cn=users,cn=compat,cn=accounts,dc=example,dc=com
+cn: user2c
+objectClass: posixaccount
+objectClass: top
+uidNumber: 2003
+gidNumber: 2003
+homeDirectory: /home/user2c
+loginShell: /bin/sh
+uid: user2c
+
+dn: cn=group1a,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 3001
+cn: group1a
+
+dn: cn=group1b,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 3002
+cn: group1b
+
+dn: cn=group1c,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 3002
+cn: group1c
+
+dn: cn=group2a,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 4001
+cn: group2a
+
+dn: cn=group2b,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 4002
+cn: group2b
+
+dn: cn=group2c,cn=groups,cn=compat,cn=accounts,dc=example,dc=com
+objectClass: posixgroup
+objectClass: top
+gidNumber: 4002
+cn: group2c
+
+dn: cn=groups,cn=compat,cn=Accounts,dc=example,dc=com
+objectClass: extensibleObject
+cn: groups
+
diff --git a/tests/test18-schema-compat/change.sh b/tests/test18-schema-compat/change.sh
new file mode 100755
index 0000000..2d877d8
--- /dev/null
+++ b/tests/test18-schema-compat/change.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+modify << EOF
+dn: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+changetype: modify
+add: member
+member: uid=user2b,cn=users2,cn=accounts,dc=example,dc=com
+-
+
+EOF
diff --git a/tests/test18-schema-compat/change.txt b/tests/test18-schema-compat/change.txt
new file mode 100644
index 0000000..9df4e53
--- /dev/null
+++ b/tests/test18-schema-compat/change.txt
@@ -0,0 +1,2 @@
+modifying entry "cn=group2b,cn=groups,cn=accounts,dc=example,dc=com"
+
diff --git a/tests/test18-schema-compat/description.txt b/tests/test18-schema-compat/description.txt
new file mode 100644
index 0000000..f0cc3cf
--- /dev/null
+++ b/tests/test18-schema-compat/description.txt
@@ -0,0 +1 @@
+updates in combination with memberof
diff --git a/tests/test18-schema-compat/dse.ldif b/tests/test18-schema-compat/dse.ldif
new file mode 100644
index 0000000..32e98be
--- /dev/null
+++ b/tests/test18-schema-compat/dse.ldif
@@ -0,0 +1,51 @@
+dn: cn=Membership,cn=plugins,cn=config
+objectClass: top
+objectClass: nsSlapdPlugin
+objectClass: extensibleObject
+cn: Membership
+nsslapd-pluginPath: libmemberof-plugin
+nsslapd-pluginInitfunc: memberof_postop_init
+nsslapd-pluginType: postoperation
+nsslapd-pluginEnabled: on
+nsslapd-pluginId: libmemberof
+nsslapd-pluginVersion: 1.1.3
+nsslapd-pluginVendor: Fedora Project
+nsslapd-pluginDescription: membership plugin
+memberOfAttr: memberOf
+memberOfGroupAttr: member
+
+dn: cn=users, cn=Schema Compatibility, cn=plugins, cn=config
+objectClass: top
+objectClass: extensibleObject
+cn: users
+schema-compat-container-group: cn=compat, cn=Accounts, dc=example, dc=com
+schema-compat-container-rdn: cn=users
+schema-compat-check-access: yes
+schema-compat-search-base: cn=Users1, cn=Accounts, dc=example, dc=com
+schema-compat-search-base: cn=Users2, cn=Accounts, dc=example, dc=com
+schema-compat-search-base: cn=Users, cn=Accounts, dc=example, dc=com
+schema-compat-search-filter: objectclass=posixaccount
+schema-compat-entry-rdn: uid=%{uid}
+schema-compat-entry-attribute: cn=%{uid}
+schema-compat-entry-attribute: objectclass=posixaccount
+schema-compat-entry-attribute: uidnumber=%{uidnumber}
+schema-compat-entry-attribute: gidnumber=%{gidnumber}
+schema-compat-entry-attribute: homedirectory=%{homedirectory}
+schema-compat-entry-attribute: loginshell=%{loginshell}
+
+dn: cn=groups, cn=Schema Compatibility, cn=plugins, cn=config
+objectClass: top
+objectClass: extensibleObject
+cn: groups
+schema-compat-container-group: cn=compat, cn=Accounts, dc=example, dc=com
+schema-compat-container-rdn: cn=groups
+schema-compat-check-access: yes
+schema-compat-search-base: cn=Groups1, cn=Accounts, dc=example, dc=com
+schema-compat-search-base: cn=Groups2, cn=Accounts, dc=example, dc=com
+schema-compat-search-base: cn=Groups, cn=Accounts, dc=example, dc=com
+schema-compat-search-filter: objectclass=posixgroup
+schema-compat-entry-rdn: cn=%{cn}
+schema-compat-entry-attribute: objectclass=posixgroup
+schema-compat-entry-attribute: gidnumber=%{gidnumber}
+schema-compat-entry-attribute: memberUid=%referred("cn=users","memberOf","uid")
+
diff --git a/tests/test18-schema-compat/userRoot.ldif b/tests/test18-schema-compat/userRoot.ldif
new file mode 100644
index 0000000..c5be44b
--- /dev/null
+++ b/tests/test18-schema-compat/userRoot.ldif
@@ -0,0 +1,42 @@
+dn: cn=Groups, cn=Accounts, dc=example, dc=com
+objectClass: nsContainer
+cn: Groups
+
+dn: cn=group1a,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1a
+objectClass: posixgroup
+objectclass: groupofnames
+gidNumber: 3001
+
+dn: cn=group1b,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1b
+objectClass: posixgroup
+objectclass: groupofnames
+gidNumber: 3002
+
+dn: cn=group1c,cn=groups,cn=accounts,dc=example,dc=com
+cn: group1c
+objectClass: posixgroup
+objectclass: groupofnames
+gidNumber: 3002
+
+dn: cn=group2a,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2a
+objectClass: posixgroup
+objectclass: groupofnames
+gidNumber: 4001
+
+dn: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2b
+objectClass: posixgroup
+objectclass: groupofnames
+member: cn=group2a,cn=groups,cn=accounts,dc=example,dc=com
+gidNumber: 4002
+
+dn: cn=group2c,cn=groups,cn=accounts,dc=example,dc=com
+cn: group2c
+objectClass: posixgroup
+objectclass: groupofnames
+member: cn=group2b,cn=groups,cn=accounts,dc=example,dc=com
+gidNumber: 4002
+