libtool-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Libtool branch, master, updated. v2.2.6-89-gaf91ea1


From: Ralf Wildenhues
Subject: [SCM] GNU Libtool branch, master, updated. v2.2.6-89-gaf91ea1
Date: Sat, 31 Jan 2009 15:10:19 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Libtool".

The branch, master has been updated
       via  af91ea10b4af5fbf5ed5b2010295fef61cfdcf97 (commit)
      from  92a785fd7eadea8db2f1b81ed0425fb93cf62874 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit af91ea10b4af5fbf5ed5b2010295fef61cfdcf97
Author: Jeff Squyres <address@hidden>
Date:   Sat Jan 31 16:04:07 2009 +0100

    New test for bogus lt_dlopen error message.
    
    * tests/lt_dlopen.at (lt_dlopen error messages): New file, new
    test, marked as XFAIL for now.
    * Makefile.am: Adjust.
    Report and reproducible test case by Jeff Squyres.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog          |    9 +++++
 Makefile.am        |    1 +
 tests/lt_dlopen.at |  103 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 113 insertions(+), 0 deletions(-)
 create mode 100644 tests/lt_dlopen.at

diff --git a/ChangeLog b/ChangeLog
index 53917f4..7fb1de3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-01-31  Jeff Squyres <address@hidden>
+           Ralf Wildenhues  <address@hidden>
+
+       New test for bogus lt_dlopen error message.
+       * tests/lt_dlopen.at (lt_dlopen error messages): New file, new
+       test, marked as XFAIL for now.
+       * Makefile.am: Adjust.
+       Report and reproducible test case by Jeff Squyres.
+
 2009-01-31  Ralf Wildenhues  <address@hidden>
 
        execute mode: do not transform *.lo or *.la arguments.
diff --git a/Makefile.am b/Makefile.am
index b6b1bfa..0a3e69d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -477,6 +477,7 @@ TESTSUITE_AT        = tests/testsuite.at \
                  tests/am-subdir.at \
                  tests/lt_dlexit.at \
                  tests/lt_dladvise.at \
+                 tests/lt_dlopen.at \
                  tests/ltdl-api.at \
                  tests/need_lib_prefix.at \
                  tests/standalone.at \
diff --git a/tests/lt_dlopen.at b/tests/lt_dlopen.at
new file mode 100644
index 0000000..0aae2f8
--- /dev/null
+++ b/tests/lt_dlopen.at
@@ -0,0 +1,103 @@
+# lt_dlopen.at -- test libltdl functionality                -*- Autotest -*-
+#
+#   Copyright (C) 2009 Free Software Foundation, Inc.
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+####
+
+AT_SETUP([lt_dlopen error messages])
+AT_KEYWORDS([libltdl])
+
+# The bug is not fixed:
+AT_XFAIL_IF([:])
+
+# This test only works if the system allows undefined symbols.
+eval `$LIBTOOL --config | grep '^allow_undefined_flag='`
+AT_CHECK([test unsupported != "$allow_undefined_flag" || exit 77])
+
+AT_DATA([main.c],
+[[#include <ltdl.h>
+#include <stdio.h>
+
+int
+main (int argc, char* argv[])
+{
+  int err = 0;
+  lt_dlhandle plugin_handle;
+
+  if (argc < 2)
+    {
+      fprintf (stderr, "usage: %s plugin\n", argv[0]);
+      return 1;
+    }
+
+  lt_dlinit ();
+  plugin_handle = lt_dlopenext (argv[1]);
+  if (NULL != plugin_handle)
+    {
+      printf ("plugin opened successfully!\n");
+      lt_dlclose (plugin_handle);
+    }
+  else
+    {
+      printf ("plugin failed to open: %s\n", lt_dlerror());
+      err = 1;
+    }
+  lt_dlexit ();
+  return err;
+}
+]])
+
+AT_DATA([good-plugin.c],
+[[int foo;
+int *i = &foo;
+]])
+
+AT_DATA([missing-symbol-plugin.c],
+[[/* On systems that allow undefined symbols, this will compile,
+     but the symbol "foo" won't be found at runtime */
+extern int foo;
+int *i = &foo;
+]])
+
+: ${LTDLINCL="-I$abs_top_srcdir/libltdl"}
+: ${LIBLTDL="$abs_builddir/../libltdl/libltdlc.la"}
+
+CPPFLAGS="$LTDLINCL $CPPFLAGS"
+inst=`pwd`/inst
+libdir=$inst/lib
+
+AT_CHECK([$CC $CPPFLAGS $CFLAGS -c main.c], [], [ignore], [ignore])
+for file in good-plugin.c missing-symbol-plugin.c; do
+  AT_CHECK([$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c $file],
+          [], [ignore], [ignore])
+done
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o good-plugin.la -rpath 
$libdir ]dnl
+        [-module -avoid-version good-plugin.lo], [], [ignore], [ignore])
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o 
missing-symbol-plugin.la -rpath $libdir]dnl
+        [-module -avoid-version missing-symbol-plugin.lo], [], [ignore], 
[ignore])
+
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main$EXEEXT 
main.$OBJEXT ]dnl
+        [-dlopen good-plugin.la -dlopen missing-symbol-plugin.la $LIBLTDL],
+        [], [ignore], [ignore])
+
+LT_AT_EXEC_CHECK([./main], [], [ignore], [ignore], [./good-plugin.la])
+LT_AT_EXEC_CHECK([./main], [1], [ignore], [stderr], 
[./missing-symbol-plugin.la])
+AT_CHECK([grep 'missing symbol' stderr], [], [ignore])
+
+AT_CLEANUP


hooks/post-receive
--
GNU Libtool




reply via email to

[Prev in Thread] Current Thread [Next in Thread]