mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r19179] Description:
Bring changes from Coverity branch back to trunk: r19079 & 19080: [BZ1942] h5dump -u to generate XML, it does not respect the -m option xml version of dump_data function didn't check for use of fp_format variable. Added new test expected file for committed bug 1942 r19103, 19104 & 19105: [BZ1821] h5repack -v did not display correct output for a selected compression. Needed new test for comparing output of -v option. Added new test file for solution to BZ1821 BZ1821 - Bring test changes from the shell script actually used. Tested on: Mac OS X/32 10.6.4 (amazon) debug & production (h5committested on branch)
This commit is contained in:
parent
1fe94ec545
commit
0de252524d
3
MANIFEST
3
MANIFEST
@ -1347,6 +1347,8 @@
|
||||
./tools/testfiles/torderattr.h5
|
||||
./tools/testfiles/tfpformat.ddl
|
||||
./tools/testfiles/tfpformat.h5
|
||||
# h5dump h5repack validation
|
||||
./tools/testfiles/h5repack_filters.h5.ddl
|
||||
|
||||
|
||||
# Expected output from h5ls tests
|
||||
@ -1419,6 +1421,7 @@
|
||||
./tools/testfiles/tdset2.h5.xml
|
||||
./tools/testfiles/tempty.h5.xml
|
||||
./tools/testfiles/tenum.h5.xml
|
||||
./tools/testfiles/tfpformat.h5.xml
|
||||
./tools/testfiles/tgroup.h5.xml
|
||||
./tools/testfiles/thlink.h5.xml
|
||||
./tools/testfiles/tloop.h5.xml
|
||||
|
@ -17,6 +17,9 @@ ENDIF (NOT TEST_OUTPUT)
|
||||
#IF (NOT TEST_EXPECT)
|
||||
# MESSAGE (STATUS "Require TEST_EXPECT to be defined")
|
||||
#ENDIF (NOT TEST_EXPECT)
|
||||
#IF (NOT TEST_FILTER)
|
||||
# MESSAGE (STATUS "Require TEST_FILTER to be defined")
|
||||
#ENDIF (NOT TEST_FILTER)
|
||||
IF (NOT TEST_REFERENCE)
|
||||
MESSAGE (FATAL_ERROR "Require TEST_REFERENCE to be defined")
|
||||
ENDIF (NOT TEST_REFERENCE)
|
||||
@ -61,6 +64,12 @@ IF (TEST_MASK)
|
||||
FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
|
||||
ENDIF (TEST_MASK)
|
||||
|
||||
IF (TEST_FILTER)
|
||||
FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
|
||||
STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
|
||||
FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
|
||||
ENDIF (TEST_FILTER)
|
||||
|
||||
IF (WIN32 AND NOT MINGW)
|
||||
FILE (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
|
||||
FILE (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
|
||||
|
@ -5429,6 +5429,12 @@ xml_dump_data(hid_t obj_id, int obj_data, struct subset_t UNUSED * sset, int UNU
|
||||
int depth;
|
||||
int stdindent = COL; /* should be 3 */
|
||||
|
||||
if (fp_format)
|
||||
{
|
||||
outputformat->fmt_double = fp_format;
|
||||
outputformat->fmt_float = fp_format;
|
||||
}
|
||||
|
||||
if (nCols==0) {
|
||||
outputformat->line_ncols = 65535;
|
||||
outputformat->line_per_line = 1;
|
||||
|
@ -188,6 +188,9 @@ TOOLTEST torderattr2.h5.xml --xml -H --sort_by=name --sort_order=descending tord
|
||||
TOOLTEST torderattr3.h5.xml --xml -H --sort_by=creation_order --sort_order=ascending torderattr.h5
|
||||
TOOLTEST torderattr4.h5.xml --xml -H --sort_by=creation_order --sort_order=descending torderattr.h5
|
||||
|
||||
# tests for floating point user defined printf format
|
||||
TOOLTEST tfpformat.h5.xml -u -m %.7f tfpformat.h5
|
||||
|
||||
|
||||
if test $nerrors -eq 0 ; then
|
||||
echo "All $TESTNAME tests passed."
|
||||
|
@ -142,6 +142,7 @@ IF (BUILD_TESTING)
|
||||
tfamily00008.h5
|
||||
tfamily00009.h5
|
||||
tfamily00010.h5
|
||||
h5repack_filters.h5.ddl
|
||||
)
|
||||
|
||||
FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
|
||||
@ -166,10 +167,12 @@ IF (BUILD_TESTING)
|
||||
)
|
||||
ENDFOREACH (h5c_file ${HDF5_COMMON_TEST_FILES})
|
||||
|
||||
|
||||
MACRO (ADD_H5_TEST testname testtype testfile)
|
||||
IF (${testtype} STREQUAL "SKIP")
|
||||
MESSAGE (STATUS "SKIP ${testfile} ${ARGN}")
|
||||
ADD_TEST (
|
||||
NAME H5REPACK-${testname}
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${testfile} ${PROJECT_BINARY_DIR}/testfiles/out.${testfile}"
|
||||
)
|
||||
ELSE (${testtype} STREQUAL "SKIP")
|
||||
ADD_TEST (
|
||||
NAME H5REPACK-${testname}
|
||||
@ -182,6 +185,28 @@ IF (BUILD_TESTING)
|
||||
ENDIF (${testtype} STREQUAL "SKIP")
|
||||
ENDMACRO (ADD_H5_TEST testname testfile testtype)
|
||||
|
||||
MACRO (ADD_H5_CMP_TEST testname testfilter testtype resultcode resultfile)
|
||||
IF (${testtype} STREQUAL "SKIP")
|
||||
ADD_TEST (
|
||||
NAME H5REPACK-${testname}
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "SKIP ${ARGN} ${PROJECT_BINARY_DIR}/testfiles/${resultfile} ${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
|
||||
)
|
||||
ELSE (${testtype} STREQUAL "SKIP")
|
||||
ADD_TEST (
|
||||
NAME H5REPACK-${testname}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5repack>"
|
||||
-D "TEST_ARGS:STRING=${ARGN};${PROJECT_BINARY_DIR}/testfiles/${resultfile};${PROJECT_BINARY_DIR}/testfiles/out.${resultfile}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
|
||||
-D "TEST_OUTPUT=${resultfile}.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_FILTER=${testfilter}"
|
||||
-D "TEST_REFERENCE=${PROJECT_BINARY_DIR}/testfiles/${resultfile}.ddl"
|
||||
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
|
||||
)
|
||||
ENDIF (${testtype} STREQUAL "SKIP")
|
||||
ENDMACRO (ADD_H5_CMP_TEST file)
|
||||
|
||||
#
|
||||
# The tests
|
||||
# We use the files generated by h5repacktst
|
||||
@ -306,6 +331,14 @@ IF (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE
|
||||
SET (TESTTYPE "SKIP")
|
||||
ENDIF (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE)
|
||||
ADD_H5_TEST (all_filters ${TESTTYPE} ${arg})
|
||||
|
||||
# verbose gzip with individual object
|
||||
SET (arg ${FILE11} -v -f /dset_deflate:GZIP=9)
|
||||
SET (TESTTYPE "TEST")
|
||||
IF (NOT USE_FILTER_DEFLATE)
|
||||
SET (TESTTYPE "SKIP")
|
||||
ENDIF (NOT USE_FILTER_DEFLATE)
|
||||
ADD_H5_CMP_TEST (gzip_verbose_filters "O?...ing file[^\n]+\n" ${TESTTYPE} 0 ${arg})
|
||||
|
||||
###########################################################
|
||||
# the following tests assume the input files have filters
|
||||
|
@ -183,6 +183,37 @@ TOOLTEST1()
|
||||
fi
|
||||
rm -f $outfile
|
||||
}
|
||||
|
||||
# Call h5repack and compare output to a text file for -v option
|
||||
#
|
||||
TOOLTESTV()
|
||||
{
|
||||
expect="$srcdir/../testfiles/$1"
|
||||
actual="../testfiles/`basename $1 .ddl`.out"
|
||||
actual_err="../testfiles/`basename $1 .ddl`.err"
|
||||
shift
|
||||
|
||||
# Run test.
|
||||
TESTING $H5REPACK $@
|
||||
|
||||
infile=$srcdir/testfiles/$1
|
||||
path=`pwd`
|
||||
outfile=$path/out.$1
|
||||
shift
|
||||
$RUNSERIAL $H5REPACK_BIN "$@" $infile $outfile >$actual 2>$actual_err
|
||||
cat $actual_err >> $actual
|
||||
|
||||
if cmp -s $expect $actual; then
|
||||
echo " PASSED"
|
||||
else
|
||||
echo "*FAILED*"
|
||||
echo " Expected result (*.ddl) differs from actual result (*.out)"
|
||||
nerrors="`expr $nerrors + 1`"
|
||||
test yes = "$verbose" && diff -c $expect $actual |sed 's/^/ /'
|
||||
fi
|
||||
|
||||
# rm -f $actual $actual_err
|
||||
}
|
||||
|
||||
#
|
||||
# The tests
|
||||
@ -286,6 +317,14 @@ if test $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_F
|
||||
else
|
||||
TOOLTEST $arg
|
||||
fi
|
||||
|
||||
# verbose gzip with individual object
|
||||
arg="$FILE11 -v -f dset_deflate:GZIP=9"
|
||||
if test $USE_FILTER_DEFLATE != "yes" ; then
|
||||
SKIP $arg
|
||||
else
|
||||
TOOLTEST $arg
|
||||
fi
|
||||
|
||||
###########################################################
|
||||
# the following tests assume the input files have filters
|
||||
|
@ -686,19 +686,15 @@ int do_copy_objects(hid_t fidin,
|
||||
req_filter = 1;
|
||||
|
||||
/* check if filters were requested for individual objects */
|
||||
for( u = 0; u < options->op_tbl->nelems; u++)
|
||||
{
|
||||
for (u = 0; u < options->op_tbl->nelems; u++) {
|
||||
int k;
|
||||
|
||||
for( k = 0; k < options->op_tbl->objs[u].nfilters; k++)
|
||||
{
|
||||
if ( options->op_tbl->objs[u].filter->filtn > 0 )
|
||||
{
|
||||
|
||||
req_filter = 1;
|
||||
|
||||
if (strcmp(travt->objs[i].name, options->op_tbl->objs[u].path) == 0) {
|
||||
for (k = 0; k < options->op_tbl->objs[u].nfilters; k++) {
|
||||
if (options->op_tbl->objs[u].filter->filtn > 0) {
|
||||
req_filter = 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
13
tools/testfiles/h5repack_filters.h5.ddl
Normal file
13
tools/testfiles/h5repack_filters.h5.ddl
Normal file
@ -0,0 +1,13 @@
|
||||
Objects to modify layout are...
|
||||
Objects to apply filter are...
|
||||
</dset_deflate> with GZIP filter
|
||||
</dset_deflate>...Found
|
||||
-----------------------------------------
|
||||
Type Filter (Compression) Name
|
||||
-----------------------------------------
|
||||
group /
|
||||
dset /dset_all
|
||||
dset GZIP (0.995:1) /dset_deflate
|
||||
dset /dset_fletcher32
|
||||
dset /dset_nbit
|
||||
dset /dset_shuffle
|
59
tools/testfiles/tfpformat.h5.xml
Normal file
59
tools/testfiles/tfpformat.h5.xml
Normal file
@ -0,0 +1,59 @@
|
||||
#############################
|
||||
Expected output for 'h5dump -u -m %.7f tfpformat.h5'
|
||||
#############################
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE HDF5-File PUBLIC "HDF5-File.dtd" "http://www.hdfgroup.org/DTDs/HDF5-File.dtd">
|
||||
<HDF5-File>
|
||||
<RootGroup OBJ-XID="xid_96" H5Path="/">
|
||||
<Dataset Name="double" OBJ-XID="xid_800" H5Path= "/double" Parents="xid_96" H5ParentPaths="/">
|
||||
<StorageLayout>
|
||||
<ContiguousLayout/>
|
||||
</StorageLayout>
|
||||
<FillValueInfo FillTime="FillIfSet" AllocationTime="Late">
|
||||
<FillValue>
|
||||
<NoFill/>
|
||||
</FillValue>
|
||||
</FillValueInfo>
|
||||
<Dataspace>
|
||||
<SimpleDataspace Ndims="1">
|
||||
<Dimension DimSize="6" MaxDimSize="6"/>
|
||||
</SimpleDataspace>
|
||||
</Dataspace>
|
||||
<DataType>
|
||||
<AtomicType>
|
||||
<FloatType ByteOrder="LE" Size="8" SignBitLocation="63" ExponentBits="11" ExponentLocation="52" MantissaBits="52" MantissaLocation="0" />
|
||||
</AtomicType>
|
||||
</DataType>
|
||||
<Data>
|
||||
<DataFromFile>
|
||||
-0.1234567 0.1234567 0.0000000 0.0000000 0.0000000 0.0000000
|
||||
</DataFromFile>
|
||||
</Data>
|
||||
</Dataset>
|
||||
<Dataset Name="float" OBJ-XID="xid_1400" H5Path= "/float" Parents="xid_96" H5ParentPaths="/">
|
||||
<StorageLayout>
|
||||
<ContiguousLayout/>
|
||||
</StorageLayout>
|
||||
<FillValueInfo FillTime="FillIfSet" AllocationTime="Late">
|
||||
<FillValue>
|
||||
<NoFill/>
|
||||
</FillValue>
|
||||
</FillValueInfo>
|
||||
<Dataspace>
|
||||
<SimpleDataspace Ndims="1">
|
||||
<Dimension DimSize="6" MaxDimSize="6"/>
|
||||
</SimpleDataspace>
|
||||
</Dataspace>
|
||||
<DataType>
|
||||
<AtomicType>
|
||||
<FloatType ByteOrder="LE" Size="4" SignBitLocation="31" ExponentBits="8" ExponentLocation="23" MantissaBits="23" MantissaLocation="0" />
|
||||
</AtomicType>
|
||||
</DataType>
|
||||
<Data>
|
||||
<DataFromFile>
|
||||
-0.1234567 0.1234567 0.0000000 0.0000000 0.0000000 0.0000000
|
||||
</DataFromFile>
|
||||
</Data>
|
||||
</Dataset>
|
||||
</RootGroup>
|
||||
</HDF5-File>
|
Loading…
Reference in New Issue
Block a user