12de962bdSlukem#! /bin/sh 22de962bdSlukem## This work is part of OpenLDAP Software <http://www.openldap.org/>. 32de962bdSlukem## 4*e670fd5cSchristos## Copyright 1998-2021 The OpenLDAP Foundation. 52de962bdSlukem## All rights reserved. 62de962bdSlukem## 72de962bdSlukem## Redistribution and use in source and binary forms, with or without 82de962bdSlukem## modification, are permitted only as authorized by the OpenLDAP 92de962bdSlukem## Public License. 102de962bdSlukem## 112de962bdSlukem## A copy of this license is available in the file LICENSE in the 122de962bdSlukem## top-level directory of the distribution or, alternatively, at 132de962bdSlukem## <http://www.OpenLDAP.org/license.html>. 142de962bdSlukem 152de962bdSlukemecho "running defines.sh" 162de962bdSlukem. $SRCDIR/scripts/defines.sh 172de962bdSlukem 182de962bdSlukemif test $DYNLIST = "dynlistno" ; then 192de962bdSlukem echo "dynlist overlay not available, test skipped" 202de962bdSlukem exit 0 212de962bdSlukemfi 222de962bdSlukem 23ef2f90d3Sadamif test $BACKEND = ldif ; then 24ef2f90d3Sadam # dynlist+ldif fails because back-ldif lacks bi_op_compare() 25ef2f90d3Sadam echo "$BACKEND backend unsuitable for dynlist overlay, test skipped" 26ef2f90d3Sadam exit 0 27ef2f90d3Sadamfi 28ef2f90d3Sadam 292de962bdSlukemmkdir -p $TESTDIR $DBDIR1 302de962bdSlukem 312de962bdSlukem$SLAPPASSWD -g -n >$CONFIGPWF 322de962bdSlukemecho "rootpw `$SLAPPASSWD -T $CONFIGPWF`" >$TESTDIR/configpw.conf 332de962bdSlukem 34d11b170bStronDBIX=2 35d11b170bStron 362de962bdSlukemecho "Running slapadd to build slapd database..." 37*e670fd5cSchristos. $CONFFILTER $BACKEND < $DYNLISTCONF > $CONF1 38*e670fd5cSchristos$SLAPADD -f $CONF1 -l $LDIFORDERED 392de962bdSlukemRC=$? 402de962bdSlukemif test $RC != 0 ; then 412de962bdSlukem echo "slapadd failed ($RC)!" 422de962bdSlukem exit $RC 432de962bdSlukemfi 442de962bdSlukem 452de962bdSlukem 462de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..." 47*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 & 482de962bdSlukemPID=$! 492de962bdSlukemif test $WAIT != 0 ; then 502de962bdSlukem echo PID $PID 512de962bdSlukem read foo 522de962bdSlukemfi 532de962bdSlukemKILLPIDS="$PID" 542de962bdSlukem 552de962bdSlukemsleep 1 562de962bdSlukem 572de962bdSlukemecho "Testing slapd searching..." 582de962bdSlukemfor i in 0 1 2 3 4 5; do 59*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 602de962bdSlukem '(objectclass=*)' > /dev/null 2>&1 612de962bdSlukem RC=$? 622de962bdSlukem if test $RC = 0 ; then 632de962bdSlukem break 642de962bdSlukem fi 652de962bdSlukem echo "Waiting 5 seconds for slapd to start..." 662de962bdSlukem sleep 5 672de962bdSlukemdone 682de962bdSlukem 692de962bdSlukemif test $RC != 0 ; then 702de962bdSlukem echo "ldapsearch failed ($RC)!" 712de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 722de962bdSlukem exit $RC 732de962bdSlukemfi 742de962bdSlukem 752de962bdSlukemcat /dev/null > $SEARCHOUT 762de962bdSlukem 772de962bdSlukemLISTDN="ou=Dynamic Lists,$BASEDN" 782de962bdSlukemecho "Adding a dynamic list..." 79*e670fd5cSchristos$LDAPADD -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 802de962bdSlukem > $TESTOUT 2>&1 << EOMODS 812de962bdSlukemdn: $LISTDN 822de962bdSlukemobjectClass: organizationalUnit 832de962bdSlukemou: Dynamic Lists 842de962bdSlukem 852de962bdSlukemdn: cn=Dynamic List,$LISTDN 862de962bdSlukemobjectClass: groupOfURLs 872de962bdSlukemcn: Dynamic List 882de962bdSlukemmemberURL: ldap:///ou=People,${BASEDN}?cn,mail?sub?(objectClass=person) 892de962bdSlukemEOMODS 902de962bdSlukem 912de962bdSlukemecho "Testing list search of all attrs..." 922de962bdSlukemecho "# Testing list search of all attrs..." >> $SEARCHOUT 93*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 942de962bdSlukem '(cn=Dynamic List)' '*' \ 952de962bdSlukem >> $SEARCHOUT 2>&1 962de962bdSlukemRC=$? 972de962bdSlukemif test $RC != 0 ; then 982de962bdSlukem echo "ldapsearch failed ($RC)!" 992de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1002de962bdSlukem exit $RC 1012de962bdSlukemfi 1022de962bdSlukem 1032de962bdSlukemecho "Testing list search of a listed attr..." 1042de962bdSlukemecho "# Testing list search of a listed attr..." >> $SEARCHOUT 105*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 1062de962bdSlukem '(cn=Dynamic List)' mail \ 1072de962bdSlukem >> $SEARCHOUT 2>&1 1082de962bdSlukemRC=$? 1092de962bdSlukemif test $RC != 0 ; then 1102de962bdSlukem echo "ldapsearch failed ($RC)!" 1112de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1122de962bdSlukem exit $RC 1132de962bdSlukemfi 1142de962bdSlukem 1152de962bdSlukemecho "Testing list search of a non-listed attr..." 1162de962bdSlukemecho "# Testing list search of a non-listed attr..." >> $SEARCHOUT 117*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 1182de962bdSlukem '(cn=Dynamic List)' objectClass \ 1192de962bdSlukem >> $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 1272de962bdSlukemecho "Testing list search with (critical) manageDSAit..." 1282de962bdSlukemecho "# Testing list search with (critical) manageDSAit..." >> $SEARCHOUT 129*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 -MM \ 1302de962bdSlukem '(cn=Dynamic List)' '*' \ 1312de962bdSlukem >> $SEARCHOUT 2>&1 1322de962bdSlukemRC=$? 1332de962bdSlukemif test $RC != 0 ; then 1342de962bdSlukem echo "ldapsearch failed ($RC)!" 1352de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1362de962bdSlukem exit $RC 1372de962bdSlukemfi 1382de962bdSlukem 139*e670fd5cSchristosecho "Testing filtered search with all attrs..." 140*e670fd5cSchristosecho "# Testing filtered search with all attrs..." >> $SEARCHOUT 141*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 142*e670fd5cSchristos '(mail=jdoe@woof.net)' '*' \ 143*e670fd5cSchristos >> $SEARCHOUT 2>&1 144*e670fd5cSchristosRC=$? 145*e670fd5cSchristosif test $RC != 0 ; then 146*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 147*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 148*e670fd5cSchristos exit $RC 149*e670fd5cSchristosfi 150*e670fd5cSchristos 151*e670fd5cSchristosecho "Testing filtered search of a listed attr..." 152*e670fd5cSchristosecho "# Testing filtered search of a listed attr..." >> $SEARCHOUT 153*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 154*e670fd5cSchristos '(mail=jdoe@woof.net)' mail \ 155*e670fd5cSchristos >> $SEARCHOUT 2>&1 156*e670fd5cSchristosRC=$? 157*e670fd5cSchristosif test $RC != 0 ; then 158*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 159*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 160*e670fd5cSchristos exit $RC 161*e670fd5cSchristosfi 162*e670fd5cSchristos 163*e670fd5cSchristosecho "Testing filtered search of a non-listed attr..." 164*e670fd5cSchristosecho "# Testing filtered search of a non-listed attr..." >> $SEARCHOUT 165*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 166*e670fd5cSchristos '(mail=jdoe@woof.net)' objectClass \ 167*e670fd5cSchristos >> $SEARCHOUT 2>&1 168*e670fd5cSchristosRC=$? 169*e670fd5cSchristosif test $RC != 0 ; then 170*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 171*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 172*e670fd5cSchristos exit $RC 173*e670fd5cSchristosfi 174*e670fd5cSchristos 175*e670fd5cSchristosecho "Testing filtered search of a non-present attr..." 176*e670fd5cSchristosecho "# Testing filtered search of a non-present attr..." >> $SEARCHOUT 177*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 178*e670fd5cSchristos '(mail=nobody@nowhere)' objectClass \ 179*e670fd5cSchristos >> $SEARCHOUT 2>&1 180*e670fd5cSchristosRC=$? 181*e670fd5cSchristosif test $RC != 0 ; then 182*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 183*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 184*e670fd5cSchristos exit $RC 185*e670fd5cSchristosfi 186*e670fd5cSchristos 1872de962bdSlukemecho "Testing list compare..." 1882de962bdSlukemecho "# Testing list compare..." >> $SEARCHOUT 189*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 1902de962bdSlukem "cn=Dynamic List,$LISTDN" "cn:Bjorn Jensen" \ 1912de962bdSlukem >> $SEARCHOUT 2>&1 1922de962bdSlukemRC=$? 1932de962bdSlukemcase $RC in 1942de962bdSlukem5) 1952de962bdSlukem echo "ldapcompare returned FALSE ($RC)!" 1962de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 1972de962bdSlukem exit $RC 1982de962bdSlukem ;; 1992de962bdSlukem6) 2002de962bdSlukem echo "ldapcompare returned TRUE ($RC)" 2012de962bdSlukem ;; 2022de962bdSlukem0) 2032de962bdSlukem echo "ldapcompare returned success ($RC)!" 2042de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2052de962bdSlukem exit -1 2062de962bdSlukem ;; 2072de962bdSlukem*) 2082de962bdSlukem echo "ldapcompare failed ($RC)!" 2092de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2102de962bdSlukem exit $RC 2112de962bdSlukem ;; 2122de962bdSlukemesac 2132de962bdSlukemecho "" >> $SEARCHOUT 2142de962bdSlukem 2152de962bdSlukemecho "Testing list compare (should return FALSE)..." 2162de962bdSlukemecho "# Testing list compare (should return FALSE)..." >> $SEARCHOUT 217*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 2182de962bdSlukem "cn=Dynamic List,$LISTDN" "cn:FALSE" \ 2192de962bdSlukem >> $SEARCHOUT 2>&1 2202de962bdSlukemRC=$? 2212de962bdSlukemcase $RC in 2222de962bdSlukem5) 2232de962bdSlukem echo "ldapcompare returned FALSE ($RC)" 2242de962bdSlukem ;; 2252de962bdSlukem6) 2262de962bdSlukem echo "ldapcompare returned TRUE ($RC)!" 2272de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2282de962bdSlukem exit $RC 2292de962bdSlukem ;; 2302de962bdSlukem0) 2312de962bdSlukem echo "ldapcompare returned success ($RC)!" 2322de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2332de962bdSlukem exit -1 2342de962bdSlukem ;; 2352de962bdSlukem*) 2362de962bdSlukem echo "ldapcompare failed ($RC)!" 2372de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2382de962bdSlukem exit $RC 2392de962bdSlukem ;; 2402de962bdSlukemesac 2412de962bdSlukemecho "" >> $SEARCHOUT 2422de962bdSlukem 2432de962bdSlukemecho "Testing list compare (should return UNDEFINED)..." 2442de962bdSlukemecho "# Testing list compare (should return UNDEFINED)..." >> $SEARCHOUT 245*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 2462de962bdSlukem "cn=Dynamic List,$LISTDN" "dc:UNDEFINED" \ 2472de962bdSlukem >> $SEARCHOUT 2>&1 2482de962bdSlukemRC=$? 2492de962bdSlukemcase $RC in 2502de962bdSlukem5) 2512de962bdSlukem echo "ldapcompare returned FALSE ($RC)!" 2522de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2532de962bdSlukem exit $RC 2542de962bdSlukem ;; 2552de962bdSlukem6) 2562de962bdSlukem echo "ldapcompare returned TRUE ($RC)!" 2572de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2582de962bdSlukem exit $RC 2592de962bdSlukem ;; 2602de962bdSlukem16|32) 2612de962bdSlukem echo "ldapcompare returned UNDEFINED ($RC)" 2622de962bdSlukem ;; 2632de962bdSlukem0) 2642de962bdSlukem echo "ldapcompare returned success ($RC)!" 2652de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2662de962bdSlukem exit -1 2672de962bdSlukem ;; 2682de962bdSlukem*) 2692de962bdSlukem echo "ldapcompare failed ($RC)" 2702de962bdSlukem ;; 2712de962bdSlukemesac 2722de962bdSlukemecho "" >> $SEARCHOUT 2732de962bdSlukem 2742de962bdSlukemecho "Testing list compare with manageDSAit..." 2752de962bdSlukemecho "# Testing list compare with manageDSAit..." >> $SEARCHOUT 276*e670fd5cSchristos$LDAPCOMPARE -H $URI1 -MM \ 2772de962bdSlukem "cn=Dynamic List,$LISTDN" "cn:Bjorn Jensen" \ 2782de962bdSlukem >> $SEARCHOUT 2>&1 2792de962bdSlukemRC=$? 2802de962bdSlukemcase $RC in 2812de962bdSlukem5) 2822de962bdSlukem echo "ldapcompare returned FALSE ($RC)" 2832de962bdSlukem ;; 2842de962bdSlukem6) 2852de962bdSlukem echo "ldapcompare returned TRUE ($RC)!" 2862de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2872de962bdSlukem exit $RC 2882de962bdSlukem ;; 2892de962bdSlukem0) 2902de962bdSlukem echo "ldapcompare returned success ($RC)!" 2912de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2922de962bdSlukem exit -1 2932de962bdSlukem ;; 2942de962bdSlukem*) 2952de962bdSlukem echo "ldapcompare failed ($RC)!" 2962de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 2972de962bdSlukem exit $RC 2982de962bdSlukem ;; 2992de962bdSlukemesac 3002de962bdSlukemecho "" >> $SEARCHOUT 3012de962bdSlukem 3022de962bdSlukemecho "Reconfiguring slapd..." 303*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 3042de962bdSlukem $TESTOUT 2>&1 << EOMODS 3052de962bdSlukemversion: 1 306d11b170bStrondn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config 3072de962bdSlukemchangetype: modify 308*e670fd5cSchristosdelete: olcDynListAttrSet 309*e670fd5cSchristosolcDynListAttrSet: {0} 3102de962bdSlukem- 311*e670fd5cSchristosadd: olcDynListAttrSet 312*e670fd5cSchristosolcDynListAttrSet: groupOfURLs memberURL sn:cn mail 3134e6df137Slukem- 3144e6df137SlukemEOMODS 3154e6df137Slukem 316*e670fd5cSchristosRC=$? 317*e670fd5cSchristosif test $RC != 0 ; then 318*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 319*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 320*e670fd5cSchristos exit $RC 321*e670fd5cSchristosfi 322*e670fd5cSchristos 3234e6df137Slukemecho "==========================================================" >> $LOG1 3244e6df137Slukem 3254e6df137Slukemecho "Testing attribute mapping" 3264e6df137Slukem 3274e6df137Slukemecho "Testing list search of all (mapped) attrs..." 3284e6df137Slukemecho "# Testing list search of all (mapped) attrs..." >> $SEARCHOUT 329*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 3304e6df137Slukem '(cn=Dynamic List)' '*' \ 3314e6df137Slukem >> $SEARCHOUT 2>&1 3324e6df137SlukemRC=$? 3334e6df137Slukemif test $RC != 0 ; then 3344e6df137Slukem echo "ldapsearch failed ($RC)!" 3354e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3364e6df137Slukem exit $RC 3374e6df137Slukemfi 3384e6df137Slukem 3394e6df137Slukemecho "Testing list search of a (mapped) listed attr..." 3404e6df137Slukemecho "# Testing list search of a (mapped) listed attr..." >> $SEARCHOUT 341*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 3424e6df137Slukem '(cn=Dynamic List)' sn \ 3434e6df137Slukem >> $SEARCHOUT 2>&1 3444e6df137SlukemRC=$? 3454e6df137Slukemif test $RC != 0 ; then 3464e6df137Slukem echo "ldapsearch failed ($RC)!" 3474e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3484e6df137Slukem exit $RC 3494e6df137Slukemfi 3504e6df137Slukem 3514e6df137Slukemecho "Testing list search of a (n unmapped) listed attr..." 3524e6df137Slukemecho "# Testing list search of a (n unmapped) listed attr..." >> $SEARCHOUT 353*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 3544e6df137Slukem '(cn=Dynamic List)' mail \ 3554e6df137Slukem >> $SEARCHOUT 2>&1 3564e6df137SlukemRC=$? 3574e6df137Slukemif test $RC != 0 ; then 3584e6df137Slukem echo "ldapsearch failed ($RC)!" 3594e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3604e6df137Slukem exit $RC 3614e6df137Slukemfi 3624e6df137Slukem 3634e6df137Slukemecho "Testing list compare (mapped attrs) ..." 3644e6df137Slukemecho "# Testing list compare (mapped attrs) ..." >> $SEARCHOUT 365*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 3664e6df137Slukem "cn=Dynamic List,$LISTDN" "sn:Bjorn Jensen" \ 3674e6df137Slukem >> $SEARCHOUT 2>&1 3684e6df137SlukemRC=$? 3694e6df137Slukemcase $RC in 3704e6df137Slukem5) 3714e6df137Slukem echo "ldapcompare returned FALSE ($RC)!" 3724e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3734e6df137Slukem exit $RC 3744e6df137Slukem ;; 3754e6df137Slukem6) 3764e6df137Slukem echo "ldapcompare returned TRUE ($RC)" 3774e6df137Slukem ;; 3784e6df137Slukem0) 3794e6df137Slukem echo "ldapcompare returned success ($RC)!" 3804e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3814e6df137Slukem exit -1 3824e6df137Slukem ;; 3834e6df137Slukem*) 3844e6df137Slukem echo "ldapcompare failed ($RC)!" 3854e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 3864e6df137Slukem exit $RC 3874e6df137Slukem ;; 3884e6df137Slukemesac 3894e6df137Slukemecho "" >> $SEARCHOUT 3904e6df137Slukem 3914e6df137Slukemecho "Testing list compare (mapped attrs; should return FALSE)..." 3924e6df137Slukemecho "# Testing list compare (mapped attrs; should return FALSE)..." >> $SEARCHOUT 393*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 3944e6df137Slukem "cn=Dynamic List,$LISTDN" "sn:FALSE" \ 3954e6df137Slukem >> $SEARCHOUT 2>&1 3964e6df137SlukemRC=$? 3974e6df137Slukemcase $RC in 3984e6df137Slukem5) 3994e6df137Slukem echo "ldapcompare returned FALSE ($RC)" 4004e6df137Slukem ;; 4014e6df137Slukem6) 4024e6df137Slukem echo "ldapcompare returned TRUE ($RC)!" 4034e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4044e6df137Slukem exit $RC 4054e6df137Slukem ;; 4064e6df137Slukem0) 4074e6df137Slukem echo "ldapcompare returned success ($RC)!" 4084e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4094e6df137Slukem exit -1 4104e6df137Slukem ;; 4114e6df137Slukem*) 4124e6df137Slukem echo "ldapcompare failed ($RC)!" 4134e6df137Slukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4144e6df137Slukem exit $RC 4154e6df137Slukem ;; 4164e6df137Slukemesac 4174e6df137Slukemecho "" >> $SEARCHOUT 4184e6df137Slukem 4194e6df137Slukemecho "Reconfiguring slapd..." 420*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 4214e6df137Slukem $TESTOUT 2>&1 << EOMODS 4224e6df137Slukemversion: 1 423d11b170bStrondn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config 4244e6df137Slukemchangetype: modify 425*e670fd5cSchristosdelete: olcDynListAttrSet 426*e670fd5cSchristosolcDynListAttrSet: {0} 4274e6df137Slukem- 428*e670fd5cSchristosadd: olcDynListAttrSet 429*e670fd5cSchristosolcDynListAttrSet: groupOfURLs memberURL member 4304e6df137Slukem- 4312de962bdSlukemEOMODS 4322de962bdSlukem 433*e670fd5cSchristosRC=$? 434*e670fd5cSchristosif test $RC != 0 ; then 435*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 436*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 437*e670fd5cSchristos exit $RC 438*e670fd5cSchristosfi 439*e670fd5cSchristos 4402de962bdSlukemecho "==========================================================" >> $LOG1 4412de962bdSlukem 4422de962bdSlukemecho "Adding a dynamic list..." 443*e670fd5cSchristos$LDAPADD -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 4442de962bdSlukem > $TESTOUT 2>&1 << EOMODS 4452de962bdSlukemdn: cn=Dynamic List of Members,$LISTDN 4462de962bdSlukemobjectClass: groupOfURLs 4472de962bdSlukemcn: Dynamic List of Members 4482de962bdSlukemmemberURL: ldap:///ou=People,${BASEDN}??sub?(objectClass=person) 4492de962bdSlukemEOMODS 4502de962bdSlukem 4512de962bdSlukemecho "Testing list search of all attrs..." 4522de962bdSlukemecho "# Testing list search of all attrs..." >> $SEARCHOUT 453*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 4542de962bdSlukem '(cn=Dynamic List of Members)' '*' \ 4552de962bdSlukem >> $SEARCHOUT 2>&1 4562de962bdSlukemRC=$? 4572de962bdSlukemif test $RC != 0 ; then 4582de962bdSlukem echo "ldapsearch failed ($RC)!" 4592de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4602de962bdSlukem exit $RC 4612de962bdSlukemfi 4622de962bdSlukem 4632de962bdSlukemecho "Testing list search of a listed attr..." 4642de962bdSlukemecho "# Testing list search of a listed attr..." >> $SEARCHOUT 465*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 4662de962bdSlukem '(cn=Dynamic List of Members)' member \ 4672de962bdSlukem >> $SEARCHOUT 2>&1 4682de962bdSlukemRC=$? 4692de962bdSlukemif test $RC != 0 ; then 4702de962bdSlukem echo "ldapsearch failed ($RC)!" 4712de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4722de962bdSlukem exit $RC 4732de962bdSlukemfi 4742de962bdSlukem 4752de962bdSlukemecho "Testing list search of a non-listed attr..." 4762de962bdSlukemecho "# Testing list search of a non-listed attr..." >> $SEARCHOUT 477*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 4782de962bdSlukem '(cn=Dynamic List of Members)' objectClass \ 4792de962bdSlukem >> $SEARCHOUT 2>&1 4802de962bdSlukemRC=$? 4812de962bdSlukemif test $RC != 0 ; then 4822de962bdSlukem echo "ldapsearch failed ($RC)!" 4832de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4842de962bdSlukem exit $RC 4852de962bdSlukemfi 4862de962bdSlukem 4872de962bdSlukemecho "Testing list search with (critical) manageDSAit..." 4882de962bdSlukemecho "# Testing list search with (critical) manageDSAit..." >> $SEARCHOUT 489*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 -MM \ 4902de962bdSlukem '(&(cn=Dynamic List of Members)(objectClass=groupOfURLs))' '*' \ 4912de962bdSlukem >> $SEARCHOUT 2>&1 4922de962bdSlukemRC=$? 4932de962bdSlukemif test $RC != 0 ; then 4942de962bdSlukem echo "ldapsearch failed ($RC)!" 4952de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 4962de962bdSlukem exit $RC 4972de962bdSlukemfi 4982de962bdSlukem 4992de962bdSlukemCMPDN="$BJORNSDN" 5002de962bdSlukemecho "Testing list compare..." 5012de962bdSlukemecho "# Testing list compare..." >> $SEARCHOUT 502*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 5032de962bdSlukem "cn=Dynamic List of Members,$LISTDN" "member:$CMPDN" \ 5042de962bdSlukem >> $SEARCHOUT 2>&1 5052de962bdSlukemRC=$? 5062de962bdSlukemcase $RC in 5072de962bdSlukem5) 5082de962bdSlukem echo "ldapcompare returned FALSE ($RC)!" 5092de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5102de962bdSlukem exit $RC 5112de962bdSlukem ;; 5122de962bdSlukem6) 5132de962bdSlukem echo "ldapcompare returned TRUE ($RC)" 5142de962bdSlukem ;; 5152de962bdSlukem0) 5162de962bdSlukem echo "ldapcompare returned success ($RC)!" 5172de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5182de962bdSlukem exit -1 5192de962bdSlukem ;; 5202de962bdSlukem*) 5212de962bdSlukem echo "ldapcompare failed ($RC)!" 5222de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5232de962bdSlukem exit $RC 5242de962bdSlukem ;; 5252de962bdSlukemesac 5262de962bdSlukemecho "" >> $SEARCHOUT 5272de962bdSlukem 5284e27b3e8SchristosCMPDN="$BADBJORNSDN" 5294e27b3e8Schristosecho "Testing list compare (should return FALSE)..." 5304e27b3e8Schristosecho "# Testing list compare... (should return FALSE)" >> $SEARCHOUT 531*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 5324e27b3e8Schristos "cn=Dynamic List of Members,$LISTDN" "member:$CMPDN" \ 5334e27b3e8Schristos >> $SEARCHOUT 2>&1 5344e27b3e8SchristosRC=$? 5354e27b3e8Schristoscase $RC in 5364e27b3e8Schristos5) 5374e27b3e8Schristos echo "ldapcompare returned FALSE ($RC)" 5384e27b3e8Schristos ;; 5394e27b3e8Schristos6) 5404e27b3e8Schristos echo "ldapcompare returned TRUE ($RC)!" 5414e27b3e8Schristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 5424e27b3e8Schristos exit $RC 5434e27b3e8Schristos ;; 5444e27b3e8Schristos0) 5454e27b3e8Schristos echo "ldapcompare returned success ($RC)!" 5464e27b3e8Schristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 5474e27b3e8Schristos exit -1 5484e27b3e8Schristos ;; 5494e27b3e8Schristos*) 5504e27b3e8Schristos echo "ldapcompare failed ($RC)!" 5514e27b3e8Schristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 5524e27b3e8Schristos exit $RC 5534e27b3e8Schristos ;; 5544e27b3e8Schristosesac 5554e27b3e8Schristosecho "" >> $SEARCHOUT 5564e27b3e8Schristos 5574e27b3e8SchristosCMPDN="$BJORNSDN" 5582de962bdSlukemecho "Testing list compare (should return FALSE)..." 5592de962bdSlukemecho "# Testing list compare (should return FALSE)..." >> $SEARCHOUT 560*e670fd5cSchristos$LDAPCOMPARE -H $URI1 \ 5612de962bdSlukem "cn=Dynamic List of Members,$LISTDN" "member:cn=Foo Bar" \ 5622de962bdSlukem >> $SEARCHOUT 2>&1 5632de962bdSlukemRC=$? 5642de962bdSlukemcase $RC in 5652de962bdSlukem5) 5662de962bdSlukem echo "ldapcompare returned FALSE ($RC)" 5672de962bdSlukem ;; 5682de962bdSlukem6) 5692de962bdSlukem echo "ldapcompare returned TRUE ($RC)!" 5702de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5712de962bdSlukem exit $RC 5722de962bdSlukem ;; 5732de962bdSlukem0) 5742de962bdSlukem echo "ldapcompare returned success ($RC)!" 5752de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5762de962bdSlukem exit -1 5772de962bdSlukem ;; 5782de962bdSlukem*) 5792de962bdSlukem echo "ldapcompare failed ($RC)!" 5802de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 5812de962bdSlukem exit $RC 5822de962bdSlukem ;; 5832de962bdSlukemesac 5842de962bdSlukemecho "" >> $SEARCHOUT 5852de962bdSlukem 586*e670fd5cSchristosecho "Testing list compare with manageDSAit (should return UNDEFINED)..." 587*e670fd5cSchristosecho "# Testing list compare with manageDSAit (should return UNDEFINED)..." >> $SEARCHOUT 588*e670fd5cSchristos$LDAPCOMPARE -H $URI1 -MM \ 5892de962bdSlukem "cn=Dynamic List,$LISTDN" "member:$CMPDN" \ 5902de962bdSlukem >> $SEARCHOUT 2>&1 5912de962bdSlukemRC=$? 5922de962bdSlukemcase $RC in 5932de962bdSlukem5) 5942de962bdSlukem echo "ldapcompare returned FALSE ($RC)" 595*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 596*e670fd5cSchristos exit $RC 5972de962bdSlukem ;; 5982de962bdSlukem6) 5992de962bdSlukem echo "ldapcompare returned TRUE ($RC)!" 6002de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6012de962bdSlukem exit $RC 6022de962bdSlukem ;; 603*e670fd5cSchristos16|32) 604*e670fd5cSchristos echo "ldapcompare returned UNDEFINED ($RC)" 605*e670fd5cSchristos ;; 6062de962bdSlukem0) 6072de962bdSlukem echo "ldapcompare returned success ($RC)!" 6082de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6092de962bdSlukem exit -1 6102de962bdSlukem ;; 6112de962bdSlukem*) 6122de962bdSlukem echo "ldapcompare failed ($RC)!" 6132de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6142de962bdSlukem exit $RC 6152de962bdSlukem ;; 6162de962bdSlukemesac 6172de962bdSlukemecho "" >> $SEARCHOUT 6182de962bdSlukem 6192de962bdSlukemecho "==========================================================" >> $LOG1 6202de962bdSlukem 6212de962bdSlukemecho "Testing dgIdentity..." 6222de962bdSlukem 6232de962bdSlukem# Set ACL, require authentication to get list contents 624*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 6252de962bdSlukem $TESTOUT 2>&1 << EOMODS 6262de962bdSlukemversion: 1 627d11b170bStrondn: olcDatabase={$DBIX}$BACKEND,cn=config 6282de962bdSlukemchangetype: modify 6292de962bdSlukemadd: olcAccess 6302de962bdSlukemolcAccess: to dn.base="cn=Dynamic List of Members,$LISTDN" by * read 6312de962bdSlukemolcAccess: to * by users read by * search 6322de962bdSlukemEOMODS 6332de962bdSlukem 634*e670fd5cSchristosRC=$? 635*e670fd5cSchristosif test $RC != 0 ; then 636*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 637*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 638*e670fd5cSchristos exit $RC 639*e670fd5cSchristosfi 640*e670fd5cSchristos 6412de962bdSlukemecho "Testing list search without dgIdentity..." 6422de962bdSlukemecho "# Testing list search without dgIdentity..." >> $SEARCHOUT 643*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 6442de962bdSlukem '(cn=Dynamic List of Members)' '*' \ 6452de962bdSlukem >> $SEARCHOUT 2>&1 6462de962bdSlukemRC=$? 6472de962bdSlukemif test $RC != 0 ; then 6482de962bdSlukem echo "ldapsearch failed ($RC)!" 6492de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6502de962bdSlukem exit $RC 6512de962bdSlukemfi 6522de962bdSlukem 653*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 6542de962bdSlukem > $TESTOUT 2>&1 << EOMODS 6552de962bdSlukemdn: cn=Dynamic List of Members,$LISTDN 6562de962bdSlukemchangetype: modify 6572de962bdSlukemadd: objectClass 6582de962bdSlukemobjectClass: dgIdentityAux 6592de962bdSlukem- 6602de962bdSlukemadd: dgIdentity 6612de962bdSlukemdgIdentity: $CMPDN 6622de962bdSlukemEOMODS 6632de962bdSlukem 664*e670fd5cSchristosRC=$? 665*e670fd5cSchristosif test $RC != 0 ; then 666*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 667*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 668*e670fd5cSchristos exit $RC 669*e670fd5cSchristosfi 670*e670fd5cSchristos 6712de962bdSlukemecho "Testing list search with dgIdentity..." 6722de962bdSlukemecho "# Testing list search with dgIdentity..." >> $SEARCHOUT 673*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 6742de962bdSlukem '(cn=Dynamic List of Members)' '*' \ 6752de962bdSlukem >> $SEARCHOUT 2>&1 6762de962bdSlukemRC=$? 6772de962bdSlukemif test $RC != 0 ; then 6782de962bdSlukem echo "ldapsearch failed ($RC)!" 6792de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 6802de962bdSlukem exit $RC 6812de962bdSlukemfi 6822de962bdSlukem 6832de962bdSlukemecho "Testing dgAuthz..." 6842de962bdSlukem 6852de962bdSlukemCMPDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,$BASEDN" 686*e670fd5cSchristos$LDAPMODIFY -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 6872de962bdSlukem > $TESTOUT 2>&1 << EOMODS 6882de962bdSlukemdn: cn=Dynamic List of Members,$LISTDN 6892de962bdSlukemchangetype: modify 6902de962bdSlukemadd: dgAuthz 6912de962bdSlukemdgAuthz: dn:$BABSDN 6922de962bdSlukemEOMODS 6932de962bdSlukem 694*e670fd5cSchristosRC=$? 695*e670fd5cSchristosif test $RC != 0 ; then 696*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 697*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 698*e670fd5cSchristos exit $RC 699*e670fd5cSchristosfi 700*e670fd5cSchristos 7012de962bdSlukemecho "Testing list search with dgIdentity and dgAuthz anonymously..." 7022de962bdSlukemecho "# Testing list search with dgIdentity and dgAuthz anonymously..." >> $SEARCHOUT 703*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 7042de962bdSlukem '(cn=Dynamic List of Members)' '*' \ 7052de962bdSlukem >> $SEARCHOUT 2>&1 7062de962bdSlukemRC=$? 7072de962bdSlukemif test $RC != 0 ; then 7082de962bdSlukem echo "ldapsearch failed ($RC)!" 7092de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 7102de962bdSlukem exit $RC 7112de962bdSlukemfi 7122de962bdSlukem 7132de962bdSlukemecho "Testing list search with dgIdentity and dgAuthz as the authorized identity..." 7142de962bdSlukemecho "# Testing list search with dgIdentity and dgAuthz as the authorized identity..." >> $SEARCHOUT 715*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 7162de962bdSlukem -D "$BABSDN" -w bjensen \ 7172de962bdSlukem '(cn=Dynamic List of Members)' '*' \ 7182de962bdSlukem >> $SEARCHOUT 2>&1 7192de962bdSlukemRC=$? 7202de962bdSlukemif test $RC != 0 ; then 7212de962bdSlukem echo "ldapsearch failed ($RC)!" 7222de962bdSlukem test $KILLSERVERS != no && kill -HUP $KILLPIDS 7232de962bdSlukem exit $RC 7242de962bdSlukemfi 7252de962bdSlukem 726*e670fd5cSchristosecho "Reconfiguring slapd..." 727*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 728*e670fd5cSchristos $TESTOUT 2>&1 << EOMODS 729*e670fd5cSchristosversion: 1 730*e670fd5cSchristosdn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config 731*e670fd5cSchristoschangetype: modify 732*e670fd5cSchristosdelete: olcDynListAttrSet 733*e670fd5cSchristosolcDynListAttrSet: {0} 734*e670fd5cSchristos- 735*e670fd5cSchristosadd: olcDynListAttrSet 736*e670fd5cSchristosolcDynListAttrSet: groupOfURLs memberURL member+memberOf 737*e670fd5cSchristos- 738*e670fd5cSchristosEOMODS 739*e670fd5cSchristos 740*e670fd5cSchristosRC=$? 741*e670fd5cSchristosif test $RC != 0 ; then 742*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 743*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 744*e670fd5cSchristos exit $RC 745*e670fd5cSchristosfi 746*e670fd5cSchristos 747*e670fd5cSchristosecho "==========================================================" >> $LOG1 748*e670fd5cSchristos 749*e670fd5cSchristosecho "Testing memberOf functionality..." 750*e670fd5cSchristosecho "# Testing memberOf functionality..." >> $SEARCHOUT 751*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 752*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 753*e670fd5cSchristos '(cn=Mark Elliot)' '*' 'memberOf' \ 754*e670fd5cSchristos >> $SEARCHOUT 2>&1 755*e670fd5cSchristosRC=$? 756*e670fd5cSchristosif test $RC != 0 ; then 757*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 758*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 759*e670fd5cSchristos exit $RC 760*e670fd5cSchristosfi 761*e670fd5cSchristos 762*e670fd5cSchristosecho "Testing filtered memberOf functionality..." 763*e670fd5cSchristosecho "# Testing filtered memberOf functionality..." >> $SEARCHOUT 764*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 765*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 766*e670fd5cSchristos '(&(memberOf=cn=Dynamic List of Members,ou=Dynamic Lists,dc=example,dc=com)(cn=Mark Elliot))' '*' 'memberOf' \ 767*e670fd5cSchristos >> $SEARCHOUT 2>&1 768*e670fd5cSchristosRC=$? 769*e670fd5cSchristosif test $RC != 0 ; then 770*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 771*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 772*e670fd5cSchristos exit $RC 773*e670fd5cSchristosfi 774*e670fd5cSchristos 775*e670fd5cSchristosecho "Reconfiguring slapd..." 776*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 777*e670fd5cSchristos $TESTOUT 2>&1 << EOMODS 778*e670fd5cSchristosversion: 1 779*e670fd5cSchristosdn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config 780*e670fd5cSchristoschangetype: modify 781*e670fd5cSchristosdelete: olcDynListAttrSet 782*e670fd5cSchristosolcDynListAttrSet: {0} 783*e670fd5cSchristos- 784*e670fd5cSchristosadd: olcDynListAttrSet 785*e670fd5cSchristosolcDynListAttrSet: groupOfURLs memberURL member+memberOf@groupOfNames 786*e670fd5cSchristos- 787*e670fd5cSchristosEOMODS 788*e670fd5cSchristos 789*e670fd5cSchristosRC=$? 790*e670fd5cSchristosif test $RC != 0 ; then 791*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 792*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 793*e670fd5cSchristos exit $RC 794*e670fd5cSchristosfi 795*e670fd5cSchristos 796*e670fd5cSchristosecho "==========================================================" >> $LOG1 797*e670fd5cSchristos 798*e670fd5cSchristosecho "Testing static group memberOf functionality..." 799*e670fd5cSchristosecho "# Testing static group memberOf functionality..." >> $SEARCHOUT 800*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 801*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 802*e670fd5cSchristos '(cn=Mark Elliot)' '*' 'memberOf' \ 803*e670fd5cSchristos >> $SEARCHOUT 2>&1 804*e670fd5cSchristosRC=$? 805*e670fd5cSchristosif test $RC != 0 ; then 806*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 807*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 808*e670fd5cSchristos exit $RC 809*e670fd5cSchristosfi 810*e670fd5cSchristos 811*e670fd5cSchristosecho "Reconfiguring slapd..." 812*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 813*e670fd5cSchristos $TESTOUT 2>&1 << EOMODS 814*e670fd5cSchristosversion: 1 815*e670fd5cSchristosdn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config 816*e670fd5cSchristoschangetype: modify 817*e670fd5cSchristosdelete: olcDynListAttrSet 818*e670fd5cSchristosolcDynListAttrSet: {0} 819*e670fd5cSchristos- 820*e670fd5cSchristosadd: olcDynListAttrSet 821*e670fd5cSchristosolcDynListAttrSet: groupOfURLs memberURL member+memberOf* 822*e670fd5cSchristos- 823*e670fd5cSchristosEOMODS 824*e670fd5cSchristos 825*e670fd5cSchristosRC=$? 826*e670fd5cSchristosif test $RC != 0 ; then 827*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 828*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 829*e670fd5cSchristos exit $RC 830*e670fd5cSchristosfi 831*e670fd5cSchristos 832*e670fd5cSchristosecho "==========================================================" >> $LOG1 833*e670fd5cSchristos 834*e670fd5cSchristosecho "Adding a couple dynamic groups..." 835*e670fd5cSchristos$LDAPADD -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 836*e670fd5cSchristos > $TESTOUT 2>&1 << EOMODS 837*e670fd5cSchristosdn: cn=The Smiths,$LISTDN 838*e670fd5cSchristosobjectClass: groupOfURLs 839*e670fd5cSchristoscn: The Smiths 840*e670fd5cSchristosmemberURL: ldap:///ou=People,${BASEDN}??sub?(sn=Smith) 841*e670fd5cSchristosdescription: Smith family 842*e670fd5cSchristos 843*e670fd5cSchristosdn: cn=Meta Group,$LISTDN 844*e670fd5cSchristosobjectClass: groupOfURLs 845*e670fd5cSchristoscn: Meta Group 846*e670fd5cSchristosmemberURL: ldap:///${LISTDN}??sub?(description=Smith%20family) 847*e670fd5cSchristosEOMODS 848*e670fd5cSchristos 849*e670fd5cSchristosRC=$? 850*e670fd5cSchristosif test $RC != 0 ; then 851*e670fd5cSchristos echo "ldapadd failed ($RC)!" 852*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 853*e670fd5cSchristos exit $RC 854*e670fd5cSchristosfi 855*e670fd5cSchristos 856*e670fd5cSchristosecho "Testing nested dynamic group functionality..." 857*e670fd5cSchristosecho "# Testing nested dynamic group functionality..." >> $SEARCHOUT 858*e670fd5cSchristos$LDAPSEARCH -S "" -b "$LISTDN" -H $URI1 \ 859*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 860*e670fd5cSchristos '(objectclass=*)' '*' 'memberOf' \ 861*e670fd5cSchristos >> $SEARCHOUT 2>&1 862*e670fd5cSchristosRC=$? 863*e670fd5cSchristosif test $RC != 0 ; then 864*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 865*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 866*e670fd5cSchristos exit $RC 867*e670fd5cSchristosfi 868*e670fd5cSchristos 869*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 870*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 871*e670fd5cSchristos '(cn=Mark Elliot)' '*' 'memberOf' \ 872*e670fd5cSchristos >> $SEARCHOUT 2>&1 873*e670fd5cSchristosRC=$? 874*e670fd5cSchristosif test $RC != 0 ; then 875*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 876*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 877*e670fd5cSchristos exit $RC 878*e670fd5cSchristosfi 879*e670fd5cSchristos 880*e670fd5cSchristosecho "Reconfiguring slapd..." 881*e670fd5cSchristos$LDAPMODIFY -x -D cn=config -H $URI1 -y $CONFIGPWF > \ 882*e670fd5cSchristos $TESTOUT 2>&1 << EOMODS 883*e670fd5cSchristosversion: 1 884*e670fd5cSchristosdn: olcOverlay={0}dynlist,olcDatabase={$DBIX}$BACKEND,cn=config 885*e670fd5cSchristoschangetype: modify 886*e670fd5cSchristosdelete: olcDynListAttrSet 887*e670fd5cSchristosolcDynListAttrSet: {0} 888*e670fd5cSchristos- 889*e670fd5cSchristosadd: olcDynListAttrSet 890*e670fd5cSchristosolcDynListAttrSet: groupOfURLs memberURL member+memberOf@groupOfNames* 891*e670fd5cSchristosolcDynListAttrSet: labeledURIObject labeledURI uniqueMember+seeAlso@groupOfUniqueNames 892*e670fd5cSchristos- 893*e670fd5cSchristosEOMODS 894*e670fd5cSchristos 895*e670fd5cSchristosRC=$? 896*e670fd5cSchristosif test $RC != 0 ; then 897*e670fd5cSchristos echo "ldapmodify failed ($RC)!" 898*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 899*e670fd5cSchristos exit $RC 900*e670fd5cSchristosfi 901*e670fd5cSchristos 902*e670fd5cSchristosecho "==========================================================" >> $LOG1 903*e670fd5cSchristos 904*e670fd5cSchristosecho "Adding a couple static groups..." 905*e670fd5cSchristos$LDAPADD -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 906*e670fd5cSchristos > $TESTOUT 2>&1 << EOMODS 907*e670fd5cSchristosdn: cn=The Jensens,ou=Groups,$BASEDN 908*e670fd5cSchristosobjectClass: groupOfnames 909*e670fd5cSchristoscn: The Jensens 910*e670fd5cSchristosmember: cn=Bjorn Jensen,ou=Information Technology DivisioN,ou=People,$BASEDN 911*e670fd5cSchristosmember: cn=Barbara Jensen,ou=Information Technology DivisioN,ou=People,$BASEDN 912*e670fd5cSchristos 913*e670fd5cSchristosdn: cn=JJs,ou=Groups,$BASEDN 914*e670fd5cSchristosobjectClass: groupOfnames 915*e670fd5cSchristoscn: JJs 916*e670fd5cSchristosmember: cn=James A Jones 1,ou=Alumni Association,ou=People,$BASEDN 917*e670fd5cSchristosmember: cn=James A Jones 2,ou=Information Technology Division,ou=People,$BASEDN 918*e670fd5cSchristosmember: cn=The Jensens,ou=Groups,$BASEDN 919*e670fd5cSchristosEOMODS 920*e670fd5cSchristos 921*e670fd5cSchristosRC=$? 922*e670fd5cSchristosif test $RC != 0 ; then 923*e670fd5cSchristos echo "ldapadd failed ($RC)!" 924*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 925*e670fd5cSchristos exit $RC 926*e670fd5cSchristosfi 927*e670fd5cSchristos 928*e670fd5cSchristosecho "Testing nested static group functionality..." 929*e670fd5cSchristosecho "# Testing nested static group functionality..." >> $SEARCHOUT 930*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 931*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 932*e670fd5cSchristos '(sn=Jensen)' '*' 'memberOf' \ 933*e670fd5cSchristos >> $SEARCHOUT 2>&1 934*e670fd5cSchristosRC=$? 935*e670fd5cSchristosif test $RC != 0 ; then 936*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 937*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 938*e670fd5cSchristos exit $RC 939*e670fd5cSchristosfi 940*e670fd5cSchristos 941*e670fd5cSchristosecho "Adding another nested group..." 942*e670fd5cSchristos$LDAPADD -v -D "$MANAGERDN" -H $URI1 -w $PASSWD \ 943*e670fd5cSchristos > $TESTOUT 2>&1 << EOMODS 944*e670fd5cSchristosdn: cn=Bonus Group,ou=Groups,$BASEDN 945*e670fd5cSchristosobjectClass: groupOfnames 946*e670fd5cSchristoscn: Bonus Group 947*e670fd5cSchristosmember: cn=Ursula Hampster,ou=Alumni Association,ou=People,$BASEDN 948*e670fd5cSchristosmember: cn=Meta Group,$LISTDN 949*e670fd5cSchristosEOMODS 950*e670fd5cSchristos 951*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 952*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 953*e670fd5cSchristos '(sn=Hampster)' '*' 'memberOf' \ 954*e670fd5cSchristos >> $SEARCHOUT 2>&1 955*e670fd5cSchristosRC=$? 956*e670fd5cSchristosif test $RC != 0 ; then 957*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 958*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 959*e670fd5cSchristos exit $RC 960*e670fd5cSchristosfi 961*e670fd5cSchristos 962*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 963*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 964*e670fd5cSchristos '(sn=Doe)' '*' 'memberOf' \ 965*e670fd5cSchristos >> $SEARCHOUT 2>&1 966*e670fd5cSchristosRC=$? 967*e670fd5cSchristosif test $RC != 0 ; then 968*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 969*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 970*e670fd5cSchristos exit $RC 971*e670fd5cSchristosfi 972*e670fd5cSchristos 973*e670fd5cSchristos$LDAPSEARCH -S "" -b "ou=People,$BASEDN" -H $URI1 \ 974*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 975*e670fd5cSchristos '(sn=Smith)' '*' 'memberOf' \ 976*e670fd5cSchristos >> $SEARCHOUT 2>&1 977*e670fd5cSchristosRC=$? 978*e670fd5cSchristosif test $RC != 0 ; then 979*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 980*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 981*e670fd5cSchristos exit $RC 982*e670fd5cSchristosfi 983*e670fd5cSchristos 984*e670fd5cSchristosecho "Testing filtered nested memberOf functionality..." 985*e670fd5cSchristosecho "# Testing filtered nested memberOf functionality..." >> $SEARCHOUT 986*e670fd5cSchristos 987*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 988*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 989*e670fd5cSchristos "(memberOf=cn=bonus group,ou=groups,$BASEDN)" '*' 'memberOf' \ 990*e670fd5cSchristos >> $SEARCHOUT 2>&1 991*e670fd5cSchristosRC=$? 992*e670fd5cSchristosif test $RC != 0 ; then 993*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 994*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 995*e670fd5cSchristos exit $RC 996*e670fd5cSchristosfi 997*e670fd5cSchristos 998*e670fd5cSchristosecho "Testing filtered nested member functionality..." 999*e670fd5cSchristosecho "# Testing filtered nested member functionality..." >> $SEARCHOUT 1000*e670fd5cSchristos 1001*e670fd5cSchristos$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \ 1002*e670fd5cSchristos -D "$BABSDN" -w bjensen \ 1003*e670fd5cSchristos "(member=cn=Jennifer Smith,ou=Alumni Association,ou=People,$BASEDN)" '*' 'memberOf' \ 1004*e670fd5cSchristos >> $SEARCHOUT 2>&1 1005*e670fd5cSchristosRC=$? 1006*e670fd5cSchristosif test $RC != 0 ; then 1007*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 1008*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 1009*e670fd5cSchristos exit $RC 1010*e670fd5cSchristosfi 1011*e670fd5cSchristos 10122de962bdSlukemtest $KILLSERVERS != no && kill -HUP $KILLPIDS 10132de962bdSlukem 10142de962bdSlukemLDIF=$DYNLISTOUT 10152de962bdSlukem 10162de962bdSlukemecho "Filtering ldapsearch results..." 1017ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT 10182de962bdSlukemecho "Filtering original ldif used to create database..." 1019ef2f90d3Sadam$LDIFFILTER < $LDIF > $LDIFFLT 10202de962bdSlukemecho "Comparing filter output..." 10212de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT 10222de962bdSlukem 10232de962bdSlukemif test $? != 0 ; then 10242de962bdSlukem echo "Comparison failed" 10252de962bdSlukem exit 1 10262de962bdSlukemfi 10272de962bdSlukem 10282de962bdSlukemecho ">>>>> Test succeeded" 10292de962bdSlukem 10302de962bdSlukemtest $KILLSERVERS != no && wait 10312de962bdSlukem 10322de962bdSlukemexit 0 1033