Fixed slapo-valsort REP_ENTRY flag handling (ITS#5340,ITS#6423)
Fixed contrib/sha2 adds mechs for more hashes (ITS#6433)
Fixed contrib/nssov to use nss-pam-ldapd (ITS#6488)
+ Build Environment
+ Added back-ldif, back-null test support (ITS#5810)
Documentation
admin24 avoid explicity moduleload statements (ITS#6486)
admin24 broken link fixes (ITS#6493,ITS#6515)
@echo "Initiating LDAP tests for SQL..."
@$(RUN) -b sql sql-all
+ldif test-ldif: FORCE
+ @echo "Initiating LDAP tests for LDIF..."
+ @$(RUN) -b ldif all
+
regressions: FORCE
@echo "Testing (available) ITS regressions"
@$(RUN) its-all
suffix "ou=Special,dc=example,dc=com"
subordinate
rootdn "cn=Manager,dc=example,dc=com"
-directory @TESTDIR@/db.2.a
+#~null~#directory @TESTDIR@/db.2.a
# Indices to maintain
#bdb#index default pres,eq
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
-directory @TESTDIR@/db.1.a
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
# Indices to maintain
#bdb#index default pres,eq
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
+olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 0
olcReadOnly: FALSE
olcSchemaDN: cn=Subschema
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
+olcAccess: {0}to * by * none
+olcAddContentAcl: TRUE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=config
olcRootPW: config
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
+olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
# Searching databases __after__ append...
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
+olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 0
olcReadOnly: FALSE
olcSchemaDN: cn=Subschema
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
+olcAccess: {0}to * by * none
+olcAddContentAcl: TRUE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=config
olcRootPW: config
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
+olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={2}bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {2}bdb
-olcSuffix: dc=com
olcDbDirectory: ./testrun/db.1.a
+olcSuffix: dc=com
# Searching databases __after__ insert...
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
+olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 0
olcReadOnly: FALSE
olcSchemaDN: cn=Subschema
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
+olcAccess: {0}to * by * none
+olcAddContentAcl: TRUE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=config
olcRootPW: config
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={1}bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {1}bdb
-olcSuffix: dc=org
olcDbDirectory: ./testrun/db.2.a
+olcSuffix: dc=org
dn: olcDatabase={2}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {2}monitor
+olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
+olcSyncUseSubentry: FALSE
+olcMonitoring: FALSE
dn: olcDatabase={3}bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: {3}bdb
-olcSuffix: dc=com
olcDbDirectory: ./testrun/db.1.a
+olcSuffix: dc=com
LDIF=$ITSDIR/config.out
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
+$LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
echo "Comparing filter output..."
$BCMP $SEARCHFLT $LDIFFLT > $CMPOUT
database @BACKEND@
suffix "cn=Everyone,ou=Groups,dc=example,dc=com"
-directory @TESTDIR@/db.1.a
subordinate
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.b
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.b
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#hdb#index objectClass eq
#ndb#dbname db_1
database @BACKEND@
suffix "o=undo"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,o=undo"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryExpireTimestamp eq
database @BACKEND@
suffix "cn=log"
-directory @TESTDIR@/db.1.b
rootdn "cn=Manager,dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.1.b
#bdb#index objectClass eq
#bdb#index entryUUID,entryCSN eq
#hdb#index objectClass eq
rootdn "cn=Manager,dc=example,dc=com"
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix ""
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,c=US"
rootpw secret
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "ou=Information Technology Division,ou=People,dc=example,dc=com"
subordinate
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager 1,dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "ou=Groups,dc=example,dc=com"
subordinate
-directory @TESTDIR@/db.1.b
rootdn "cn=Manager 1,dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.1.b
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.c
rootdn "cn=Manager 1,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.c
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "ou=Information Technology Division,ou=People,dc=example,dc=com"
subordinate
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager 2,dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "ou=Groups,dc=example,dc=com"
subordinate
-directory @TESTDIR@/db.2.b
rootdn "cn=Manager 2,dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.2.b
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.2.c
rootdn "cn=Manager 2,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.2.c
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "ou=Information Technology Division,ou=People,dc=example,dc=com"
subordinate
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager, dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "ou=Groups,dc=example,dc=com"
subordinate
-directory @TESTDIR@/db.1.b
rootdn "cn=Manager, dc=example,dc=com"
+#~null~#directory @TESTDIR@/db.1.b
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.c
rootdn "cn=Manager, dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.c
#bdb#index objectclass eq
#bdb#index uid pres,eq,sub
#bdb#index cn,sn pres,eq,sub,subany
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=it"
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,dc=example,dc=it"
rootpw secret
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
# root
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
# people branch
database @BACKEND@
suffix "ou=Groups,dc=example,dc=com"
-directory @TESTDIR@/db.3.a
rootdn "cn=Manager,ou=Groups,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.3.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
# people branch
database @BACKEND@
suffix "ou=People,dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,ou=People,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
+
# Need quality indices on "uid" to check "unchecked" limits...
#bdb#index objectClass eq
#bdb#index uid eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#hdb#index objectClass eq
#ndb#dbname db_1
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "ou=Meta,dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,ou=Meta,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#hdb#index objectClass eq
#ndb#dbname db_1
#bdb#cachesize 20
#hdb#cachesize 20
-directory @TESTDIR@/db.2.a
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid,mail pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
#hdb#cachesize 0
suffix "o=University of Mich,c=US"
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,o=University of Mich,c=US"
rootpw secret
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "c=us"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,c=us"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#hdb#index objectClass eq
#ndb#dbname db_1
database @BACKEND@
suffix "o=refint"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,o=refint"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#hdb#index objectClass eq
#ndb#dbname db_1
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
# HACK: use the RootDN of the monitor database as UpdateDN so ACLs apply
# without the need to write the UpdateDN before starting replication
updatedn "cn=Monitor"
updateref @URI1@
+#null#bind on
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID pres,eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "o=OpenLDAP Project,l=Internet"
-directory @TESTDIR@/db.1.a
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#hdb#index objectClass eq
#ndb#dbname db_1_a
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.4.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.4.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.5.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.5.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.6.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.6.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.3.a
rootdn "cn=Replica,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.3.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#index entryUUID,entryCSN eq
database @BACKEND@
suffix "o=translucent"
-directory @TESTDIR@/db.2.a
rootdn "o=translucent"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "o=translucent"
-directory @TESTDIR@/db.1.a
rootdn "o=translucent"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "o=unique"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,o=unique"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "o=valsort"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,o=valsort"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.1.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#null#bind on
+#~null~#directory @TESTDIR@/db.1.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#bdb#checkpoint 1024 5
database @BACKEND@
suffix "dc=example,dc=com"
-directory @TESTDIR@/db.2.a
rootdn "cn=Manager,dc=example,dc=com"
rootpw secret
+#~null~#directory @TESTDIR@/db.2.a
#bdb#index objectClass eq
#bdb#index cn,sn,uid pres,eq,sub
#hdb#index objectClass eq
## <http://www.OpenLDAP.org/license.html>.
PROGRAMS = slapd-tester slapd-search slapd-read slapd-addel slapd-modrdn \
- slapd-modify slapd-bind
+ slapd-modify slapd-bind ldif-filter
SRCS = slapd-common.c \
slapd-tester.c slapd-search.c slapd-read.c slapd-addel.c \
- slapd-modrdn.c slapd-modify.c slapd-bind.c
+ slapd-modrdn.c slapd-modify.c slapd-bind.c ldif-filter.c
LDAP_INCDIR= ../../include
LDAP_LIBDIR= ../../libraries
slapd-bind: slapd-bind.o $(OBJS) $(XLIBS)
$(LTLINK) -o $@ slapd-bind.o $(OBJS) $(LIBS)
+ldif-filter: ldif-filter.o $(XLIBS)
+ $(LTLINK) -o $@ ldif-filter.o $(LIBS)
+
--- /dev/null
+/* ldif-filter -- clean up LDIF testdata from stdin */
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 2009-2010 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+
+#include "portable.h"
+
+#include <stdio.h>
+#include <ac/ctype.h>
+#include <ac/stdlib.h>
+#include <ac/string.h>
+#include <ac/unistd.h>
+
+#define DEFAULT_SPECS "ndb=a,null=n"
+
+typedef struct { char *val; size_t len, alloc; } String;
+typedef struct { String *val; size_t len, alloc; } Strings;
+
+/* Flags and corresponding program options */
+enum { SORT_ATTRS = 1, SORT_ENTRIES = 2, NO_OUTPUT = 4, DUMMY_FLAG = 8 };
+static const char spec_options[] = "aen"; /* option index = log2(enum flag) */
+
+static const char *progname = "ldif-filter";
+static const String null_string = { NULL, 0, 0 };
+
+static void
+usage( void )
+{
+ fprintf( stderr, "\
+Usage: %s [-b backend] [-s spec[,spec]...]\n\
+Filter standard input by first <spec> matching '[<backend>]=[a][e][n]':\n\
+ - Remove LDIF comments.\n\
+ - 'a': Sort attributes in entries.\n\
+ - 'e': Sort any entries separated by just one empty line.\n\
+ - 'n': Output nothing.\n\
+<backend> defaults to the $BACKEND environment variable.\n\
+Use specs '%s' if no spec on the command line applies.\n",
+ progname, DEFAULT_SPECS );
+ exit( EXIT_FAILURE );
+}
+
+/* Return flags from "backend=flags" in spec; nonzero if backend found */
+static unsigned
+get_flags( const char *backend, const char *spec )
+{
+ size_t len = strlen( backend );
+ unsigned flags = DUMMY_FLAG;
+ const char *tmp;
+
+ while ( '=' != *(spec += strncmp( spec, backend, len ) ? 0 : len) ) {
+ if ( (spec = strchr( spec, ',' )) == NULL ) {
+ return 0;
+ }
+ ++spec;
+ }
+ while ( *++spec && *spec != ',' ) {
+ if ( (tmp = strchr( spec_options, *spec )) == NULL ) {
+ usage();
+ }
+ flags |= 1U << (tmp - spec_options);
+ }
+ return flags;
+}
+
+#define APPEND(s /* String or Strings */, data, count, isString) do { \
+ size_t slen = (s)->len, salloc = (s)->alloc, sz = sizeof *(s)->val; \
+ if ( salloc <= slen + (count) ) { \
+ (s)->alloc = salloc += salloc + ((count)|7) + 1; \
+ (s)->val = xrealloc( (s)->val, sz * salloc ); \
+ } \
+ memcpy( (s)->val + slen, data, sz * ((count) + !!(isString)) ); \
+ (s)->len = slen + (count); \
+} while (0)
+
+static void *
+xrealloc( void *ptr, size_t len )
+{
+ if ( (ptr = realloc( ptr, len )) == NULL ) {
+ perror( progname );
+ exit( EXIT_FAILURE );
+ }
+ return ptr;
+}
+
+static int
+cmp( const void *s, const void *t )
+{
+ return strcmp( ((const String *) s)->val, ((const String *) t)->val );
+}
+
+static void
+sort_strings( Strings *ss, size_t offset )
+{
+ qsort( ss->val + offset, ss->len - offset, sizeof(*ss->val), cmp );
+}
+
+/* Build entry ss[n] from attrs ss[n...], and free the attrs */
+static void
+build_entry( Strings *ss, size_t n, unsigned flags, size_t new_len )
+{
+ String *vals = ss->val, *e = &vals[n];
+ size_t end = ss->len;
+ char *ptr;
+
+ if ( flags & SORT_ATTRS ) {
+ sort_strings( ss, n + 1 );
+ }
+ e->val = xrealloc( e->val, e->alloc = new_len + 1 );
+ ptr = e->val + e->len;
+ e->len = new_len;
+ ss->len = ++n;
+ for ( ; n < end; free( vals[n++].val )) {
+ ptr = strcpy( ptr, vals[n].val ) + vals[n].len;
+ }
+ assert( ptr == e->val + new_len );
+}
+
+/* Flush entries to stdout and free them */
+static void
+flush_entries( Strings *ss, const char *sep, unsigned flags )
+{
+ size_t i, end = ss->len;
+ const char *prefix = "";
+
+ if ( flags & SORT_ENTRIES ) {
+ sort_strings( ss, 0 );
+ }
+ for ( i = 0; i < end; i++, prefix = sep ) {
+ if ( printf( "%s%s", prefix, ss->val[i].val ) < 0 ) {
+ perror( progname );
+ exit( EXIT_FAILURE );
+ }
+ free( ss->val[i].val );
+ }
+ ss->len = 0;
+}
+
+static void
+filter_stdin( unsigned flags )
+{
+ char line[256];
+ Strings ss = { NULL, 0, 0 }; /* entries + attrs of partial entry */
+ size_t entries = 0, attrs_totlen = 0, line_len;
+ const char *entry_sep = "\n", *sep = "";
+ int comment = 0, eof = 0, eol, prev_eol = 1; /* flags */
+ String *s;
+
+ /* LDIF = Entries ss[..entries-1] + sep + attrs ss[entries..] + line */
+ for ( ; !eof || ss.len || *sep; prev_eol = eol ) {
+ if ( eof || (eof = !fgets( line, sizeof(line), stdin ))) {
+ strcpy( line, prev_eol ? "" : *sep ? sep : "\n" );
+ }
+ line_len = strlen( line );
+ eol = (line_len == 0 || line[line_len - 1] == '\n');
+
+ if ( *line == ' ' ) { /* continuation line? */
+ prev_eol = 0;
+ } else if ( prev_eol ) { /* start of logical line? */
+ comment = (*line == '#');
+ }
+ if ( comment || (flags & NO_OUTPUT) ) {
+ continue;
+ }
+
+ /* Collect attrs for partial entry in ss[entries...] */
+ if ( !prev_eol && attrs_totlen != 0 ) {
+ goto grow_attr;
+ } else if ( line_len > (*line == '\r' ? 2 : 1) ) {
+ APPEND( &ss, &null_string, 1, 0 ); /* new attr */
+ grow_attr:
+ s = &ss.val[ss.len - 1];
+ APPEND( s, line, line_len, 1 ); /* strcat to attr */
+ attrs_totlen += line_len;
+ continue;
+ }
+
+ /* Empty line - consume sep+attrs or entries+sep */
+ if ( attrs_totlen != 0 ) {
+ entry_sep = sep;
+ if ( entries == 0 )
+ fputs( sep, stdout );
+ build_entry( &ss, entries++, flags, attrs_totlen );
+ attrs_totlen = 0;
+ } else {
+ flush_entries( &ss, entry_sep, flags );
+ fputs( sep, stdout );
+ entries = 0;
+ }
+ sep = "\r\n" + 2 - line_len; /* sep = copy(line) */
+ }
+
+ free( ss.val );
+}
+
+int
+main( int argc, char **argv )
+{
+ const char *backend = getenv( "BACKEND" ), *specs = "", *tmp;
+ unsigned flags;
+ int i;
+
+ if ( argc > 0 ) {
+ progname = (tmp = strrchr( argv[0], '/' )) ? tmp+1 : argv[0];
+ }
+
+ while ( (i = getopt( argc, argv, "b:s:" )) != EOF ) {
+ switch ( i ) {
+ case 'b':
+ backend = optarg;
+ break;
+ case 's':
+ specs = optarg;
+ break;
+ default:
+ usage();
+ }
+ }
+ if ( optind < argc ) {
+ usage();
+ }
+ if ( backend == NULL ) {
+ backend = "";
+ }
+
+ flags = get_flags( backend, specs );
+ filter_stdin( flags ? flags : get_flags( backend, DEFAULT_SPECS ));
+ if ( fclose( stdout ) == EOF ) {
+ perror( progname );
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
export SRCDIR TOPSRCDIR LN_S EGREP_CMD
-# backends
+# backends known to ./run -b <backend> (used to deduce $BACKENDTYPE)
AC_bdb=@BUILD_BDB@
AC_hdb=@BUILD_HDB@
+AC_ldif=yes
+AC_null=@BUILD_NULL@
+
+# other backends
AC_ldap=ldap@BUILD_LDAP@
AC_meta=meta@BUILD_META@
AC_monitor=@BUILD_MONITOR@
AC_meta="metano"
fi
-export AC_bdb AC_hdb AC_ldap AC_meta AC_monitor AC_relay AC_sql \
+export AC_bdb AC_hdb AC_ldap AC_meta AC_monitor AC_null AC_relay AC_sql \
AC_accesslog AC_dds AC_dynlist AC_memberof AC_pcache AC_ppolicy \
AC_refint AC_retcode AC_rwm AC_unique AC_syncprov AC_translucent \
AC_valsort \
+++ /dev/null
-#! /bin/sh
-# $OpenLDAP$
-## This work is part of OpenLDAP Software <http://www.openldap.org/>.
-##
-## Copyright 1998-2010 The OpenLDAP Foundation.
-## All rights reserved.
-##
-## Redistribution and use in source and binary forms, with or without
-## modification, are permitted only as authorized by the OpenLDAP
-## Public License.
-##
-## A copy of this license is available in the file LICENSE in the
-## top-level directory of the distribution or, alternatively, at
-## <http://www.OpenLDAP.org/license.html>.
-#
-# Strip comments, sort attributes. Requires GNU awk
-#
-if [ "$BACKEND" != ndb ]; then
-grep -v '^#'
-else
-grep -v '^#'| awk 'BEGIN{FS="\n";RS=""} {j=0; for (i=1; i<=NF; i++){ if ($i ~ /^ /){ x[j] = x[j] "\n" $i; } else { j++; x[j] = $i } } print x[1]; delete x[1]; j=asort(x); for (i=1; i<=j; i++){ print x[i]; } delete x; print "" }'
-fi
fi
sed -e "s/@BACKEND@/${BACKEND}/" \
-e "s/^#${BACKEND}#//" \
+ -e "/^#~/s/^#[^#]*~${BACKEND}~[^#]*#/#omit: /" \
+ -e "s/^#~[^#]*~#//" \
-e "s/@RELAY@/${RELAY}/" \
-e "s/^#relay-${RELAY}#//" \
-e "s/^#${BACKENDTYPE}#//" \
TOOLPROTO="-P 3"
# cmds
-LDIFFILTER=$SRCDIR/scripts/acfilter.sh
CONFFILTER=$SRCDIR/scripts/conf.sh
MONITORDATA=$SRCDIR/scripts/monitor_data.sh
LDAPCOMPARE="$CLIENTDIR/ldapcompare $TOOLARGS"
LDAPEXOP="$CLIENTDIR/ldapexop $TOOLARGS"
SLAPDTESTER=$PROGDIR/slapd-tester
+LDIFFILTER=$PROGDIR/ldif-filter
LVL=${SLAPD_DEBUG-0x4105}
LOCALHOST=localhost
BASEPORT=${SLAPD_BASEPORT-9010}
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $RELAYOUT > $LDIFFLT
+$LDIFFILTER < $RELAYOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
"cn=Added User,ou=Alumni Association,ou=People,$BASEDN" \
"seeAlso:cn=All Staff,ou=Groups,$BASEDN" >> $TESTOUT 2>&1
RC=$?
-if test $RC != 6 ; then
+if test $RC != 6 && test $RC,$BACKEND != 5,null ; then
echo "Compare failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
test $KILLSERVERS != no && kill -HUP $KILLPIDS
-
esac
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif..."
-. $LDIFFILTER < $SQLREAD > $LDIFFLT
+$LDIFFILTER < $SQLREAD > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $SEARCHOUT > $LDIFFLT
+$LDIFFILTER < $SEARCHOUT > $LDIFFLT
if test "${RDBMSWRITE}" != "yes"; then
echo "write test disabled for ${RDBMS}; set SLAPD_USE_SQLWRITE=yes to enable"
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering modified ldif..."
- . $LDIFFILTER < $SQLWRITE > $LDIFFLT
+ $LDIFFILTER < $SQLWRITE > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results from master..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering ldapsearch results from slave..."
-. $LDIFFILTER < $SEARCHOUT2 > $SEARCHFLT2
+$LDIFFILTER < $SEARCHOUT2 > $SEARCHFLT2
echo "Comparing filter output..."
$CMP $SEARCHFLT $SEARCHFLT2 > $CMPOUT
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering modified ldif..."
- . $LDIFFILTER < $SQLWRITE > $LDIFFLT
+ $LDIFFILTER < $SQLWRITE > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results from master..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering ldapsearch results from slave..."
- . $LDIFFILTER < $SEARCHOUT2 > $SEARCHFLT2
+ $LDIFFILTER < $SEARCHOUT2 > $SEARCHFLT2
echo "Comparing filter output..."
$CMP $SEARCHFLT $SEARCHFLT2 > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$SEARCHOUTMASTER
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$MODIFYOUTMASTER
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$MODRDNOUTMASTER1
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$MODRDNOUTMASTER2
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$MODRDNOUTMASTER0
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$MODRDNOUTMASTER3
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-case "$BACKEND" in
-bdb|hdb)
- ;;
-*)
- echo "Test does not support $BACKEND backend"
+case "$BACKEND" in ldif | null)
+ echo "$BACKEND backend does not support access controls, test skipped"
exit 0
esac
LDIF=$ACLOUTMASTER
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$SEARCHOUTMASTER
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -s ldif=e < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIFGLUED > $LDIFFLT
+$LDIFFILTER -s ldif=e < $LDIFGLUED > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
exit 1
fi
+if test $BACKEND != null ; then
echo "Testing sizelimit..."
$LDAPSEARCH -b "$BASEDN" -h $LOCALHOST -p $PORT1 -s one -z 2 > $SEARCHOUT 2>&1
RC=$?
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit 1
fi
+fi
test $KILLSERVERS != no && kill -HUP $KILLPIDS
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -s ldif=e < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIFGLUED > $LDIFFLT
+$LDIFFILTER -s ldif=e < $LDIFGLUED > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering language ldif ..."
-. $LDIFFILTER < $LDIFLANGOUT > $LDIFFLT
+$LDIFFILTER < $LDIFLANGOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $RC != 1 ; then
echo "ldapwhoami failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
BINDDN="dc=example,dc=com"
LDIF2=$SEARCHOUTX
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
-. $LDIFFILTER < $LDIF2 >> $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF2 >> $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## <http://www.OpenLDAP.org/license.html>.
RCODE=10
+test $BACKEND = null && RCODE=0
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
XREFDN="$REFDN"
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
echo "Testing one-level searching at $XREFDN..."
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
echo "Testing subtree searching at $XREFDN..."
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
XREFDN="uid=xxx,o=abc,$REFDN"
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
echo "Testing one-level searching at $XREFDN..."
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
echo "Testing subtree searching at $XREFDN..."
if test $RC != $RCODE ; then
echo "ldapsearch: unexpected result ($RC)! (referral expected)"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
test $KILLSERVERS != no && kill -HUP $KILLPIDS
LDIF=$SEARCHOUTMASTER
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering expected LDIF for comparison..."
-. $LDIFFILTER < $REFERRALOUT > $LDIFFLT
+$LDIFFILTER < $REFERRALOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $RC != 10 ; then
echo "ldapmodify should have returned referral ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
OPATTRS="entryUUID creatorsName createTimestamp modifiersName modifyTimestamp"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering producer results..."
-. $LDIFFILTER < $MASTEROUT > $MASTERFLT
+$LDIFFILTER < $MASTEROUT > $MASTERFLT
echo "Filtering consumer results..."
-. $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
+$LDIFFILTER < $SLAVEOUT > $SLAVEFLT
echo "Comparing retrieved entries from producer and consumer..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" && test "$BACKEND" != "ldif"; then
- echo "Test does not support $BACKEND"
- exit 0
-fi
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering producer results..."
-. $LDIFFILTER < $MASTEROUT > $MASTERFLT
+$LDIFFILTER < $MASTEROUT > $MASTERFLT
echo "Filtering consumer results..."
-. $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
+$LDIFFILTER < $SLAVEOUT > $SLAVEFLT
echo "Comparing retrieved entries from producer and consumer..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then
- echo "Test does not support $BACKEND"
- exit 0
-fi
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering master ldapsearch results..."
-. $LDIFFILTER < $MASTEROUT > $MASTERFLT
+$LDIFFILTER < $MASTEROUT > $MASTERFLT
echo "Filtering R1 slave ldapsearch results..."
-. $LDIFFILTER < $SERVER2OUT > $SERVER2FLT
+$LDIFFILTER < $SERVER2OUT > $SERVER2FLT
echo "Filtering R2 slave ldapsearch results..."
-. $LDIFFILTER < $SERVER3OUT > $SERVER3FLT
+$LDIFFILTER < $SERVER3OUT > $SERVER3FLT
echo "Filtering P1 slave ldapsearch results..."
-. $LDIFFILTER < $SERVER4OUT > $SERVER4FLT
+$LDIFFILTER < $SERVER4OUT > $SERVER4FLT
echo "Filtering P2 slave ldapsearch results..."
-. $LDIFFILTER < $SERVER5OUT > $SERVER5FLT
+$LDIFFILTER < $SERVER5OUT > $SERVER5FLT
echo "Filtering P3 slave ldapsearch results..."
-. $LDIFFILTER < $SERVER6OUT > $SERVER6FLT
+$LDIFFILTER < $SERVER6OUT > $SERVER6FLT
echo "Comparing retrieved entries from master and R1 slave..."
$CMP $MASTERFLT $SERVER2FLT > $CMPOUT
exit 0
fi
+if test $BACKEND = ldif ; then
+ # The (mail=example.com*) queries hit a sizelimit, so which
+ # entry is returned depends on the ordering in the backend.
+ echo "Test does not support $BACKEND backend, test skipped"
+ exit 0
+fi
+
mkdir -p $TESTDIR $DBDIR1 $DBDIR2
# Test proxy caching:
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif..."
-. $LDIFFILTER < $PROXYCACHEOUT > $LDIFFLT
+$LDIFFILTER < $PROXYCACHEOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$CERTIFICATETLS
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then
- echo "Test does not support $BACKEND"
- exit 0
-fi
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
exit $RC
fi
-if test $BACKEND = "hdb" ; then
+if test $BACKEND != "bdb" ; then
$LDAPMODIFY -v -D "$REFINTDN" -h $LOCALHOST -p $PORT1 -w $PASSWD > \
$TESTOUT 2>&1 << EDEL
version: 1
exit 0
fi
+RCODEconstraint=19
+test $BACKEND = null && RCODEconstraint=0
+
mkdir -p $TESTDIR $DBDIR1
$SLAPPASSWD -g -n >$CONFIGPWF
givenName: Bill
EOTUNIQ2
RC=$?
-if test $RC != 19 ; then
+if test $RC != $RCODEconstraint ; then
echo "unique check failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
givenName: Bill
EOTUNIQ2
RC=$?
-if test $RC != 19 ; then
+if test $RC != $RCODEconstraint ; then
echo "unique check failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
givenName: Bill
EOTUNIQ2
RC=$?
-if test $RC != 19 ; then
+if test $RC != $RCODEconstraint ; then
echo "olcUniqueAttribtue single deletion hit the wrong value"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
givenName: Bill
EOTUNIQ2
RC=$?
-if test $RC != 19 ; then
+if test $RC != $RCODEconstraint ; then
echo "unique check failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
EOF
RC=$?
-if test $RC != 19 ; then
+if test $RC != $RCODEconstraint ; then
echo "unique check failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
EOF
RC=$?
-if test $RC != 19 ; then
+if test $RC != $RCODEconstraint ; then
echo "unique check failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
+if test $BACKEND = null; then
+ echo "Limits irrelevant to $BACKEND backend, test skipped"
+ exit 0
+fi
+
mkdir -p $TESTDIR $DBDIR1
echo "Running slapadd to build slapd database..."
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original data..."
-. $LDIFFILTER < $DNOUT > $LDIFFLT
+$LDIFFILTER < $DNOUT > $LDIFFLT
echo "Comparing ldapsearch results against original..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
kill -HUP $KILLPIDS
wait
-LDIFOUT=$EMPTYDNOUT1
-
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+echo "Filtering expected results..."
+$LDIFFILTER < $EMPTYDNOUT1 > $LDIFFLT
echo "Comparing ldapsearch results against original..."
-$CMP $SEARCHFLT $LDIFOUT > $CMPOUT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
echo "comparison failed - empty DN write operations did not complete correctly"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
-LDIFOUT=$EMPTYDNOUT2
-
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+echo "Filtering expected results..."
+$LDIFFILTER < $EMPTYDNOUT2 > $LDIFFLT
echo "Comparing ldapsearch results against original..."
-$CMP $SEARCHFLT $LDIFOUT > $CMPOUT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
echo "comparison failed - empty DN write operations did not complete correctly"
echo "Testing ldapwhoami as proxy US, $AUTHZID..."
$LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy US,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID"
RC=$?
-if test $RC != 0 ; then
+if test $RC != 0 && test $BACKEND != null ; then
echo "ldapwhoami failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
if test $RC != 1 ; then
echo "ldapwhoami should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
AUTHZID="u:bjensen"
if test $RC != 1 ; then
echo "ldapwhoami should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
echo "Testing ldapwhoami as proxy IT..."
if test $RC != 1 ; then
echo "ldapwhoami should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
AUTHZID="u:bjorn"
if test $RC != 1 ; then
echo "ldapwhoami should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
AUTHZID="dn:cn=Sandbox,ou=Admin,dc=example,dc=com"
echo "Testing ldapwhoami as proxy IT, $AUTHZID..."
$LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy IT,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID"
RC=$?
-if test $RC != 0 ; then
+if test $RC != 0 && test $BACKEND != null ; then
echo "ldapwhoami failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
-D "$ID" -w jaj > $SEARCHOUT 2>&1
RC=$?
-if test $RC != 0 ; then
+if test $RC != 0 && test $BACKEND != null ; then
echo "ldapsearch failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -s ldif=e < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $IDASSERTOUT > $LDIFFLT
+$LDIFFILTER -s ldif=e < $IDASSERTOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
-
+
if test $? != 0 ; then
echo "comparison failed - search with identity assertion didn't succeed"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
- . $LDIFFILTER < $IDASSERTOUT > $LDIFFLT
+ $LDIFFILTER < $IDASSERTOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -s ldif=e < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDAPGLUEOUT > $LDIFFLT
+$LDIFFILTER -s ldif=e < $LDAPGLUEOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDAPGLUEANONYMOUSOUT > $LDIFFLT
+$LDIFFILTER < $LDAPGLUEANONYMOUSOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
- . $LDIFFILTER < $LDAPGLUEOUT > $LDIFFLT
+ $LDIFFILTER < $LDAPGLUEOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $COMPSEARCHOUT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
- . $LDIFFILTER < $CHAINOUT > $LDIFFLT
+ $LDIFFILTER < $CHAINOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
- . $LDIFFILTER < $CHAINREFOUT > $LDIFFLT
+ $LDIFFILTER < $CHAINREFOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
> $TESTOUT 2>&1
RC=$?
- if test $RC != 6 ; then
+ if test $RC != 6 && test $RC,$BACKEND != 5,null ; then
echo "ldapcompare failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
DN="ou=Other,$BASEDN"
> $TESTOUT 2>&1
RC=$?
- if test $RC != 6 ; then
+ if test $RC != 6 && test $RC,$BACKEND != 5,null ; then
echo "ldapcompare failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
fi
done
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+ $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
- . $LDIFFILTER < $CHAINMODOUT > $LDIFFLT
+ $LDIFFILTER < $CHAINMODOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-case $BACKEND in bdb | hdb | ldif) : ;; *)
- echo "Test does not support $BACKEND backend, test skipped"
- exit 0
-esac
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
sleep $SLEEP1
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $GLUESYNCOUT > $LDIFFLT
+$LDIFFILTER < $GLUESYNCOUT > $LDIFFLT
for P in $PORT1 $PORT2 ; do
echo "Using ldapsearch to read all the entries from port $P..."
fi
echo "Filtering ldapsearch results..."
- . $LDIFFILTER < "${SEARCHOUT}.${P}" > $SEARCHFLT
+ $LDIFFILTER < "${SEARCHOUT}.${P}" > $SEARCHFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
$LDAPSEARCH -H $URI2 -b "$BABSDN" > $TESTOUT 2>&1
RC=$?
-if test $RC = 0 ; then
+if test $RC = 0 && test $BACKEND != null ; then
echo "ldapsearch should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
exit $RC
fi
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
-. $LDIFFILTER < $LDIFTRANSLUCENTDATA > $LDIFFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $LDIFTRANSLUCENTDATA > $LDIFFLT
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
-w $PASSWD < $LDIFTRANSLUCENTADD > $TESTOUT 2>&1
RC=$?
-if test $RC != 32 ; then
+if test $RC != 32 && test $RC,$BACKEND != 0,null ; then
echo "ldapadd failed ($RC), expected NO SUCH OBJECT!"
grep "$FAILURE" $TESTOUT
test $KILLSERVERS != no && kill -HUP $KILLPIDS
$TESTOUT 2>&1 'uid=fred,ou=users,o=translucent' 'uid=someguy'
RC=$?
-if test $RC != 32 ; then
+if test $RC != 32 && test $RC,$BACKEND != 0,null ; then
echo "ldapmodrdn failed ($RC), expected NO SUCH OBJECT!"
grep "$FAILURE" $TESTOUT
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
-$CMP $SEARCHFLT $LDIFTRANSLUCENTMERGED > $CMPOUT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $LDIFTRANSLUCENTMERGED > $LDIFFLT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
echo "Comparison failed -- local data failed to merge with remote!"
-b "$BASEDN" "(objectClass=*)" 1.1 \
>> $TESTOUT 2>&1
RC=$?
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 4,* | 0,null)
+ ;;
+ 0,*)
echo "Search should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 4)
- ;;
*)
echo "Search failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
-b "$BASEDN" -z 2 "(objectClass=*)" 1.1 \
>> $TESTOUT 2>&1
RC=$?
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 4,* | 0,null)
+ ;;
+ 0,*)
echo "Search should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 4)
- ;;
*)
echo "Search failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
esac
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $METAOUT > $LDIFFLT
+$LDIFFILTER < $METAOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
# test $KILLSERVERS != no && kill -HUP $KILLPIDS
# exit $RC
#fi
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 0,null)
+ ;;
+ 0,*)
echo "WhoAmI should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 51)
+ 51,*)
echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
;;
*)
# test $KILLSERVERS != no && kill -HUP $KILLPIDS
# exit $RC
#fi
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 0,null)
+ ;;
+ 0,*)
echo "WhoAmI should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 51)
+ 51,*)
echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
;;
*)
# test $KILLSERVERS != no && kill -HUP $KILLPIDS
# exit -1
#fi
-case $RC in
- 6)
+case $RC,$BACKEND in
+ 6,* | 5,null)
;;
- 51)
+ 51,*)
echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
;;
*)
echo "Compare failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
;;
esac
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
+$LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
LDIF=$MANAGEOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
+$LDIFFILTER < $METACONCURRENCYOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
-case $BACKEND in
-hdb | ldif)
- ;;
-*)
+if test $BACKEND = bdb ; then
echo "subtree rename not supported by back-$BACKEND"
exit 0
-esac
+fi
mkdir -p $TESTDIR $DBDIR1
LDIF=$SUBTREERENAMEOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-case "$BACKEND" in
-bdb|hdb)
- ;;
-*)
- echo "Test does not support $BACKEND backend"
+case "$BACKEND" in ldif | null)
+ echo "$BACKEND backend does not support access controls, test skipped"
exit 0
;;
esac
LDIF=$ACIOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+echo "Filtering expected ldif..."
+$LDIFFILTER < $VALSORTOUT1 > $LDIFFLT
echo "Comparing filter output..."
-$CMP $SEARCHFLT $VALSORTOUT1 > $CMPOUT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
echo "Comparison failed"
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+echo "Filtering expected ldif..."
+$LDIFFILTER < $VALSORTOUT2 > $LDIFFLT
echo "Comparing filter output..."
-$CMP $SEARCHFLT $VALSORTOUT2 > $CMPOUT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
echo "Comparison failed"
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -s ldif=e < $SEARCHOUT > $SEARCHFLT
+echo "Filtering expected ldif..."
+$LDIFFILTER -s ldif=e < $VALSORTOUT3 > $LDIFFLT
echo "Comparing filter output..."
-$CMP $SEARCHFLT $VALSORTOUT3 > $CMPOUT
+$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
if test $? != 0 ; then
echo "Comparison failed"
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then
- echo "Test does not support $BACKEND"
- exit 0
-fi
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
echo "Accesslog overlay not available, test skipped"
exit 0
fi
+if test $BACKEND = ldif ; then
+ # Onelevel search does not return entries in order of creation or CSN.
+ echo "$BACKEND backend unsuitable for syncprov logdb, test skipped"
+ exit 0
+fi
mkdir -p $TESTDIR $DBDIR1A $DBDIR1B $DBDIR2
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering producer results..."
-. $LDIFFILTER < $MASTEROUT | grep -iv "^auditcontext:" > $MASTERFLT
+$LDIFFILTER < $MASTEROUT | grep -iv "^auditcontext:" > $MASTERFLT
echo "Filtering consumer results..."
-. $LDIFFILTER < $SLAVEOUT | grep -iv "^auditcontext:" > $SLAVEFLT
+$LDIFFILTER < $SLAVEOUT | grep -iv "^auditcontext:" > $SLAVEFLT
echo "Comparing retrieved entries from producer and consumer..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
exit 0
fi
+if test $BACKEND = ldif ; then
+ # dynlist+ldif fails because back-ldif lacks bi_op_compare()
+ echo "$BACKEND backend unsuitable for dynlist overlay, test skipped"
+ exit 0
+fi
+
mkdir -p $TESTDIR $DBDIR1
$SLAPPASSWD -g -n >$CONFIGPWF
LDIF=$DYNLISTOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then
- echo "Test does not support $BACKEND"
- exit 0
-fi
# test now handles known issues
#if test x"$PROXYSYNC" = x ; then
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering slave results..."
- . $LDIFFILTER < "${SLAVEOUT}.5.1" > $SLAVEFLT
+ $LDIFFILTER < "${SLAVEOUT}.5.1" > $SLAVEFLT
echo " ${CHECK}.1 < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.$CHECK" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.$CHECK" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
-if test $BACKEND = "ldif" ; then
- echo "LDIF backend does not support acls, test skipped"
+case $BACKEND in ldif | null)
+ # LDIF lacks ACL support, NULL cannot hold dynamic entries
+ echo "Test does not support $BACKEND backend, test skipped"
exit 0
-fi
+esac
if test $DDS = ddsno; then
echo "Dynamic Directory Services overlay not available, test skipped"
0)
echo "ldapmodify should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit -1
;;
50)
echo "ldapmodify failed ($RC)"
if test $RC = 0 ; then
echo "ldapexop should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit -1
fi
echo "Trying to refresh the meeting as $JAJDN (should fail)..."
if test $RC = 0 ; then
echo "ldapexop should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit -1
fi
echo "Trying to delete the meeting as $BABSDN (should fail)..."
0)
echo "ldapdelete should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit -1
;;
50)
echo "ldapdelete failed ($RC)"
LDIF=$DDSOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
-b "$BASEDN" "(objectClass=*)" 1.1 \
>> $TESTOUT 2>&1
RC=$?
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 4,* | 0,null)
+ ;;
+ 0,*)
echo "Search should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 4)
- ;;
*)
echo "Search failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
-b "$BASEDN" -z 2 "(objectClass=*)" 1.1 \
>> $TESTOUT 2>&1
RC=$?
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 4,* | 0,null)
+ ;;
+ 0,*)
echo "Search should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 4)
- ;;
*)
echo "Search failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
esac
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $METAOUT > $LDIFFLT
+$LDIFFILTER < $METAOUT > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
# test $KILLSERVERS != no && kill -HUP $KILLPIDS
# exit $RC
#fi
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 0,null)
+ ;;
+ 0,*)
echo "WhoAmI should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 51)
+ 51,*)
echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
;;
*)
# test $KILLSERVERS != no && kill -HUP $KILLPIDS
# exit $RC
#fi
-case $RC in
- 0)
+case $RC,$BACKEND in
+ 0,null)
+ ;;
+ 0,*)
echo "WhoAmI should have failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit -1
;;
- 51)
+ 51,*)
echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
;;
*)
# test $KILLSERVERS != no && kill -HUP $KILLPIDS
# exit -1
#fi
-case $RC in
- 6)
+case $RC,$BACKEND in
+ 5,null)
;;
- 51)
+ 6,*)
+ ;;
+ 51,*)
echo "### Hit LDAP_BUSY problem; you may want to re-run the test"
;;
*)
echo "Compare failed ($RC)!"
test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit $RC
+ exit 1
;;
esac
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.1" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.1" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.1" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.1" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and P1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.1" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.1" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and R1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.2" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.2" > $MASTERFLT
#echo "Filtering P1 slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.2" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.2" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and P1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.2" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.2" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and R1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.3" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.3" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.3" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.3" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and P1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.3" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.3" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and R1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering master results..."
-. $LDIFFILTER < "${MASTEROUT}.4" > $MASTERFLT
+$LDIFFILTER < "${MASTEROUT}.4" > $MASTERFLT
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.4" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.4" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and P1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
fi
#echo "Filtering slave results..."
-. $LDIFFILTER < "${SLAVEOUT}.4" > $SLAVEFLT
+$LDIFFILTER < "${SLAVEOUT}.4" > $SLAVEFLT
echo "$CHECK < Comparing retrieved entries from master and R1 slave..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
exit $RC
fi
+nullExclude="" nullOK=""
+test $BACKEND = null && nullExclude="# " nullOK="OK"
+
if [ "$BACKENDTYPE" = mod ]; then
$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
dn: cn=module,cn=config
$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >>$TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
olcSuffix: $BASEDN
-olcDbDirectory: ./db
+${nullExclude}olcDbDirectory: ./db
olcRootDN: $MANAGERDN
olcRootPW: $PASSWD
olcSyncRepl: rid=002 provider=$URI1 binddn="$MANAGERDN" bindmethod=simple
RESULT=`$LDAPSEARCH -H $URI2 \
-s base -b "cn=Ursula Hampster,ou=Alumni Association,ou=People,dc=example,dc=com" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
fi
echo "Filtering producer results..."
-. $LDIFFILTER < $MASTEROUT > $MASTERFLT
+$LDIFFILTER < $MASTEROUT > $MASTERFLT
echo "Filtering consumer results..."
-. $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
+$LDIFFILTER < $SLAVEOUT > $SLAVEFLT
echo "Comparing retrieved configs from producer and consumer..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering producer results..."
-. $LDIFFILTER < $MASTEROUT > $MASTERFLT
+$LDIFFILTER < $MASTEROUT > $MASTERFLT
echo "Filtering consumer results..."
-. $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
+$LDIFFILTER < $SLAVEOUT > $SLAVEFLT
echo "Comparing retrieved entries from producer and consumer..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
exit $RC
fi
+nullExclude=""
+test $BACKEND = null && nullExclude="# "
+
echo "" > $TMP
if [ "$BACKENDTYPE" = mod ]; then
cat <<EOF >> $TMP
cat <<EOF >> $TMP
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
olcSuffix: $BASEDN
-olcDbDirectory: ./db
+${nullExclude}olcDbDirectory: ./db
olcRootDN: $MANAGERDN
olcRootPW: $PASSWD
EOF
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
test $KILLSERVERS != no && kill -HUP $KILLPIDS
exit $RC
fi
-. $LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
+$LDIFFILTER < $TESTDIR/server$n.out > $TESTDIR/server$n.flt
n=`expr $n + 1`
done
fi
fi
+bdbInclude="# " nullExclude=""
+case $BACKEND in
+bdb | hdb) bdbInclude="" ;;
+null) nullExclude="# " ;;
+esac
+
echo "Running ldapadd to build slapd config database..."
$LDAPADD -h $LOCALHOST -p $PORT1 -D 'cn=config' -w `cat $CONFIGPWF` \
>> $TESTOUT 2>&1 <<EOF
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
olcSuffix: $BASEDN
olcRootDN: cn=Manager,$BASEDN
olcRootPW:: c2VjcmV0
olcMonitoring: TRUE
-olcDbDirectory: $TESTDIR/db.1.a/
-olcDbCacheSize: 1000
-olcDbIndex: objectClass eq
-olcDbIndex: cn pres,eq,sub
-olcDbIndex: uid pres,eq,sub
-olcDbIndex: sn pres,eq,sub
-olcDbMode: 384
+${nullExclude}olcDbDirectory: $TESTDIR/db.1.a/
+${bdbInclude}olcDbCacheSize: 1000
+${bdbInclude}olcDbIndex: objectClass eq
+${bdbInclude}olcDbIndex: cn pres,eq,sub
+${bdbInclude}olcDbIndex: uid pres,eq,sub
+${bdbInclude}olcDbIndex: sn pres,eq,sub
+${bdbInclude}olcDbMode: 384"
dn: olcOverlay={0}memberof,olcDatabase={1}$BACKEND,cn=config
objectClass: olcOverlayConfig
LDIF=$MEMBEROFOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-if test "$BACKEND" != "bdb" && test "$BACKEND" != "hdb" ; then
- echo "Test does not support $BACKEND"
- exit 0
-fi
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
test $KILLSERVERS != no && kill -HUP $KILLPIDS
echo "Filtering producer results..."
-. $LDIFFILTER < $MASTEROUT > $MASTERFLT
+$LDIFFILTER < $MASTEROUT > $MASTERFLT
echo "Filtering consumer results..."
-. $LDIFFILTER < $SLAVEOUT > $SLAVEFLT
+$LDIFFILTER < $SLAVEOUT > $SLAVEFLT
echo "Comparing retrieved entries from producer and consumer..."
$CMP $MASTERFLT $SLAVEFLT > $CMPOUT
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
-case "$BACKEND" in
-bdb|hdb)
- ;;
-*)
- echo "Test does not support $BACKEND backend"
- exit 0
-esac
-
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
LVL=acl
echo "ldapmodify failed as expected"
;;
0)
- echo "ldapmodify should have failed ($RC)!"
- test $KILLSERVERS != no && kill -HUP $KILLPIDS
- exit -1
+ if test $BACKEND != null ; then
+ echo "ldapmodify should have failed ($RC)!"
+ test $KILLSERVERS != no && kill -HUP $KILLPIDS
+ exit -1
+ fi
;;
*)
echo "ldapmodify failed ($RC)!"
# Compare results, ignoring possible difference of IPv4/IPv6 localhost address
localrewrite='s/=127\.0\.0\.1:/=LOCAL:/; s/=\[::1\]:/=LOCAL:/'
echo "Filtering ldapsearch results..."
-sed -e "$localrewrite" < $SEARCHOUT | . $LDIFFILTER > $SEARCHFLT
+sed -e "$localrewrite" < $SEARCHOUT | $LDIFFILTER > $SEARCHFLT
echo "Filtering expected data..."
-. $CONFFILTER < $MONITOROUT1 | sed -e "$localrewrite" | . $LDIFFILTER > $LDIFFLT
+. $CONFFILTER < $MONITOROUT1 | sed -e "$localrewrite" | $LDIFFILTER > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -b monitor < $SEARCHOUT > $SEARCHFLT
TMPMONITOROUT2=$MONITOROUT2
case $BACKEND in
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -b monitor < $SEARCHOUT > $SEARCHFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $MONITOROUT3 > $CMPOUT
fi
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER -b monitor < $SEARCHOUT > $SEARCHFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $MONITOROUT4 > $CMPOUT
exit 0
fi
-if test "$BACKEND" != "hdb" ; then
- echo "Test does not support $BACKEND"
+if test $BACKEND = bdb; then
+ echo "$BACKEND backend does not support subtree rename, test skipped"
exit 0
fi
cat /dev/null > $TESTOUT
+bdbInclude="# " nullExclude=""
+case $BACKEND in
+bdb | hdb) bdbInclude="" ;;
+null) nullExclude="# " ;;
+esac
+
if [ "$MEMBEROF" = memberofmod ]; then
echo "Inserting memberof overlay on producer..."
$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF > $TESTOUT 2>&1
>> $TESTOUT 2>&1 <<EOF
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
olcSuffix: $BASEDN
olcRootDN: cn=Manager,$BASEDN
olcRootPW:: c2VjcmV0
olcMonitoring: TRUE
-olcDbDirectory: $TESTDIR/db.1.a/
-olcDbCacheSize: 1000
-olcDbIndex: objectClass eq
-olcDbIndex: cn pres,eq,sub
-olcDbIndex: uid pres,eq,sub
-olcDbIndex: sn pres,eq,sub
-olcDbMode: 384
+${nullExclude}olcDbDirectory: $TESTDIR/db.1.a/
+${bdbInclude}olcDbCacheSize: 1000
+${bdbInclude}olcDbIndex: objectClass eq
+${bdbInclude}olcDbIndex: cn pres,eq,sub
+${bdbInclude}olcDbIndex: uid pres,eq,sub
+${bdbInclude}olcDbIndex: sn pres,eq,sub
+${bdbInclude}olcDbMode: 384
# {0}memberof, {1}$BACKEND, config
dn: olcOverlay={0}memberof,olcDatabase={1}$BACKEND,cn=config
LDIF=$MEMBEROFREFINTOUT
echo "Filtering ldapsearch results..."
-. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
+$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
echo "Filtering original ldif used to create database..."
-. $LDIFFILTER < $LDIF > $LDIFFLT
+$LDIFFILTER < $LDIF > $LDIFFLT
echo "Comparing filter output..."
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
# environment variable RACE_TESTS can be set to the number of race test
# iterations the script should perform.
-case "$BACKEND" in
-bdb|hdb)
- ;;
-*)
- echo "This test does not support the $BACKEND backend"
- exit 0;;
-esac
+if test "$BACKEND" = ldif ; then
+ echo "$backend backend does not support access controls, test skipped"
+ exit 0
+fi
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
fi
fi
+nullExclude="" nullOK="" wantNoObj=32
+test $BACKEND = null && nullExclude="# " nullOK="OK" wantNoObj=0
+
$LDAPADD -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SMC_DIR/db
+${nullExclude}olcDbDirectory: $SMC_DIR/db
olcSuffix: $BASEDN
olcRootDN: $MANAGERDN
olcRootPW: $PASSWD
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SMC_DIR/ou1
+${nullExclude}olcDbDirectory: $SMC_DIR/ou1
olcSubordinate: TRUE
olcSuffix: ou=ou1,$BASEDN
olcRootDN: $MANAGERDN
dn: olcDatabase={2}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {2}$BACKEND
-olcDbDirectory: $SMC_DIR/ou2
+${nullExclude}olcDbDirectory: $SMC_DIR/ou2
olcSubordinate: TRUE
olcSuffix: ou=ou2,$BASEDN
olcRootDN: $MANAGERDN
dn: olcDatabase={3}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {3}$BACKEND
-olcDbDirectory: $SMC_DIR/sm1ou1
+${nullExclude}olcDbDirectory: $SMC_DIR/sm1ou1
olcSubordinate: TRUE
olcSuffix: ou=sm1ou1,$BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={4}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {4}$BACKEND
-olcDbDirectory: $SMC_DIR/sm1ou2
+${nullExclude}olcDbDirectory: $SMC_DIR/sm1ou2
olcSubordinate: TRUE
olcSuffix: ou=sm1ou2,$BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={5}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {5}$BACKEND
-olcDbDirectory: $SMC_DIR/sm2ou1
+${nullExclude}olcDbDirectory: $SMC_DIR/sm2ou1
olcSubordinate: TRUE
olcSuffix: ou=sm2ou1,$BASEDN
olcRootDN: $UPDATEDN
$LDAPADD -D cn=config -H $URI2 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SM1_DIR/db
+${nullExclude}olcDbDirectory: $SM1_DIR/db
olcSuffix: $BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SM1_DIR/ou1
+${nullExclude}olcDbDirectory: $SM1_DIR/ou1
olcSubordinate: TRUE
olcSuffix: ou=ou1,$BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={2}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {2}$BACKEND
-olcDbDirectory: $SM1_DIR/sm1ou1
+${nullExclude}olcDbDirectory: $SM1_DIR/sm1ou1
olcSubordinate: TRUE
olcSuffix: ou=sm1ou1,$BASEDN
olcRootDN: ou=sm1ou1,$BASEDN
dn: olcDatabase={3}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {3}$BACKEND
-olcDbDirectory: $SM1_DIR/sm1ou2
+${nullExclude}olcDbDirectory: $SM1_DIR/sm1ou2
olcSubordinate: TRUE
olcSuffix: ou=sm1ou2,$BASEDN
olcRootDN: ou=sm1ou1,$BASEDN
$LDAPADD -D cn=config -H $URI3 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SM2_DIR/db
+${nullExclude}olcDbDirectory: $SM2_DIR/db
olcSuffix: $BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SM2_DIR/ou2
+${nullExclude}olcDbDirectory: $SM2_DIR/ou2
olcSubordinate: TRUE
olcSuffix: ou=ou2,$BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={2}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {2}$BACKEND
-olcDbDirectory: $SM2_DIR/sm1ou1
+${nullExclude}olcDbDirectory: $SM2_DIR/sm1ou1
olcSubordinate: TRUE
olcSuffix: ou=sm1ou1,$BASEDN
olcRootDN: $UPDATEDN
dn: olcDatabase={3}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {3}$BACKEND
-olcDbDirectory: $SM2_DIR/sm2ou1
+${nullExclude}olcDbDirectory: $SM2_DIR/sm2ou1
olcSubordinate: TRUE
olcSuffix: ou=sm2ou1,$BASEDN
olcRootDN: ou=sm2ou1,$BASEDN
dn: olcDatabase={4}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {4}$BACKEND
-olcDbDirectory: $SM2_DIR/sm2ou2
+${nullExclude}olcDbDirectory: $SM2_DIR/sm2ou2
olcSubordinate: TRUE
olcSuffix: ou=sm2ou2,$BASEDN
olcRootDN: ou=sm2ou1,$BASEDN
$LDAPADD -D cn=config -H $URI4 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SSC_DIR/db
+${nullExclude}olcDbDirectory: $SSC_DIR/db
olcSuffix: $BASEDN
olcRootDN: $UPDATEDN
$LDAPADD -D cn=config -H $URI5 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SS1_DIR/db
+${nullExclude}olcDbDirectory: $SS1_DIR/db
olcSuffix: $BASEDN
olcRootDN: $UPDATEDN
$LDAPADD -D cn=config -H $URI6 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
dn: olcDatabase={1}$BACKEND,cn=config
objectClass: olcDatabaseConfig
-objectClass: olc${BACKEND}Config
+${nullExclude}objectClass: olc${BACKEND}Config
olcDatabase: {1}$BACKEND
-olcDbDirectory: $SS2_DIR/db
+${nullExclude}olcDbDirectory: $SS2_DIR/db
olcSuffix: $BASEDN
olcRootDN: $UPDATEDN
RESULT=`$LDAPSEARCH -H $URI2 \
-s base -b "ou=ou1,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI3 \
-s base -b "ou=ou1,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI1 \
-s base -b "ou=sm2ou1,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI1 \
-s base -b "ou=sm1ou1,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI4 \
-s base -b "$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI5 \
-s base -b "$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI6 \
-s base -b "$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
EOF
+test $BACKEND = null && echo : > $TESTDIR/checkcsn.sh
+
chmod +x $TESTDIR/checkcsn.sh
RESULT=`$LDAPSEARCH -H $URI4 \
-s base -b "ou=ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI5 \
-s base -b "ou=ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI6 \
-s base -b "ou=ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI6 \
-s base -b "ou=ou2,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI5 \
-s base -b "ou=sm1ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI3 \
-s base -b "ou=sm1ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI5 \
-s base -b "ou=sm1ou2,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI1 \
-s base -b "ou=sm2ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI6 \
-s base -b "ou=sm2ou1,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI6 \
-s base -b "ou=sm2ou2,$BASEDN" \
"(description=Modify$MNUM)" 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI3 \
-s base -b "$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI6 \
-s base -b "$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI1 \
-s base -b "ou=sm1ou2,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI1 \
-s base -b "ou=sm1ou2,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI4 \
-s base -b "ou=sm1ou2,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
RESULT=`$LDAPSEARCH -H $URI4 \
-s base -b "ou=sm1ou2,$BASEDN" \
'(objectClass=*)' 2>&1 | awk '/^dn:/ {print "OK"}'`
- if test "x$RESULT" = "xOK" ; then
+ if test "x$RESULT$nullOK" = "xOK" ; then
RC=0
break
fi
for i in 1 2 3 4 5; do
$LDAPSEARCH -s base -b "$SUB_DN" -H $URI1 > /dev/null 2>&1
RC=$?
- if test $RC != 0; then break; fi
+ if test $RC = $wantNoObj; then break; fi
sleep $i
done
- if test $RC = 0; then
+ if test $RC != $wantNoObj; then
+ if test $RC != 0; then
+ echo "ldapsearch failed ($RC)!"
+ test $KILLSERVERS != no && kill -HUP $KILLPIDS
+ exit $RC
+ fi
echo "ERROR: Entry not removed on central master!"
RACE_ERROR=1
break
sleep $i
done
- if test $RC = 0; then
- echo "ERROR: Entry not removed on central search!"
+ if test $RC != $wantNoObj; then
+ echo "ERROR: Entry not removed on central search! (RC=$RC)"
RACE_ERROR=1
break
fi