12de962bdSlukem#! /bin/sh 2d11b170bStron# $OpenLDAP$ */ 32de962bdSlukem## This work is part of OpenLDAP Software <http://www.openldap.org/>. 42de962bdSlukem## 5*e670fd5cSchristos## Copyright 1998-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 212de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..." 22*e670fd5cSchristos. $CONFFILTER $BACKEND < $CONF > $CONF1 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 searching..." 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 512de962bdSlukemcat /dev/null > $TESTOUT 522de962bdSlukemcat /dev/null > $SEARCHOUT 532de962bdSlukem 542de962bdSlukem# Add 552de962bdSlukemecho "Populating the database..." 562de962bdSlukemecho "# Populating the database..." >> $TESTOUT 57*e670fd5cSchristos$LDAPADD -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 582de962bdSlukem >> $TESTOUT 2>&1 << EOMODS0 592de962bdSlukemdn: dc=example,dc=com 602de962bdSlukemobjectClass: organization 612de962bdSlukemobjectClass: dcObject 622de962bdSlukemo: Example, Inc. 632de962bdSlukemdc: example 642de962bdSlukem 652de962bdSlukemdn: ou=Parent,dc=example,dc=com 662de962bdSlukemobjectClass: organizationalUnit 672de962bdSlukemou: Parent 682de962bdSlukem 692de962bdSlukemdn: ou=Another parent,dc=example,dc=com 702de962bdSlukemobjectClass: organizationalUnit 712de962bdSlukemou: Another parent 722de962bdSlukem 732de962bdSlukemdn: ou=Child,ou=Parent,dc=example,dc=com 742de962bdSlukemobjectClass: organizationalUnit 752de962bdSlukemou: Child 762de962bdSlukem 772de962bdSlukemdn: ou=Grandchild,ou=Child,ou=Parent,dc=example,dc=com 782de962bdSlukemobjectClass: organizationalUnit 792de962bdSlukemou: Grandchild 802de962bdSlukemEOMODS0 812de962bdSlukemRC=$? 822de962bdSlukemif test $RC != 0 ; then 832de962bdSlukem echo "ldapadd failed ($RC)!" 842de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 852de962bdSlukem exit $RC 862de962bdSlukemfi 872de962bdSlukem 882de962bdSlukemecho "Searching all database..." 892de962bdSlukemecho "# Searching all database (after add)..." >> $SEARCHOUT 90*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 912de962bdSlukem '(objectClass=*)' >> $SEARCHOUT 2>&1 922de962bdSlukemRC=$? 932de962bdSlukemif test $RC != 0 ; then 942de962bdSlukem echo "ldapsearch failed ($RC)!" 952de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 962de962bdSlukem exit $RC 972de962bdSlukemfi 982de962bdSlukem 992de962bdSlukem# Rename (PASS1) 1002de962bdSlukemecho "Renaming (PASS1)..." 1012de962bdSlukemecho "# Renaming (PASS1)..." >> $TESTOUT 102*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 1032de962bdSlukem >> $TESTOUT 2>&1 << EOMODS1 1042de962bdSlukemdn: ou=Child,ou=Parent,dc=example,dc=com 1052de962bdSlukemchangetype: modrdn 1062de962bdSlukemnewrdn: ou=Renamed child 1072de962bdSlukemdeleteoldrdn: 0 1082de962bdSlukemEOMODS1 1092de962bdSlukemRC=$? 1102de962bdSlukemif test $RC != 0 ; then 1112de962bdSlukem echo "ldapadd failed ($RC)!" 1122de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1132de962bdSlukem exit $RC 1142de962bdSlukemfi 1152de962bdSlukem 1162de962bdSlukemecho "Searching all database..." 1172de962bdSlukemecho "# Searching all database (after PASS1)..." >> $SEARCHOUT 118*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 1192de962bdSlukem '(objectClass=*)' >> $SEARCHOUT 2>&1 1202de962bdSlukemRC=$? 1212de962bdSlukemif test $RC != 0 ; then 1222de962bdSlukem echo "ldapsearch failed ($RC)!" 1232de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1242de962bdSlukem exit $RC 1252de962bdSlukemfi 1262de962bdSlukem 1272de962bdSlukem# Rename (PASS2) 1282de962bdSlukemecho "Renaming (PASS2)..." 1292de962bdSlukemecho "# Renaming (PASS2)..." >> $TESTOUT 130*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 1312de962bdSlukem >> $TESTOUT 2>&1 << EOMODS2 1322de962bdSlukemdn: ou=Parent,dc=example,dc=com 1332de962bdSlukemchangetype: modrdn 1342de962bdSlukemnewrdn: ou=Renamed parent 1352de962bdSlukemdeleteoldrdn: 0 1362de962bdSlukemEOMODS2 1372de962bdSlukemRC=$? 1382de962bdSlukemif test $RC != 0 ; then 1392de962bdSlukem echo "ldapadd failed ($RC)!" 1402de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1412de962bdSlukem exit $RC 1422de962bdSlukemfi 1432de962bdSlukem 1442de962bdSlukemecho "Searching all database..." 1452de962bdSlukemecho "# Searching all database (after PASS2)..." >> $SEARCHOUT 146*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 1472de962bdSlukem '(objectClass=*)' >> $SEARCHOUT 2>&1 1482de962bdSlukemRC=$? 1492de962bdSlukemif test $RC != 0 ; then 1502de962bdSlukem echo "ldapsearch failed ($RC)!" 1512de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1522de962bdSlukem exit $RC 1532de962bdSlukemfi 1542de962bdSlukem 1552de962bdSlukem# Rename (PASS3) 1562de962bdSlukemecho "Renaming (PASS3)..." 1572de962bdSlukemecho "# Renaming (PASS3)..." >> $TESTOUT 158*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 1592de962bdSlukem >> $TESTOUT 2>&1 << EOMODS3 1602de962bdSlukemdn: ou=Renamed child,ou=Renamed parent,dc=example,dc=com 1612de962bdSlukemchangetype: modrdn 1622de962bdSlukemnewrdn: ou=Renamed child 1632de962bdSlukemdeleteoldrdn: 0 1642de962bdSlukemnewsuperior: ou=Another parent,dc=example,dc=com 1652de962bdSlukemEOMODS3 1662de962bdSlukemRC=$? 1672de962bdSlukemif test $RC != 0 ; then 1682de962bdSlukem echo "ldapadd failed ($RC)!" 1692de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1702de962bdSlukem exit $RC 1712de962bdSlukemfi 1722de962bdSlukem 1732de962bdSlukemecho "Searching all database..." 1742de962bdSlukemecho "# Searching all database (after PASS3)..." >> $SEARCHOUT 175*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 1762de962bdSlukem '(objectClass=*)' >> $SEARCHOUT 2>&1 1772de962bdSlukemRC=$? 1782de962bdSlukemif test $RC != 0 ; then 1792de962bdSlukem echo "ldapsearch failed ($RC)!" 1802de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1812de962bdSlukem exit $RC 1822de962bdSlukemfi 1832de962bdSlukem 1842de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 1852de962bdSlukem 1862de962bdSlukemLDIF=$SUBTREERENAMEOUT 1872de962bdSlukem 1882de962bdSlukemecho "Filtering ldapsearch results..." 189ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 1902de962bdSlukemecho "Filtering original ldif used to create database..." 191ef2f90d3Sadam$LDIFFILTER < $LDIF > $LDIFFLT 1922de962bdSlukemecho "Comparing filter output..." 1932de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 1942de962bdSlukem 1952de962bdSlukemif test $? != 0 ; then 1962de962bdSlukem echo "Comparison failed" 1972de962bdSlukem exit 1 1982de962bdSlukemfi 1992de962bdSlukem 2002de962bdSlukemecho ">>>>> Test succeeded" 2012de962bdSlukem 2022de962bdSlukemtest $KILLSERVERS != no && wait 2032de962bdSlukem 2042de962bdSlukemexit 0 205