xref: /netbsd-src/external/bsd/openldap/dist/tests/scripts/test001-slapadd (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
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
192de962bdSlukemmkdir -p $TESTDIR $DBDIR1
202de962bdSlukem
212de962bdSlukemecho "Running slapadd to build slapd database..."
22*e670fd5cSchristos. $CONFFILTER $BACKEND < $CONF > $ADDCONF
232de962bdSlukem$SLAPADD -f $ADDCONF -l $LDIFORDERED
242de962bdSlukemRC=$?
252de962bdSlukemif test $RC != 0 ; then
262de962bdSlukem	echo "slapadd failed ($RC)!"
272de962bdSlukem	exit $RC
282de962bdSlukemfi
292de962bdSlukem
302de962bdSlukemecho "Starting slapd on TCP/IP port $PORT1..."
31*e670fd5cSchristos. $CONFFILTER $BACKEND < $CONF > $CONF1
32*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
332de962bdSlukemPID=$!
342de962bdSlukemif test $WAIT != 0 ; then
352de962bdSlukem    echo PID $PID
362de962bdSlukem    read foo
372de962bdSlukemfi
382de962bdSlukemKILLPIDS="$PID"
392de962bdSlukem
402de962bdSlukemsleep 1
412de962bdSlukem
422de962bdSlukemecho "Using ldapsearch to retrieve all the entries..."
432de962bdSlukemfor i in 0 1 2 3 4 5; do
44*e670fd5cSchristos	$LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 > $SEARCHOUT 2>&1
452de962bdSlukem	RC=$?
462de962bdSlukem	if test $RC = 0 ; then
472de962bdSlukem		break
482de962bdSlukem	fi
492de962bdSlukem	echo "Waiting 5 seconds for slapd to start..."
502de962bdSlukem	sleep 5
512de962bdSlukemdone
522de962bdSlukem
532de962bdSlukemif test $RC != 0 ; then
542de962bdSlukem	echo "ldapsearch failed ($RC)!"
55d11b170bStron	test $KILLSERVERS != no && kill -HUP $KILLPIDS
562de962bdSlukem	exit $RC
572de962bdSlukemfi
582de962bdSlukem
592de962bdSlukemecho "Filtering ldapsearch results..."
60ef2f90d3Sadam$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
612de962bdSlukemecho "Filtering original ldif used to create database..."
62ef2f90d3Sadam$LDIFFILTER < $LDIF > $LDIFFLT
632de962bdSlukemecho "Comparing filter output..."
642de962bdSlukem$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
652de962bdSlukem
662de962bdSlukemif test $? != 0 ; then
672de962bdSlukem	echo "comparison failed - database was not created correctly"
682de962bdSlukem	echo $SEARCHFLT $LDIFFLT
692de962bdSlukem	$DIFF $SEARCHFLT $LDIFFLT
70d11b170bStron	test $KILLSERVERS != no && kill -HUP $KILLPIDS
712de962bdSlukem	exit 1
722de962bdSlukemfi
732de962bdSlukem
74d11b170bStronif test $BACKEND = ldif ; then
75d11b170bStron	echo "Skipping test of unordered slapadd (unsupported in ldif backend)"
76d11b170bStronelse
77d11b170bStron
78d11b170bStronkill -HUP $KILLPIDS
79d11b170bStron
80d11b170bStronrm -f $DBDIR1/*
81d11b170bStron
82d11b170bStronBASE2="ou=test,dc=example,dc=com"
83d11b170bStronsed -e "s;$BASEDN;$BASE2;" $ADDCONF > ${ADDCONF}2
84d11b170bStronmv ${ADDCONF}2 $ADDCONF
85d11b170bStronsed -e "s;$BASEDN;$BASE2;" $CONF1 > ${CONF1}2
86d11b170bStronmv ${CONF1}2 $CONF1
87d11b170bStronecho "Running slapadd with unordered LDIF..."
88d11b170bStron$SLAPADD -f $ADDCONF -l $LDIFUNORDERED
89d11b170bStronRC=$?
90d11b170bStronif test $RC != 0 ; then
91d11b170bStron	echo "slapadd failed ($RC)!"
92d11b170bStron	exit $RC
93d11b170bStronfi
94d11b170bStron
95d11b170bStronecho "Starting slapd on TCP/IP port $PORT1..."
96*e670fd5cSchristos$SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
97d11b170bStronPID=$!
98d11b170bStronif test $WAIT != 0 ; then
99d11b170bStron    echo PID $PID
100d11b170bStron    read foo
101d11b170bStronfi
102d11b170bStronKILLPIDS="$PID"
103d11b170bStron
104d11b170bStronsleep 1
105d11b170bStron
106d11b170bStronecho "Using ldapsearch to retrieve all the entries..."
107d11b170bStronfor i in 0 1 2 3 4 5; do
108*e670fd5cSchristos	$LDAPSEARCH -b "$BASE2" -H $URI1 > $SEARCHOUT 2>&1
109d11b170bStron	RC=$?
110d11b170bStron	if test $RC = 0 ; then
111d11b170bStron		break
112d11b170bStron	fi
113d11b170bStron	echo "Waiting 5 seconds for slapd to start..."
114d11b170bStron	sleep 5
115d11b170bStrondone
116d11b170bStron
117d11b170bStronif test $RC != 0 ; then
118d11b170bStron	echo "ldapsearch failed ($RC)!"
119d11b170bStron	test $KILLSERVERS != no && kill -HUP $KILLPIDS
120d11b170bStron	exit $RC
121d11b170bStronfi
122d11b170bStron
123d11b170bStronecho "Filtering ldapsearch results..."
124d11b170bStron$LDIFFILTER < $SEARCHOUT > $SEARCHFLT
125d11b170bStronecho "Filtering original ldif used to create database..."
126d11b170bStron$LDIFFILTER < $LDIFREORDERED > $LDIFFLT
127d11b170bStronecho "Comparing filter output..."
128d11b170bStron$CMP $SEARCHFLT $LDIFFLT > $CMPOUT
129d11b170bStron
130d11b170bStronif test $? != 0 ; then
131d11b170bStron	echo "comparison failed - database was not created correctly"
132d11b170bStron	echo $SEARCHFLT $LDIFFLT
133d11b170bStron	$DIFF $SEARCHFLT $LDIFFLT
134d11b170bStron	test $KILLSERVERS != no && kill -HUP $KILLPIDS
135d11b170bStron	exit 1
136d11b170bStronfi
137d11b170bStron
138d11b170bStronfi
139d11b170bStron
140d11b170bStrontest $KILLSERVERS != no && kill -HUP $KILLPIDS
141d11b170bStron
1422de962bdSlukemecho ">>>>> Test succeeded"
1432de962bdSlukem
1442de962bdSlukemtest $KILLSERVERS != no && wait
1452de962bdSlukem
1462de962bdSlukemexit 0
147