1*e670fd5cSchristos#!/bin/sh 2*e670fd5cSchristos# $OpenLDAP$ 3*e670fd5cSchristos## This work is part of OpenLDAP Software <http://www.openldap.org/>. 4*e670fd5cSchristos## 5*e670fd5cSchristos## Copyright 2021 The OpenLDAP Foundation. 6*e670fd5cSchristos## All rights reserved. 7*e670fd5cSchristos## 8*e670fd5cSchristos## Redistribution and use in source and binary forms, with or without 9*e670fd5cSchristos## modification, are permitted only as authorized by the OpenLDAP 10*e670fd5cSchristos## Public License. 11*e670fd5cSchristos## 12*e670fd5cSchristos## A copy of this license is available in the file LICENSE in the 13*e670fd5cSchristos## top-level directory of the distribution or, alternatively, at 14*e670fd5cSchristos## <http://www.OpenLDAP.org/license.html>. 15*e670fd5cSchristos 16*e670fd5cSchristosecho "running defines.sh" 17*e670fd5cSchristos. $SRCDIR/scripts/defines.sh 18*e670fd5cSchristos 19*e670fd5cSchristosif test $ARGON2 = argon2no; then 20*e670fd5cSchristos echo "argon2 overlay not available, test skipped" 21*e670fd5cSchristos exit 0 22*e670fd5cSchristosfi 23*e670fd5cSchristos 24*e670fd5cSchristosUSERDN="cn=argon2,$BASEDN" 25*e670fd5cSchristos 26*e670fd5cSchristosCONFDIR=$TESTDIR/slapd.d 27*e670fd5cSchristosmkdir -p $TESTDIR $CONFDIR $DBDIR1 28*e670fd5cSchristos 29*e670fd5cSchristos$SLAPPASSWD -g -n >$CONFIGPWF 30*e670fd5cSchristos 31*e670fd5cSchristoscat > $TESTDIR/config.ldif <<EOF 32*e670fd5cSchristosdn: cn=config 33*e670fd5cSchristosobjectClass: olcGlobal 34*e670fd5cSchristoscn: config 35*e670fd5cSchristosolcArgsFile: $TESTDIR/slapd.args 36*e670fd5cSchristosolcPidFile: $TESTDIR/slapd.pid 37*e670fd5cSchristos 38*e670fd5cSchristosdn: cn=schema,cn=config 39*e670fd5cSchristosobjectClass: olcSchemaConfig 40*e670fd5cSchristoscn: schema 41*e670fd5cSchristos 42*e670fd5cSchristosinclude: file://$TESTWD/schema/core.ldif 43*e670fd5cSchristosinclude: file://$TESTWD/schema/cosine.ldif 44*e670fd5cSchristosinclude: file://$TESTWD/schema/inetorgperson.ldif 45*e670fd5cSchristosEOF 46*e670fd5cSchristos 47*e670fd5cSchristosif [ "$BACKENDTYPE" = mod ]; then 48*e670fd5cSchristos cat >> $TESTDIR/config.ldif <<EOF 49*e670fd5cSchristos 50*e670fd5cSchristosdn: cn=module,cn=config 51*e670fd5cSchristosobjectClass: olcModuleList 52*e670fd5cSchristoscn: module 53*e670fd5cSchristosolcModulePath: $TESTWD/../servers/slapd/back-$BACKEND 54*e670fd5cSchristosolcModuleLoad: back_$BACKEND.la 55*e670fd5cSchristosEOF 56*e670fd5cSchristosfi 57*e670fd5cSchristos 58*e670fd5cSchristosif [ "$ARGON2" = argon2yes ]; then 59*e670fd5cSchristos cat >> $TESTDIR/config.ldif <<EOF 60*e670fd5cSchristos 61*e670fd5cSchristosdn: cn=module,cn=config 62*e670fd5cSchristosobjectClass: olcModuleList 63*e670fd5cSchristoscn: module 64*e670fd5cSchristosolcModulePath: $TESTWD/../servers/slapd/pwmods 65*e670fd5cSchristosolcModuleLoad: argon2.la 66*e670fd5cSchristosEOF 67*e670fd5cSchristosfi 68*e670fd5cSchristos 69*e670fd5cSchristoscat >> $TESTDIR/config.ldif <<EOF 70*e670fd5cSchristos 71*e670fd5cSchristosdn: olcDatabase={-1}frontend,cn=config 72*e670fd5cSchristosobjectClass: olcDatabaseConfig 73*e670fd5cSchristosobjectClass: olcFrontendConfig 74*e670fd5cSchristosolcDatabase: {-1}frontend 75*e670fd5cSchristosolcPasswordHash: {ARGON2} 76*e670fd5cSchristos 77*e670fd5cSchristosdn: olcDatabase=config,cn=config 78*e670fd5cSchristosobjectClass: olcDatabaseConfig 79*e670fd5cSchristosolcDatabase: config 80*e670fd5cSchristosolcRootPW:< file://$CONFIGPWF 81*e670fd5cSchristos 82*e670fd5cSchristosdn: olcDatabase={1}$BACKEND,cn=config 83*e670fd5cSchristosobjectClass: olcDatabaseConfig 84*e670fd5cSchristosobjectClass: olc${BACKEND}Config 85*e670fd5cSchristosolcDatabase: $BACKEND 86*e670fd5cSchristosolcSuffix: $BASEDN 87*e670fd5cSchristosolcRootDN: $MANAGERDN 88*e670fd5cSchristosolcRootPW: $PASSWD 89*e670fd5cSchristosolcDbDirectory: $TESTDIR/db.1.a 90*e670fd5cSchristosEOF 91*e670fd5cSchristos 92*e670fd5cSchristosif [ "$INDEXDB" = indexdb ]; then 93*e670fd5cSchristos cat >> $TESTDIR/config.ldif <<EOF 94*e670fd5cSchristosolcDbIndex: objectClass eq,pres 95*e670fd5cSchristosolcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub 96*e670fd5cSchristosEOF 97*e670fd5cSchristosfi 98*e670fd5cSchristos 99*e670fd5cSchristos$SLAPADD -F $CONFDIR -n 0 -l $TESTDIR/config.ldif 100*e670fd5cSchristos 101*e670fd5cSchristosecho "Starting slapd on TCP/IP port $PORT1..." 102*e670fd5cSchristos$SLAPD -F $CONFDIR -h $URI1 -d $LVL > $LOG1 2>&1 & 103*e670fd5cSchristosPID=$! 104*e670fd5cSchristosif test $WAIT != 0 ; then 105*e670fd5cSchristos echo PID $PID 106*e670fd5cSchristos read foo 107*e670fd5cSchristosfi 108*e670fd5cSchristosKILLPIDS="$PID" 109*e670fd5cSchristossleep 1 110*e670fd5cSchristos 111*e670fd5cSchristosecho "Using ldapsearch to check that slapd is running..." 112*e670fd5cSchristosfor i in 0 1 2 3 4 5; do 113*e670fd5cSchristos $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 114*e670fd5cSchristos 'objectclass=*' > /dev/null 2>&1 115*e670fd5cSchristos RC=$? 116*e670fd5cSchristos if test $RC = 0 ; then 117*e670fd5cSchristos break 118*e670fd5cSchristos fi 119*e670fd5cSchristos echo "Waiting 5 seconds for slapd to start..." 120*e670fd5cSchristos sleep 5 121*e670fd5cSchristosdone 122*e670fd5cSchristosif test $RC != 0 ; then 123*e670fd5cSchristos echo "ldapsearch failed ($RC)!" 124*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 125*e670fd5cSchristos exit $RC 126*e670fd5cSchristosfi 127*e670fd5cSchristos 128*e670fd5cSchristosecho "Adding basic structure..." 129*e670fd5cSchristos$LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -f $LDIFPASSWD >/dev/null 2>&1 130*e670fd5cSchristosRC=$? 131*e670fd5cSchristosif test $RC != 0 ; then 132*e670fd5cSchristos echo "ldapadd failed ($RC)!" 133*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $PID 134*e670fd5cSchristos exit $RC 135*e670fd5cSchristosfi 136*e670fd5cSchristos 137*e670fd5cSchristosBINDPW=secret 138*e670fd5cSchristosecho "Testing ldapwhoami as ${USERDN}..." 139*e670fd5cSchristos$LDAPWHOAMI -H $URI1 -D "$USERDN" -w $BINDPW 140*e670fd5cSchristos 141*e670fd5cSchristosRC=$? 142*e670fd5cSchristosif test $RC != 0 ; then 143*e670fd5cSchristos echo "ldapwhoami failed ($RC)!" 144*e670fd5cSchristos test $KILLSERVERS != no && kill -HUP $KILLPIDS 145*e670fd5cSchristos exit $RC 146*e670fd5cSchristosfi 147*e670fd5cSchristos 148*e670fd5cSchristostest $KILLSERVERS != no && kill -HUP $PID 149*e670fd5cSchristos 150*e670fd5cSchristosecho ">>>>> Test succeeded" 151*e670fd5cSchristos 152*e670fd5cSchristostest $KILLSERVERS != no && wait 153*e670fd5cSchristos 154*e670fd5cSchristosexit 0 155