* tests/build-relink.test: new; check shlibpath_overrides_runpath

* tests/Makefile.am (TESTS): add build-relink.test; remove
hardcode.test duplicates
* doc/libtool.texi: document it
This commit is contained in:
Alexandre Oliva 1999-03-07 23:28:05 +00:00 committed by Alexandre Oliva
parent e7762d50c6
commit 592c5783b7
4 changed files with 110 additions and 3 deletions

View File

@ -1,5 +1,10 @@
1999-03-07 Alexandre Oliva <oliva@dcc.unicamp.br>
* tests/build-relink.test: new; check shlibpath_overrides_runpath
* tests/Makefile.am (TESTS): add build-relink.test; remove
hardcode.test duplicates
* doc/libtool.texi: document it
* ltmain.in (relink_command): do not prepend cd `pwd` to it, the
scripts already enters the correct directory, and expanding the
pathname would prevent the build tree from moving

View File

@ -2948,6 +2948,12 @@ static and shared libraries, @file{cdemo-static.test} builds only static
libraries (@samp{--disable-shared}), and @file{cdemo-shared.test} builds
only shared libraries (@samp{--disable-static}).
@item build-relink.test
@pindex build-relink.test
Checks whether variable @var{shlibpath_overrides_runpath} is properly
set. If the test fails and @var{VERBOSE} is set, it will indicate what
the variable should have been set to.
@item hardcode.test
@pindex hardcode.test
On all systems with shared libraries, the location of the library can be

View File

@ -3,17 +3,19 @@
AUTOMAKE_OPTIONS = gnits
TESTS = demo-static.test demo-make.test demo-exec.test \
demo-inst.test demo-unst.test hardcode.test \
demo-inst.test demo-unst.test \
mdemo-static.test mdemo-make.test mdemo-exec.test \
mdemo-inst.test mdemo-unst.test \
cdemo-static.test cdemo-make.test cdemo-exec.test \
demo-conf.test demo-make.test demo-exec.test \
demo-inst.test demo-unst.test hardcode.test \
demo-inst.test demo-unst.test \
mdemo-conf.test mdemo-make.test mdemo-exec.test \
mdemo-inst.test mdemo-unst.test \
cdemo-conf.test cdemo-make.test cdemo-exec.test \
demo-shared.test demo-make.test demo-exec.test \
demo-inst.test demo-unst.test hardcode.test \
demo-inst.test \
build-relink.test hardcode.test \
demo-unst.test \
mdemo-shared.test mdemo-make.test mdemo-exec.test \
mdemo-inst.test mdemo-unst.test \
cdemo-shared.test cdemo-make.test cdemo-exec.test \

94
tests/build-relink.test Executable file
View File

@ -0,0 +1,94 @@
#! /bin/sh
# build-relink.test - check to see whether shlibpath overrides runpath
# Test script header.
need_prefix=yes
if test -z "$srcdir"; then
srcdir=`echo "$0" | sed 's%/[^/]*$%%'`
test "$srcdir" = "$0" && srcdir=.
test "${VERBOSE+set}" != "set" && VERBOSE=yes
fi
. $srcdir/defs || exit 1
# Check that things are built.
if test -f ../demo/hell; then :
else
echo "You must run demo-inst.test before $0" 1>&2
exit 1
fi
# Change to our build directory.
cd ../demo || exit 1
# Unfortunately, we need access to libtool internals for this test.
objdir=NONE
eval `egrep -e '^objdir=' ./libtool 2>/dev/null`
if test "$objdir" = NONE; then
echo "objdir not set in ../demo/libtool" 1>&2
exit 1
fi
shlibpath_overrides_runpath=NONE
eval `egrep -e '^shlibpath_overrides_runpath=' ./libtool 2>/dev/null`
if test "$shlibpath_overrides_runpath" = NONE; then
echo "shlibpath_overrides_runpath not set in ../demo/libtool" 1>&2
exit 1
fi
# Check to make sure we have a dynamic library.
library_names=NONE
eval `egrep -e '^library_names=' ./libhello.la 2>/dev/null`
if test "$library_names" = NONE; then
echo "library_names not set in ../demo/libhello.la" 1>&2
exit 1
elif test -z "$library_names"; then
echo "= Exiting: ../demo/libhello.la is not a shared library"
exit 0
fi
./hell # so that it links on-demand if needed
echo "removing libhello.la from ../demo"
rm -f libhello.la $objdir/libhello.*
echo "running ../demo/hell"
if ./hell; then
:
else
echo "= Exiting: ../demo/hell does not run, maybe libhello was not installed"
exit 1
fi
echo "linking a broken ../demo/libhello.la"
if $make libhello.la libhello_la_OBJECTS=; then
:
else
echo "= Exiting: cannot link broken libhello.la"
exit 1
fi
rm -f libhello.la
echo "running ../demo/hell with broken libhello.la"
if ./hell; then
echo "= Exiting: ../demo/hell runs even though libhello.la is incomplete"
echo "shlibpath_overrides_runpath should be set to no"
exit 1
else
echo "Failed, as expected"
fi
if test "$shlibpath_overrides_runpath" != yes; then
rm $objdir/hellT || exit 1
cp $objdir/hell $objdir/hellT || exit 1
echo "running ../demo/hell with installed libhello.la"
if ./hell; then
echo "Worked, as expected"
else
echo "shlibpath_overrides_runpath should be set to yes"
status=1
fi
rm -f $objdir/hellT
fi
exit $status