]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* tests/build-relink.test: new; check shlibpath_overrides_runpath
authorAlexandre Oliva <oliva@dcc.unicamp.br>
Sun, 7 Mar 1999 23:28:05 +0000 (23:28 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Sun, 7 Mar 1999 23:28:05 +0000 (23:28 +0000)
* tests/Makefile.am (TESTS): add build-relink.test; remove
hardcode.test duplicates
* doc/libtool.texi: document it

ChangeLog
doc/libtool.texi
tests/Makefile.am
tests/build-relink.test [new file with mode: 0755]

index cf2c03ffe48f4d9a087d96ebb01c47a4de96a844..99bea4069e2e7fea65afb47c01e290504b543320 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 6c4f69bc578e992d6ba0c39e87bf30eb0babb97c..fc55b44e6463ef69661750947a97d68927e1fb54 100644 (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
index 776755cf9126330533b840a837c549498cfc2317..d173a2ee32793aa414f4c47334a36e3073527207 100644 (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 \
diff --git a/tests/build-relink.test b/tests/build-relink.test
new file mode 100755 (executable)
index 0000000..1d3a2ee
--- /dev/null
@@ -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