mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
b73b0c6158
ldapsearch: use draft guidelines for determining when to use -t only writes binary attributes to files -tt writes all attributes to files output now lists URL instead of path to such files -T dir can be used to specify directory to create temp files in -V urlprefix can be used to change the URL prefix LDIF is now commented (can be disabled using -LL) LDIF now contains version attribute (can be disabled with -LLL) LDIF: put interface changed to allow caller to specify how to encode put interface uses draft guidelines for determine when to base64 encode wrapping kludged to match old off by one bug Tests: removed trailing space from some attributes (to avoid base64 encoding) enabled -LLL in defines.sh (should sed output to remove wrapping/comments/redundant separators) Misc: updated codes outputting LDIF to use new put interface TODO: handling of version attribute on input handling of URLs on input (ie: fetch URL)
126 lines
2.7 KiB
Bash
Executable File
126 lines
2.7 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
#
|
|
# Test default referral
|
|
#
|
|
|
|
if test $# -eq 0 ; then
|
|
SRCDIR="."
|
|
else
|
|
SRCDIR=$1; shift
|
|
fi
|
|
if test $# -eq 1 ; then
|
|
BACKEND=$1; shift
|
|
fi
|
|
|
|
echo "running defines.sh $SRCDIR $BACKEND"
|
|
. $SRCDIR/scripts/defines.sh
|
|
|
|
echo "Cleaning up in $DBDIR and $REPLDIR ..."
|
|
|
|
rm -f $DBDIR/[!C]*
|
|
rm -f $REPLDIR/[!C]*
|
|
|
|
echo "Running ldif2ldbm to build slapd database..."
|
|
$LDIF2LDBM -f $CONF -i $LDIF -e ../servers/slapd/tools
|
|
RC=$?
|
|
if test $RC != 0 ; then
|
|
echo "ldif2ldbm failed!"
|
|
exit $RC
|
|
fi
|
|
|
|
echo "Starting master slapd on TCP/IP port $PORT..."
|
|
$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
|
|
PID=$!
|
|
|
|
echo "Starting slave slapd on TCP/IP port $SLAVEPORT..."
|
|
$SLAPD -f $REFSLAVECONF -p $SLAVEPORT -d $LVL $TIMING > $SLAVELOG 2>&1 &
|
|
SLAVEPID=$!
|
|
|
|
echo "Testing for master slapd..."
|
|
for i in 0 1 2 3 4 5; do
|
|
$LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $PORT \
|
|
'objectclass=*' > /dev/null 2>&1
|
|
RC=$?
|
|
if test $RC = 1 ; then
|
|
echo "Waiting 5 seconds for slapd to start..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
|
|
if test $RC != 0 ; then
|
|
echo "ldapsearch failed!"
|
|
kill -HUP $PID
|
|
exit $RC
|
|
fi
|
|
|
|
echo "Testing for slave slapd..."
|
|
for i in 0 1 2 3 4 5; do
|
|
$LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $SLAVEPORT \
|
|
'objectclass=*' > /dev/null 2>&1
|
|
RC=$?
|
|
if test $RC = 1 ; then
|
|
echo "Waiting 5 seconds for slapd to start..."
|
|
sleep 5
|
|
fi
|
|
done
|
|
|
|
cat /dev/null > $SEARCHOUT
|
|
|
|
echo "Testing exact searching..."
|
|
$LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $SLAVEPORT \
|
|
'sn=jensen' >> $SEARCHOUT 2>&1
|
|
if test $RC != 0 ; then
|
|
echo "ldapsearch failed!"
|
|
kill -HUP $PID $SLAVEPID
|
|
exit $RC
|
|
fi
|
|
|
|
echo "Testing OR searching..."
|
|
$LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $SLAVEPORT \
|
|
'(|(objectclass=rfc822mailgroup)(sn=jones))' >> $SEARCHOUT 2>&1
|
|
if test $RC != 0 ; then
|
|
echo "ldapsearch failed!"
|
|
kill -HUP $PID $SLAVEPID
|
|
exit $RC
|
|
fi
|
|
|
|
echo "Testing AND matching and ends-with searching..."
|
|
$LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $SLAVEPORT \
|
|
'(&(objectclass=rfc822mailgroup)(cn=A*))' >> $SEARCHOUT 2>&1
|
|
if test $RC != 0 ; then
|
|
echo "ldapsearch failed!"
|
|
kill -HUP $PID $SLAVEPID
|
|
exit $RC
|
|
fi
|
|
|
|
echo "Testing NOT searching..."
|
|
$LDAPSEARCH -S "" -b "$BASEDN" -h localhost -p $SLAVEPORT \
|
|
'(!(objectclass=person))' >> $SEARCHOUT 2>&1
|
|
if test $RC != 0 ; then
|
|
echo "ldapsearch failed!"
|
|
kill -HUP $PID $SLAVEPID
|
|
exit $RC
|
|
fi
|
|
|
|
kill -HUP $PID $SLAVEPID
|
|
|
|
LDIF=$SEARCHOUTMASTER
|
|
|
|
echo "Filtering ldapsearch results..."
|
|
. $SRCDIR/scripts/acfilter.sh < $SEARCHOUT > $SEARCHFLT
|
|
echo "Filtering original ldif used to create database..."
|
|
. $SRCDIR/scripts/acfilter.sh < $LDIF > $LDIFFLT
|
|
echo "Comparing filter output..."
|
|
cmp $SEARCHFLT $LDIFFLT
|
|
|
|
if test $? != 0 ; then
|
|
echo "Comparison failed"
|
|
exit 1
|
|
fi
|
|
|
|
echo ">>>>> Test succeeded"
|
|
|
|
|
|
exit 0
|