diff options
Diffstat (limited to 'tools/h5import/h5importtestutil.sh')
-rwxr-xr-x | tools/h5import/h5importtestutil.sh | 144 |
1 files changed, 127 insertions, 17 deletions
diff --git a/tools/h5import/h5importtestutil.sh b/tools/h5import/h5importtestutil.sh index 6dbec84..a3ad057 100755 --- a/tools/h5import/h5importtestutil.sh +++ b/tools/h5import/h5importtestutil.sh @@ -20,9 +20,112 @@ TESTNAME=h5import EXIT_SUCCESS=0 EXIT_FAILURE=1 +CP='cp' + # initialize errors variable nerrors=0 +# The build (current) directory might be different than the source directory. +if test -z "$srcdir"; then + srcdir=. +fi + +# source dirs +SRC_TOOLS="$srcdir/.." +SRC_TOOLS_TESTFILES="$SRC_TOOLS/testfiles" + +# testfiles source dirs for tools +SRC_H5LS_TESTFILES="$SRC_TOOLS_TESTFILES" +SRC_H5DUMP_TESTFILES="$SRC_TOOLS_TESTFILES" +SRC_H5DIFF_TESTFILES="$SRC_TOOLS/h5diff/testfiles" +SRC_H5COPY_TESTFILES="$SRC_TOOLS/h5copy/testfiles" +SRC_H5REPACK_TESTFILES="$SRC_TOOLS/h5repack/testfiles" +SRC_H5JAM_TESTFILES="$SRC_TOOLS/h5jam/testfiles" +SRC_H5STAT_TESTFILES="$SRC_TOOLS/h5stat/testfiles" +SRC_H5IMPORT_TESTFILES="$SRC_TOOLS/h5import/testfiles" + +TESTDIR=./testfiles +test -d $TESTDIR || mkdir $TESTDIR + +###################################################################### +# test files +# -------------------------------------------------------------------- +# All the test files copy from source directory to test directory +# NOTE: Keep this framework to add/remove test files. +# Any test files from other tools can be used in this framework. +# This list are also used for checking exist. +# Comment '#' without space can be used. +# -------------------------------------------------------------------- +LIST_HDF5_TEST_FILES=" +$SRC_H5IMPORT_TESTFILES/binfp64.h5 +$SRC_H5IMPORT_TESTFILES/binin8.h5 +$SRC_H5IMPORT_TESTFILES/binin8w.h5 +$SRC_H5IMPORT_TESTFILES/binin16.h5 +$SRC_H5IMPORT_TESTFILES/binin32.h5 +$SRC_H5IMPORT_TESTFILES/binuin16.h5 +$SRC_H5IMPORT_TESTFILES/binuin32.h5 +$SRC_H5IMPORT_TESTFILES/txtfp32.h5 +$SRC_H5IMPORT_TESTFILES/txtfp64.h5 +$SRC_H5IMPORT_TESTFILES/txtin8.h5 +$SRC_H5IMPORT_TESTFILES/txtin16.h5 +$SRC_H5IMPORT_TESTFILES/txtin32.h5 +$SRC_H5IMPORT_TESTFILES/txtuin16.h5 +$SRC_H5IMPORT_TESTFILES/txtuin32.h5 +$SRC_H5IMPORT_TESTFILES/txtstr.h5 +$SRC_H5IMPORT_TESTFILES/test15.h5 +" + +LIST_OTHER_TEST_FILES=" +$SRC_H5IMPORT_TESTFILES/binfp64.conf +$SRC_H5IMPORT_TESTFILES/binin8.conf +$SRC_H5IMPORT_TESTFILES/binin8w.conf +$SRC_H5IMPORT_TESTFILES/binin16.conf +$SRC_H5IMPORT_TESTFILES/binin32.conf +$SRC_H5IMPORT_TESTFILES/binuin16.conf +$SRC_H5IMPORT_TESTFILES/binuin32.conf +$SRC_H5IMPORT_TESTFILES/txtfp32.conf +$SRC_H5IMPORT_TESTFILES/txtfp64.conf +$SRC_H5IMPORT_TESTFILES/txtin8.conf +$SRC_H5IMPORT_TESTFILES/txtin16.conf +$SRC_H5IMPORT_TESTFILES/txtin32.conf +$SRC_H5IMPORT_TESTFILES/txtuin16.conf +$SRC_H5IMPORT_TESTFILES/txtuin32.conf +$SRC_H5IMPORT_TESTFILES/textpfe.conf +$SRC_H5IMPORT_TESTFILES/txtstr.conf +$SRC_H5IMPORT_TESTFILES/txtfp32.txt +$SRC_H5IMPORT_TESTFILES/txtfp64.txt +$SRC_H5IMPORT_TESTFILES/txtuin32.txt +$SRC_H5IMPORT_TESTFILES/txtin16.txt +$SRC_H5IMPORT_TESTFILES/txtin32.txt +$SRC_H5IMPORT_TESTFILES/in64.txt +$SRC_H5IMPORT_TESTFILES/txtstr.txt +" + +# +# copy test files and expected output files from source dirs to test dir +# +COPY_TESTFILES="$LIST_HDF5_TEST_FILES $LIST_OTHER_TEST_FILES" + +COPY_TESTFILES_TO_TESTDIR() +{ + # copy test files. Used -f to make sure get a new copy + for tstfile in $COPY_TESTFILES + do + # ignore '#' comment + echo $tstfile | tr -d ' ' | grep '^#' > /dev/null + RET=$? + if [ $RET -eq 1 ]; then + if [ -a $tstfile ]; then + $CP -f $tstfile $TESTDIR + else + echo "Error: FAILED to copy $tstfile" + echo " $tstfile doesn't exist!" + exit $EXIT_FAILURE + fi + fi + done +} + TESTING() { SPACES=" " echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' @@ -58,65 +161,72 @@ if [ -f h5import -a -f h5importtest ]; then rm -f output.h5 log1 tx* b* *.dat +# prepare for test +COPY_TESTFILES_TO_TESTDIR + mkdir tmp_testfiles -cp $srcdir/testfiles/*.h5 tmp_testfiles/ +$CP $TESTDIR/*.h5 ./tmp_testfiles/ $RUNSERIAL ./h5importtest +################################################ +### T H E T E S T S +################################################ + TESTING "ASCII I32 rank 3 - Output BE " ; -TOOLTEST $srcdir/testfiles/txtin16.txt -c $srcdir/testfiles/txtin32.conf -o txtin32.h5 +TOOLTEST $TESTDIR/txtin16.txt -c $TESTDIR/txtin32.conf -o txtin32.h5 TESTING "ASCII I16 rank 3 - Output LE - CHUNKED - extended" -TOOLTEST $srcdir/testfiles/txtin16.txt -c $srcdir/testfiles/txtin16.conf -o txtin16.h5 +TOOLTEST $TESTDIR/txtin16.txt -c $TESTDIR/txtin16.conf -o txtin16.h5 TESTING "ASCII I8 - rank 3 - Output I8 LE-Chunked+Extended+Compressed " -TOOLTEST $srcdir/testfiles/txtin16.txt -c $srcdir/testfiles/txtin8.conf -o txtin8.h5 +TOOLTEST $TESTDIR/txtin16.txt -c $TESTDIR/txtin8.conf -o txtin8.h5 TESTING "ASCII UI32 - rank 3 - Output BE" -TOOLTEST $srcdir/testfiles/txtuin32.txt -c $srcdir/testfiles/txtuin32.conf -o txtuin32.h5 +TOOLTEST $TESTDIR/txtuin32.txt -c $TESTDIR/txtuin32.conf -o txtuin32.h5 TESTING "ASCII UI16 - rank 2 - Output LE+Chunked+Compressed " -TOOLTEST $srcdir/testfiles/txtuin32.txt -c $srcdir/testfiles/txtuin16.conf -o txtuin16.h5 +TOOLTEST $TESTDIR/txtuin32.txt -c $TESTDIR/txtuin16.conf -o txtuin16.h5 TESTING "ASCII F32 - rank 3 - Output LE " -TOOLTEST $srcdir/testfiles/txtfp32.txt -c $srcdir/testfiles/txtfp32.conf -o txtfp32.h5 +TOOLTEST $TESTDIR/txtfp32.txt -c $TESTDIR/txtfp32.conf -o txtfp32.h5 TESTING "ASCII F64 - rank 3 - Output BE + CHUNKED+Extended+Compressed " -TOOLTEST $srcdir/testfiles/txtfp64.txt -c $srcdir/testfiles/txtfp64.conf -o txtfp64.h5 +TOOLTEST $TESTDIR/txtfp64.txt -c $TESTDIR/txtfp64.conf -o txtfp64.h5 TESTING "BINARY F64 - rank 3 - Output LE+CHUNKED+Extended+Compressed " -TOOLTEST binfp64.bin -c $srcdir/testfiles/binfp64.conf -o binfp64.h5 +TOOLTEST binfp64.bin -c $TESTDIR/binfp64.conf -o binfp64.h5 TESTING "BINARY I16 - rank 3 - Output order LE + CHUNKED + extended " -TOOLTEST binin16.bin -c $srcdir/testfiles/binin16.conf -o binin16.h5 +TOOLTEST binin16.bin -c $TESTDIR/binin16.conf -o binin16.h5 TESTING "BINARY I8 - rank 3 - Output I16LE + Chunked+Extended+Compressed " -TOOLTEST binin8.bin -c $srcdir/testfiles/binin8.conf -o binin8.h5 +TOOLTEST binin8.bin -c $TESTDIR/binin8.conf -o binin8.h5 TESTING "BINARY I32 - rank 3 - Output BE + CHUNKED " -TOOLTEST binin32.bin -c $srcdir/testfiles/binin32.conf -o binin32.h5 +TOOLTEST binin32.bin -c $TESTDIR/binin32.conf -o binin32.h5 TESTING "BINARY UI16 - rank 3 - Output byte BE + CHUNKED " -TOOLTEST binuin16.bin -c $srcdir/testfiles/binuin16.conf -o binuin16.h5 +TOOLTEST binuin16.bin -c $TESTDIR/binuin16.conf -o binuin16.h5 TESTING "BINARY UI32 - rank 3 - Output LE + CHUNKED " -TOOLTEST binuin32.bin -c $srcdir/testfiles/binuin32.conf -o binuin32.h5 +TOOLTEST binuin32.bin -c $TESTDIR/binuin32.conf -o binuin32.h5 TESTING "STR" -TOOLTEST $srcdir/testfiles/txtstr.txt -c $srcdir/testfiles/txtstr.conf -o txtstr.h5 +TOOLTEST $TESTDIR/txtstr.txt -c $TESTDIR/txtstr.conf -o txtstr.h5 TESTING "BINARY I8 CR LF EOF" -TOOLTEST binin8w.bin -c $srcdir/testfiles/binin8w.conf -o binin8w.h5 +TOOLTEST binin8w.bin -c $TESTDIR/binin8w.conf -o binin8w.h5 TESTING "ASCII F64 - rank 1 - INPUT-CLASS TEXTFPE " -TOOLTEST $srcdir/testfiles/in64.txt -c $srcdir/testfiles/textpfe.conf -o test15.h5 +TOOLTEST $TESTDIR/in64.txt -c $TESTDIR/textpfe.conf -o test15.h5 |