summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-08 16:09:50 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-08 16:09:50 -0400
commit4243cda4352c9d6b35a4e10bec3c43e24822aa0e (patch)
tree9a480d83f5dcf27e7914cc09d5362978365de4c3
parentb2a75896ee8ae9a11ac9104687de86af0c2fb10a (diff)
- refinements to how we launch servers
-rw-r--r--tests/config/dse.ldif.initial.in2
-rwxr-xr-xtests/run-tests.sh39
-rw-r--r--tests/slapd.sh.in56
3 files changed, 86 insertions, 11 deletions
diff --git a/tests/config/dse.ldif.initial.in b/tests/config/dse.ldif.initial.in
index 0adf137..1b88386 100644
--- a/tests/config/dse.ldif.initial.in
+++ b/tests/config/dse.ldif.initial.in
@@ -52,7 +52,7 @@ nsslapd-auditlog-logrotationtimeunit: day
nsslapd-rootdn: cn=Directory Manager
nsslapd-maxdescriptors: 1024
nsslapd-max-filter-nest-level: 40
-nsslapd-rootpw: {CRYPT}pZ/1nTe9jogXA
+nsslapd-rootpw: {SSHA}I5PjkCi6hBa6qcemk39EqU2lZIdmFYk3JHR0MA==
nsslapd-ldapifilepath: @abs_top_builddir@/tests/state/slapd-blade.socket
nsslapd-ldapilisten: off
nsslapd-ldapimaprootdn: cn=Directory Manager
diff --git a/tests/run-tests.sh b/tests/run-tests.sh
index d90c94e..feb7ae5 100755
--- a/tests/run-tests.sh
+++ b/tests/run-tests.sh
@@ -1,4 +1,39 @@
#!/bin/sh
source slapd.sh
-startslapd
-stopslapd
+for subdir in "$@" ; do
+ pushd $subdir > /dev/null
+ startslapd $TESTDIR/$subdir/dse.ldif
+ if test -x $TESTDIR/$subdir/before.sh ; then
+ $TESTDIR/$subdir/before.sh > before.out
+ if test -r $TESTDIR/$subdir/before.txt ; then
+ if cmp $TESTDIR/$subdir/before.txt before.out ; then
+ diff -u $TESTDIR/$subdir/before.txt before.out
+ stopslapd
+ exit 1
+ fi
+ fi
+ fi
+ if test -x $TESTDIR/$subdir/change.sh ; then
+ $TESTDIR/$subdir/change.sh > change.out
+ if test -r $TESTDIR/$subdir/change.txt ; then
+ if cmp $TESTDIR/$subdir/change.txt change.out ; then
+ diff -u $TESTDIR/$subdir/change.txt change.out
+ stopslapd
+ exit 1
+ fi
+ fi
+ fi
+ if test -x $TESTDIR/$subdir/after.sh ; then
+ $TESTDIR/$subdir/after.sh > after.out
+ if test -r $TESTDIR/$subdir/after.txt ; then
+ if cmp $TESTDIR/$subdir/after.txt after.out ; then
+ diff -u $TESTDIR/$subdir/after.txt after.out
+ stopslapd
+ exit 1
+ fi
+ fi
+ fi
+ stopslapd
+ popd > /dev/null
+done
+exit 0
diff --git a/tests/slapd.sh.in b/tests/slapd.sh.in
index 10256b5..8909bbc 100644
--- a/tests/slapd.sh.in
+++ b/tests/slapd.sh.in
@@ -2,22 +2,62 @@
SLAPD=@SLAPD@
TESTDIR=@abs_srcdir@
STATEDIR=@abs_builddir@/state
+
+YP="@abs_builddir@/clients/yp -p @test_nisport@"
+export YP
+
+PORT=@test_ldapport@
+export PORT
+PW=password
+export PW
+add() {
+ ldapadd -h localhost -p $PORT -x -D "cn=Directory Manager" -w $PW "$@"
+}
+modify() {
+ ldapmodify -h localhost -p $PORT -x -D "cn=Directory Manager" -w $PW "$@"
+}
+modrdn() {
+ ldapmodrdn -h localhost -p $PORT -x -D "cn=Directory Manager" -w $PW "$@"
+}
+delete() {
+ ldapdelete -h localhost -p $PORT -x -D "cn=Directory Manager" -w $PW "$@"
+}
+search() {
+ ldapsearch -h localhost -p $PORT -x -D "cn=Directory Manager" -w $PW "$@"
+}
+compare() {
+ ldapcompare -h localhost -p $PORT -x -D "cn=Directory Manager" -w $PW "$@"
+}
+export -f add modify modrdn delete search compare
+
rm -rf $STATEDIR/db
for subdir in bak db/userRoot ldif lock log tmp ; do
test -d $STATEDIR/$subdir || mkdir -p $STATEDIR/$subdir
done
+stopslapd() {
+ if test -s $STATEDIR/pid ; then
+ pid=`cat $STATEDIR/pid`
+ kill -s HUP $pid 2> /dev/null
+ sleep 1
+ if kill -s 0 $pid 2> /dev/null ; then
+ kill $pid 2> /dev/null
+ sleep 1
+ if kill -s 0 $pid 2> /dev/null ; then
+ kill -s 9 $pid 2> /dev/null
+ sleep 1
+ fi
+ fi
+ if ! kill -s 0 $pid 2> /dev/null ; then
+ rm -f $STATEDIR/pid
+ fi
+ fi
+}
startslapd() {
+ stopslapd
cat $TESTDIR/config/dse.ldif.initial > $TESTDIR/config/dse.ldif
- if test -n "$1" ; then
+ if test -n "$1" && test -s "$1" ; then
cat "$1" >> $TESTDIR/config/dse.ldif
fi
@NIS_PLUGIN_CONTINUE_WITHOUT_PORTMAP_ENV@=1 \
$SLAPD -D $TESTDIR/config -i $STATEDIR/pid -w $STATEDIR/pid
}
-stopslapd() {
- if test -s $STATEDIR/pid ; then
- if kill `cat $STATEDIR/pid` ; then
- rm -f $STATEDIR/pid
- fi
- fi
-}