mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-06 14:56:51 +08:00
524 lines
17 KiB
Batchfile
Executable File
524 lines
17 KiB
Batchfile
Executable File
@REM Copyright by The HDF Group.
|
|
@REM Copyright by the Board of Trustees of the University of Illinois.
|
|
@REM All rights reserved.
|
|
@REM
|
|
@REM This file is part of HDF5. The full HDF5 copyright notice, including
|
|
@REM terms governing use, modification, and redistribution, is contained in
|
|
@REM the files COPYING and Copyright.html. COPYING can be found at the root
|
|
@REM of the source code distribution tree; Copyright.html can be found at the
|
|
@REM root level of an installed copy of the electronic HDF5 document set and
|
|
@REM is linked from the top-level documents page. It can also be found at
|
|
@REM http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
|
|
@REM access to either file, you may request a copy from help@hdfgroup.org.
|
|
|
|
@echo off
|
|
|
|
::This batch file is for h5repack tests
|
|
::Usage
|
|
:: repacktest release -- release static version
|
|
:: repacktest debug -- debug static version
|
|
:: repacktest release dll -- release dll version
|
|
:: repacktest debug dll -- debug dll version
|
|
:: Written By: Fang GUO
|
|
:: Date : Jan. 12, 2006
|
|
|
|
::What is actually doing?
|
|
::Example case
|
|
::h5repack -i ..\..\testfiles\test_objs.h5 -o ..\..\temptest\out.test_objs.h5
|
|
::h5diff ..\..\testfiles\test_objs.h5 ..\..\temptest\out.test_objs.h5 > ..\..\temptest\temp.txt 2>&1
|
|
::fc ..\..\temptest\temp.txt temptest\notcomp.txt
|
|
::if %ERRORLEVEL%==0 (
|
|
:: echo Testing h5repack test_objs.h5 PASSED >> ..\..\repacktest%2_%1.txt
|
|
::) else (
|
|
:: echo Testing h5repack test_objs.h5 FAILED >> ..\..\repacktest%2_%1.txt
|
|
:: more temp.txt >> ..\..\repacktest%2_%1.txt
|
|
::)
|
|
|
|
|
|
|
|
:: We will check whether the SZIP library available includes encoder or not by
|
|
:: calling the szip encoder detecting executable file testh5repack_detect_szip(dll).exe
|
|
:: and check the printed value.
|
|
:: If the printed value is "yes", then the SZIP library has encoder, HDF5_SZIP_ENCODE will be set as 1.
|
|
:: Otherwise, HDF5_SZIP_ENCODE will be set as 0, and some tests will be skipped.
|
|
|
|
FOR /F "delims=" %%a in ('testfiles\testh5repack_detect_szip%2\%1\testh5repack_detect_szip%2.exe') Do Set "Output=%%a"
|
|
if "%Output%"=="yes" (
|
|
Set HDF5_SZIP_ENCODE=1
|
|
) else (
|
|
Set HDF5_SZIP_ENCODE=0
|
|
)
|
|
|
|
:: Track total number of testing errors
|
|
set /A totalerr=0
|
|
set /A totalskip=0
|
|
|
|
::*******************************************************************
|
|
:: Generate a new temp directory for test h5repack and reference file
|
|
::*******************************************************************
|
|
::Make a temporary directory for testing h5repack
|
|
mkdir temptest
|
|
|
|
:: Reference Files
|
|
:: After running h5repack with a input .h5 file, it will use
|
|
:: h5diff to compare the expected .h5 file with the output
|
|
:: .h5 file generated by h5repack. The comparison results will be
|
|
:: one of the following two cases.
|
|
|
|
:: Case 1: No difference between the expected .h5 and .h5 generated by h5repack file
|
|
type nul > temptest\empty.txt
|
|
|
|
::Case 2: For test_objs.h5 and test_attr.h5, the output will be "Some objects
|
|
:: are not comparable", but actually there is no difference between
|
|
|
|
type nul > temptest\notcomp.txt
|
|
echo -------------------------------->>temptest\notcomp.txt
|
|
echo Some objects are not comparable>> temptest\notcomp.txt
|
|
echo -------------------------------->>temptest\notcomp.txt
|
|
echo Use -v for a list of objects.>> temptest\notcomp.txt
|
|
|
|
:: Set two variables to contain the following two file names and paths
|
|
set nodiff=..\..\temptest\empty.txt
|
|
set notcomp=..\..\temptest\notcomp.txt
|
|
|
|
::****************************************************
|
|
:: Set the Environment Variables & Change Dir to .EXE
|
|
::****************************************************
|
|
|
|
:: The first incoming parameter should be configuration (debug or release)
|
|
set p1=%1
|
|
:: The second parameter should be the types of library (dll or blank)
|
|
set p2=%2
|
|
|
|
:: Set file name for the test results
|
|
set tempResults=repacktest%2_%1.txt
|
|
:: Set exe file name
|
|
set exefile=h5repack%p2%
|
|
:: Set a variable for the sub batch file tools\tooltest.bat
|
|
set tooltest=..\..\tooltest
|
|
|
|
:: Set Variables to contain the file name and path of input and output files for testing h5repack
|
|
for %%v in (_fill _objs _attr _hlink _layout _early _szip _deflate _shuffle _fletcher _filters _nbit _soffset) do (
|
|
set test%%v=..\..\testfiles\h5repack%%v.h5
|
|
set output%%v=..\..\temptest\out.h5repack%%v.h5
|
|
)
|
|
|
|
:: Creat the file for saving the tests results
|
|
type nul > %tempResults%
|
|
|
|
:: Change to the direcotory where the .exe file is located
|
|
cd h5repack%p2%\%p1%
|
|
|
|
::*********************************************
|
|
:: Test each function by calling TOOLTEST.BAT
|
|
::*********************************************
|
|
|
|
echo.
|
|
echo.****************************************************
|
|
echo. h5repack%2 %1 T E S T S
|
|
echo.****************************************************
|
|
|
|
:: STARTING COMMENTS
|
|
::Basic Usage:
|
|
::1. Set flag
|
|
::2. Call batch file tooltest.bat followed with the expected file name
|
|
::3. Example
|
|
::If we want to test
|
|
::h5repack -i ..\..\testfiles\test_objs.h5 -o ..\..\temptest\out.test_objs.h5
|
|
::At first, we need to set the flag like
|
|
::set flag=-i %test_objs% -o %output1%
|
|
::Secondly, we call batch file tooltest.bat followed by one of reference files
|
|
::call %tooltest% %test_objs% %notcomp%
|
|
|
|
:: Using Filters (Zlib, SZIP)
|
|
::1. Set flag
|
|
::2. Call batch file tooltest.bat followed with the expected file name, zlib\szip
|
|
::3. Example
|
|
::If we want to test
|
|
::h5repack -i ..\..\testfiles\test_layout.h5 -o ..\..\temptest\out.test_layout.h5 f dset2:SZIP=8,EC -l dset2:CHUNK=20x10
|
|
|
|
::At first, we need to set the flag like
|
|
::set flag=-i %test_layout% -o %output_layout% f dset2:SZIP=8,EC -l dset2:CHUNK=20x10
|
|
|
|
::Secondly, we call batch file tooltest.bat followed by one of reference files and szip
|
|
::call %tooltest% %test_layout% %nodiff% szip
|
|
|
|
::Similarly, if you are using zlib, replace "szip" with "zlib" when calling %tooltest%
|
|
::If you are using both zlib and szip, replace "szip" with "zlib szip" when calling %tooltest%
|
|
::The order of "zlib szip" does matter.
|
|
|
|
::Skip Tests
|
|
::Put "skip" after the reference file, like the following
|
|
::set flag=-i %test_scaleoffset% -o %output_scaleoffset% -f dset_none:SOFF=31,IN
|
|
::call %tooltest% %test_scaleoffset% %nodiff% skip
|
|
:: END COMMENTS
|
|
|
|
::--------------
|
|
:: test0.h5
|
|
::--------------
|
|
set flag=-i %test_fill% -o %output_fill%
|
|
call %tooltest% %test_fill% %nodiff%
|
|
|
|
|
|
::This case will be used as an example case for
|
|
::illustration purpose inside tooltest.bat for repacktest
|
|
::--------------
|
|
:: test_objs.h5
|
|
::--------------
|
|
|
|
:: Actually we are doing:
|
|
:: set flag=-i ..\..\testfiles\test_objs.h5 -o ..\..\temptest\out.test_objs.h5
|
|
:: call ..\..\tooltest ..\..\testfiles\test_objs.h5 ..\..\temptest\notcomp.txt
|
|
|
|
set flag=-i %test_objs% -o %output_objs%
|
|
call %tooltest% %test_objs% %notcomp%
|
|
|
|
|
|
::--------------
|
|
:: test2.h5
|
|
::--------------
|
|
set flag=-i %test_attr% -o %output_attr%
|
|
call %tooltest% %test_attr% %notcomp%
|
|
|
|
::--------------
|
|
:: test3.h5
|
|
::--------------
|
|
set flag=-i %test_hlink% -o %output_hlink%
|
|
call %tooltest% %test_hlink% %nodiff%
|
|
|
|
|
|
::--------------
|
|
:: test_layout.h5
|
|
::--------------
|
|
set flag=-i %test_layout% -o %output_layout%
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
::--------------
|
|
:: test_early.h5
|
|
::--------------
|
|
set flag=-i %test_early% -o %output_early%
|
|
call %tooltest% %test_early% %nodiff%
|
|
|
|
::****************************************************************
|
|
:: use test_layout.h5 to write some filters (this file has no filters)
|
|
::****************************************************************
|
|
|
|
::---------------------------
|
|
::gzip with individual object
|
|
::---------------------------
|
|
set flag=-i %test_layout% -o %output_layout% -f dset1:GZIP=1 -l dset1:CHUNK=20x10
|
|
call %tooltest% %test_layout% %nodiff% zlib
|
|
|
|
::-------------
|
|
::gzip for all
|
|
::-------------
|
|
set flag=-i %test_layout% -o %output_layout% -f GZIP=1
|
|
call %tooltest% %test_layout% %nodiff% zlib
|
|
|
|
::--------------------------
|
|
::szip for individual object
|
|
::--------------------------
|
|
set flag=-i %test_layout% -o %output_layout% f dset2:SZIP=8,EC -l dset2:CHUNK=20x10
|
|
call %tooltest% %test_layout% %nodiff% szip
|
|
|
|
::--------------
|
|
:: szip for all
|
|
::--------------
|
|
set flag=-i %test_layout% -o %output_layout% -f SZIP=8,NN
|
|
call %tooltest% %test_layout% %nodiff% szip
|
|
|
|
::-------------------------------
|
|
:: shuffle with individual object
|
|
::-------------------------------
|
|
set flag=-i %test_layout% -o %output_layout% -f dset2:SHUF -l dset2:CHUNK=20x10
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
::----------------
|
|
:: shuffle for all
|
|
::----------------
|
|
set flag=-i %test_layout% -o %output_layout% -f SHUF
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
::-----------------------------------
|
|
:: fletcher32 with individual object
|
|
::-----------------------------------
|
|
set flag=-i %test_layout% -o %output_layout% -f dset2:FLET -l dset2:CHUNK=20x10
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
::--------------------
|
|
:: fletcher32 for all
|
|
::--------------------
|
|
set flag=-i %test_layout% -o %output_layout% -f FLET
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
::------------
|
|
::all filters
|
|
::------------
|
|
set flag=-i %test_layout% -o %output_layout% -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10
|
|
|
|
:: Check whether szlib or zlib is available, if either library is not available, skip the test.
|
|
|
|
if "%HDF5_EXT_SZIP%"=="" (
|
|
call %tooltest% %test_layout% %nodiff% skip
|
|
)else (
|
|
if "%HDF5_EXT_ZLIB%"=="" (
|
|
call %tooltest% %test_layout% %nodiff% skip
|
|
) else (
|
|
call %tooltest% %test_layout% %nodiff%
|
|
)
|
|
)
|
|
:: ***********************************************************
|
|
:: If the filter exists,the following tests assume the input files have filters
|
|
:: ***********************************************************
|
|
|
|
::-----------
|
|
:: szip copy
|
|
::-----------
|
|
set flag=-i %test_szip% -o %output_szip%
|
|
|
|
::-----------
|
|
:: The following checks whether szip library is available,
|
|
:: If not, skip the test.
|
|
::-----------
|
|
if "%HDF5_EXT_SZIP%"=="" (
|
|
call %tooltest% %test_szip% %nodiff% skip
|
|
) else (
|
|
call %tooltest% %test_szip% %nodiff%
|
|
)
|
|
|
|
::------------
|
|
::szip remove
|
|
::------------
|
|
set flag=-i %test_szip% -o %output_szip% -f dset_szip:NONE
|
|
|
|
::-----------
|
|
:: The following checks whether szip library is available,
|
|
:: If not, skip the test.
|
|
::-----------
|
|
if "%HDF5_EXT_SZIP%"=="" (
|
|
call %tooltest% %test_szip% %nodiff% skip
|
|
) else (
|
|
call %tooltest% %test_szip% %nodiff%
|
|
)
|
|
|
|
::--------------
|
|
:: deflate copy
|
|
::--------------
|
|
set flag=-i %test_deflate% -o %output_deflate%
|
|
|
|
::-----------
|
|
:: The following checks whether zlib library is available,
|
|
:: If not, skip the test.
|
|
::-----------
|
|
if "%HDF5_EXT_ZLIB%"=="" (
|
|
call %tooltest% %test_deflate% %nodiff% skip
|
|
) else (
|
|
call %tooltest% %test_deflate% %nodiff%
|
|
)
|
|
|
|
::---------------
|
|
:: deflate remove
|
|
::---------------
|
|
set flag=-i %test_deflate% -o %output_deflate% -f dset_deflate:NONE
|
|
|
|
::-----------
|
|
:: The following checks whether zlib library is available,
|
|
:: If not, skip the test.
|
|
::-----------
|
|
if "%HDF5_EXT_ZLIB%"=="" (
|
|
call %tooltest% %test_deflate% %nodiff% skip
|
|
) else (
|
|
call %tooltest% %test_deflate% %nodiff%
|
|
)
|
|
|
|
|
|
::--------------
|
|
:: shuffle copy
|
|
::--------------
|
|
set flag=-i %test_shuffle% -o %output_shuffle%
|
|
call %tooltest% %test_shuffle% %nodiff%
|
|
|
|
::----------------
|
|
:: shuffle remove
|
|
::----------------
|
|
set flag=-i %test_shuffle% -o %output_shuffle% -f dset_shuffle:NONE
|
|
call %tooltest% %test_shuffle% %nodiff%
|
|
|
|
::-----------------
|
|
:: fletcher32 copy
|
|
::-----------------
|
|
set flag=-i %test_fletcher% -o %output_fletcher%
|
|
call %tooltest% %test_fletcher% %nodiff%
|
|
|
|
::------------------
|
|
:: fletcher32 remove
|
|
::------------------
|
|
set flag=-i %test_fletcher% -o %output_fletcher% -f dset_fletcher32:NONE
|
|
call %tooltest% %test_fletcher% %nodiff%
|
|
|
|
::----------
|
|
:: nbit copy
|
|
::----------
|
|
set flag=-i %test_nbit% -o %output_nbit%
|
|
call %tooltest% %test_nbit% %nodiff%
|
|
|
|
::------------
|
|
:: nbit remove
|
|
::------------
|
|
set flag=-i %test_nbit% -o %output_nbit% -f dset_nbit:NONE
|
|
call %tooltest% %test_nbit% %nodiff%
|
|
|
|
::---------
|
|
:: nbit add
|
|
::---------
|
|
set flag=-i %test_nbit% -o %output_nbit% -f dset_int31:NBIT
|
|
call %tooltest% %test_nbit% %nodiff%
|
|
|
|
::----------------
|
|
:: scaleoffset add
|
|
::----------------
|
|
set flag=-i %test_soffset% -o %output_soffset% -f dset_none:SOFF=31,IN
|
|
call %tooltest% %test_soffset% %nodiff%
|
|
|
|
::-----------------
|
|
:: scaleoffset copy
|
|
::-----------------
|
|
set flag=-i %test_soffset% -o %output_soffset%
|
|
call %tooltest% %test_soffset% %nodiff%
|
|
|
|
::-------------------
|
|
:: scaleoffset remove
|
|
::-------------------
|
|
set flag=-i %test_soffset% -o %output_soffset% -f dset_scaleoffset:NONE
|
|
call %tooltest% %test_soffset% %nodiff%
|
|
|
|
::--------------------
|
|
:: remove all filters
|
|
::--------------------
|
|
|
|
::--------------------
|
|
::-- Currently this test is very difficult to be tested on windows since the internal filters
|
|
::-- such as fletcher32, scaleoffset, shuffle is hard to be checked in batch files.
|
|
::-- Now only szip and deflate filters are checked. KY 2006-11-20
|
|
|
|
:: Check whether szlib or zlib is available, if either library is not available, skip the test.
|
|
set flag=-i %test_filters% -o %output_filters% -f NONE
|
|
if "%HDF5_EXT_SZIP%"=="" (
|
|
call %tooltest% %test_filters% %nodiff% skip
|
|
)else (
|
|
if "%HDF5_EXT_ZLIB%"=="" (
|
|
call %tooltest% %test_filters% %nodiff% skip
|
|
) else (
|
|
call %tooltest% %test_filters% %nodiff%
|
|
)
|
|
)
|
|
|
|
::------------------
|
|
::filter conversions
|
|
::------------------
|
|
set flag=-i %test_deflate% -o %output_deflate% -f dset_deflate:SZIP=8,NN
|
|
call %tooltest% %test_deflate% %nodiff% zlib szip
|
|
|
|
set flag=-i %test_szip% -o %output_szip% -f dset_szip:GZIP=1
|
|
call %tooltest% %test_szip% %nodiff% zlib szip
|
|
|
|
::------
|
|
::limit
|
|
::------
|
|
set flag=-i %test_layout% -o %output_layout% -f GZIP=1 -m 1024
|
|
call %tooltest% %test_layout% %nodiff% zlib
|
|
|
|
::-----
|
|
::file
|
|
::-----
|
|
set flag=-i %test_layout% -o %output_layout% -e ..\..\testfiles\info.h5repack
|
|
call %tooltest% %test_layout% %nodiff% zlib
|
|
|
|
echo. *********************************************
|
|
echo layout options (these files have no filters)
|
|
echo. *********************************************
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset2:CHUNK=20x10
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l CHUNK=20x10
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset2:CONTI
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l CONTI
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset2:COMPA
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l COMPA
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
echo. *****************************************
|
|
echo layout conversions (file has no filters)
|
|
echo. *****************************************
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_compact:CONTI
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_compact:CHUNK=2x5
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_compact:COMPA
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_contiguous:COMPA
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_contiguous:CHUNK=3x6
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_contiguous:CONTI
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_chunk:COMPA
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_chunk:CHUNK=18x13
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_layout% -o %output_layout% -l dset_chunk:CONTI
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
set flag=-i %test_objs% -o %output_objs% -n
|
|
call %tooltest% %test_layout% %nodiff%
|
|
|
|
cd ..\..
|
|
|
|
echo.
|
|
::Tests how many tests failed and how many tests skiped
|
|
if %totalerr%==0 (
|
|
echo. All of the %exefile% %p1% Tests Passed!
|
|
echo. All of the %exefile% %p1% Tests Passed! >> %tempResults%
|
|
) else (
|
|
echo. %exefile% %p1% Tests Finished with %totalerr% Errors!
|
|
echo. %exefile% %p1% Tests Finished with %totalerr% Errors!>> %tempResults%
|
|
)
|
|
|
|
if not %totalskip%==0 (
|
|
echo. %totalskip% Tests in total Skiped! >> %tempResults%
|
|
echo. %totalskip% Tests in total Skiped!
|
|
echo.
|
|
find "SKIPED" %tempResults% | more +2
|
|
)
|
|
|
|
:: remove direcotory temptest and all its contents
|
|
rmdir /s/q temptest
|
|
|
|
:: Clean environment variables
|
|
|
|
for %%v in (p1 p2 tempResults exefile tooltest nodiff notcomp totalerr totalskip) do set %%v=
|
|
for %%v in (0 1 2 3 4 5 _szip _deflate _shuffle _fletcher32 _nbit _scaleoffset _all) do (
|
|
set test%%v=
|
|
set output%%v=
|
|
)
|
|
|
|
|