diff options
author | Nalin Dahyabhai <nalin@dahyabhai.net> | 2013-08-08 17:35:00 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin@dahyabhai.net> | 2013-08-12 16:21:12 -0400 |
commit | 9734a102db293b64ee52b2f0f80b60434595761d (patch) | |
tree | 7eb16f9a275b4041f4fb5c0beae22d1bec9fce74 | |
parent | 95e68008981d53d213786d434e6eca0d6095070f (diff) | |
download | slapi-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-x | tests/run-tests.sh | 18 | ||||
-rw-r--r-- | tests/slapd.sh.in | 16 |
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 |