#!/bin/sh # $OpenLDAP$ ## This work is part of OpenLDAP Software <http://www.openldap.org/>. ## ## Copyright 2021 The OpenLDAP Foundation. ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted only as authorized by the OpenLDAP ## Public License. ## ## A copy of this license is available in the file LICENSE in the ## top-level directory of the distribution or, alternatively, at ## <http://www.OpenLDAP.org/license.html>. echo "running defines.sh" . $SRCDIR/scripts/defines.sh if test $ARGON2 = argon2no; then echo "argon2 overlay not available, test skipped" exit 0 fi USERDN="cn=argon2,$BASEDN" CONFDIR=$TESTDIR/slapd.d mkdir -p $TESTDIR $CONFDIR $DBDIR1 $SLAPPASSWD -g -n >$CONFIGPWF cat > $TESTDIR/config.ldif <<EOF dn: cn=config objectClass: olcGlobal cn: config olcArgsFile: $TESTDIR/slapd.args olcPidFile: $TESTDIR/slapd.pid dn: cn=schema,cn=config objectClass: olcSchemaConfig cn: schema include: file://$TESTWD/schema/core.ldif include: file://$TESTWD/schema/cosine.ldif include: file://$TESTWD/schema/inetorgperson.ldif EOF if [ "$BACKENDTYPE" = mod ]; then cat >> $TESTDIR/config.ldif <<EOF dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: $TESTWD/../servers/slapd/back-$BACKEND olcModuleLoad: back_$BACKEND.la EOF fi if [ "$ARGON2" = argon2yes ]; then cat >> $TESTDIR/config.ldif <<EOF dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: $TESTWD/../servers/slapd/pwmods olcModuleLoad: argon2.la EOF fi cat >> $TESTDIR/config.ldif <<EOF dn: olcDatabase={-1}frontend,cn=config objectClass: olcDatabaseConfig objectClass: olcFrontendConfig olcDatabase: {-1}frontend olcPasswordHash: {ARGON2} dn: olcDatabase=config,cn=config objectClass: olcDatabaseConfig olcDatabase: config olcRootPW:< file://$CONFIGPWF dn: olcDatabase={1}$BACKEND,cn=config objectClass: olcDatabaseConfig objectClass: olc${BACKEND}Config olcDatabase: $BACKEND olcSuffix: $BASEDN olcRootDN: $MANAGERDN olcRootPW: $PASSWD olcDbDirectory: $TESTDIR/db.1.a EOF if [ "$INDEXDB" = indexdb ]; then cat >> $TESTDIR/config.ldif <<EOF olcDbIndex: objectClass eq,pres olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub EOF fi $SLAPADD -F $CONFDIR -n 0 -l $TESTDIR/config.ldif echo "Starting slapd on TCP/IP port $PORT1..." $SLAPD -F $CONFDIR -h $URI1 -d $LVL > $LOG1 2>&1 & PID=$! if test $WAIT != 0 ; then echo PID $PID read foo fi KILLPIDS="$PID" sleep 1 echo "Using ldapsearch to check that slapd is running..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 0 ; then break fi echo "Waiting 5 seconds for slapd to start..." sleep 5 done if test $RC != 0 ; then echo "ldapsearch failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi echo "Adding basic structure..." $LDAPADD -D "$MANAGERDN" -H $URI1 -w $PASSWD -f $LDIFPASSWD >/dev/null 2>&1 RC=$? if test $RC != 0 ; then echo "ldapadd failed ($RC)!" test $KILLSERVERS != no && kill -HUP $PID exit $RC fi BINDPW=secret echo "Testing ldapwhoami as ${USERDN}..." $LDAPWHOAMI -H $URI1 -D "$USERDN" -w $BINDPW RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi test $KILLSERVERS != no && kill -HUP $PID echo ">>>>> Test succeeded" test $KILLSERVERS != no && wait exit 0