summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin@dahyabhai.net>2013-08-08 17:35:00 -0400
committerNalin Dahyabhai <nalin@dahyabhai.net>2013-08-12 16:21:12 -0400
commit9734a102db293b64ee52b2f0f80b60434595761d (patch)
tree7eb16f9a275b4041f4fb5c0beae22d1bec9fce74
parent95e68008981d53d213786d434e6eca0d6095070f (diff)
downloadslapi-nis-9734a102db293b64ee52b2f0f80b60434595761d.tar.gz
slapi-nis-9734a102db293b64ee52b2f0f80b60434595761d.tar.xz
slapi-nis-9734a102db293b64ee52b2f0f80b60434595761d.zip
Add support logic for wrappers.so
If a test includes "plugin-need-wrappers.txt", LD_PRELOAD wrappers.so if we built it, and set any variables which are listed in the text file.
-rwxr-xr-xtests/run-tests.sh18
-rw-r--r--tests/slapd.sh.in16
2 files changed, 30 insertions, 4 deletions
diff --git a/tests/run-tests.sh b/tests/run-tests.sh
index aba19a8..5915dfe 100755
--- a/tests/run-tests.sh
+++ b/tests/run-tests.sh
@@ -50,13 +50,25 @@ for subdir in "$@" ; do
continue
fi
fi
+ if test -s $TESTDIR/$TEST/plugin-need-wrappers.txt ; then
+ if ! test -s ${BTESTDIR}/wrappers.so ; then
+ echo Skipping "$TEST", needs test wrappers.
+ continue
+ fi
+ fi
if test -x edit-dse-config.sh ; then
precmd="$TESTDIR/$subdir/edit-dse-config.sh $BTESTDIR/config/dse.ldif"
fi
startslapd $TESTDIR/$subdir/dse.ldif $TESTDIR/$subdir/userRoot.ldif "$precmd"
+ if test -s $TESTDIR/$TEST/plugin-need-wrappers.txt ; then
+ ENVCMD="`cat $TESTDIR/$TEST/plugin-need-wrappers.txt`"
+ ENVCMD=env\ `eval echo $ENVCMD`
+ else
+ ENVCMD=
+ fi
if test -x $TESTDIR/$subdir/before.sh ; then
settle
- $TESTDIR/$subdir/before.sh > before.out 2>&1
+ $ENVCMD $TESTDIR/$subdir/before.sh > before.out 2>&1
if test -r $TESTDIR/$subdir/before.txt ; then
if ! compare $TESTDIR/$subdir/before.txt before.out ; then
echo `basename "$subdir"`:
@@ -68,7 +80,7 @@ for subdir in "$@" ; do
fi
if test -x $TESTDIR/$subdir/change.sh ; then
settle
- $TESTDIR/$subdir/change.sh > change.out 2>&1
+ $ENVCMD $TESTDIR/$subdir/change.sh > change.out 2>&1
if test -r $TESTDIR/$subdir/change.txt ; then
if ! compare $TESTDIR/$subdir/change.txt change.out ; then
echo `basename "$subdir"`:
@@ -80,7 +92,7 @@ for subdir in "$@" ; do
fi
if test -x $TESTDIR/$subdir/after.sh ; then
settle
- $TESTDIR/$subdir/after.sh > after.out 2>&1
+ $ENVCMD $TESTDIR/$subdir/after.sh > after.out 2>&1
if test -r $TESTDIR/$subdir/after.txt ; then
if ! compare $TESTDIR/$subdir/after.txt after.out ; then
echo `basename "$subdir"`:
diff --git a/tests/slapd.sh.in b/tests/slapd.sh.in
index 0713ddc..edb8a22 100644
--- a/tests/slapd.sh.in
+++ b/tests/slapd.sh.in
@@ -91,11 +91,25 @@ startslapd() {
exit 1
fi
fi
+ old_ld_preload="$LD_PRELOAD"
+ if test -s $TESTDIR/$TEST/plugin-need-wrappers.txt ; then
+ ENVCMD="`cat $TESTDIR/$TEST/plugin-need-wrappers.txt`"
+ ENVCMD=env\ `eval echo $ENVCMD`
+ LD_PRELOAD=$BTESTDIR/wrappers.so${LD_PRELOAD:+:$LD_PRELOAD}
+ export LD_PRELOAD
+ else
+ ENVCMD=
+ fi
@NIS_PLUGIN_CONTINUE_WITHOUT_PORTMAP_ENV@=1 \
@NIS_PLUGIN_PROCESS_UNINTERESTING_UPDATES_ENV@=$process_all \
@SCHEMA_COMPAT_PLUGIN_PROCESS_UNINTERESTING_UPDATES_ENV@=$process_all \
- @TRACE_CMD@ \
+ $ENVCMD @TRACE_CMD@ \
$SLAPD -D $BTESTDIR/config -i $STATEDIR/pid -w $STATEDIR/pid
+ if test -n "$old_ld_preload" ; then
+ LD_PRELOAD="$old_ld_preload"
+ else
+ unset LD_PRELOAD
+ fi
if ! add -f $BTESTDIR/config/userRoot.ldif > /dev/null 2> /dev/null ; then
local i
local max=60