Home | History | Annotate | Line # | Download | only in scripts
sql-test900-write revision 1.1.1.10
      1       1.1     lukem #! /bin/sh
      2   1.1.1.4      tron # $OpenLDAP$
      3       1.1     lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4       1.1     lukem ##
      5  1.1.1.10  christos ## Copyright 1998-2024 The OpenLDAP Foundation.
      6       1.1     lukem ## All rights reserved.
      7       1.1     lukem ##
      8       1.1     lukem ## Redistribution and use in source and binary forms, with or without
      9       1.1     lukem ## modification, are permitted only as authorized by the OpenLDAP
     10       1.1     lukem ## Public License.
     11       1.1     lukem ##
     12       1.1     lukem ## A copy of this license is available in the file LICENSE in the
     13       1.1     lukem ## top-level directory of the distribution or, alternatively, at
     14       1.1     lukem ## <http://www.OpenLDAP.org/license.html>.
     15       1.1     lukem 
     16       1.1     lukem echo "running defines.sh"
     17       1.1     lukem . $SRCDIR/scripts/defines.sh
     18       1.1     lukem 
     19       1.1     lukem if test $BACKSQL = "sqlno" ; then 
     20       1.1     lukem 	echo "SQL backend not available, test skipped"
     21       1.1     lukem 	exit 0
     22       1.1     lukem fi 
     23       1.1     lukem 
     24       1.1     lukem if test $RDBMS = "rdbmsno" ; then
     25       1.1     lukem 	echo "SQL test not requested, test skipped"
     26       1.1     lukem 	exit 0
     27       1.1     lukem fi
     28       1.1     lukem 
     29       1.1     lukem if test "${RDBMSWRITE}" != "yes"; then
     30       1.1     lukem 	echo "write test disabled for ${RDBMS}; set SLAPD_USE_SQLWRITE=yes to enable"
     31       1.1     lukem 	exit 0
     32       1.1     lukem fi
     33       1.1     lukem 
     34       1.1     lukem mkdir -p $TESTDIR
     35       1.1     lukem 
     36       1.1     lukem echo "Starting slapd on TCP/IP port $PORT1..."
     37   1.1.1.9  christos . $CONFFILTER $BACKEND < $SQLCONF > $CONF1
     38   1.1.1.9  christos $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
     39       1.1     lukem PID=$!
     40       1.1     lukem if test $WAIT != 0 ; then
     41       1.1     lukem     echo PID $PID
     42       1.1     lukem     read foo
     43       1.1     lukem fi
     44       1.1     lukem KILLPIDS="$PID"
     45       1.1     lukem 
     46       1.1     lukem echo "Testing SQL backend write operations..."
     47       1.1     lukem for i in 0 1 2 3 4 5; do
     48   1.1.1.9  christos 	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
     49       1.1     lukem 		'objectclass=*' > /dev/null 2>&1
     50       1.1     lukem 	RC=$?
     51       1.1     lukem 	if test $RC = 0 ; then
     52       1.1     lukem 		break
     53       1.1     lukem 	fi
     54       1.1     lukem 	echo "Waiting 5 seconds for slapd to start..."
     55       1.1     lukem 	sleep 5
     56       1.1     lukem done
     57       1.1     lukem 
     58       1.1     lukem if test $RC != 0 ; then
     59       1.1     lukem 	echo "ldapsearch failed ($RC)!"
     60       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     61       1.1     lukem 	exit $RC
     62       1.1     lukem fi
     63       1.1     lukem 
     64       1.1     lukem cat /dev/null > $SEARCHOUT
     65       1.1     lukem 
     66       1.1     lukem BASEDN="dc=example,dc=com"
     67       1.1     lukem 
     68       1.1     lukem echo "Using ldapsearch to retrieve all the entries..."
     69       1.1     lukem echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
     70   1.1.1.9  christos $LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
     71       1.1     lukem 	 "objectClass=*" >> $SEARCHOUT 2>&1
     72       1.1     lukem 
     73       1.1     lukem RC=$?
     74       1.1     lukem if test $RC != 0 ; then
     75       1.1     lukem 	echo "ldapsearch failed ($RC)!"
     76       1.1     lukem 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     77       1.1     lukem 	exit $RC
     78       1.1     lukem fi
     79       1.1     lukem 
     80       1.1     lukem case ${RDBMS} in
     81       1.1     lukem 	# list here the RDBMSes whose mapping allows writes
     82       1.1     lukem pgsql|ibmdb2)
     83       1.1     lukem 	MANAGERDN="cn=Manager,${BASEDN}"
     84       1.1     lukem 	echo "Testing add..."
     85       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
     86   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
     87       1.1     lukem version: 1
     88       1.1     lukem 
     89       1.1     lukem # Adding an organization...
     90       1.1     lukem dn: o=An Org,${BASEDN}
     91       1.1     lukem changetype: add
     92       1.1     lukem objectClass: organization
     93       1.1     lukem o: An Org
     94       1.1     lukem 
     95       1.1     lukem # Adding an organization with an "auxiliary" objectClass..
     96       1.1     lukem dn: dc=subnet,${BASEDN}
     97       1.1     lukem changetype: add
     98       1.1     lukem objectClass: organization
     99       1.1     lukem objectClass: dcObject
    100       1.1     lukem o: SubNet
    101       1.1     lukem dc: subnet
    102       1.1     lukem 
    103       1.1     lukem # Adding another organization with an "auxiliary" objectClass..
    104       1.1     lukem dn: dc=subnet2,${BASEDN}
    105       1.1     lukem changetype: add
    106       1.1     lukem objectClass: organization
    107       1.1     lukem objectClass: dcObject
    108       1.1     lukem o: SubNet 2
    109       1.1     lukem dc: subnet2
    110       1.1     lukem 
    111       1.1     lukem # Adding a person...
    112       1.1     lukem dn: cn=Lev Tolstoij,${BASEDN}
    113       1.1     lukem changetype: add
    114       1.1     lukem objectClass: inetOrgPerson
    115       1.1     lukem cn: Lev Tolstoij
    116       1.1     lukem sn: Tolstoij
    117       1.1     lukem givenName: Lev
    118       1.1     lukem telephoneNumber: +39 02 XXXX YYYY
    119       1.1     lukem telephoneNumber: +39 02 XXXX ZZZZ
    120       1.1     lukem userPassword: tanja
    121       1.1     lukem 
    122       1.1     lukem # Adding a person with an "auxiliary" objectClass...
    123       1.1     lukem dn: cn=Some One,${BASEDN}
    124       1.1     lukem changetype: add
    125       1.1     lukem objectClass: inetOrgPerson
    126       1.1     lukem objectClass: simpleSecurityObject
    127       1.1     lukem cn: Some One
    128       1.1     lukem sn: One
    129       1.1     lukem givenName: Some
    130       1.1     lukem telephoneNumber: +1 800 900 1234
    131       1.1     lukem telephoneNumber: +1 800 900 1235
    132       1.1     lukem userPassword: someone
    133       1.1     lukem 
    134       1.1     lukem # Adding a person in another subtree...
    135       1.1     lukem dn: cn=SubNet User,dc=subnet,${BASEDN}
    136       1.1     lukem changetype: add
    137       1.1     lukem objectClass: inetOrgPerson
    138       1.1     lukem cn: SubNet User
    139       1.1     lukem sn: User
    140       1.1     lukem givenName: SubNet
    141       1.1     lukem 
    142       1.1     lukem # Adding a document...
    143       1.1     lukem dn: documentTitle=War and Peace,${BASEDN}
    144       1.1     lukem changetype: add
    145       1.1     lukem objectClass: document
    146       1.1     lukem description: Historical novel
    147       1.1     lukem documentTitle: War and Peace
    148       1.1     lukem documentAuthor: cn=Lev Tolstoij,dc=example,dc=com
    149       1.1     lukem documentIdentifier: document 3
    150       1.1     lukem EOMODS
    151       1.1     lukem 
    152       1.1     lukem 	RC=$?
    153       1.1     lukem 	if test $RC != 0 ; then
    154       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    155       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    156       1.1     lukem 		exit $RC
    157       1.1     lukem 	fi
    158       1.1     lukem 
    159       1.1     lukem 	echo "Using ldapsearch to retrieve all the entries..."
    160       1.1     lukem 	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
    161   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
    162       1.1     lukem 		 "objectClass=*" >> $SEARCHOUT 2>&1
    163       1.1     lukem 
    164       1.1     lukem 	RC=$?
    165       1.1     lukem 	if test $RC != 0 ; then
    166       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    167       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    168       1.1     lukem 		exit $RC
    169       1.1     lukem 	fi
    170       1.1     lukem 
    171       1.1     lukem 	echo "Testing modify..."
    172       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    173   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    174       1.1     lukem version: 1
    175       1.1     lukem 
    176       1.1     lukem # Deleting all telephone numbers...
    177       1.1     lukem dn: cn=Some One,${BASEDN}
    178       1.1     lukem changetype: modify
    179       1.1     lukem delete: telephoneNumber
    180       1.1     lukem -
    181       1.1     lukem 
    182       1.1     lukem # Adding a telephone number...
    183       1.1     lukem dn: cn=Mitya Kovalev,${BASEDN}
    184       1.1     lukem changetype: modify
    185       1.1     lukem add: telephoneNumber
    186       1.1     lukem telephoneNumber: +1 800 123 4567
    187       1.1     lukem -
    188       1.1     lukem 
    189       1.1     lukem # Deleting a specific telephone number and adding a new one...
    190       1.1     lukem dn: cn=Lev Tolstoij,${BASEDN}
    191       1.1     lukem changetype: modify
    192       1.1     lukem delete: telephoneNumber
    193       1.1     lukem telephoneNumber: +39 02 XXXX YYYY
    194       1.1     lukem -
    195       1.1     lukem add: telephoneNumber
    196       1.1     lukem telephoneNumber: +39 333 ZZZ 1234
    197       1.1     lukem -
    198       1.1     lukem 
    199       1.1     lukem # Adding an author to a document...
    200       1.1     lukem dn: documentTitle=book1,${BASEDN}
    201       1.1     lukem changetype: modify
    202       1.1     lukem add: documentAuthor
    203       1.1     lukem documentAuthor: cn=Lev Tolstoij,${BASEDN}
    204       1.1     lukem -
    205       1.1     lukem 
    206       1.1     lukem # Adding an author to another document...
    207       1.1     lukem dn: documentTitle=book2,${BASEDN}
    208       1.1     lukem changetype: modify
    209       1.1     lukem add: documentAuthor
    210       1.1     lukem documentAuthor: cn=Lev Tolstoij,${BASEDN}
    211       1.1     lukem -
    212       1.1     lukem 
    213       1.1     lukem # Adding an "auxiliary" objectClass...
    214       1.1     lukem dn: cn=Mitya Kovalev,${BASEDN}
    215       1.1     lukem changetype: modify
    216       1.1     lukem add: objectClass
    217       1.1     lukem objectClass: simpleSecurityObject
    218       1.1     lukem -
    219       1.1     lukem 
    220       1.1     lukem # Deleting an "auxiliary" objectClass...
    221       1.1     lukem dn: cn=Some One,${BASEDN}
    222       1.1     lukem changetype: modify
    223       1.1     lukem delete: objectClass
    224       1.1     lukem objectClass: simpleSecurityObject
    225       1.1     lukem -
    226       1.1     lukem 
    227       1.1     lukem # Deleting userPasswords
    228       1.1     lukem dn: cn=Lev Tolstoij,${BASEDN}
    229       1.1     lukem changetype: modify
    230       1.1     lukem delete: userPassword
    231       1.1     lukem -
    232       1.1     lukem EOMODS
    233       1.1     lukem 
    234       1.1     lukem 	RC=$?
    235       1.1     lukem 	if test $RC != 0 ; then
    236       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    237       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    238       1.1     lukem 		exit $RC
    239       1.1     lukem 	fi
    240       1.1     lukem 
    241       1.1     lukem 	echo "Using ldapsearch to retrieve all the entries..."
    242       1.1     lukem 	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
    243   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
    244       1.1     lukem 		 "objectClass=*" >> $SEARCHOUT 2>&1
    245       1.1     lukem 
    246       1.1     lukem 	RC=$?
    247       1.1     lukem 	if test $RC != 0 ; then
    248       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    249       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    250       1.1     lukem 		exit $RC
    251       1.1     lukem 	fi
    252       1.1     lukem 
    253       1.1     lukem 	echo "Testing delete..."
    254       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    255   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    256       1.1     lukem version: 1
    257       1.1     lukem 
    258       1.1     lukem # Deleting a person...
    259       1.1     lukem dn: cn=Torvlobnor Puzdoy,${BASEDN}
    260       1.1     lukem changetype: delete
    261       1.1     lukem 
    262       1.1     lukem # Deleting a document...
    263       1.1     lukem dn: documentTitle=book1,${BASEDN}
    264       1.1     lukem changetype: delete
    265       1.1     lukem 
    266       1.1     lukem # Deleting an organization with an "auxiliary" objectClass...
    267       1.1     lukem dn: dc=subnet2,${BASEDN}
    268       1.1     lukem changetype: delete
    269       1.1     lukem EOMODS
    270       1.1     lukem 
    271       1.1     lukem 	RC=$?
    272       1.1     lukem 	if test $RC != 0 ; then
    273       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    274       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    275       1.1     lukem 		exit $RC
    276       1.1     lukem 	fi
    277       1.1     lukem 
    278       1.1     lukem 	echo "Using ldapsearch to retrieve all the entries..."
    279       1.1     lukem 	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
    280   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
    281       1.1     lukem 		 "objectClass=*" >> $SEARCHOUT 2>&1
    282       1.1     lukem 
    283       1.1     lukem 	RC=$?
    284       1.1     lukem 	if test $RC != 0 ; then
    285       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    286       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    287       1.1     lukem 		exit $RC
    288       1.1     lukem 	fi
    289       1.1     lukem 
    290       1.1     lukem 	echo "Testing rename..."
    291       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    292   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    293       1.1     lukem version: 1
    294       1.1     lukem 
    295       1.1     lukem # Renaming an organization...
    296       1.1     lukem dn: o=An Org,${BASEDN}
    297       1.1     lukem changetype: modrdn
    298       1.1     lukem newrdn: o=Renamed Org
    299       1.1     lukem deleteoldrdn: 1
    300       1.1     lukem 
    301       1.1     lukem # Moving a person to another subtree...
    302       1.1     lukem dn: cn=Lev Tolstoij,${BASEDN}
    303       1.1     lukem changetype: modrdn
    304       1.1     lukem newrdn: cn=Lev Tolstoij
    305       1.1     lukem deleteoldrdn: 0
    306       1.1     lukem newsuperior: dc=subnet,${BASEDN}
    307       1.1     lukem 
    308       1.1     lukem # Renaming a book...
    309       1.1     lukem dn: documentTitle=book2,${BASEDN}
    310       1.1     lukem changetype: modrdn
    311       1.1     lukem newrdn: documentTitle=Renamed Book
    312       1.1     lukem deleteoldrdn: 1
    313       1.1     lukem EOMODS
    314       1.1     lukem 
    315       1.1     lukem 	RC=$?
    316       1.1     lukem 	if test $RC != 0 ; then
    317       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    318       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    319       1.1     lukem 		exit $RC
    320       1.1     lukem 	fi
    321       1.1     lukem 
    322       1.1     lukem 	echo "Using ldapsearch to retrieve all the entries..."
    323       1.1     lukem 	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
    324   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
    325       1.1     lukem 		 "objectClass=*" >> $SEARCHOUT 2>&1
    326       1.1     lukem 
    327       1.1     lukem 	RC=$?
    328       1.1     lukem 	if test $RC != 0 ; then
    329       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    330       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    331       1.1     lukem 		exit $RC
    332       1.1     lukem 	fi
    333       1.1     lukem 
    334       1.1     lukem 	echo "Adding a child to a referral (should fail)..."
    335       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    336   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    337       1.1     lukem version: 1
    338       1.1     lukem 
    339       1.1     lukem dn: cn=Should Fail,ou=Referral,${BASEDN}
    340       1.1     lukem changetype: add
    341       1.1     lukem objectClass: inetOrgPerson
    342       1.1     lukem cn: Should Fail
    343       1.1     lukem sn: Fail
    344       1.1     lukem telephoneNumber: +39 02 23456789
    345       1.1     lukem EOMODS
    346       1.1     lukem 
    347       1.1     lukem 	RC=$?
    348       1.1     lukem 	if test $RC = 0 ; then
    349       1.1     lukem 		echo "ldapmodify should have failed ($RC)!"
    350       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    351       1.1     lukem 		exit 1
    352       1.1     lukem 	fi
    353       1.1     lukem 
    354       1.1     lukem 	echo "Modifying a referral (should fail)..."
    355       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    356   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    357       1.1     lukem version: 1
    358       1.1     lukem 
    359       1.1     lukem dn: ou=Referral,${BASEDN}
    360       1.1     lukem changetype: modify
    361       1.1     lukem replace: ref
    362       1.1     lukem ref: ldap://localhost:9009/
    363       1.1     lukem -
    364       1.1     lukem EOMODS
    365       1.1     lukem 
    366       1.1     lukem 	RC=$?
    367       1.1     lukem 	if test $RC = 0 ; then
    368       1.1     lukem 		echo "ldapmodify should have failed ($RC)!"
    369       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    370       1.1     lukem 		exit 1
    371       1.1     lukem 	fi
    372       1.1     lukem 
    373       1.1     lukem 	echo "Renaming a referral (should fail)..."
    374       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    375   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    376       1.1     lukem version: 1
    377       1.1     lukem 
    378       1.1     lukem dn: ou=Referral,${BASEDN}
    379       1.1     lukem changetype: modrdn
    380       1.1     lukem newrdn: ou=Renamed Referral
    381       1.1     lukem deleteoldrdn: 1
    382       1.1     lukem EOMODS
    383       1.1     lukem 
    384       1.1     lukem 	RC=$?
    385       1.1     lukem 	if test $RC = 0 ; then
    386       1.1     lukem 		echo "ldapmodify should have failed ($RC)!"
    387       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    388       1.1     lukem 		exit 1
    389       1.1     lukem 	fi
    390       1.1     lukem 
    391       1.1     lukem 	echo "Deleting a referral (should fail)..."
    392       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    393   1.1.1.9  christos 		-H $URI1 >> $TESTOUT 2>&1 << EOMODS
    394       1.1     lukem version: 1
    395       1.1     lukem 
    396       1.1     lukem dn: ou=Referral,${BASEDN}
    397       1.1     lukem changetype: delete
    398       1.1     lukem EOMODS
    399       1.1     lukem 
    400       1.1     lukem 	RC=$?
    401       1.1     lukem 	if test $RC = 0 ; then
    402       1.1     lukem 		echo "ldapmodify should have failed ($RC)!"
    403       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    404       1.1     lukem 		exit 1
    405       1.1     lukem 	fi
    406       1.1     lukem 
    407       1.1     lukem 	echo "Adding a referral..."
    408       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    409   1.1.1.9  christos 		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
    410       1.1     lukem version: 1
    411       1.1     lukem 
    412       1.1     lukem dn: ou=Another Referral,${BASEDN}
    413       1.1     lukem changetype: add
    414       1.1     lukem objectClass: referral
    415       1.1     lukem objectClass: extensibleObject
    416       1.1     lukem ou: Another Referral
    417       1.1     lukem ref: ldap://localhost:9009/
    418       1.1     lukem EOMODS
    419       1.1     lukem 
    420       1.1     lukem 	RC=$?
    421       1.1     lukem 	if test $RC != 0 ; then
    422       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    423       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    424       1.1     lukem 		exit $RC
    425       1.1     lukem 	fi
    426       1.1     lukem 
    427       1.1     lukem 	echo "Modifying a referral with manageDSAit..."
    428       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    429   1.1.1.9  christos 		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
    430       1.1     lukem version: 1
    431       1.1     lukem 
    432       1.1     lukem dn: ou=Referral,${BASEDN}
    433       1.1     lukem changetype: modify
    434       1.1     lukem replace: ref
    435       1.1     lukem ref: ldap://localhost:9009/
    436       1.1     lukem -
    437       1.1     lukem EOMODS
    438       1.1     lukem 
    439       1.1     lukem 	RC=$?
    440       1.1     lukem 	if test $RC != 0 ; then
    441       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    442       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    443       1.1     lukem 		exit $RC
    444       1.1     lukem 	fi
    445       1.1     lukem 
    446       1.1     lukem 	echo "Using ldapsearch to retrieve the modified entry..."
    447       1.1     lukem 	echo "# Using ldapsearch to retrieve the modified entry..." >> $SEARCHOUT
    448   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "ou=Referral,$BASEDN" -M \
    449       1.1     lukem 		 "objectClass=*" '*' ref >> $SEARCHOUT 2>&1
    450       1.1     lukem 
    451       1.1     lukem 	RC=$?
    452       1.1     lukem 	if test $RC != 0 ; then
    453       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    454       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    455       1.1     lukem 		exit $RC
    456       1.1     lukem 	fi
    457       1.1     lukem 
    458       1.1     lukem 	echo "Renaming a referral with manageDSAit..."
    459       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    460   1.1.1.9  christos 		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
    461       1.1     lukem version: 1
    462       1.1     lukem 
    463       1.1     lukem dn: ou=Referral,${BASEDN}
    464       1.1     lukem changetype: modrdn
    465       1.1     lukem newrdn: ou=Renamed Referral
    466       1.1     lukem deleteoldrdn: 1
    467       1.1     lukem EOMODS
    468       1.1     lukem 
    469       1.1     lukem 	RC=$?
    470       1.1     lukem 	if test $RC != 0 ; then
    471       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    472       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    473       1.1     lukem 		exit $RC
    474       1.1     lukem 	fi
    475       1.1     lukem 
    476       1.1     lukem 	echo "Using ldapsearch to retrieve the renamed entry..."
    477       1.1     lukem 	echo "# Using ldapsearch to retrieve the renamed entry..." >> $SEARCHOUT
    478   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "ou=Renamed Referral,$BASEDN" -M \
    479       1.1     lukem 		 "objectClass=*" '*' ref >> $SEARCHOUT 2>&1
    480       1.1     lukem 
    481       1.1     lukem 	RC=$?
    482       1.1     lukem 	if test $RC != 0 ; then
    483       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    484       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    485       1.1     lukem 		exit $RC
    486       1.1     lukem 	fi
    487       1.1     lukem 
    488       1.1     lukem 	echo "Deleting a referral with manageDSAit..."
    489       1.1     lukem 	$LDAPMODIFY -v -c -D "$MANAGERDN" -w $PASSWD \
    490   1.1.1.9  christos 		-H $URI1 -M >> $TESTOUT 2>&1 << EOMODS
    491       1.1     lukem version: 1
    492       1.1     lukem 
    493       1.1     lukem dn: ou=Renamed Referral,${BASEDN}
    494       1.1     lukem changetype: delete
    495       1.1     lukem EOMODS
    496       1.1     lukem 
    497       1.1     lukem 	RC=$?
    498       1.1     lukem 	if test $RC != 0 ; then
    499       1.1     lukem 		echo "ldapmodify failed ($RC)!"
    500       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    501       1.1     lukem 		exit $RC
    502       1.1     lukem 	fi
    503       1.1     lukem 
    504       1.1     lukem 	BINDDN="cn=Mitya Kovalev,${BASEDN}"
    505       1.1     lukem 	BINDPW="mit"
    506       1.1     lukem 	NEWPW="newsecret"
    507       1.1     lukem 	echo "Testing passwd change..."
    508   1.1.1.9  christos 	$LDAPPASSWD -H $URI1 \
    509       1.1     lukem 		-D "${BINDDN}" -w ${BINDPW} -s ${NEWPW} \
    510       1.1     lukem 		"$BINDDN" >> $TESTOUT 2>&1
    511       1.1     lukem 
    512       1.1     lukem 	RC=$?
    513       1.1     lukem 	if test $RC != 0 ; then
    514       1.1     lukem 		echo "ldappasswd failed ($RC)!"
    515       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    516       1.1     lukem 		exit $RC
    517       1.1     lukem 	fi
    518       1.1     lukem 
    519       1.1     lukem 	echo -n "Testing bind with new secret... "
    520   1.1.1.9  christos 	$LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $NEWPW
    521       1.1     lukem 	RC=$?
    522       1.1     lukem 	if test $RC != 0 ; then
    523       1.1     lukem 		echo "ldapwhoami failed ($RC)!"
    524       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    525       1.1     lukem 		exit $RC
    526       1.1     lukem 	fi
    527       1.1     lukem 
    528       1.1     lukem 	BINDDN="cn=Some One,${BASEDN}"
    529       1.1     lukem 	BINDPW="someone"
    530       1.1     lukem 	echo -n "Testing bind with newly added user... "
    531   1.1.1.9  christos 	$LDAPWHOAMI -H $URI1 -D "$BINDDN" -w $BINDPW
    532       1.1     lukem 	RC=$?
    533       1.1     lukem 	if test $RC != 0 ; then
    534       1.1     lukem 		echo "ldapwhoami failed ($RC)!"
    535       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    536       1.1     lukem 		exit $RC
    537       1.1     lukem 	fi
    538       1.1     lukem 
    539       1.1     lukem 	echo "Using ldapsearch to retrieve all the entries..."
    540       1.1     lukem 	echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
    541   1.1.1.9  christos 	$LDAPSEARCH -S "" -H $URI1 -b "$BASEDN" \
    542       1.1     lukem 		 "objectClass=*" >> $SEARCHOUT 2>&1
    543       1.1     lukem 
    544       1.1     lukem 	RC=$?
    545       1.1     lukem 	if test $RC != 0 ; then
    546       1.1     lukem 		echo "ldapsearch failed ($RC)!"
    547       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    548       1.1     lukem 		exit $RC
    549       1.1     lukem 	fi
    550       1.1     lukem 
    551       1.1     lukem 	echo "Filtering ldapsearch results..."
    552   1.1.1.3      adam 	$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
    553       1.1     lukem 	echo "Filtering modified ldif..."
    554   1.1.1.3      adam 	$LDIFFILTER < $SQLWRITE > $LDIFFLT
    555       1.1     lukem 	echo "Comparing filter output..."
    556       1.1     lukem 	$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
    557       1.1     lukem 
    558       1.1     lukem 	if test $? != 0 ; then
    559       1.1     lukem 		echo "comparison failed - SQL mods search didn't succeed"
    560       1.1     lukem 		test $KILLSERVERS != no && kill -HUP $KILLPIDS
    561       1.1     lukem 		exit 1
    562       1.1     lukem 	fi
    563       1.1     lukem 	;;
    564       1.1     lukem 
    565       1.1     lukem *)
    566       1.1     lukem 	echo "apparently ${RDBMS} does not support writes; skipping..."
    567       1.1     lukem 	;;
    568       1.1     lukem esac
    569       1.1     lukem 
    570       1.1     lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
    571       1.1     lukem 
    572       1.1     lukem echo ">>>>> Test succeeded"
    573       1.1     lukem exit 0
    574