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