summaryrefslogtreecommitdiffstats
path: root/test/test_plugin.sh.in
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2013-04-03 01:03:15 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2013-04-03 01:03:15 (GMT)
commit98db39f847586d5c6335dcaeb060b22b5681f834 (patch)
treeeb07978a6e685c4eaa70ef1bb6b5901743d45b41 /test/test_plugin.sh.in
parentcb27338522979ab956f55a6694635a1ed82506a5 (diff)
downloadhdf5-98db39f847586d5c6335dcaeb060b22b5681f834.zip
hdf5-98db39f847586d5c6335dcaeb060b22b5681f834.tar.gz
hdf5-98db39f847586d5c6335dcaeb060b22b5681f834.tar.bz2
[svn-r23528] Bug fix: Mac system has dynamic library name in the form of libxyz.dylib.
Solution: Changed test_plugin.in to copy library file names in the form of libdynlib{123].*. Another problem: Even when copy failed in copying the libray files (was in the form of *.so*), the test still passed. That was because .libs was included in $HDF5_PLUGIN_PATH and the needed plug in libraries were generated there. Solution: Fixed by copying the plug in library files to separate directories and seetup HDF5_PLUGIN_PATH to include them but NOT .libs. Tested: used desycommittest (duck, emu, jam, koala, ostrich) plus cmakehdf5 in jam.
Diffstat (limited to 'test/test_plugin.sh.in')
-rw-r--r--test/test_plugin.sh.in52
1 files changed, 47 insertions, 5 deletions
diff --git a/test/test_plugin.sh.in b/test/test_plugin.sh.in
index 1d06956..e8e37d0 100644
--- a/test/test_plugin.sh.in
+++ b/test/test_plugin.sh.in
@@ -24,13 +24,22 @@ TOP_BUILDDIR=@top_builddir@
# Determine backward compatibility options enabled
DEPRECATED_SYMBOLS="@DEPRECATED_SYMBOLS@"
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
nerrors=0
verbose=yes
+exit_code=$EXIT_SUCCESS
TEST_NAME=plugin
TEST_BIN=`pwd`/$TEST_NAME
-CP="cp .libs/libdynlib2.so.* /tmp"
-ENVCMD="env HDF5_PLUGIN_PATH=/tmp:`pwd`/.libs"
+FROM_DIR=`pwd`/.libs
+PLUGIN_LIB1="$FROM_DIR/libdynlib1.* $FROM_DIR/libdynlib3.*"
+PLUGIN_LIB2="$FROM_DIR/libdynlib2.*"
+PLUGIN_LIBDIR1=testdir1
+PLUGIN_LIBDIR2=testdir2
+CP="cp -p" # Use -p to preserve mode,ownership,timestamps
+RM="rm -rf"
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
@@ -41,8 +50,37 @@ TESTING() {
}
# Main Body
+# Create test directories if not exists yet.
+test -d $PLUGIN_LIBDIR1 || mkdir -p $PLUGIN_LIBDIR1
+if [ $? != 0 ]; then
+ echo "Failed to create test directory($PLUGIN_LIBDIR1)"
+ exit $EXIT_FAILURE
+fi
+
+test -d $PLUGIN_LIBDIR2 || mkdir -p $PLUGIN_LIBDIR2
+if [ $? != 0 ]; then
+ echo "Failed to create test directory($PLUGIN_LIBDIR2)"
+ exit $EXIT_FAILURE
+fi
+
+# copy plugin library for test
+$CP $PLUGIN_LIB1 $PLUGIN_LIBDIR1
+if [ $? != 0 ]; then
+ echo "Failed to copy plugin library ($PLUGIN_LIB1) for test."
+ exit $EXIT_FAILURE
+fi
+
+$CP $PLUGIN_LIB2 $PLUGIN_LIBDIR2
+if [ $? != 0 ]; then
+ echo "Failed to copy plugin library ($PLUGIN_LIB2) for test."
+ exit $EXIT_FAILURE
+fi
+
+# setup plugin path
+ENVCMD="env HDF5_PLUGIN_PATH=${PLUGIN_LIBDIR1}:${PLUGIN_LIBDIR2}"
+
# Run the test
-$CP; $ENVCMD $TEST_BIN
+$ENVCMD $TEST_BIN
if [ $? != 0 ]; then
nerrors=`expr $nerrors + 1`
fi
@@ -50,8 +88,12 @@ fi
# print results
if test $nerrors -ne 0 ; then
echo "$nerrors errors encountered"
- exit 1
+ exit_code=$EXIT_FAILURE
else
echo "All Plugin API tests passed."
- exit 0
+ exit_code=$EXIT_SUCCESS
fi
+
+# Clean up temporary files/directories and leave
+$RM $PLUGIN_LIBDIR2
+exit $exit_code