#! /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 files COPYING and Copyright.html. COPYING can be found at the root # of the source code distribution tree; Copyright.html can be found at the # root level of an installed copy of the electronic HDF5 document set and # is linked from the top-level documents page. It can also be found at # http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have # access to either file, you may request a copy from help@hdfgroup.org. srcdir=@srcdir@ case $CC in */*) H5DUMP=`echo $CC | sed -e 's/\/[^/]*$/\/h5dump/'`; test -x $H5DUMP || H5DUMP=h5dump;; *) H5DUMP=h5dump;; esac 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 } H5_LIBVER=@H5_LIBVER@ H5_LIBVER_DIR=@H5_LIBVER_DIR@ 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 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 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