diff options
author | Jonathan Kim <jkm@hdfgroup.org> | 2011-06-30 21:36:34 (GMT) |
---|---|---|
committer | Jonathan Kim <jkm@hdfgroup.org> | 2011-06-30 21:36:34 (GMT) |
commit | 11349c2361ff12c0cbe4940c078cb3bf4a16ce90 (patch) | |
tree | 05e58aa06b508ac14875d22c19b342c7e71e76af /tools/h5ls/testh5ls.sh.in | |
parent | 9b1c14d12711bf9f20e196dd90d23df4b7881797 (diff) | |
download | hdf5-11349c2361ff12c0cbe4940c078cb3bf4a16ce90.zip hdf5-11349c2361ff12c0cbe4940c078cb3bf4a16ce90.tar.gz hdf5-11349c2361ff12c0cbe4940c078cb3bf4a16ce90.tar.bz2 |
[svn-r21057] [hdf5 Trunk ] TODO
Purpose:
Work for HDFFV-7602 - HDF5 command tools: Provide framework for reusable
test files among tools
Description:
Provide framework to share test files among tools for tools test.
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE)
Diffstat (limited to 'tools/h5ls/testh5ls.sh.in')
-rw-r--r-- | tools/h5ls/testh5ls.sh.in | 143 |
1 files changed, 137 insertions, 6 deletions
diff --git a/tools/h5ls/testh5ls.sh.in b/tools/h5ls/testh5ls.sh.in index 798700b..bdf0af7 100644 --- a/tools/h5ls/testh5ls.sh.in +++ b/tools/h5ls/testh5ls.sh.in @@ -24,6 +24,7 @@ H5LS_BIN=`pwd`/$H5LS # The path of the tool binary CMP='cmp -s' DIFF='diff -c' +CP='cp' NLINES=20 # Max. lines of output to display if test fails WORDS_BIGENDIAN="@WORDS_BIGENDIAN@" @@ -31,12 +32,115 @@ WORDS_BIGENDIAN="@WORDS_BIGENDIAN@" nerrors=0 verbose=yes h5haveexitcode=yes # default is yes - # The build (current) directory might be different than the source directory. if test -z "$srcdir"; then srcdir=. fi -test -d ../testfiles || mkdir ../testfiles +# 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_H5LS_TESTFILES/tall.h5 +$SRC_H5LS_TESTFILES/tarray1.h5 +$SRC_H5LS_TESTFILES/tattr2.h5 +$SRC_H5LS_TESTFILES/tcompound.h5 +$SRC_H5LS_TESTFILES/tdatareg.h5 +$SRC_H5LS_TESTFILES/tdset.h5 +$SRC_H5LS_TESTFILES/tempty.h5 +$SRC_H5LS_TESTFILES/textlink.h5 +$SRC_H5LS_TESTFILES/textlinksrc.h5 +$SRC_H5LS_TESTFILES/textlinktar.h5 +$SRC_H5LS_TESTFILES/tgroup.h5 +$SRC_H5LS_TESTFILES/tgrp_comments.h5 +$SRC_H5LS_TESTFILES/thlink.h5 +$SRC_H5LS_TESTFILES/tloop.h5 +$SRC_H5LS_TESTFILES/tnestedcomp.h5 +$SRC_H5LS_TESTFILES/tsaf.h5 +$SRC_H5LS_TESTFILES/tslink.h5 +$SRC_H5LS_TESTFILES/tsoftlinks.h5 +$SRC_H5LS_TESTFILES/tstr.h5 +$SRC_H5LS_TESTFILES/tudlink.h5 +$SRC_H5LS_TESTFILES/tvldtypes1.h5 +" + +LIST_OTHER_TEST_FILES=" +$SRC_H5LS_TESTFILES/help-1.ls +$SRC_H5LS_TESTFILES/help-2.ls +$SRC_H5LS_TESTFILES/help-3.ls +$SRC_H5LS_TESTFILES/nosuchfile.ls +$SRC_H5LS_TESTFILES/tall-1.ls +$SRC_H5LS_TESTFILES/tall-2.ls +$SRC_H5LS_TESTFILES/tarray1.ls +$SRC_H5LS_TESTFILES/tattr2.ls +$SRC_H5LS_TESTFILES/tcomp-1.ls +$SRC_H5LS_TESTFILES/tdataregbe.ls +$SRC_H5LS_TESTFILES/tdataregle.ls +$SRC_H5LS_TESTFILES/tdset-1.ls +$SRC_H5LS_TESTFILES/tempty.ls +$SRC_H5LS_TESTFILES/textlink-1.ls +$SRC_H5LS_TESTFILES/textlinksrc-1.ls +$SRC_H5LS_TESTFILES/textlinksrc-2.ls +$SRC_H5LS_TESTFILES/textlinksrc-3.ls +$SRC_H5LS_TESTFILES/textlinksrc-4.ls +$SRC_H5LS_TESTFILES/textlinksrc-5.ls +$SRC_H5LS_TESTFILES/textlinksrc-6.ls +$SRC_H5LS_TESTFILES/textlinksrc-7.ls +$SRC_H5LS_TESTFILES/textlinksrc-1-old.ls +$SRC_H5LS_TESTFILES/textlinksrc-2-old.ls +$SRC_H5LS_TESTFILES/textlinksrc-3-old.ls +$SRC_H5LS_TESTFILES/textlinksrc-6-old.ls +$SRC_H5LS_TESTFILES/textlinksrc-7-old.ls +$SRC_H5LS_TESTFILES/tsoftlinks-1.ls +$SRC_H5LS_TESTFILES/tsoftlinks-2.ls +$SRC_H5LS_TESTFILES/tsoftlinks-3.ls +$SRC_H5LS_TESTFILES/tsoftlinks-4.ls +$SRC_H5LS_TESTFILES/tsoftlinks-5.ls +$SRC_H5LS_TESTFILES/textlinksrc-nodangle-1.ls +$SRC_H5LS_TESTFILES/textlinksrc-nodangle-2.ls +$SRC_H5LS_TESTFILES/tgrp_comments.ls +$SRC_H5LS_TESTFILES/tsoftlinks-nodangle-1.ls +$SRC_H5LS_TESTFILES/thlinks-nodangle-1.ls +$SRC_H5LS_TESTFILES/tgroup.ls +$SRC_H5LS_TESTFILES/tgroup-1.ls +$SRC_H5LS_TESTFILES/tgroup-2.ls +$SRC_H5LS_TESTFILES/tgroup-3.ls +$SRC_H5LS_TESTFILES/thlink-1.ls +$SRC_H5LS_TESTFILES/tloop-1.ls +$SRC_H5LS_TESTFILES/tnestcomp-1.ls +$SRC_H5LS_TESTFILES/tnestcomp-2.ls +$SRC_H5LS_TESTFILES/tnestcomp-3.ls +$SRC_H5LS_TESTFILES/tnestcomp-4.ls +$SRC_H5LS_TESTFILES/tsaf.ls +$SRC_H5LS_TESTFILES/tslink-1.ls +$SRC_H5LS_TESTFILES/tstr-1.ls +$SRC_H5LS_TESTFILES/tudlink-1.ls +$SRC_H5LS_TESTFILES/tvldtypes1.ls +$SRC_H5LS_TESTFILES/tvldtypes2le.ls +$SRC_H5LS_TESTFILES/tvldtypes2be.ls +" + # RUNSERIAL is used. Check if it can return exit code from executalbe correctly. if [ -n "$RUNSERIAL_NOEXITCODE" ]; then @@ -45,6 +149,31 @@ if [ -n "$RUNSERIAL_NOEXITCODE" ]; then h5haveexitcode=no fi +# +# 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 +} + # Print a line-line message left justified in a field of 70 characters # beginning with the word "Testing". TESTING() { @@ -64,9 +193,9 @@ TESTING() { # $1 -- actual output filename to use # $2 and on -- argument for the h5ls tool TOOLTEST() { - expect="$srcdir/../testfiles/$1" - actual="../testfiles/`basename $1 .ls`.out" - actual_err="../testfiles/`basename $1 .ls`.err" + expect="$TESTDIR/$1" + actual="$TESTDIR/`basename $1 .ls`.out" + actual_err="$TESTDIR/`basename $1 .ls`.err" actual_sav=${actual}-sav actual_err_sav=${actual_err}-sav shift @@ -78,7 +207,7 @@ TOOLTEST() { # any unexpected output from that stream too. TESTING $H5LS $@ ( - cd $srcdir/../testfiles + cd $TESTDIR $RUNSERIAL $H5LS_BIN "$@" ) >$actual 2>$actual_err @@ -123,6 +252,8 @@ TOOLTEST() { ### T H E T E S T S ### ############################################################################## ############################################################################## +# prepare for test +COPY_TESTFILES_TO_TESTDIR # Toss in a bunch of tests. Not sure if they are the right kinds. # test the help syntax |