mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-22 23:59:34 -05:00
add dynlist testing...
This commit is contained in:
parent
23d893b4cc
commit
b9bb1cd66a
6 changed files with 537 additions and 4 deletions
119
tests/data/dynlist.out
Normal file
119
tests/data/dynlist.out
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
# Testing list search of all attrs...
|
||||||
|
dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
cn: Dynamic List
|
||||||
|
cn: Barbara Jensen
|
||||||
|
cn: Babs Jensen
|
||||||
|
cn: Bjorn Jensen
|
||||||
|
cn: Biiff Jensen
|
||||||
|
cn: Dorothy Stevens
|
||||||
|
cn: Dot Stevens
|
||||||
|
cn: James A Jones 1
|
||||||
|
cn: James Jones
|
||||||
|
cn: Jim Jones
|
||||||
|
cn: James A Jones 2
|
||||||
|
cn: Jane Doe
|
||||||
|
cn: Jane Alverson
|
||||||
|
cn: Jennifer Smith
|
||||||
|
cn: Jen Smith
|
||||||
|
cn: John Doe
|
||||||
|
cn: Jonathon Doe
|
||||||
|
cn: Mark Elliot
|
||||||
|
cn: Mark A Elliot
|
||||||
|
cn: Ursula Hampster
|
||||||
|
memberURL: ldap:///ou=People,dc=example,dc=com?cn,mail?sub?(objectClass=person
|
||||||
|
)
|
||||||
|
mail: bjensen@mailgw.example.com
|
||||||
|
mail: bjorn@mailgw.example.com
|
||||||
|
mail: dots@mail.alumni.example.com
|
||||||
|
mail: jaj@mail.alumni.example.com
|
||||||
|
mail: jjones@mailgw.example.com
|
||||||
|
mail: jdoe@woof.net
|
||||||
|
mail: jen@mail.alumni.example.com
|
||||||
|
mail: johnd@mailgw.example.com
|
||||||
|
mail: melliot@mail.alumni.example.com
|
||||||
|
mail: uham@mail.alumni.example.com
|
||||||
|
|
||||||
|
# Testing list search of a listed attr...
|
||||||
|
dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
mail: bjensen@mailgw.example.com
|
||||||
|
mail: bjorn@mailgw.example.com
|
||||||
|
mail: dots@mail.alumni.example.com
|
||||||
|
mail: jaj@mail.alumni.example.com
|
||||||
|
mail: jjones@mailgw.example.com
|
||||||
|
mail: jdoe@woof.net
|
||||||
|
mail: jen@mail.alumni.example.com
|
||||||
|
mail: johnd@mailgw.example.com
|
||||||
|
mail: melliot@mail.alumni.example.com
|
||||||
|
mail: uham@mail.alumni.example.com
|
||||||
|
|
||||||
|
# Testing list search of a non-listed attr...
|
||||||
|
dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
|
||||||
|
# Testing list search with (critical) manageDSAit...
|
||||||
|
dn: cn=Dynamic List,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
cn: Dynamic List
|
||||||
|
memberURL: ldap:///ou=People,dc=example,dc=com?cn,mail?sub?(objectClass=person
|
||||||
|
)
|
||||||
|
|
||||||
|
# Testing list compare...
|
||||||
|
TRUE
|
||||||
|
|
||||||
|
# Testing list compare with manageDSAit...
|
||||||
|
FALSE
|
||||||
|
|
||||||
|
# Testing list search of all attrs...
|
||||||
|
dn: cn=Dynamic List of Members,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
cn: Dynamic List of Members
|
||||||
|
memberURL: ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person)
|
||||||
|
member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,dc=exam
|
||||||
|
ple,dc=com
|
||||||
|
member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=exampl
|
||||||
|
e,dc=com
|
||||||
|
member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=James A Jones 1,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=James A Jones 2,ou=Information Technology Division,ou=People,dc=exa
|
||||||
|
mple,dc=com
|
||||||
|
member: cn=Jane Doe,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=Jennifer Smith,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=John Doe,ou=Information Technology Division,ou=People,dc=example,dc
|
||||||
|
=com
|
||||||
|
member: cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=Ursula Hampster,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
|
||||||
|
# Testing list search of a listed attr...
|
||||||
|
dn: cn=Dynamic List of Members,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,dc=exam
|
||||||
|
ple,dc=com
|
||||||
|
member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=exampl
|
||||||
|
e,dc=com
|
||||||
|
member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=James A Jones 1,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=James A Jones 2,ou=Information Technology Division,ou=People,dc=exa
|
||||||
|
mple,dc=com
|
||||||
|
member: cn=Jane Doe,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=Jennifer Smith,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=John Doe,ou=Information Technology Division,ou=People,dc=example,dc
|
||||||
|
=com
|
||||||
|
member: cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
member: cn=Ursula Hampster,ou=Alumni Association,ou=People,dc=example,dc=com
|
||||||
|
|
||||||
|
# Testing list search of a non-listed attr...
|
||||||
|
dn: cn=Dynamic List of Members,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
|
||||||
|
# Testing list search with (critical) manageDSAit...
|
||||||
|
dn: cn=Dynamic List of Members,ou=Dynamic Lists,dc=example,dc=com
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
cn: Dynamic List of Members
|
||||||
|
memberURL: ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person)
|
||||||
|
|
||||||
|
# Testing list compare...
|
||||||
|
TRUE
|
||||||
|
|
||||||
|
# Testing list compare with manageDSAit...
|
||||||
|
FALSE
|
||||||
|
|
||||||
55
tests/data/slapd-dynlist.conf
Normal file
55
tests/data/slapd-dynlist.conf
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
# stand-alone slapd config -- for testing (with indexing)
|
||||||
|
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
|
||||||
|
##
|
||||||
|
## Copyright 1998-2005 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>.
|
||||||
|
|
||||||
|
include @SCHEMADIR@/core.schema
|
||||||
|
include @SCHEMADIR@/cosine.schema
|
||||||
|
include @SCHEMADIR@/inetorgperson.schema
|
||||||
|
include @SCHEMADIR@/openldap.schema
|
||||||
|
include @SCHEMADIR@/nis.schema
|
||||||
|
include @SCHEMADIR@/dyngroup.schema
|
||||||
|
include @DATADIR@/test.schema
|
||||||
|
|
||||||
|
#
|
||||||
|
pidfile @TESTDIR@/slapd.1.pid
|
||||||
|
argsfile @TESTDIR@/slapd.1.args
|
||||||
|
|
||||||
|
#mod#modulepath ../servers/slapd/back-@BACKEND@/
|
||||||
|
#mod#moduleload back_@BACKEND@.la
|
||||||
|
#monitormod#modulepath ../servers/slapd/back-monitor/
|
||||||
|
#monitormod#moduleload back_monitor.la
|
||||||
|
#dynlistmod#modulepath ../servers/slapd/overlays/
|
||||||
|
#dynlistmod#moduleload dynlist.la
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
# database definitions
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
#monitor#database monitor
|
||||||
|
|
||||||
|
database @BACKEND@
|
||||||
|
suffix "dc=example,dc=com"
|
||||||
|
directory @TESTDIR@/db.1.a
|
||||||
|
rootdn "cn=Manager,dc=example,dc=com"
|
||||||
|
rootpw secret
|
||||||
|
#bdb#index objectClass eq
|
||||||
|
#bdb#index cn,sn,uid pres,eq,sub
|
||||||
|
#hdb#index objectClass eq
|
||||||
|
#hdb#index cn,sn,uid pres,eq,sub
|
||||||
|
#ldbm#index objectClass eq
|
||||||
|
#ldbm#index cn,sn,uid pres,eq,sub
|
||||||
|
|
||||||
|
overlay dynlist
|
||||||
|
dynlist-oc groupOfURLs
|
||||||
|
dynlist-ad memberURL
|
||||||
|
### DO NOT ADD ANY DIRECTIVE BELOW THIS; TEST APPENDS STUFF ###
|
||||||
|
|
@ -35,6 +35,7 @@ AC_sql=sql@BUILD_SQL@
|
||||||
|
|
||||||
# overlays
|
# overlays
|
||||||
AC_accesslog=accesslog@BUILD_ACCESSLOG@
|
AC_accesslog=accesslog@BUILD_ACCESSLOG@
|
||||||
|
AC_dynlist=dynlist@BUILD_ACCESSLOG@
|
||||||
AC_pcache=pcache@BUILD_PROXYCACHE@
|
AC_pcache=pcache@BUILD_PROXYCACHE@
|
||||||
AC_ppolicy=ppolicy@BUILD_PPOLICY@
|
AC_ppolicy=ppolicy@BUILD_PPOLICY@
|
||||||
AC_refint=refint@BUILD_REFINT@
|
AC_refint=refint@BUILD_REFINT@
|
||||||
|
|
@ -52,9 +53,9 @@ AC_WITH_MODULES_ENABLED=@WITH_MODULES_ENABLED@
|
||||||
AC_ACI_ENABLED=aci@WITH_ACI_ENABLED@
|
AC_ACI_ENABLED=aci@WITH_ACI_ENABLED@
|
||||||
|
|
||||||
export AC_bdb AC_hdb AC_ldap AC_ldbm AC_meta AC_monitor AC_relay AC_sql
|
export AC_bdb AC_hdb AC_ldap AC_ldbm AC_meta AC_monitor AC_relay AC_sql
|
||||||
export AC_pcache AC_ppolicy AC_refint AC_retcode AC_rwm AC_unique AC_syncprov
|
export AC_accesslog AC_dynlist AC_pcache AC_ppolicy AC_refint AC_retcode
|
||||||
export AC_translucent AC_WITH_SASL AC_WITH_TLS AC_WITH_MODULES_ENABLED AC_ACI_ENABLED
|
export AC_rwm AC_unique AC_syncprov AC_translucent AC_valsort
|
||||||
export AC_valsort AC_accesslog
|
export AC_WITH_SASL AC_WITH_TLS AC_WITH_MODULES_ENABLED AC_ACI_ENABLED
|
||||||
|
|
||||||
if test ! -x ../servers/slapd/slapd ; then
|
if test ! -x ../servers/slapd/slapd ; then
|
||||||
echo "Could not locate slapd(8)"
|
echo "Could not locate slapd(8)"
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ sed -e "s/@BACKEND@/${BACKEND}/" \
|
||||||
-e "s/^#${AC_sql}#//" \
|
-e "s/^#${AC_sql}#//" \
|
||||||
-e "s/^#${RDBMS}#//" \
|
-e "s/^#${RDBMS}#//" \
|
||||||
-e "s/^#${AC_accesslog}#//" \
|
-e "s/^#${AC_accesslog}#//" \
|
||||||
|
-e "s/^#${AC_dynlist}#//" \
|
||||||
-e "s/^#${AC_pcache}#//" \
|
-e "s/^#${AC_pcache}#//" \
|
||||||
-e "s/^#${AC_ppolicy}#//" \
|
-e "s/^#${AC_ppolicy}#//" \
|
||||||
-e "s/^#${AC_refint}#//" \
|
-e "s/^#${AC_refint}#//" \
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,14 @@
|
||||||
## <http://www.OpenLDAP.org/license.html>.
|
## <http://www.OpenLDAP.org/license.html>.
|
||||||
|
|
||||||
MONITORDB=${AC_monitor-no}
|
MONITORDB=${AC_monitor-no}
|
||||||
ACCESSLOG=${AC_accesslog-accesslogno}
|
|
||||||
BACKLDAP=${AC_ldap-ldapno}
|
BACKLDAP=${AC_ldap-ldapno}
|
||||||
BACKMETA=${AC_meta-metano}
|
BACKMETA=${AC_meta-metano}
|
||||||
BACKRELAY=${AC_relay-relayno}
|
BACKRELAY=${AC_relay-relayno}
|
||||||
BACKSQL=${AC_sql-sqlno}
|
BACKSQL=${AC_sql-sqlno}
|
||||||
RDBMS=${SLAPD_USE_SQL-rdbmsno}
|
RDBMS=${SLAPD_USE_SQL-rdbmsno}
|
||||||
RDBMSWRITE=${SLAPD_USE_SQLWRITE-no}
|
RDBMSWRITE=${SLAPD_USE_SQLWRITE-no}
|
||||||
|
ACCESSLOG=${AC_accesslog-accesslogno}
|
||||||
|
DYNLIST=${AC_dynlist-dynlistno}
|
||||||
PROXYCACHE=${AC_pcache-pcacheno}
|
PROXYCACHE=${AC_pcache-pcacheno}
|
||||||
PPOLICY=${AC_ppolicy-ppolicyno}
|
PPOLICY=${AC_ppolicy-ppolicyno}
|
||||||
REFINT=${AC_refint-refintno}
|
REFINT=${AC_refint-refintno}
|
||||||
|
|
@ -102,6 +103,7 @@ METACONF2=$DATADIR/slapd-meta2.conf
|
||||||
GLUELDAPCONF=$DATADIR/slapd-glue-ldap.conf
|
GLUELDAPCONF=$DATADIR/slapd-glue-ldap.conf
|
||||||
ACICONF=$DATADIR/slapd-aci.conf
|
ACICONF=$DATADIR/slapd-aci.conf
|
||||||
VALSORTCONF=$DATADIR/slapd-valsort.conf
|
VALSORTCONF=$DATADIR/slapd-valsort.conf
|
||||||
|
DYNLISTCONF=$DATADIR/slapd-dynlist.conf
|
||||||
|
|
||||||
CONF1=$TESTDIR/slapd.1.conf
|
CONF1=$TESTDIR/slapd.1.conf
|
||||||
CONF2=$TESTDIR/slapd.2.conf
|
CONF2=$TESTDIR/slapd.2.conf
|
||||||
|
|
@ -289,6 +291,7 @@ METACONCURRENCYOUT=$DATADIR/metaconcurrency.out
|
||||||
MANAGEOUT=$DATADIR/manage.out
|
MANAGEOUT=$DATADIR/manage.out
|
||||||
SUBTREERENAMEOUT=$DATADIR/subtree-rename.out
|
SUBTREERENAMEOUT=$DATADIR/subtree-rename.out
|
||||||
ACIOUT=$DATADIR/aci.out
|
ACIOUT=$DATADIR/aci.out
|
||||||
|
DYNLISTOUT=$DATADIR/dynlist.out
|
||||||
|
|
||||||
# Just in case we linked the binaries dynamically
|
# Just in case we linked the binaries dynamically
|
||||||
LD_LIBRARY_PATH=`pwd`/../libraries:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH
|
LD_LIBRARY_PATH=`pwd`/../libraries:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH
|
||||||
|
|
|
||||||
354
tests/scripts/test044-dynlist
Executable file
354
tests/scripts/test044-dynlist
Executable file
|
|
@ -0,0 +1,354 @@
|
||||||
|
#! /bin/sh
|
||||||
|
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
|
||||||
|
##
|
||||||
|
## Copyright 1998-2005 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>.
|
||||||
|
|
||||||
|
echo "running defines.sh"
|
||||||
|
. $SRCDIR/scripts/defines.sh
|
||||||
|
|
||||||
|
mkdir -p $TESTDIR $DBDIR1
|
||||||
|
|
||||||
|
echo "Running slapadd to build slapd database..."
|
||||||
|
. $CONFFILTER $BACKEND $MONITORDB < $MCONF > $ADDCONF
|
||||||
|
$SLAPADD -f $ADDCONF -l $LDIFORDERED
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "slapadd failed ($RC)!"
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running slapindex to index slapd database..."
|
||||||
|
. $CONFFILTER $BACKEND $MONITORDB < $DYNLISTCONF > $CONF1
|
||||||
|
$SLAPINDEX -f $CONF1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "warning: slapindex failed ($RC)"
|
||||||
|
echo " assuming no indexing support"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting slapd on TCP/IP port $PORT1..."
|
||||||
|
$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
if test $WAIT != 0 ; then
|
||||||
|
echo PID $PID
|
||||||
|
read foo
|
||||||
|
fi
|
||||||
|
KILLPIDS="$PID"
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
echo "Testing slapd searching..."
|
||||||
|
for i in 0 1 2 3 4 5; do
|
||||||
|
$LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(objectclass=*)' > /dev/null 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC = 0 ; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Waiting 5 seconds for slapd to start..."
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat /dev/null > $SEARCHOUT
|
||||||
|
|
||||||
|
LISTDN="ou=Dynamic Lists,$BASEDN"
|
||||||
|
echo "Adding a dynamic list..."
|
||||||
|
$LDAPADD -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
|
||||||
|
> $TESTOUT 2>&1 << EOMODS
|
||||||
|
dn: $LISTDN
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: Dynamic Lists
|
||||||
|
|
||||||
|
dn: cn=Dynamic List,$LISTDN
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
cn: Dynamic List
|
||||||
|
memberURL: ldap:///ou=People,${BASEDN}?cn,mail?sub?(objectClass=person)
|
||||||
|
EOMODS
|
||||||
|
|
||||||
|
echo "Testing list search of all attrs..."
|
||||||
|
echo "# Testing list search of all attrs..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(cn=Dynamic List)' '*' \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list search of a listed attr..."
|
||||||
|
echo "# Testing list search of a listed attr..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(cn=Dynamic List)' mail \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list search of a non-listed attr..."
|
||||||
|
echo "# Testing list search of a non-listed attr..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(cn=Dynamic List)' objectClass \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list search with (critical) manageDSAit..."
|
||||||
|
echo "# Testing list search with (critical) manageDSAit..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 -MM \
|
||||||
|
'(cn=Dynamic List)' '*' \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list compare..."
|
||||||
|
echo "# Testing list compare..." >> $SEARCHOUT
|
||||||
|
$LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
|
||||||
|
"cn=Dynamic List,$LISTDN" "cn:Bjorn Jensen" \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
case $RC in
|
||||||
|
5)
|
||||||
|
echo "ldapcompare returned FALSE ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
6)
|
||||||
|
echo "ldapcompare returned TRUE ($RC)"
|
||||||
|
;;
|
||||||
|
0)
|
||||||
|
echo "ldapcompare returned success ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ldapcompare failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "" >> $SEARCHOUT
|
||||||
|
|
||||||
|
echo "Testing list compare with manageDSAit..."
|
||||||
|
echo "# Testing list compare with manageDSAit..." >> $SEARCHOUT
|
||||||
|
$LDAPCOMPARE -h $LOCALHOST -p $PORT1 -MM \
|
||||||
|
"cn=Dynamic List,$LISTDN" "cn:Bjorn Jensen" \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
case $RC in
|
||||||
|
5)
|
||||||
|
echo "ldapcompare returned FALSE ($RC)"
|
||||||
|
;;
|
||||||
|
6)
|
||||||
|
echo "ldapcompare returned TRUE ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
0)
|
||||||
|
echo "ldapcompare returned success ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ldapcompare failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "" >> $SEARCHOUT
|
||||||
|
|
||||||
|
echo "Stopping slapd..."
|
||||||
|
kill -HUP $KILLPIDS
|
||||||
|
wait $KILLPIDS
|
||||||
|
|
||||||
|
echo "Reconfiguring slapd..."
|
||||||
|
echo "dynlist-member-ad member" >> $CONF1
|
||||||
|
|
||||||
|
echo "Starting slapd on TCP/IP port $PORT1..."
|
||||||
|
$SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
|
||||||
|
PID=$!
|
||||||
|
if test $WAIT != 0 ; then
|
||||||
|
echo PID $PID
|
||||||
|
read foo
|
||||||
|
fi
|
||||||
|
KILLPIDS="$PID"
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
echo "Testing slapd searching..."
|
||||||
|
for i in 0 1 2 3 4 5; do
|
||||||
|
$LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(objectclass=*)' > /dev/null 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC = 0 ; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Waiting 5 seconds for slapd to start..."
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Adding a dynamic list..."
|
||||||
|
$LDAPADD -v -D "$MANAGERDN" -h $LOCALHOST -p $PORT1 -w $PASSWD \
|
||||||
|
> $TESTOUT 2>&1 << EOMODS
|
||||||
|
dn: cn=Dynamic List of Members,$LISTDN
|
||||||
|
objectClass: groupOfURLs
|
||||||
|
cn: Dynamic List of Members
|
||||||
|
memberURL: ldap:///ou=People,${BASEDN}??sub?(objectClass=person)
|
||||||
|
EOMODS
|
||||||
|
|
||||||
|
echo "Testing list search of all attrs..."
|
||||||
|
echo "# Testing list search of all attrs..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(cn=Dynamic List of Members)' '*' \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list search of a listed attr..."
|
||||||
|
echo "# Testing list search of a listed attr..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(cn=Dynamic List of Members)' member \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list search of a non-listed attr..."
|
||||||
|
echo "# Testing list search of a non-listed attr..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 \
|
||||||
|
'(cn=Dynamic List of Members)' objectClass \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Testing list search with (critical) manageDSAit..."
|
||||||
|
echo "# Testing list search with (critical) manageDSAit..." >> $SEARCHOUT
|
||||||
|
$LDAPSEARCH -S "" -b "$LISTDN" -h $LOCALHOST -p $PORT1 -MM \
|
||||||
|
'(&(cn=Dynamic List of Members)(objectClass=groupOfURLs))' '*' \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
if test $RC != 0 ; then
|
||||||
|
echo "ldapsearch failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMPDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN"
|
||||||
|
echo "Testing list compare..."
|
||||||
|
echo "# Testing list compare..." >> $SEARCHOUT
|
||||||
|
$LDAPCOMPARE -h $LOCALHOST -p $PORT1 \
|
||||||
|
"cn=Dynamic List,$LISTDN" "member:$CMPDN" \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
case $RC in
|
||||||
|
5)
|
||||||
|
echo "ldapcompare returned FALSE ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
6)
|
||||||
|
echo "ldapcompare returned TRUE ($RC)"
|
||||||
|
;;
|
||||||
|
0)
|
||||||
|
echo "ldapcompare returned success ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ldapcompare failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "" >> $SEARCHOUT
|
||||||
|
|
||||||
|
echo "Testing list compare with manageDSAit..."
|
||||||
|
echo "# Testing list compare with manageDSAit..." >> $SEARCHOUT
|
||||||
|
$LDAPCOMPARE -h $LOCALHOST -p $PORT1 -MM \
|
||||||
|
"cn=Dynamic List,$LISTDN" "member:$CMPDN" \
|
||||||
|
>> $SEARCHOUT 2>&1
|
||||||
|
RC=$?
|
||||||
|
case $RC in
|
||||||
|
5)
|
||||||
|
echo "ldapcompare returned FALSE ($RC)"
|
||||||
|
;;
|
||||||
|
6)
|
||||||
|
echo "ldapcompare returned TRUE ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
0)
|
||||||
|
echo "ldapcompare returned success ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ldapcompare failed ($RC)!"
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
exit $RC
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "" >> $SEARCHOUT
|
||||||
|
|
||||||
|
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||||
|
|
||||||
|
LDIF=$DYNLISTOUT
|
||||||
|
|
||||||
|
echo "Filtering ldapsearch results..."
|
||||||
|
. $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
|
||||||
|
echo "Filtering original ldif used to create database..."
|
||||||
|
. $LDIFFILTER < $LDIF > $LDIFFLT
|
||||||
|
echo "Comparing filter output..."
|
||||||
|
$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
|
||||||
|
|
||||||
|
if test $? != 0 ; then
|
||||||
|
echo "Comparison failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ">>>>> Test succeeded"
|
||||||
|
exit 0
|
||||||
Loading…
Reference in a new issue