xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test026-dn (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
12de962bdSlukem#! /bin/sh
2d11b170bStron# $OpenLDAP$
32de962bdSlukem## This work is part of OpenLDAP Software <http://www.openldap.org/>.
42de962bdSlukem##
5*e670fd5cSchristos## Copyright 2004-2021 The OpenLDAP Foundation.
62de962bdSlukem## All rights reserved.
72de962bdSlukem##
82de962bdSlukem## Redistribution and use in source and binary forms, with or without
92de962bdSlukem## modification, are permitted only as authorized by the OpenLDAP
102de962bdSlukem## Public License.
112de962bdSlukem##
122de962bdSlukem## A copy of this license is available in the file LICENSE in the
132de962bdSlukem## top-level directory of the distribution or, alternatively, at
142de962bdSlukem## <http://www.OpenLDAP.org/license.html>.
152de962bdSlukem
162de962bdSlukemecho "running defines.sh"
172de962bdSlukem. $SRCDIR/scripts/defines.sh
182de962bdSlukem
192de962bdSlukemmkdir -p $TESTDIR $DBDIR1
202de962bdSlukem
21*e670fd5cSchristos. $CONFFILTER $BACKEND < $DNCONF > $CONF1
222de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
23*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
242de962bdSlukemPID=$!
252de962bdSlukemif test $WAIT != 0 ; then
262de962bdSlukem    echo PID $PID
272de962bdSlukem    read foo
282de962bdSlukemfi
292de962bdSlukemKILLPIDS="$PID"
302de962bdSlukem
312de962bdSlukemsleep 1
322de962bdSlukem
332de962bdSlukemecho "Testing slapd DN parsing..."
342de962bdSlukemfor i in 0 1 2 3 4 5; do
35*e670fd5cSchristos	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
362de962bdSlukem		'objectclass=*' > /dev/null 2>&1
372de962bdSlukem	RC=$?
382de962bdSlukem	if test $RC = 0 ; then
392de962bdSlukem		break
402de962bdSlukem	fi
412de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
422de962bdSlukem	sleep 5
432de962bdSlukemdone
442de962bdSlukem
452de962bdSlukemif test $RC != 0 ; then
462de962bdSlukem	echo "ldapsearch failed ($RC)!"
472de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
482de962bdSlukem	exit $RC
492de962bdSlukemfi
502de962bdSlukem
512de962bdSlukemecho "Loading database..."
52*e670fd5cSchristos$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -c -f $LDIFDN > \
532de962bdSlukem	$TESTOUT 2>&1
542de962bdSlukem
552de962bdSlukemcat /dev/null > $SEARCHOUT
562de962bdSlukem
572de962bdSlukemecho "Searching database..."
582de962bdSlukemecho "# Searching database..." >> $SEARCHOUT
59*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 >> $SEARCHOUT 2>&1
602de962bdSlukem
612de962bdSlukemRC=$?
622de962bdSlukemif test $RC != 0 ; then
632de962bdSlukem	echo "ldapsearch failed ($RC)!"
642de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
652de962bdSlukem	exit $RC
662de962bdSlukemfi
672de962bdSlukem
682de962bdSlukemDN="OU=Sales+CN=J. Smith,DC=example,DC=net"
692de962bdSlukemecho "Searching database for DN=\"$DN\"..."
702de962bdSlukemecho "# Searching database for DN=\"$DN\"..." >> $SEARCHOUT
71*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
722de962bdSlukem	"(member=$DN)" >> $SEARCHOUT 2>&1
732de962bdSlukem
742de962bdSlukemRC=$?
752de962bdSlukemif test $RC != 0 ; then
762de962bdSlukem	echo "ldapsearch failed ($RC)!"
772de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
782de962bdSlukem	exit $RC
792de962bdSlukemfi
802de962bdSlukem
812de962bdSlukemDN="testUUID=597ae2f6-16a6-1027-98f4-ABCDEFabcdef,DC=Example"
822de962bdSlukemecho "Searching database for entryUUID-named DN=\"$DN\"..."
832de962bdSlukemecho "# Searching database for entryUUID-named DN=\"$DN\"..." >> $SEARCHOUT
84*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
852de962bdSlukem	"(member=$DN)" \
862de962bdSlukem	>> $SEARCHOUT 2>&1
872de962bdSlukem
882de962bdSlukemRC=$?
892de962bdSlukemif test $RC != 0 ; then
902de962bdSlukem	echo "ldapsearch failed ($RC)!"
912de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
922de962bdSlukem	exit $RC
932de962bdSlukemfi
942de962bdSlukem
952de962bdSlukemDN="dc=example,dc=com"
962de962bdSlukemecho "Searching database for nameAndOptionalUID=\"$DN\"..."
972de962bdSlukemecho "# Searching database for nameAndOptionalUID=\"$DN\"..." >> $SEARCHOUT
98*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
992de962bdSlukem	"(uniqueMember=$DN)" >> $SEARCHOUT 2>&1
1002de962bdSlukem
1012de962bdSlukemRC=$?
1022de962bdSlukemif test $RC != 0 ; then
1032de962bdSlukem	echo "ldapsearch failed ($RC)!"
1042de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1052de962bdSlukem	exit $RC
1062de962bdSlukemfi
1072de962bdSlukem
1082de962bdSlukemDN="dc=example,dc=com#'001000'B"
1092de962bdSlukemecho "Searching database for nameAndOptionalUID=\"$DN\"..."
1102de962bdSlukemecho "# Searching database for nameAndOptionalUID=\"$DN\"..." >> $SEARCHOUT
111*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
1122de962bdSlukem	"(uniqueMember=$DN)" >> $SEARCHOUT 2>&1
1132de962bdSlukem
1142de962bdSlukemRC=$?
1152de962bdSlukemif test $RC != 0 ; then
1162de962bdSlukem	echo "ldapsearch failed ($RC)!"
1172de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1182de962bdSlukem	exit $RC
1192de962bdSlukemfi
1202de962bdSlukem
1214e6df137SlukemDN="dc=example,dc=com#'1000'B"
1224e6df137Slukemecho "Searching database for nameAndOptionalUID=\"$DN\"..."
1234e6df137Slukemecho "# Searching database for nameAndOptionalUID=\"$DN\"..." >> $SEARCHOUT
124*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
1254e6df137Slukem	"(uniqueMember=$DN)" >> $SEARCHOUT 2>&1
1264e6df137Slukem
1274e6df137SlukemRC=$?
1284e6df137Slukemif test $RC != 0 ; then
1294e6df137Slukem	echo "ldapsearch failed ($RC)!"
1304e6df137Slukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1314e6df137Slukem	exit $RC
1324e6df137Slukemfi
1334e6df137Slukem
1342de962bdSlukemDN="dc=example,dc=com"
1352de962bdSlukemecho "Searching database for uniqueMember~=\"$DN\" (approx)..."
1362de962bdSlukemecho "# Searching database for uniqueMember~=\"$DN\" (approx)..." >> $SEARCHOUT
137*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
1382de962bdSlukem	"(uniqueMember~=)" >> $SEARCHOUT 2>&1
1392de962bdSlukem
1402de962bdSlukemRC=$?
1412de962bdSlukemif test $RC != 0 ; then
1422de962bdSlukem	echo "ldapsearch failed ($RC)!"
1432de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1442de962bdSlukem	exit $RC
1452de962bdSlukemfi
1462de962bdSlukem
1474e6df137SlukemDN="dc=example,dc=com#'1000'B"
1482de962bdSlukemecho "Searching database for uniqueMember~=\"$DN\" (approx)..."
1492de962bdSlukemecho "# Searching database for uniqueMember~=\"$DN\" (approx)..." >> $SEARCHOUT
150*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
1512de962bdSlukem	"(uniqueMember~=$DN)" >> $SEARCHOUT 2>&1
1522de962bdSlukem
1532de962bdSlukemRC=$?
1542de962bdSlukemif test $RC != 0 ; then
1552de962bdSlukem	echo "ldapsearch failed ($RC)!"
1562de962bdSlukem	test $KILLSERVERS != no && kill -HUP $KILLPIDS
1572de962bdSlukem	exit $RC
1582de962bdSlukemfi
1592de962bdSlukem
1602de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS
1612de962bdSlukem
1622de962bdSlukemecho "Filtering ldapsearch results..."
163ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
1642de962bdSlukemecho "Filtering original data..."
165ef2f90d3Sadam$LDIFFILTER < $DNOUT > $LDIFFLT
1662de962bdSlukemecho "Comparing ldapsearch results against original..."
1672de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
1682de962bdSlukem
1692de962bdSlukemif test $? != 0 ; then
1702de962bdSlukem	echo "comparison failed - DN write operations did not complete correctly"
1712de962bdSlukem	exit 1
1722de962bdSlukemfi
1732de962bdSlukem
1742de962bdSlukem#####
1752de962bdSlukem
1762de962bdSlukemecho ">>>>> Test succeeded"
1772de962bdSlukem
1782de962bdSlukemtest $KILLSERVERS != no && wait
1792de962bdSlukem
1802de962bdSlukemexit 0
181