diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2013-04-03 01:03:15 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2013-04-03 01:03:15 (GMT) |
commit | 98db39f847586d5c6335dcaeb060b22b5681f834 (patch) | |
tree | eb07978a6e685c4eaa70ef1bb6b5901743d45b41 /test | |
parent | cb27338522979ab956f55a6694635a1ed82506a5 (diff) | |
download | hdf5-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')
-rw-r--r-- | test/test_plugin.sh.in | 52 |
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 |