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 192de962bdSlukemif test $BACKSQL = "sqlno" ; then 202de962bdSlukem echo "SQL backend not available, test skipped" 212de962bdSlukem exit 0 222de962bdSlukemfi 232de962bdSlukem 242de962bdSlukemif test $RDBMS = "rdbmsno" ; then 252de962bdSlukem echo "SQL test not requested, test skipped" 262de962bdSlukem exit 0 272de962bdSlukemfi 282de962bdSlukem 292de962bdSlukemif test "${RDBMSWRITE}" != "yes"; then 302de962bdSlukem echo "write test disabled for ${RDBMS}; set SLAPD_USE_SQLWRITE=yes to enable" 312de962bdSlukem exit 0 322de962bdSlukemfi 332de962bdSlukem 342de962bdSlukemmkdir -p $TESTDIR $DBDIR2A 352de962bdSlukem 362de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..." 37*e670fd5cSchristos. $CONFFILTER $BACKEND < $SQLSRPROVIDERCONF > $CONF1 38*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 392de962bdSlukemPID=$! 402de962bdSlukemif test $WAIT != 0 ; then 412de962bdSlukem echo PID $PID 422de962bdSlukem read foo 432de962bdSlukemfi 442de962bdSlukemKILLPIDS="$PID" 452de962bdSlukem 462de962bdSlukemecho "Testing SQL backend write operations..." 472de962bdSlukemfor i in 0 1 2 3 4 5; do 48*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 492de962bdSlukem 'objectclass=*' > /dev/null 2>&1 502de962bdSlukem RC=$? 512de962bdSlukem if test $RC = 0 ; then 522de962bdSlukem break 532de962bdSlukem fi 542de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 552de962bdSlukem sleep 5 562de962bdSlukemdone 572de962bdSlukem 582de962bdSlukemif test $RC != 0 ; then 592de962bdSlukem echo "ldapsearch failed ($RC)!" 602de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 612de962bdSlukem exit $RC 622de962bdSlukemfi 632de962bdSlukem 64*e670fd5cSchristosecho "Starting consumer slapd on TCP/IP port $PORT2..." 65*e670fd5cSchristos. $CONFFILTER $BACKEND < $R1SRCONSUMERCONF > $CONF2 66*e670fd5cSchristos$SLAPD -f $CONF2 -h $URI2 -d $LVL > $LOG2 2>&1 & 67*e670fd5cSchristosCONSUMERPID=$! 682de962bdSlukemif test $WAIT != 0 ; then 69*e670fd5cSchristos echo CONSUMERPID $CONSUMERPID 702de962bdSlukem read foo 712de962bdSlukemfi 72*e670fd5cSchristosKILLPIDS="$KILLPIDS $CONSUMERPID" 732de962bdSlukem 74*e670fd5cSchristosecho "Using ldapsearch to check that consumer slapd is running..." 752de962bdSlukemfor i in 0 1 2 3 4 5; do 76*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI2 \ 772de962bdSlukem 'objectclass=*' > /dev/null 2>&1 782de962bdSlukem RC=$? 792de962bdSlukem if test $RC = 0 ; then 802de962bdSlukem break 812de962bdSlukem fi 822de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 832de962bdSlukem sleep 5 842de962bdSlukemdone 852de962bdSlukem 862de962bdSlukemif test $RC != 0 ; then 872de962bdSlukem echo "ldapsearch failed ($RC)!" 882de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 892de962bdSlukem exit $RC 902de962bdSlukemfi 912de962bdSlukem 922de962bdSlukemcat /dev/null > $SEARCHOUT 932de962bdSlukem 94*e670fd5cSchristosecho "Using ldapsearch to retrieve all the entries from the provider..." 95*e670fd5cSchristosecho "# Using ldapsearch to retrieve all the entries from the provider..." \ 962de962bdSlukem >> $SEARCHOUT 97*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 982de962bdSlukem -D "$MANAGERDN" -w $PASSWD \ 992de962bdSlukem "(!(objectClass=referral))" >> $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 1082de962bdSlukemcat /dev/null > $SEARCHOUT2 1092de962bdSlukem 110*e670fd5cSchristosecho "Using ldapsearch to retrieve all the entries from the consumer..." 111*e670fd5cSchristosecho "# Using ldapsearch to retrieve all the entries from the consumer..." \ 1122de962bdSlukem >> $SEARCHOUT2 113*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI2 -b "$BASEDN" \ 1142de962bdSlukem -D "$UPDATEDN" -w $PASSWD \ 1152de962bdSlukem "(objectClass=*)" >> $SEARCHOUT2 2>&1 1162de962bdSlukem 1172de962bdSlukemRC=$? 1182de962bdSlukemif test $RC != 0 ; then 1192de962bdSlukem echo "ldapsearch failed ($RC)!" 1202de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1212de962bdSlukem exit $RC 1222de962bdSlukemfi 1232de962bdSlukem 124*e670fd5cSchristosecho "Filtering ldapsearch results from provider..." 125ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 126*e670fd5cSchristosecho "Filtering ldapsearch results from consumer..." 127ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT2 > $SEARCHFLT2 1282de962bdSlukemecho "Comparing filter output..." 1292de962bdSlukem$CMP $SEARCHFLT $SEARCHFLT2 > $CMPOUT 1302de962bdSlukem 1312de962bdSlukemif test $? != 0 ; then 1322de962bdSlukem echo "Comparison failed" 1332de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1342de962bdSlukem exit 1 1352de962bdSlukemfi 1362de962bdSlukem 1372de962bdSlukemcat /dev/null > $SEARCHOUT 1382de962bdSlukem 1392de962bdSlukemecho "Using ldapsearch to retrieve all the entries..." 1402de962bdSlukemecho "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT 141*e670fd5cSchristos$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 1422de962bdSlukem "objectClass=*" >> $SEARCHOUT 2>&1 1432de962bdSlukem 1442de962bdSlukemRC=$? 1452de962bdSlukemif test $RC != 0 ; then 1462de962bdSlukem echo "ldapsearch failed ($RC)!" 1472de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1482de962bdSlukem exit $RC 1492de962bdSlukemfi 1502de962bdSlukem 1512de962bdSlukemcase ${RDBMS} in 1522de962bdSlukem # list here the RDBMSes whose mapping allows writes 1532de962bdSlukempgsql|ibmdb2) 1542de962bdSlukem MANAGERDN="cn=Manager,${BASEDN}" 1552de962bdSlukem echo "Testing add..." 1562de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 157*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 1582de962bdSlukemversion: 1 1592de962bdSlukem 1602de962bdSlukem# Adding an organization... 1612de962bdSlukemdn: o=An Org,${BASEDN} 1622de962bdSlukemchangetype: add 1632de962bdSlukemobjectClass: organization 1642de962bdSlukemo: An Org 1652de962bdSlukem 1662de962bdSlukem# Adding an organization with an "auxiliary" objectClass.. 1672de962bdSlukemdn: dc=subnet,${BASEDN} 1682de962bdSlukemchangetype: add 1692de962bdSlukemobjectClass: organization 1702de962bdSlukemobjectClass: dcObject 1712de962bdSlukemo: SubNet 1722de962bdSlukemdc: subnet 1732de962bdSlukem 1742de962bdSlukem# Adding another organization with an "auxiliary" objectClass.. 1752de962bdSlukemdn: dc=subnet2,${BASEDN} 1762de962bdSlukemchangetype: add 1772de962bdSlukemobjectClass: organization 1782de962bdSlukemobjectClass: dcObject 1792de962bdSlukemo: SubNet 2 1802de962bdSlukemdc: subnet2 1812de962bdSlukem 1822de962bdSlukem# Adding a person... 1832de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN} 1842de962bdSlukemchangetype: add 1852de962bdSlukemobjectClass: inetOrgPerson 1862de962bdSlukemcn: Lev Tolstoij 1872de962bdSlukemsn: Tolstoij 1882de962bdSlukemgivenName: Lev 1892de962bdSlukemtelephoneNumber: +39 02 XXXX YYYY 1902de962bdSlukemtelephoneNumber: +39 02 XXXX ZZZZ 1912de962bdSlukemuserPassword: tanja 1922de962bdSlukem 1932de962bdSlukem# Adding a person with an "auxiliary" objectClass... 1942de962bdSlukemdn: cn=Some One,${BASEDN} 1952de962bdSlukemchangetype: add 1962de962bdSlukemobjectClass: inetOrgPerson 1972de962bdSlukemobjectClass: simpleSecurityObject 1982de962bdSlukemcn: Some One 1992de962bdSlukemsn: One 2002de962bdSlukemgivenName: Some 2012de962bdSlukemtelephoneNumber: +1 800 900 1234 2022de962bdSlukemtelephoneNumber: +1 800 900 1235 2032de962bdSlukemuserPassword: someone 2042de962bdSlukem 2052de962bdSlukem# Adding a person in another subtree... 2062de962bdSlukemdn: cn=SubNet User,dc=subnet,${BASEDN} 2072de962bdSlukemchangetype: add 2082de962bdSlukemobjectClass: inetOrgPerson 2092de962bdSlukemcn: SubNet User 2102de962bdSlukemsn: User 2112de962bdSlukemgivenName: SubNet 2122de962bdSlukem 2132de962bdSlukem# Adding a document... 2142de962bdSlukemdn: documentTitle=War and Peace,${BASEDN} 2152de962bdSlukemchangetype: add 2162de962bdSlukemobjectClass: document 2172de962bdSlukemdescription: Historical novel 2182de962bdSlukemdocumentTitle: War and Peace 2192de962bdSlukemdocumentAuthor: cn=Lev Tolstoij,dc=example,dc=com 2202de962bdSlukemdocumentIdentifier: document 3 2212de962bdSlukemEOMODS 2222de962bdSlukem 2232de962bdSlukem RC=$? 2242de962bdSlukem if test $RC != 0 ; then 2252de962bdSlukem echo "ldapmodify failed ($RC)!" 2262de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2272de962bdSlukem exit $RC 2282de962bdSlukem fi 2292de962bdSlukem 2302de962bdSlukem echo "Using ldapsearch to retrieve all the entries..." 2312de962bdSlukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT 232*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 2332de962bdSlukem "objectClass=*" >> $SEARCHOUT 2>&1 2342de962bdSlukem 2352de962bdSlukem RC=$? 2362de962bdSlukem if test $RC != 0 ; then 2372de962bdSlukem echo "ldapsearch failed ($RC)!" 2382de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2392de962bdSlukem exit $RC 2402de962bdSlukem fi 2412de962bdSlukem 2422de962bdSlukem echo "Testing modify..." 2432de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 244*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 2452de962bdSlukemversion: 1 2462de962bdSlukem 2472de962bdSlukem# Deleting all telephone numbers... 2482de962bdSlukemdn: cn=Some One,${BASEDN} 2492de962bdSlukemchangetype: modify 2502de962bdSlukemdelete: telephoneNumber 2512de962bdSlukem- 2522de962bdSlukem 2532de962bdSlukem# Adding a telephone number... 2542de962bdSlukemdn: cn=Mitya Kovalev,${BASEDN} 2552de962bdSlukemchangetype: modify 2562de962bdSlukemadd: telephoneNumber 2572de962bdSlukemtelephoneNumber: +1 800 123 4567 2582de962bdSlukem- 2592de962bdSlukem 2602de962bdSlukem# Deleting a specific telephone number and adding a new one... 2612de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN} 2622de962bdSlukemchangetype: modify 2632de962bdSlukemdelete: telephoneNumber 2642de962bdSlukemtelephoneNumber: +39 02 XXXX YYYY 2652de962bdSlukem- 2662de962bdSlukemadd: telephoneNumber 2672de962bdSlukemtelephoneNumber: +39 333 ZZZ 1234 2682de962bdSlukem- 2692de962bdSlukem 2702de962bdSlukem# Adding an author to a document... 2712de962bdSlukemdn: documentTitle=book1,${BASEDN} 2722de962bdSlukemchangetype: modify 2732de962bdSlukemadd: documentAuthor 2742de962bdSlukemdocumentAuthor: cn=Lev Tolstoij,${BASEDN} 2752de962bdSlukem- 2762de962bdSlukem 2772de962bdSlukem# Adding an author to another document... 2782de962bdSlukemdn: documentTitle=book2,${BASEDN} 2792de962bdSlukemchangetype: modify 2802de962bdSlukemadd: documentAuthor 2812de962bdSlukemdocumentAuthor: cn=Lev Tolstoij,${BASEDN} 2822de962bdSlukem- 2832de962bdSlukem 2842de962bdSlukem# Adding an "auxiliary" objectClass... 2852de962bdSlukemdn: cn=Mitya Kovalev,${BASEDN} 2862de962bdSlukemchangetype: modify 2872de962bdSlukemadd: objectClass 2882de962bdSlukemobjectClass: simpleSecurityObject 2892de962bdSlukem- 2902de962bdSlukem 2912de962bdSlukem# Deleting an "auxiliary" objectClass... 2922de962bdSlukemdn: cn=Some One,${BASEDN} 2932de962bdSlukemchangetype: modify 2942de962bdSlukemdelete: objectClass 2952de962bdSlukemobjectClass: simpleSecurityObject 2962de962bdSlukem- 2972de962bdSlukem 2982de962bdSlukem# Deleting userPasswords 2992de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN} 3002de962bdSlukemchangetype: modify 3012de962bdSlukemdelete: userPassword 3022de962bdSlukem- 3032de962bdSlukemEOMODS 3042de962bdSlukem 3052de962bdSlukem RC=$? 3062de962bdSlukem if test $RC != 0 ; then 3072de962bdSlukem echo "ldapmodify failed ($RC)!" 3082de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3092de962bdSlukem exit $RC 3102de962bdSlukem fi 3112de962bdSlukem 3122de962bdSlukem echo "Using ldapsearch to retrieve all the entries..." 3132de962bdSlukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT 314*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 3152de962bdSlukem "objectClass=*" >> $SEARCHOUT 2>&1 3162de962bdSlukem 3172de962bdSlukem RC=$? 3182de962bdSlukem if test $RC != 0 ; then 3192de962bdSlukem echo "ldapsearch failed ($RC)!" 3202de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3212de962bdSlukem exit $RC 3222de962bdSlukem fi 3232de962bdSlukem 3242de962bdSlukem echo "Testing delete..." 3252de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 326*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 3272de962bdSlukemversion: 1 3282de962bdSlukem 3292de962bdSlukem# Deleting a person... 3302de962bdSlukemdn: cn=Torvlobnor Puzdoy,${BASEDN} 3312de962bdSlukemchangetype: delete 3322de962bdSlukem 3332de962bdSlukem# Deleting a document... 3342de962bdSlukemdn: documentTitle=book1,${BASEDN} 3352de962bdSlukemchangetype: delete 3362de962bdSlukem 3372de962bdSlukem# Deleting an organization with an "auxiliary" objectClass... 3382de962bdSlukemdn: dc=subnet2,${BASEDN} 3392de962bdSlukemchangetype: delete 3402de962bdSlukemEOMODS 3412de962bdSlukem 3422de962bdSlukem RC=$? 3432de962bdSlukem if test $RC != 0 ; then 3442de962bdSlukem echo "ldapmodify failed ($RC)!" 3452de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3462de962bdSlukem exit $RC 3472de962bdSlukem fi 3482de962bdSlukem 3492de962bdSlukem echo "Using ldapsearch to retrieve all the entries..." 3502de962bdSlukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT 351*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 3522de962bdSlukem "objectClass=*" >> $SEARCHOUT 2>&1 3532de962bdSlukem 3542de962bdSlukem RC=$? 3552de962bdSlukem if test $RC != 0 ; then 3562de962bdSlukem echo "ldapsearch failed ($RC)!" 3572de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3582de962bdSlukem exit $RC 3592de962bdSlukem fi 3602de962bdSlukem 3612de962bdSlukem echo "Testing rename..." 3622de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 363*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 3642de962bdSlukemversion: 1 3652de962bdSlukem 3662de962bdSlukem# Renaming an organization... 3672de962bdSlukemdn: o=An Org,${BASEDN} 3682de962bdSlukemchangetype: modrdn 3692de962bdSlukemnewrdn: o=Renamed Org 3702de962bdSlukemdeleteoldrdn: 1 3712de962bdSlukem 3722de962bdSlukem# Moving a person to another subtree... 3732de962bdSlukemdn: cn=Lev Tolstoij,${BASEDN} 3742de962bdSlukemchangetype: modrdn 3752de962bdSlukemnewrdn: cn=Lev Tolstoij 3762de962bdSlukemdeleteoldrdn: 0 3772de962bdSlukemnewsuperior: dc=subnet,${BASEDN} 3782de962bdSlukem 3792de962bdSlukem# Renaming a book... 3802de962bdSlukemdn: documentTitle=book2,${BASEDN} 3812de962bdSlukemchangetype: modrdn 3822de962bdSlukemnewrdn: documentTitle=Renamed Book 3832de962bdSlukemdeleteoldrdn: 1 3842de962bdSlukemEOMODS 3852de962bdSlukem 3862de962bdSlukem RC=$? 3872de962bdSlukem if test $RC != 0 ; then 3882de962bdSlukem echo "ldapmodify failed ($RC)!" 3892de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3902de962bdSlukem exit $RC 3912de962bdSlukem fi 3922de962bdSlukem 3932de962bdSlukem echo "Using ldapsearch to retrieve all the entries..." 3942de962bdSlukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT 395*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 3962de962bdSlukem "objectClass=*" >> $SEARCHOUT 2>&1 3972de962bdSlukem 3982de962bdSlukem RC=$? 3992de962bdSlukem if test $RC != 0 ; then 4002de962bdSlukem echo "ldapsearch failed ($RC)!" 4012de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4022de962bdSlukem exit $RC 4032de962bdSlukem fi 4042de962bdSlukem 4052de962bdSlukem echo "Adding a child to a referral (should fail)..." 4062de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 407*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 4082de962bdSlukemversion: 1 4092de962bdSlukem 4102de962bdSlukemdn: cn=Should Fail,ou=Referral,${BASEDN} 4112de962bdSlukemchangetype: add 4122de962bdSlukemobjectClass: inetOrgPerson 4132de962bdSlukemcn: Should Fail 4142de962bdSlukemsn: Fail 4152de962bdSlukemtelephoneNumber: +39 02 23456789 4162de962bdSlukemEOMODS 4172de962bdSlukem 4182de962bdSlukem RC=$? 4192de962bdSlukem if test $RC = 0 ; then 4202de962bdSlukem echo "ldapmodify should have failed ($RC)!" 4212de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4222de962bdSlukem exit 1 4232de962bdSlukem fi 4242de962bdSlukem 4252de962bdSlukem echo "Modifying a referral (should fail)..." 4262de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 427*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 4282de962bdSlukemversion: 1 4292de962bdSlukem 4302de962bdSlukemdn: ou=Referral,${BASEDN} 4312de962bdSlukemchangetype: modify 4322de962bdSlukemreplace: ref 4332de962bdSlukemref: ldap://localhost:9009/ 4342de962bdSlukem- 4352de962bdSlukemEOMODS 4362de962bdSlukem 4372de962bdSlukem RC=$? 4382de962bdSlukem if test $RC = 0 ; then 4392de962bdSlukem echo "ldapmodify should have failed ($RC)!" 4402de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4412de962bdSlukem exit 1 4422de962bdSlukem fi 4432de962bdSlukem 4442de962bdSlukem echo "Renaming a referral (should fail)..." 4452de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 446*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 4472de962bdSlukemversion: 1 4482de962bdSlukem 4492de962bdSlukemdn: ou=Referral,${BASEDN} 4502de962bdSlukemchangetype: modrdn 4512de962bdSlukemnewrdn: ou=Renamed Referral 4522de962bdSlukemdeleteoldrdn: 1 4532de962bdSlukemEOMODS 4542de962bdSlukem 4552de962bdSlukem RC=$? 4562de962bdSlukem if test $RC = 0 ; then 4572de962bdSlukem echo "ldapmodify should have failed ($RC)!" 4582de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4592de962bdSlukem exit 1 4602de962bdSlukem fi 4612de962bdSlukem 4622de962bdSlukem echo "Deleting a referral (should fail)..." 4632de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 464*e670fd5cSchristos -H $URI1 >> $TESTOUT 2>&1 << EOMODS 4652de962bdSlukemversion: 1 4662de962bdSlukem 4672de962bdSlukemdn: ou=Referral,${BASEDN} 4682de962bdSlukemchangetype: delete 4692de962bdSlukemEOMODS 4702de962bdSlukem 4712de962bdSlukem RC=$? 4722de962bdSlukem if test $RC = 0 ; then 4732de962bdSlukem echo "ldapmodify should have failed ($RC)!" 4742de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4752de962bdSlukem exit 1 4762de962bdSlukem fi 4772de962bdSlukem 4782de962bdSlukem echo "Adding a referral..." 4792de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 480*e670fd5cSchristos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS 4812de962bdSlukemversion: 1 4822de962bdSlukem 4832de962bdSlukemdn: ou=Another Referral,${BASEDN} 4842de962bdSlukemchangetype: add 4852de962bdSlukemobjectClass: referral 4862de962bdSlukemobjectClass: extensibleObject 4872de962bdSlukemou: Another Referral 4882de962bdSlukemref: ldap://localhost:9009/ 4892de962bdSlukemEOMODS 4902de962bdSlukem 4912de962bdSlukem RC=$? 4922de962bdSlukem if test $RC != 0 ; then 4932de962bdSlukem echo "ldapmodify failed ($RC)!" 4942de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4952de962bdSlukem exit $RC 4962de962bdSlukem fi 4972de962bdSlukem 4982de962bdSlukem echo "Modifying a referral with manageDSAit..." 4992de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 500*e670fd5cSchristos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS 5012de962bdSlukemversion: 1 5022de962bdSlukem 5032de962bdSlukemdn: ou=Referral,${BASEDN} 5042de962bdSlukemchangetype: modify 5052de962bdSlukemreplace: ref 5062de962bdSlukemref: ldap://localhost:9009/ 5072de962bdSlukem- 5082de962bdSlukemEOMODS 5092de962bdSlukem 5102de962bdSlukem RC=$? 5112de962bdSlukem if test $RC != 0 ; then 5122de962bdSlukem echo "ldapmodify failed ($RC)!" 5132de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5142de962bdSlukem exit $RC 5152de962bdSlukem fi 5162de962bdSlukem 5172de962bdSlukem echo "Using ldapsearch to retrieve the modified entry..." 5182de962bdSlukem echo "# Using ldapsearch to retrieve the modified entry..." >> $SEARCHOUT 519*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "ou=Referral,$BASEDN" -M \ 5202de962bdSlukem "objectClass=*" '*' ref >> $SEARCHOUT 2>&1 5212de962bdSlukem 5222de962bdSlukem RC=$? 5232de962bdSlukem if test $RC != 0 ; then 5242de962bdSlukem echo "ldapsearch failed ($RC)!" 5252de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5262de962bdSlukem exit $RC 5272de962bdSlukem fi 5282de962bdSlukem 5292de962bdSlukem echo "Renaming a referral with manageDSAit..." 5302de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 531*e670fd5cSchristos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS 5322de962bdSlukemversion: 1 5332de962bdSlukem 5342de962bdSlukemdn: ou=Referral,${BASEDN} 5352de962bdSlukemchangetype: modrdn 5362de962bdSlukemnewrdn: ou=Renamed Referral 5372de962bdSlukemdeleteoldrdn: 1 5382de962bdSlukemEOMODS 5392de962bdSlukem 5402de962bdSlukem RC=$? 5412de962bdSlukem if test $RC != 0 ; then 5422de962bdSlukem echo "ldapmodify failed ($RC)!" 5432de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5442de962bdSlukem exit $RC 5452de962bdSlukem fi 5462de962bdSlukem 5472de962bdSlukem echo "Using ldapsearch to retrieve the renamed entry..." 5482de962bdSlukem echo "# Using ldapsearch to retrieve the renamed entry..." >> $SEARCHOUT 549*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "ou=Renamed Referral,$BASEDN" -M \ 5502de962bdSlukem "objectClass=*" '*' ref >> $SEARCHOUT 2>&1 5512de962bdSlukem 5522de962bdSlukem RC=$? 5532de962bdSlukem if test $RC != 0 ; then 5542de962bdSlukem echo "ldapsearch failed ($RC)!" 5552de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5562de962bdSlukem exit $RC 5572de962bdSlukem fi 5582de962bdSlukem 5592de962bdSlukem echo "Deleting a referral with manageDSAit..." 5602de962bdSlukem $LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \ 561*e670fd5cSchristos -H $URI1 -M >> $TESTOUT 2>&1 << EOMODS 5622de962bdSlukemversion: 1 5632de962bdSlukem 5642de962bdSlukemdn: ou=Renamed Referral,${BASEDN} 5652de962bdSlukemchangetype: delete 5662de962bdSlukemEOMODS 5672de962bdSlukem 5682de962bdSlukem RC=$? 5692de962bdSlukem if test $RC != 0 ; then 5702de962bdSlukem echo "ldapmodify failed ($RC)!" 5712de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5722de962bdSlukem exit $RC 5732de962bdSlukem fi 5742de962bdSlukem 5752de962bdSlukem BINDDN="cn=Mitya Kovalev,${BASEDN}" 5762de962bdSlukem BINDPW="mit" 5772de962bdSlukem NEWPW="newsecret" 5782de962bdSlukem echo "Testing passwd change..." 579*e670fd5cSchristos $LDAPPASSWD -H $URI1 \ 5802de962bdSlukem -D "${BINDDN}" -w ${BINDPW} -s ${NEWPW} \ 5812de962bdSlukem "$BINDDN" >> $TESTOUT 2>&1 5822de962bdSlukem 5832de962bdSlukem RC=$? 5842de962bdSlukem if test $RC != 0 ; then 5852de962bdSlukem echo "ldappasswd failed ($RC)!" 5862de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5872de962bdSlukem exit $RC 5882de962bdSlukem fi 5892de962bdSlukem 5902de962bdSlukem echo -n "Testing bind with new secret... " 591*e670fd5cSchristos $LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $NEWPW 5922de962bdSlukem RC=$? 5932de962bdSlukem if test $RC != 0 ; then 5942de962bdSlukem echo "ldapwhoami failed ($RC)!" 5952de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5962de962bdSlukem exit $RC 5972de962bdSlukem fi 5982de962bdSlukem 5992de962bdSlukem BINDDN="cn=Some One,${BASEDN}" 6002de962bdSlukem BINDPW="someone" 6012de962bdSlukem echo -n "Testing bind with newly added user... " 602*e670fd5cSchristos $LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $BINDPW 6032de962bdSlukem RC=$? 6042de962bdSlukem if test $RC != 0 ; then 6052de962bdSlukem echo "ldapwhoami failed ($RC)!" 6062de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6072de962bdSlukem exit $RC 6082de962bdSlukem fi 6092de962bdSlukem 6102de962bdSlukem echo "Using ldapsearch to retrieve all the entries..." 6112de962bdSlukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT 612*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 6132de962bdSlukem "objectClass=*" >> $SEARCHOUT 2>&1 6142de962bdSlukem 6152de962bdSlukem RC=$? 6162de962bdSlukem if test $RC != 0 ; then 6172de962bdSlukem echo "ldapsearch failed ($RC)!" 6182de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6192de962bdSlukem exit $RC 6202de962bdSlukem fi 6212de962bdSlukem 6222de962bdSlukem echo "Filtering ldapsearch results..." 623ef2f90d3Sadam $LDIFFILTER < $SEARCHOUT > $SEARCHFLT 6242de962bdSlukem echo "Filtering modified ldif..." 625ef2f90d3Sadam $LDIFFILTER < $SQLWRITE > $LDIFFLT 6262de962bdSlukem echo "Comparing filter output..." 6272de962bdSlukem $CMP $SEARCHFLT $LDIFFLT > $CMPOUT 6282de962bdSlukem 6292de962bdSlukem if test $? != 0 ; then 6302de962bdSlukem echo "comparison failed - SQL mods search didn't succeed" 6312de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6322de962bdSlukem exit 1 6332de962bdSlukem fi 6342de962bdSlukem 635*e670fd5cSchristos echo "Waiting 25 seconds for provider to send changes..." 6362de962bdSlukem sleep 25 6372de962bdSlukem 6382de962bdSlukem cat /dev/null > $SEARCHOUT 6392de962bdSlukem 640*e670fd5cSchristos echo "Using ldapsearch to retrieve all the entries from the provider..." 641*e670fd5cSchristos echo "# Using ldapsearch to retrieve all the entries from the provider..." \ 6422de962bdSlukem >> $SEARCHOUT 643*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \ 6442de962bdSlukem -D "$MANAGERDN" -w $PASSWD \ 6452de962bdSlukem "(!(objectClass=referral))" >> $SEARCHOUT 2>&1 6462de962bdSlukem 6472de962bdSlukem RC=$? 6482de962bdSlukem if test $RC != 0 ; then 6492de962bdSlukem echo "ldapsearch failed ($RC)!" 6502de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6512de962bdSlukem exit $RC 6522de962bdSlukem fi 6532de962bdSlukem 6542de962bdSlukem cat /dev/null > $SEARCHOUT2 6552de962bdSlukem 656*e670fd5cSchristos echo "Using ldapsearch to retrieve all the entries from the consumer..." 657*e670fd5cSchristos echo "# Using ldapsearch to retrieve all the entries from the consumer..." \ 6582de962bdSlukem >> $SEARCHOUT2 659*e670fd5cSchristos $LDAPSEARCH -S "" -H $URI2 -b "$BASEDN" \ 6602de962bdSlukem -D "$UPDATEDN" -w $PASSWD \ 6612de962bdSlukem "(objectClass=*)" >> $SEARCHOUT2 2>&1 6622de962bdSlukem 6632de962bdSlukem RC=$? 6642de962bdSlukem if test $RC != 0 ; then 6652de962bdSlukem echo "ldapsearch failed ($RC)!" 6662de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6672de962bdSlukem exit $RC 6682de962bdSlukem fi 6692de962bdSlukem 670*e670fd5cSchristos echo "Filtering ldapsearch results from provider..." 671ef2f90d3Sadam $LDIFFILTER < $SEARCHOUT > $SEARCHFLT 672*e670fd5cSchristos echo "Filtering ldapsearch results from consumer..." 673ef2f90d3Sadam $LDIFFILTER < $SEARCHOUT2 > $SEARCHFLT2 6742de962bdSlukem echo "Comparing filter output..." 6752de962bdSlukem $CMP $SEARCHFLT $SEARCHFLT2 > $CMPOUT 6762de962bdSlukem 6772de962bdSlukem if test $? != 0 ; then 6782de962bdSlukem echo "Comparison failed" 6792de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6802de962bdSlukem exit 1 6812de962bdSlukem fi 6822de962bdSlukem ;; 6832de962bdSlukem 6842de962bdSlukem*) 6852de962bdSlukem echo "apparently ${RDBMS} does not support writes; skipping..." 6862de962bdSlukem ;; 6872de962bdSlukemesac 6882de962bdSlukem 6892de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 6902de962bdSlukem 6912de962bdSlukemecho ">>>>> Test succeeded" 6922de962bdSlukemexit 0 693