From: Alexandre Oliva Date: Wed, 7 Apr 1999 00:33:38 +0000 (+0000) Subject: * tests/dryrun.test: We cannot rely on setting LIBTOOL, because X-Git-Tag: release-1-3~66 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6e191173ccb07327adbb35eefd6831ddf388f3f9;p=thirdparty%2Flibtool.git * tests/dryrun.test: We cannot rely on setting LIBTOOL, because automake may use sub-makes, and the setting will not be propagated to them on some makes. Instead, create a dry version of libtool and switch between it and the original one before and after dry runs. * tests/Makefile.am (CLEANFILES): Added libtool-*, created by dryrun.test. --- diff --git a/ChangeLog b/ChangeLog index 91da56a41..d691cd791 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 1999-04-06 Alexandre Oliva + * tests/dryrun.test: We cannot rely on setting LIBTOOL, because + automake may use sub-makes, and the setting will not be propagated + to them on some makes. Instead, create a dry version of libtool + and switch between it and the original one before and after dry + runs. + * tests/Makefile.am (CLEANFILES): Added libtool-*, created by + dryrun.test. + * tests/dryrun.test: Use cmp instead of diff. (before, after): Create them within ../tests. (libtool): Set to `/bin/sh ./libtool' by default, but use LIBTOOL, diff --git a/tests/Makefile.am b/tests/Makefile.am index dac35b836..9f88de049 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -40,7 +40,7 @@ TESTS_ENVIRONMENT = CC="$(CC)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ EXTRA_DIST = defs $(TESTS) -CLEANFILES = before after # created by dryrun.test +CLEANFILES = before after libtool-* # created by dryrun.test # We need to remove any files that the above tests created. clean-local: diff --git a/tests/dryrun.test b/tests/dryrun.test index c1c56943f..58d2abd98 100755 --- a/tests/dryrun.test +++ b/tests/dryrun.test @@ -21,35 +21,51 @@ cd ../mdemo || exit 1 before=../tests/before after=../tests/after -libtool=${LIBTOOL-${SHELL-/bin/sh}\ ${top_builddir-.}/libtool} +normal=../tests/libtool-normal +dry=../tests/libtool-dry +stat= echo "= Running $make clean in ../mdemo" $make clean || exit 1 $make main.o || exit 1 -mkdir .libs -rm -f $before $after + +eval `$libtool --config | grep "^objdir="` + +mkdir $objdir +rm -f $before $after $normal $dry +sed 's/run=/run=:/' < libtool > $dry +chmod +x $dry echo "= Making object files in ../mdemo" -ls -l . .libs > $before -$make LIBTOOL="$libtool -n" foo1.lo foo2.lo || exit 1 -ls -l . .libs > $after +ls -l . $objdir > $before +mv libtool $normal && mv $dry libtool +$make foo1.lo foo2.lo || stat=$? +mv libtool $dry && mv $normal libtool +test -n "$stat" && exit $stat +ls -l . $objdir > $after cmp $before $after > /dev/null || exit 1 # Now really make them $make foo1.lo foo2.lo || exit 1 echo "= Making libraries in ../mdemo" -ls -l . .libs > $before -$make LIBTOOL="$libtool -n" foo1.la libfoo2.la || exit 1 -ls -l . .libs > $after +ls -l . $objdir > $before +mv libtool $normal && mv $dry libtool +$make foo1.la libfoo2.la || stat=$? +mv libtool $dry && mv $normal libtool +test -n "$stat" && exit $stat +ls -l . $objdir > $after cmp $before $after > /dev/null || exit 1 # Now really make them $make foo1.la libfoo2.la || exit 1 echo "= Making programs in ../mdemo" -ls -l . .libs > $before -$make LIBTOOL="$libtool -n" mdemo mdemo.static || exit 1 -ls -l . .libs > $after +ls -l . $objdir > $before +mv libtool $normal && mv $dry libtool +$make mdemo mdemo.static || stat=$? +mv libtool $dry && mv $normal libtool +test -n "$stat" && exit $stat +ls -l . $objdir > $after cmp $before $after > /dev/null || exit 1 # Now really make them $make mdemo mdemo.static || exit 1 @@ -58,31 +74,37 @@ echo "= Running $make install in ../mdemo" # Libtool does not create these directories mkdir $prefix/bin mkdir $prefix/lib -ls -l . .libs > $before +ls -l . $objdir > $before ls -lR $prefix >> $before -$make LIBTOOL="$libtool -n" install || exit 1 -ls -l . .libs > $after +mv libtool $normal && mv $dry libtool +$make install || stat=$? +mv libtool $dry && mv $normal libtool +test -n "$stat" && exit $stat +ls -l . $objdir > $after ls -lR $prefix >> $after cmp $before $after > /dev/null || exit 1 # Now really run it $make install || exit 1 echo "= Running $make uninstall in ../mdemo" -ls -l . .libs > $before +ls -l . $objdir > $before ls -lR $prefix >> $before # Libtool does not uninstall the programs, save them cp $prefix/bin/mdemo mdemo.sav cp $prefix/bin/mdemo.static mdemo.static.sav -$make LIBTOOL="$libtool -n" uninstall || exit 1 +mv libtool $normal && mv $dry libtool +$make uninstall || stat=$? +mv libtool $dry && mv $normal libtool +test -n "$stat" && exit $stat # Restore them mv mdemo.sav $prefix/bin/mdemo mv mdemo.static.sav $prefix/bin/mdemo.static -ls -l . .libs > $after +ls -l . $objdir > $after ls -lR $prefix >> $after cmp $before $after > /dev/null || exit 1 # Now really run it $make uninstall || exit 1 -rm -f $before $after +rm -f $before $after $dry exit 0