summaryrefslogtreecommitdiffstats
path: root/debian/tests/shlib-build
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests/shlib-build')
-rwxr-xr-xdebian/tests/shlib-build45
1 files changed, 45 insertions, 0 deletions
diff --git a/debian/tests/shlib-build b/debian/tests/shlib-build
new file mode 100755
index 0000000..751fadf
--- /dev/null
+++ b/debian/tests/shlib-build
@@ -0,0 +1,45 @@
+#!/bin/sh
+# autopkgtest check: Build and link against a simple shared library, to test
+# basic binutils compile-time and run-time linking functionality.
+#
+# (C) 2012 Canonical Ltd.
+# Author: Martin Pitt <martin.pitt@ubuntu.com>
+
+set -e
+
+BV=$(sed '/^Depends: gcc-\([0-9.]\+\).*/!d;s//\1/;q' debian/tests/control)
+CC=gcc-$BV
+
+cd "$AUTOPKGTEST_TMP"
+cat <<EOF > testlib.c
+
+int ultimate_answer()
+{
+ return 42;
+}
+EOF
+
+$CC -Wall -Werror -shared -o libultimate.so testlib.c
+echo "library build: OK"
+
+# should export the symbol
+nm -D libultimate.so | grep -q 'T ultimate_answer'
+
+# link it against a program
+cat <<EOF > testprog.c
+#include <assert.h>
+
+int ultimate_answer();
+
+int main()
+{
+ assert (ultimate_answer() == 42);
+ return 0;
+}
+EOF
+
+$CC -Wall -Werror -L . -o testprog testprog.c -lultimate
+echo "program build: OK"
+[ -x testprog ]
+LD_LIBRARY_PATH=. ./testprog
+echo "run: OK"