mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
* Add show option * remove non-static libs and correct names of static libs * Fixup the pkg-config libs and comp builds * Fix commands and add fortran pkg-config test scripts * Add help usage option
This commit is contained in:
Executable
+221
@@ -0,0 +1,221 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of HDF5. The full HDF5 copyright notice, including
|
||||
# terms governing use, modification, and redistribution, is contained in
|
||||
# the COPYING file, which can be found at the root of the source code
|
||||
# distribution tree, or in https://www.hdfgroup.org/licenses.
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
|
||||
# This file is for use of h5cc created with the CMake process
|
||||
# HDF5_HOME is expected to be set
|
||||
|
||||
srcdir=..
|
||||
builddir=.
|
||||
verbose=yes
|
||||
nerrors=0
|
||||
|
||||
# HDF5 compile commands, assuming they are in your $PATH.
|
||||
H5CC=$HDF5_HOME/bin/h5cc
|
||||
LD_LIBRARY_PATH=$HDF5_HOME/lib
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
if ! test -f $H5CC; then
|
||||
echo "Set paths for H5CC and LD_LIBRARY_PATH in test.sh"
|
||||
echo "Set environment variable HDF5_HOME to the hdf5 install dir"
|
||||
echo "h5cc was not found at $H5CC"
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
|
||||
H5DUMP=`echo $H5CC | sed -e 's/\/[^/]*$/\/h5dump/'`;
|
||||
H5_LIBVER=$($H5CC -showconfig | grep -i "HDF5 Version:" | sed 's/^.* //g' | sed 's/[-].*//g')
|
||||
H5_APIVER=$($H5CC -showconfig | grep -i "Default API mapping:" | sed 's/^.* //g' | sed 's/v//g' | sed 's/1/1_/')
|
||||
|
||||
H5_MAJORVER=$(echo $H5_LIBVER | cut -f1 -d'.' | sed -E 's/\./_/g')
|
||||
H5_MINORVER=$(echo $H5_LIBVER | cut -f2 -d'.' | sed -E 's/\./_/g')
|
||||
H5_RELEASEVER=$(echo $H5_LIBVER | cut -f3 -d'.' | sed -E 's/\./_/g')
|
||||
H5_LIBVER_DIR=$H5_MAJORVER$H5_MINORVER
|
||||
|
||||
# Shell commands used in Makefiles
|
||||
RM="rm -rf"
|
||||
DIFF="diff -c"
|
||||
CMP="cmp -s"
|
||||
GREP='grep'
|
||||
CP="cp -p" # Use -p to preserve mode,ownership,timestamps
|
||||
DIRNAME='dirname'
|
||||
LS='ls'
|
||||
AWK='awk'
|
||||
|
||||
# setup plugin path
|
||||
ENVCMD="env HDF5_PLUGIN_PATH=$LD_LIBRARY_PATH/plugin"
|
||||
|
||||
TESTDIR=$builddir
|
||||
|
||||
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ECHO_C='
|
||||
' ;;
|
||||
*c*,* ) ECHO_N=-n ECHO_C= ;;
|
||||
*) ECHO_N= ECHO_C='\c' ;;
|
||||
esac
|
||||
ECHO_N="echo $ECHO_N"
|
||||
|
||||
|
||||
exout() {
|
||||
$*
|
||||
}
|
||||
|
||||
dumpout() {
|
||||
$H5DUMP $*
|
||||
}
|
||||
|
||||
# compare current version, required version.
|
||||
# returns if cur_ver < req_ver is true.
|
||||
version_compare() {
|
||||
version_lt=0
|
||||
if [ ! "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]; then
|
||||
version_lt=1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
topics="alloc checksum chunk compact extern fillval gzip hyper \
|
||||
rdwr shuffle szip unlimadd unlimgzip unlimmod"
|
||||
topics18=""
|
||||
|
||||
version_compare "$H5_LIBVER" "1.8.0"
|
||||
# check if HDF5 version is < 1.8.0
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
dir16="/16"
|
||||
else
|
||||
dir16=""
|
||||
topics18="nbit sofloat soint transform"
|
||||
fi
|
||||
|
||||
return_val=0
|
||||
|
||||
#Remove external data file from h5ex_d_extern
|
||||
rm -f h5ex_d_extern.data
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
$H5CC $srcdir/h5ex_d_$topic.c -o h5ex_d_$topic
|
||||
done
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
fname=h5ex_d_$topic
|
||||
$ECHO_N "Testing C/H5D/$fname...$ECHO_C"
|
||||
exout .$dir16/$fname >tmp.test
|
||||
status=$?
|
||||
if test $status -eq 1
|
||||
then
|
||||
echo " Unsupported feature"
|
||||
status=0
|
||||
else
|
||||
cmp -s tmp.test $srcdir/tfiles/16/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
dumpout $fname.h5 >tmp.test
|
||||
rm -f $fname.h5
|
||||
cmp -s tmp.test $srcdir/tfiles/16/$fname.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
fi
|
||||
done
|
||||
|
||||
#######Non-standard tests#######
|
||||
USE_ALT=""
|
||||
### Set default tfiles directory for tests
|
||||
nbitdir="18"
|
||||
version_compare "$H5_LIBVER" "1.8.23"
|
||||
# check if HDF5 version is < 1.8.23
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
USE_ALT="22"
|
||||
else
|
||||
# check if HDF5 version is >= 1.10.0 and < 1.10.8
|
||||
version_compare "$H5_LIBVER" "1.10.0"
|
||||
if [ "$version_lt" = 0 ]; then
|
||||
version_compare "$H5_LIBVER" "1.10.8"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
USE_ALT="07"
|
||||
nbitdir="110"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
for topic in $topics18
|
||||
do
|
||||
$H5CC $srcdir/h5ex_d_$topic.c -o h5ex_d_$topic
|
||||
done
|
||||
|
||||
for topic in $topics18
|
||||
do
|
||||
fname=h5ex_d_$topic
|
||||
$ECHO_N "Testing C/H5D/$fname...$ECHO_C"
|
||||
exout ./$fname >tmp.test
|
||||
status=$?
|
||||
if test $status -eq 1
|
||||
then
|
||||
echo " Unsupported feature"
|
||||
status=0
|
||||
else
|
||||
if [[ $fname == "h5ex_d_nbit" ]]
|
||||
then
|
||||
tdir=$nbitdir
|
||||
if [[ $USE_ALT == "" ]]
|
||||
then
|
||||
### set USE_ALT=07 if not set above
|
||||
USE_ALT="07"
|
||||
fi
|
||||
else
|
||||
tdir=18
|
||||
### unset USE_ALT for the other topics
|
||||
USE_ALT=""
|
||||
fi
|
||||
cmp -s tmp.test $srcdir/tfiles/18/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
if [[ $fname == "h5ex_d_transform" ]]
|
||||
then
|
||||
targ="-n"
|
||||
else
|
||||
targ=""
|
||||
fi
|
||||
dumpout $targ $fname.h5 >tmp.test
|
||||
rm -f $fname.h5
|
||||
cmp -s tmp.test $srcdir/tfiles/$tdir/$fname$USE_ALT.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
#Remove external data file from h5ex_d_extern
|
||||
rm -f h5ex_d_extern.data
|
||||
rm -f tmp.test
|
||||
echo "$return_val tests failed in C/H5D/"
|
||||
exit $return_val
|
||||
Executable
+235
@@ -0,0 +1,235 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# Copyright by the Board of Trustees of the University of Illinois.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of HDF5. The full HDF5 copyright notice, including
|
||||
# terms governing use, modification, and redistribution, is contained in
|
||||
# the COPYING file, which can be found at the root of the source code
|
||||
# distribution tree, or in https://www.hdfgroup.org/licenses.
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
|
||||
# This file is for use of h5cc created with the CMake process
|
||||
# HDF5_HOME is expected to be set
|
||||
|
||||
srcdir=..
|
||||
builddir=.
|
||||
verbose=yes
|
||||
nerrors=0
|
||||
|
||||
# HDF5 compile commands, assuming they are in your $PATH.
|
||||
H5CC=$HDF5_HOME/bin/h5cc
|
||||
LD_LIBRARY_PATH=$HDF5_HOME/lib
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
if ! test -f $H5CC; then
|
||||
echo "Set paths for H5CC and LD_LIBRARY_PATH in test.sh"
|
||||
echo "Set environment variable HDF5_HOME to the hdf5 install dir"
|
||||
echo "h5cc was not found at $H5CC"
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
|
||||
H5DUMP=`echo $H5CC | sed -e 's/\/[^/]*$/\/h5dump/'`;
|
||||
H5_LIBVER=$($H5CC -showconfig | grep -i "HDF5 Version:" | sed 's/^.* //g' | sed 's/[-].*//g')
|
||||
H5_APIVER=$($H5CC -showconfig | grep -i "Default API mapping:" | sed 's/^.* //g' | sed 's/v//g' | sed 's/1/1_/')
|
||||
|
||||
H5_MAJORVER=$(echo $H5_LIBVER | cut -f1 -d'.' | sed -E 's/\./_/g')
|
||||
H5_MINORVER=$(echo $H5_LIBVER | cut -f2 -d'.' | sed -E 's/\./_/g')
|
||||
H5_RELEASEVER=$(echo $H5_LIBVER | cut -f3 -d'.' | sed -E 's/\./_/g')
|
||||
H5_LIBVER_DIR=$H5_MAJORVER$H5_MINORVER
|
||||
|
||||
# Shell commands used in Makefiles
|
||||
RM="rm -rf"
|
||||
DIFF="diff -c"
|
||||
CMP="cmp -s"
|
||||
GREP='grep'
|
||||
CP="cp -p" # Use -p to preserve mode,ownership,timestamps
|
||||
DIRNAME='dirname'
|
||||
LS='ls'
|
||||
AWK='awk'
|
||||
|
||||
# setup plugin path
|
||||
ENVCMD="env HDF5_PLUGIN_PATH=$LD_LIBRARY_PATH/plugin"
|
||||
|
||||
TESTDIR=$builddir
|
||||
|
||||
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ECHO_C='
|
||||
' ;;
|
||||
*c*,* ) ECHO_N=-n ECHO_C= ;;
|
||||
*) ECHO_N= ECHO_C='\c' ;;
|
||||
esac
|
||||
ECHO_N="echo $ECHO_N"
|
||||
|
||||
|
||||
exout() {
|
||||
$*
|
||||
}
|
||||
|
||||
dumpout() {
|
||||
$H5DUMP $*
|
||||
}
|
||||
|
||||
$H5CC $srcdir/h5ex_g_create.c -o h5ex_g_create
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_create...$ECHO_C"
|
||||
./h5ex_g_create
|
||||
dumpout h5ex_g_create.h5 >tmp.test
|
||||
rm -f h5ex_g_create.h5
|
||||
cmp -s tmp.test $srcdir/tfiles/16/h5ex_g_create.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
|
||||
$H5CC $srcdir/h5ex_g_iterate.c -o h5ex_g_iterate
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_iterate...$ECHO_C"
|
||||
if test -f h5ex_g_iterate.h5
|
||||
then
|
||||
exout ./h5ex_g_iterate >tmp.test
|
||||
else
|
||||
cp $srcdir/h5ex_g_iterate.h5 h5ex_g_iterate.h5
|
||||
exout ./h5ex_g_iterate >tmp.test
|
||||
rm -f h5ex_g_iterate.h5
|
||||
fi
|
||||
cmp -s tmp.test $srcdir/tfiles/16/h5ex_g_iterate.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
|
||||
$H5CC $srcdir/h5ex_g_traverse.c -o h5ex_g_traverse
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_traverse...$ECHO_C"
|
||||
if test -f h5ex_g_traverse.h5
|
||||
then
|
||||
exout ./h5ex_g_traverse >tmp.test
|
||||
else
|
||||
cp $srcdir/h5ex_g_traverse.h5 h5ex_g_traverse.h5
|
||||
exout ./h5ex_g_traverse >tmp.test
|
||||
rm -f h5ex_g_traverse.h5
|
||||
fi
|
||||
cmp -s tmp.test $srcdir/tfiles/16/h5ex_g_traverse.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
|
||||
$H5CC $srcdir/h5ex_g_visit.c -o h5ex_g_visit
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_visit...$ECHO_C"
|
||||
if test -f h5ex_g_visit.h5
|
||||
then
|
||||
exout ./h5ex_g_visit >tmp.test
|
||||
else
|
||||
cp $srcdir/h5ex_g_visit.h5 h5ex_g_visit.h5
|
||||
exout ./h5ex_g_visit >tmp.test
|
||||
rm -f h5ex_g_visit.h5
|
||||
fi
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_visit.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
|
||||
$H5CC $srcdir/h5ex_g_compact.c -o h5ex_g_compact
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_compact...$ECHO_C"
|
||||
exout ./h5ex_g_compact >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_compact.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
dumpout h5ex_g_compact1.h5 >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_compact1.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
dumpout h5ex_g_compact2.h5 >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_compact2.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
rm -f h5ex_g_compact1.h5
|
||||
rm -f h5ex_g_compact2.h5
|
||||
|
||||
$H5CC $srcdir/h5ex_g_phase.c -o h5ex_g_phase
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_phase...$ECHO_C"
|
||||
exout ./h5ex_g_phase >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_phase.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
rm -f h5ex_g_phase.h5
|
||||
|
||||
$H5CC $srcdir/h5ex_g_corder.c -o h5ex_g_corder
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_corder...$ECHO_C"
|
||||
exout ./h5ex_g_corder >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_corder.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
rm -f h5ex_g_corder.h5
|
||||
|
||||
$H5CC $srcdir/h5ex_g_intermediate.c -o h5ex_g_intermediate
|
||||
|
||||
$ECHO_N "Testing C/H5G/h5ex_g_intermediate...$ECHO_C"
|
||||
exout ./h5ex_g_intermediate >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/18/h5ex_g_intermediate.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
rm -f h5ex_g_intermediate.h5
|
||||
|
||||
|
||||
rm -f tmp.test
|
||||
echo "$return_val tests failed in C/H5G/"
|
||||
exit $return_val
|
||||
Executable
+250
@@ -0,0 +1,250 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# Copyright by the Board of Trustees of the University of Illinois.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of HDF5. The full HDF5 copyright notice, including
|
||||
# terms governing use, modification, and redistribution, is contained in
|
||||
# the COPYING file, which can be found at the root of the source code
|
||||
# distribution tree, or in https://www.hdfgroup.org/licenses.
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
|
||||
# This file is for use of h5cc created with the CMake process
|
||||
# HDF5_HOME is expected to be set
|
||||
|
||||
srcdir=..
|
||||
builddir=.
|
||||
verbose=yes
|
||||
nerrors=0
|
||||
|
||||
# HDF5 compile commands, assuming they are in your $PATH.
|
||||
H5CC=$HDF5_HOME/bin/h5cc
|
||||
LD_LIBRARY_PATH=$HDF5_HOME/lib
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
if ! test -f $H5CC; then
|
||||
echo "Set paths for H5CC and LD_LIBRARY_PATH in test.sh"
|
||||
echo "Set environment variable HDF5_HOME to the hdf5 install dir"
|
||||
echo "h5cc was not found at $H5CC"
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
|
||||
H5DUMP=`echo $H5CC | sed -e 's/\/[^/]*$/\/h5dump/'`;
|
||||
H5_LIBVER=$($H5CC -showconfig | grep -i "HDF5 Version:" | sed 's/^.* //g' | sed 's/[-].*//g')
|
||||
H5_APIVER=$($H5CC -showconfig | grep -i "Default API mapping:" | sed 's/^.* //g' | sed 's/v//g' | sed 's/1/1_/')
|
||||
|
||||
H5_MAJORVER=$(echo $H5_LIBVER | cut -f1 -d'.' | sed -E 's/\./_/g')
|
||||
H5_MINORVER=$(echo $H5_LIBVER | cut -f2 -d'.' | sed -E 's/\./_/g')
|
||||
H5_RELEASEVER=$(echo $H5_LIBVER | cut -f3 -d'.' | sed -E 's/\./_/g')
|
||||
H5_LIBVER_DIR=$H5_MAJORVER$H5_MINORVER
|
||||
|
||||
# Shell commands used in Makefiles
|
||||
RM="rm -rf"
|
||||
DIFF="diff -c"
|
||||
CMP="cmp -s"
|
||||
GREP='grep'
|
||||
CP="cp -p" # Use -p to preserve mode,ownership,timestamps
|
||||
DIRNAME='dirname'
|
||||
LS='ls'
|
||||
AWK='awk'
|
||||
|
||||
# setup plugin path
|
||||
ENVCMD="env HDF5_PLUGIN_PATH=$LD_LIBRARY_PATH/plugin"
|
||||
|
||||
TESTDIR=$builddir
|
||||
|
||||
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ECHO_C='
|
||||
' ;;
|
||||
*c*,* ) ECHO_N=-n ECHO_C= ;;
|
||||
*) ECHO_N= ECHO_C='\c' ;;
|
||||
esac
|
||||
ECHO_N="echo $ECHO_N"
|
||||
|
||||
|
||||
exout() {
|
||||
$*
|
||||
}
|
||||
|
||||
dumpout() {
|
||||
$H5DUMP $*
|
||||
}
|
||||
|
||||
# compare current version, required version.
|
||||
# returns if cur_ver < req_ver is true.
|
||||
version_compare() {
|
||||
version_lt=0
|
||||
if [ ! "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]; then
|
||||
version_lt=1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
topics="array arrayatt bit bitatt cmpd cmpdatt cpxcmpd cpxcmpdatt enum enumatt float floatatt \
|
||||
int intatt opaque opaqueatt string stringatt vlstring vlstringatt \
|
||||
commit"
|
||||
|
||||
return_val=0
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
$H5CC $srcdir/h5ex_t_$topic.c -o h5ex_t_$topic
|
||||
done
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
fname=h5ex_t_$topic
|
||||
$ECHO_N "Testing C/H5T/$fname...$ECHO_C"
|
||||
exout ./$fname >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/16/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
if [[ $fname == "h5ex_t_cpxcmpd" || $fname == "h5ex_t_cpxcmpdatt" ]]
|
||||
then
|
||||
targ="-n"
|
||||
else
|
||||
targ=""
|
||||
fi
|
||||
dumpout $targ $fname.h5 >tmp.test
|
||||
rm -f $fname.h5
|
||||
cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
done
|
||||
|
||||
|
||||
#######Non-standard tests#######
|
||||
|
||||
USE_ALT=""
|
||||
if [ "$H5_LIBVER_DIR" = "110" ]; then
|
||||
# check if HDF5 version is < 1.10.7
|
||||
version_compare "$H5_LIBVER" "1.10.7"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
USE_ALT="06"
|
||||
fi
|
||||
else
|
||||
if [ "$H5_LIBVER_DIR" = "18" ]; then
|
||||
# check if HDF5 version is < 1.8.22
|
||||
version_compare "$H5_LIBVER" "1.8.22"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
USE_ALT="21"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
topics="objref objrefatt regref regrefatt"
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
$H5CC $srcdir/h5ex_t_$topic.c -o h5ex_t_$topic
|
||||
done
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
fname=h5ex_t_$topic
|
||||
$ECHO_N "Testing C/H5T/$fname...$ECHO_C"
|
||||
exout ./$fname >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/16/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
dumpout $fname.h5 >tmp.test
|
||||
rm -f $fname.h5
|
||||
version_compare "$H5_LIBVER" "1.10.0"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
cmp -s tmp.test $srcdir/tfiles/18/$fname$USE_ALT.ddl
|
||||
else
|
||||
version_compare "$H5_LIBVER" "1.12.0"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
version_compare "$H5_LIBVER" "1.10.7"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
cmp -s tmp.test $srcdir/tfiles/110/$fname$USE_ALT.ddl
|
||||
else
|
||||
cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl
|
||||
fi
|
||||
else
|
||||
cmp -s tmp.test $srcdir/tfiles/112/$fname.ddl
|
||||
fi
|
||||
fi
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
done
|
||||
|
||||
topics="vlen vlenatt"
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
$H5CC $srcdir/h5ex_t_$topic.c -o h5ex_t_$topic
|
||||
done
|
||||
|
||||
for topic in $topics
|
||||
do
|
||||
fname=h5ex_t_$topic
|
||||
$ECHO_N "Testing C/H5T/$fname...$ECHO_C"
|
||||
exout ./$fname >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/16/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
dumpout $fname.h5 >tmp.test
|
||||
rm -f $fname.h5
|
||||
version_compare "$H5_LIBVER" "1.14.3"
|
||||
if [ "$version_lt" = 1 ]; then
|
||||
cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl
|
||||
else
|
||||
cmp -s tmp.test $srcdir/tfiles/114/$fname.ddl
|
||||
fi
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
done
|
||||
|
||||
$H5CC $srcdir/h5ex_t_convert.c -o h5ex_t_convert
|
||||
|
||||
fname=h5ex_t_convert
|
||||
$ECHO_N "Testing C/H5T/$fname...$ECHO_C"
|
||||
exout ./$fname >tmp.test
|
||||
cmp -s tmp.test $srcdir/tfiles/16/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
|
||||
|
||||
rm -f tmp.test
|
||||
echo "$return_val tests failed in C/H5T/"
|
||||
exit $return_val
|
||||
@@ -0,0 +1,133 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of HDF5. The full HDF5 copyright notice, including
|
||||
# terms governing use, modification, and redistribution, is contained in
|
||||
# the COPYING file, which can be found at the root of the source code
|
||||
# distribution tree, or in https://www.hdfgroup.org/licenses.
|
||||
# If you do not have access to either file, you may request a copy from
|
||||
# help@hdfgroup.org.
|
||||
|
||||
# This file is for use of h5cc created with the CMake process
|
||||
# HDF5_HOME is expected to be set
|
||||
|
||||
srcdir=..
|
||||
builddir=.
|
||||
verbose=yes
|
||||
nerrors=0
|
||||
|
||||
# HDF5 compile commands, assuming they are in your $PATH.
|
||||
H5CC=$HDF5_HOME/bin/h5cc
|
||||
LD_LIBRARY_PATH=$HDF5_HOME/lib
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
if ! test -f $H5CC; then
|
||||
echo "Set paths for H5CC and LD_LIBRARY_PATH in test.sh"
|
||||
echo "Set environment variable HDF5_HOME to the hdf5 install dir"
|
||||
echo "h5cc was not found at $H5CC"
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
|
||||
H5DUMP=`echo $H5CC | sed -e 's/\/[^/]*$/\/h5dump/'`;
|
||||
H5_LIBVER=$($H5CC -showconfig | grep -i "HDF5 Version:" | sed 's/^.* //g' | sed 's/[-].*//g')
|
||||
H5_APIVER=$($H5CC -showconfig | grep -i "Default API mapping:" | sed 's/^.* //g' | sed 's/v//g' | sed 's/1/1_/')
|
||||
|
||||
H5_MAJORVER=$(echo $H5_LIBVER | cut -f1 -d'.' | sed -E 's/\./_/g')
|
||||
H5_MINORVER=$(echo $H5_LIBVER | cut -f2 -d'.' | sed -E 's/\./_/g')
|
||||
H5_RELEASEVER=$(echo $H5_LIBVER | cut -f3 -d'.' | sed -E 's/\./_/g')
|
||||
H5_LIBVER_DIR=$H5_MAJORVER$H5_MINORVER
|
||||
|
||||
# Shell commands used in Makefiles
|
||||
RM="rm -rf"
|
||||
DIFF="diff -c"
|
||||
CMP="cmp -s"
|
||||
GREP='grep'
|
||||
CP="cp -p" # Use -p to preserve mode,ownership,timestamps
|
||||
DIRNAME='dirname'
|
||||
LS='ls'
|
||||
AWK='awk'
|
||||
|
||||
# setup plugin path
|
||||
ENVCMD="env HDF5_PLUGIN_PATH=$LD_LIBRARY_PATH/plugin"
|
||||
|
||||
TESTDIR=$builddir
|
||||
|
||||
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ECHO_C='
|
||||
' ;;
|
||||
*c*,* ) ECHO_N=-n ECHO_C= ;;
|
||||
*) ECHO_N= ECHO_C='\c' ;;
|
||||
esac
|
||||
ECHO_N="echo $ECHO_N"
|
||||
|
||||
|
||||
exout() {
|
||||
$*
|
||||
}
|
||||
|
||||
dumpout() {
|
||||
$H5DUMP $*
|
||||
}
|
||||
|
||||
# compare current version, required version.
|
||||
# returns if cur_ver < req_ver is true.
|
||||
version_compare() {
|
||||
version_lt=0
|
||||
if [ ! "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]; then
|
||||
version_lt=1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
topics=""
|
||||
topics110="vds vds-exc vds-exclim vds-eiger vds-simpleIO vds-percival vds-percival-unlim vds-percival-unlim-maxmin"
|
||||
|
||||
return_val=0
|
||||
|
||||
version_compare "$H5_LIBVER" "1.10.0"
|
||||
if [ "$version_lt" = 0 ]; then
|
||||
for topic in $topics110
|
||||
do
|
||||
$H5CC $srcdir/h5ex_d_$topic.c -o h5ex_d_$topic
|
||||
done
|
||||
|
||||
for topic in $topics110
|
||||
do
|
||||
fname=h5ex_$topic
|
||||
$ECHO_N "Testing C/H5VDS/$fname...$ECHO_C"
|
||||
exout ./$fname >tmp.test
|
||||
status=$?
|
||||
if test $status -eq 1
|
||||
then
|
||||
echo " Unsupported feature"
|
||||
status=0
|
||||
else
|
||||
cmp -s tmp.test $srcdir/tfiles/110/$fname.tst
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
dumpout $fname.h5 >tmp.test
|
||||
rm -f $fname.h5
|
||||
cmp -s tmp.test $srcdir/tfiles/110/$fname.ddl
|
||||
status=$?
|
||||
if test $status -ne 0
|
||||
then
|
||||
echo " FAILED!"
|
||||
else
|
||||
echo " Passed"
|
||||
fi
|
||||
fi
|
||||
return_val=`expr $status + $return_val`
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
rm -f tmp.test
|
||||
echo "$return_val tests failed in C/H5VDS/"
|
||||
exit $return_val
|
||||
Reference in New Issue
Block a user