@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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have @REM access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. @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 :: 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 test1.h5 and test2.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 (0 1 2 3 4 5 _szip _deflate _shuffle _fletcher32 _nbit _scaleoffset _all) do ( set test%%v=..\..\testfiles\test%%v.h5 set output%%v=..\..\temptest\out.test%%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.**************************************************** ::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\test1.h5 -o ..\..\temptest\out.test1.h5 ::At first, we need to set the flag like ::set flag=-i %test0% -o %output1% ::Secondly, we call batch file tooltest.bat followed by one of reference files ::call %tooltest% %test0% %nodiff% :: 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\test4.h5 -o ..\..\temptest\out.test4.h5 f dset2:SZIP=8,EC -l dset2:CHUNK=20x10 ::At first, we need to set the flag like ::set flag=-i %test4% -o %output4% 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% %test4% %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:S+O=31 ::call %tooltest% %test_scaleoffset% %nodiff% skip ::-------------- :: test0.h5 ::-------------- set flag=-i %test0% -o %output0% call %tooltest% %test0% %nodiff% ::-------------- :: test1.h5 ::-------------- set flag=-i %test1% -o %output1% call %tooltest% %test1% %notcomp% ::-------------- :: test2.h5 ::-------------- set flag=-i %test2% -o %output2% call %tooltest% %test2% %notcomp% ::-------------- :: test3.h5 ::-------------- set flag=-i %test3% -o %output3% call %tooltest% %test3% %nodiff% ::-------------- :: test4.h5 ::-------------- set flag=-i %test4% -o %output4% call %tooltest% %test4% %nodiff% ::-------------- :: test5.h5 ::-------------- set flag=-i %test5% -o %output5% call %tooltest% %test5% %nodiff% ::**************************************************************** :: use test4.h5 to write some filters (this file has no filters) ::**************************************************************** ::--------------------------- ::gzip with individual object ::--------------------------- set flag=-i %test4% -o %output4% -f dset1:GZIP=1 -l dset1:CHUNK=20x10 call %tooltest% %test4% %nodiff% zlib ::------------- ::gzip for all ::------------- set flag=-i %test4% -o %output4% -f GZIP=1 call %tooltest% %test4% %nodiff% zlib ::-------------------------- ::szip for individual object ::-------------------------- set flag=-i %test4% -o %output4% f dset2:SZIP=8,EC -l dset2:CHUNK=20x10 call %tooltest% %test4% %nodiff% szip ::-------------- :: szip for all ::-------------- set flag=-i %test4% -o %output4% -f SZIP=8,NN call %tooltest% %test4% %nodiff% szip ::------------------------------- :: shuffle with individual object ::------------------------------- set flag=-i %test4% -o %output4% -f dset2:SHUF -l dset2:CHUNK=20x10 call %tooltest% %test4% %nodiff% ::---------------- :: shuffle for all ::---------------- set flag=-i %test4% -o %output4% -f SHUF call %tooltest% %test4% %nodiff% ::----------------------------------- :: fletcher32 with individual object ::----------------------------------- set flag=-i %test4% -o %output4% -f dset2:FLET -l dset2:CHUNK=20x10 call %tooltest% %test4% %nodiff% ::-------------------- :: fletcher32 for all ::-------------------- set flag=-i %test4% -o %output4% -f FLET call %tooltest% %test4% %nodiff% ::------------ ::all filters ::------------ set flag=-i %test4% -o %output4% -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10 call %tooltest% %test4% %nodiff% :: *********************************************************** :: the following tests assume the input files have filters :: *********************************************************** ::----------- :: szip copy ::----------- set flag=-i %test_szip% -o %output_szip% call %tooltest% %test_szip% %nodiff% ::------------ ::szip remove ::------------ set flag=-i %test_szip% -o %output_szip% -f dset_szip:NONE call %tooltest% %test_szip% %nodiff% ::-------------- :: deflate copy ::-------------- set flag=-i %test_deflate% -o %output_deflate% call %tooltest% %test_deflate% %nodiff% ::--------------- :: deflate remove ::--------------- set flag=-i %test_deflate% -o %output_deflate% -f dset_deflate:NONE 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_fletcher32% -o %output_fletcher32% call %tooltest% %test_fletcher32% %nodiff% ::------------------ :: fletcher32 remove ::------------------ set flag=-i %test_fletcher32% -o %output_fletcher32% -f dset_fletcher32:NONE call %tooltest% %test_fletcher32% %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_scaleoffset% -o %output_scaleoffset% -f dset_none:S+O=31 call %tooltest% %test_scaleoffset% %nodiff% skip ::----------------- :: scaleoffset copy ::----------------- set flag=-i %test_scaleoffset% -o %output_scaleoffset% call %tooltest% %test_scaleoffset% %nodiff% skip ::------------------- :: scaleoffset remove ::------------------- set flag=-i %test_scaleoffset% -o %output_scaleoffset% -f dset_scaleoffset:NONE call %tooltest% %test_scaleoffset% %nodiff% skip ::-------------------- :: remove all filters ::-------------------- set flag=-i %test_all% -o %output_all% call %tooltest% %test_scaleoffset% %nodiff% skip ::------------------ ::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 %test4% -o %output4% -f GZIP=1 -m 1024 call %tooltest% %test4% %nodiff% zlib ::----- ::file ::----- set flag=-i %test4% -o %output4% -e ..\..\testfiles\h5repack_info.txt call %tooltest% %test4% %nodiff% zlib echo. ********************************************* echo layout options (these files have no filters) echo. ********************************************* set flag=-i %test4% -o %output4% -l dset2:CHUNK=20x10 call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l CHUNK=20x10 call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset2:CONTI call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l CONTI call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset2:COMPA call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l COMPA call %tooltest% %test4% %nodiff% echo. ***************************************** echo layout conversions (file has no filters) echo. ***************************************** set flag=-i %test4% -o %output4% -l dset_compact:CONTI call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_compact:CHUNK=2x5 call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_compact:COMPA call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_contiguous:COMPA call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_contiguous:CHUNK=3x6 call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_contiguous:CONTI call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_chunk:COMPA call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_chunk:CHUNK=18x13 call %tooltest% %test4% %nodiff% set flag=-i %test4% -o %output4% -l dset_chunk:CONTI call %tooltest% %test4% %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= )