diff --git a/windows/proj/all/all.dsw b/windows/proj/all/all.dsw index 64990d2684..2e99e42221 100755 --- a/windows/proj/all/all.dsw +++ b/windows/proj/all/all.dsw @@ -419,6 +419,18 @@ Package=<4> Begin Project Dependency Project_Dep_Name vfddll End Project Dependency + Begin Project Dependency + Project_Dep_Name error_api + End Project Dependency + Begin Project Dependency + Project_Dep_Name error_apidll + End Project Dependency + Begin Project Dependency + Project_Dep_Name error_compat + End Project Dependency + Begin Project Dependency + Project_Dep_Name error_compatdll + End Project Dependency }}} ############################################################################### @@ -963,6 +975,78 @@ Package=<4> ############################################################################### +Project: "error_api"="..\..\test\error_api\error_api.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name hdf5 + End Project Dependency + Begin Project Dependency + Project_Dep_Name libtest + End Project Dependency +}}} + +############################################################################### + +Project: "error_apidll"="..\..\test\error_apidll\error_apidll.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name hdf5dll + End Project Dependency + Begin Project Dependency + Project_Dep_Name libtestD + End Project Dependency +}}} + +############################################################################### + +Project: "error_compat"="..\..\test\error_compat\error_compat.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name hdf5 + End Project Dependency + Begin Project Dependency + Project_Dep_Name libtest + End Project Dependency +}}} + +############################################################################### + +Project: "error_compatdll"="..\..\test\error_compatdll\error_compatdll.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name hdf5dll + End Project Dependency + Begin Project Dependency + Project_Dep_Name libtestD + End Project Dependency +}}} + +############################################################################### + Project: "extend"="..\..\test\extend\extend.dsp" - Package Owner=<4> Package=<5> diff --git a/windows/test/hdf5test.bat b/windows/test/hdf5test.bat index 04753d73cc..22837dc898 100755 --- a/windows/test/hdf5test.bat +++ b/windows/test/hdf5test.bat @@ -288,9 +288,10 @@ fheap%2\%1\fheap%2 echo. echo ============================ -echo Testing ./testerror.sh +echo Testing ./testerr.bat echo ============================ +call testerr %1 %2 echo. echo ============================ echo Testing talign diff --git a/windows/test/testerr.bat b/windows/test/testerr.bat new file mode 100644 index 0000000000..fdf46cca0d --- /dev/null +++ b/windows/test/testerr.bat @@ -0,0 +1,61 @@ +@REM This batch file tests HDF5 error API and backward compatibility with 1.6. +@REM If you want to use 1.8 with 1.6 compatibility,To the functionality of error APIs, +@REM You need to do the following two things: +@REM 1. Uncomment out /*#define H5_WANT_H5_V1_6_COMPAT 1*/ inside h5pubconf.h. +@REM 2. Set up an environment variable H5_WANT_H5_V1_6_COMPAT to 1 +@REM Remember to undo 1 and 2 after you test if you are not going to use 1.6 backward compatibility option. +@echo off +@REM Goto the correct directory +cd error_api%2\%1 +@REM Copy the executable files +copy /Y ..\..\error_compat%2\%1\error_compat%2.exe . >tempcopy.out 2>tempcopy.err +copy /Y ..\..\testfiles\err* . >tempcopy.out 2>tempcopy.err +@REM use sed to replace the changable number or string(such as line number, thread IDs etc.) +@REM We also want to combine the standard output and standard error of API tests into one file. +@REM Note the different NAME between 1.6 and 1.8... +if "%H5_WANT_H5_V1_6_COMPAT%"=="1" ( +error_compat%2 >actual_test.out 2>actual_test.err +sed -e "s/thread [0-9]*/thread (IDs)/" -e "s/: .*\.c /: (file name) /" actual_test.err >temp1.err +sed -e "s/line [0-9]*/line (number)/" -e "s/v[1-9]*\.[0-9]*\./version (number)\./" temp1.err >temp2.err +sed -e "s/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/" temp2.err >temp3.err +more /e actual_test.out >actual_temp.err +more /e temp3.err >>actual_temp.err +error_api%2 >actual_compat.out 2>actual_compat.err +) else ( +error_api%2 >actual_test.out 2>actual_test.err +sed -e "s/thread [0-9]*/thread (IDs)/" -e "s/: .*\.c /: (file name) /" actual_test.err >temp1.err +sed -e "s/line [0-9]*/line (number)/" -e "s/v[1-9]*\.[0-9]*\./version (number)\./" temp1.err >temp2.err +sed -e "s/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/" temp2.err >temp3.err +more /e actual_test.out >actual_temp.err +more /e temp3.err >>actual_temp.err +error_compat%2 >actual_compat.out 2>actual_compat.err +) +@REM We also want to filter out the first three lines of the expected output in order to +@REM get the "no difference output" between actual and expected results by using fc command. +if "%H5_WANT_H5_V1_6_COMPAT%"=="1" ( + more /e +3 error_test_2 >>err_compat_temp + more /e +3 err_compat_1 >>expect_temp.err +) else ( + more /e +3 error_test_1 >>expect_temp.err + more /e +3 err_compat_2 >>err_compat_temp +) + +fc actual_temp.err expect_temp.err > fc_temp.out 2>fc_temp.err +if %ERRORLEVEL%==0 ( +echo. All error API tests PASSED +)else ( +echo. error API tests FAILED +) +fc actual_compat.out err_compat_temp > fc_temp.out 2>fc_temp.err +if %ERRORLEVEL%==0 ( +echo. All error API compatible tests passed PASSED +)else ( +echo. error API compatible tests FAILED +) +del *.err +del *.out +del *temp +del error_compat%2.exe +del *.h5 +cd ..\.. + diff --git a/windows/tools/jamtest.bat b/windows/tools/jamtest.bat index fb0fc1e738..8ba7a0426f 100644 --- a/windows/tools/jamtest.bat +++ b/windows/tools/jamtest.bat @@ -2,8 +2,8 @@ @REM Should copy all testing files to this directory @REM This batch file only tests the validation of h5jam and h5unjam tools on windows, @REM It will not check the correctedness of jammed/unjammed user-block. +@echo off cd h5jam%2\%1 -echo off copy /Y ..\..\testfiles\tall.h5 tall.h5 >temp.txt copy /Y ..\..\testfiles\twithub.h5 twithub.h5 >temp.txt copy /Y ..\..\testfiles\twithub513.h5 twithub513.h5 >temp.txt @@ -11,82 +11,126 @@ copy /Y ..\..\testfiles\u10.txt u10.txt >temp.txt copy /Y ..\..\testfiles\u511.txt u511.txt >temp.txt copy /Y ..\..\testfiles\u512.txt u512.txt >temp.txt copy /Y ..\..\testfiles\u513.txt u513.txt >temp.txt - -h5jam -u u10.txt -i tall.h5 -o ta2.h5 -echo h5jam -u u10.txt -i tall.h5 -o ta2.h5 PASSED -h5jam -u u511.txt -i tall.h5 -o ta3.h5 -echo h5jam -u u511.txt -i tall.h5 -o ta3.h5 PASSED +@REM the reason to set environment variables is to make sure it is consistent with other batch files. +set p1=%1 +set p2=%2 +echo. +echo.**************************************************** +echo. H5jam%2 %1 T E S T S +echo.**************************************************** +echo. +set tempResult=jamtest%p2%_%p1%.txt +h5jam -u u10.txt -i tall.h5 -o ta2.h5 +echo h5jam -u u10.txt -i tall.h5 -o ta2.h5 PASSED +echo h5jam -u u10.txt -i tall.h5 -o ta2.h5 PASSED >> ..\..\%tempResult% +h5jam -u u511.txt -i tall.h5 -o ta3.h5 +echo h5jam -u u511.txt -i tall.h5 -o ta3.h5 PASSED +echo h5jam -u u511.txt -i tall.h5 -o ta3.h5 PASSED >> ..\..\%tempResult% h5jam -u u512.txt -i tall.h5 -o ta4.h5 -echo h5jam -u u512.txt -i tall.h5 -o ta4.h5 PASSED +echo h5jam -u u512.txt -i tall.h5 -o ta4.h5 PASSED +echo h5jam -u u512.txt -i tall.h5 -o ta4.h5 PASSED >> ..\..\%tempResult% h5jam -u u513.txt -i tall.h5 -o ta5.h5 -echo h5jam -u u513.txt -i tall.h5 -o ta5.h5 PASSED +echo h5jam -u u513.txt -i tall.h5 -o ta5.h5 PASSED +echo h5jam -u u513.txt -i tall.h5 -o ta5.h5 PASSED >> ..\..\%tempResult% copy /Y tall.h5 ta.h5 >temp.txt h5jam -u u10.txt -i ta.h5 echo h5jam -u u10.txt -i ta.h5 PASSED +echo h5jam -u u10.txt -i ta.h5 PASSED >> ..\..\%tempResult% copy /Y tall.h5 ta.h5 >temp.txt -h5jam -u u511.txt -i ta.h5 -echo h5jam -u u511.txt -i ta.h5 PASSED +h5jam -u u511.txt -i ta.h5 +echo h5jam -u u511.txt -i ta.h5 PASSED +echo h5jam -u u511.txt -i ta.h5 PASSED >> ..\..\%tempResult% copy /Y tall.h5 ta.h5 >temp.txt -h5jam -u u512.txt -i ta.h5 -echo h5jam -u u512.txt -i ta.h5 PASSED +h5jam -u u512.txt -i ta.h5 +echo h5jam -u u512.txt -i ta.h5 PASSED +echo h5jam -u u512.txt -i ta.h5 PASSED >> ..\..\%tempResult% copy /Y tall.h5 ta.h5 >temp.txt -h5jam -u u513.txt -i ta.h5 -echo h5jam -u u513.txt -i ta.h5 PASSED -h5jam -u u10.txt -i twithub.h5 -o tax2.h5 -echo h5jam -u u10.txt -i twithub.h5 -o tax2.h5 PASSED -h5jam -u u511.txt -i twithub.h5 -o tax3.h5 -echo h5jam -u u511.txt -i twithub.h5 -o tax3.h5 PASSED -h5jam -u u512.txt -i twithub.h5 -o tax4.h5 -echo h5jam -u u512.txt -i twithub.h5 -o tax4.h5 PASSED -h5jam -u u513.txt -i twithub.h5 -o tax5.h5 -echo h5jam -u u513.txt -i twithub.h5 -o tax5.h5 PASSED -h5jam -u u10.txt -i twithub513.h5 -o tax6.h5 -echo h5jam -u u10.txt -i twithub513.h5 -o tax6.h5 PASSED -h5jam -u u511.txt -i twithub513.h5 -o tax7.h5 -echo h5jam -u u511.txt -i twithub513.h5 -o tax7.h5 PASSED -h5jam -u u512.txt -i twithub513.h5 -o tax8.h5 -echo h5jam -u u512.txt -i twithub513.h5 -o tax8.h5 PASSED -h5jam -u u513.txt -i twithub513.h5 -o tax9.h5 -echo h5jam -u u513.txt -i twithub513.h5 -o tax9.h5 PASSED -h5jam -u u10.txt -i twithub.h5 -o taz2.h5 --clobber -echo h5jam -u u10.txt -i twithub.h5 -o taz2.h5 --clobber PASSED -h5jam -u u511.txt -i twithub.h5 -o taz3.h5 --clobber -echo h5jam -u u511.txt -i twithub.h5 -o taz3.h5 --clobber PASSED -h5jam -u u512.txt -i twithub.h5 -o taz4.h5 --clobber -echo h5jam -u u512.txt -i twithub.h5 -o taz4.h5 --clobber PASSED -h5jam -u u513.txt -i twithub.h5 -o taz5.h5 --clobber -echo h5jam -u u513.txt -i twithub.h5 -o taz5.h5 --clobber PASSED -h5jam -u u10.txt -i twithub513.h5 -o taz6.h5 --clobber -echo h5jam -u u10.txt -i twithub513.h5 -o taz6.h5 --clobber PASSED -h5jam -u u511.txt -i twithub513.h5 -o taz7.h5 --clobber -echo h5jam -u u511.txt -i twithub513.h5 -o taz7.h5 --clobber PASSED -h5jam -u u512.txt -i twithub513.h5 -o taz8.h5 --clobber -echo h5jam -u u512.txt -i twithub513.h5 -o taz8.h5 --clobber PASSED -h5jam -u u513.txt -i twithub513.h5 -o taz9.h5 --clobber -echo h5jam -u u513.txt -i twithub513.h5 -o taz9.h5 --clobber PASSED +h5jam -u u513.txt -i ta.h5 +echo h5jam -u u513.txt -i ta.h5 PASSED +echo h5jam -u u513.txt -i ta.h5 PASSED >> ..\..\%tempResult% +h5jam -u u10.txt -i twithub.h5 -o tax2.h5 +echo h5jam -u u10.txt -i twithub.h5 -o tax2.h5 PASSED +echo h5jam -u u10.txt -i twithub.h5 -o tax2.h5 PASSED >> ..\..\%tempResult% +h5jam -u u511.txt -i twithub.h5 -o tax3.h5 +echo h5jam -u u511.txt -i twithub.h5 -o tax3.h5 PASSED +echo h5jam -u u511.txt -i twithub.h5 -o tax3.h5 PASSED >> ..\..\%tempResult% +h5jam -u u512.txt -i twithub.h5 -o tax4.h5 +echo h5jam -u u512.txt -i twithub.h5 -o tax4.h5 PASSED +echo h5jam -u u512.txt -i twithub.h5 -o tax4.h5 PASSED >> ..\..\%tempResult% +h5jam -u u513.txt -i twithub.h5 -o tax5.h5 +echo h5jam -u u513.txt -i twithub.h5 -o tax5.h5 PASSED +echo h5jam -u u513.txt -i twithub.h5 -o tax5.h5 PASSED >> ..\..\%tempResult% +h5jam -u u10.txt -i twithub513.h5 -o tax6.h5 +echo h5jam -u u10.txt -i twithub513.h5 -o tax6.h5 PASSED +echo h5jam -u u10.txt -i twithub513.h5 -o tax6.h5 PASSED >> ..\..\%tempResult% +h5jam -u u511.txt -i twithub513.h5 -o tax7.h5 +echo h5jam -u u511.txt -i twithub513.h5 -o tax7.h5 PASSED +echo h5jam -u u511.txt -i twithub513.h5 -o tax7.h5 PASSED >> ..\..\%tempResult% +h5jam -u u512.txt -i twithub513.h5 -o tax8.h5 +echo h5jam -u u512.txt -i twithub513.h5 -o tax8.h5 PASSED +echo h5jam -u u512.txt -i twithub513.h5 -o tax8.h5 PASSED >> ..\..\%tempResult% +h5jam -u u513.txt -i twithub513.h5 -o tax9.h5 +echo h5jam -u u513.txt -i twithub513.h5 -o tax9.h5 PASSED +echo h5jam -u u513.txt -i twithub513.h5 -o tax9.h5 PASSED >> ..\..\%tempResult% +h5jam -u u10.txt -i twithub.h5 -o taz2.h5 --clobber +echo h5jam -u u10.txt -i twithub.h5 -o taz2.h5 --clobber PASSED +echo h5jam -u u10.txt -i twithub.h5 -o taz2.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u511.txt -i twithub.h5 -o taz3.h5 --clobber +echo h5jam -u u511.txt -i twithub.h5 -o taz3.h5 --clobber PASSED +echo h5jam -u u511.txt -i twithub.h5 -o taz3.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u512.txt -i twithub.h5 -o taz4.h5 --clobber +echo h5jam -u u512.txt -i twithub.h5 -o taz4.h5 --clobber PASSED +echo h5jam -u u512.txt -i twithub.h5 -o taz4.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u513.txt -i twithub.h5 -o taz5.h5 --clobber +echo h5jam -u u513.txt -i twithub.h5 -o taz5.h5 --clobber PASSED +echo h5jam -u u513.txt -i twithub.h5 -o taz5.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u10.txt -i twithub513.h5 -o taz6.h5 --clobber +echo h5jam -u u10.txt -i twithub513.h5 -o taz6.h5 --clobber PASSED +echo h5jam -u u10.txt -i twithub513.h5 -o taz6.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u511.txt -i twithub513.h5 -o taz7.h5 --clobber +echo h5jam -u u511.txt -i twithub513.h5 -o taz7.h5 --clobber PASSED +echo h5jam -u u511.txt -i twithub513.h5 -o taz7.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u512.txt -i twithub513.h5 -o taz8.h5 --clobber +echo h5jam -u u512.txt -i twithub513.h5 -o taz8.h5 --clobber PASSED +echo h5jam -u u512.txt -i twithub513.h5 -o taz8.h5 --clobber PASSED >> ..\..\%tempResult% +h5jam -u u513.txt -i twithub513.h5 -o taz9.h5 --clobber +echo h5jam -u u513.txt -i twithub513.h5 -o taz9.h5 --clobber PASSED +echo h5jam -u u513.txt -i twithub513.h5 -o taz9.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub.h5 tay2.h5 >temp.txt -h5jam -u u10.txt -i tay2.h5 --clobber -echo h5jam -u u10.txt -i tay2.h5 --clobber PASSED +h5jam -u u10.txt -i tay2.h5 --clobber +echo h5jam -u u10.txt -i tay2.h5 --clobber PASSED +echo h5jam -u u10.txt -i tay2.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub.h5 tay3.h5 >temp.txt -h5jam -u u511.txt -i tay3.h5 --clobber -echo h5jam -u u511.txt -i tay3.h5 --clobber PASSED +h5jam -u u511.txt -i tay3.h5 --clobber +echo h5jam -u u511.txt -i tay3.h5 --clobber PASSED +echo h5jam -u u511.txt -i tay3.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub.h5 tay4.h5 >temp.txt -h5jam -u u512.txt -i tay4.h5 --clobber -echo h5jam -u u512.txt -i tay4.h5 --clobber PASSED +h5jam -u u512.txt -i tay4.h5 --clobber +echo h5jam -u u512.txt -i tay4.h5 --clobber PASSED +echo h5jam -u u512.txt -i tay4.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub.h5 tay5.h5 >temp.txt -h5jam -u u513.txt -i tay5.h5 --clobber -echo h5jam -u u513.txt -i tay5.h5 --clobber PASSED +h5jam -u u513.txt -i tay5.h5 --clobber +echo h5jam -u u513.txt -i tay5.h5 --clobber PASSED +echo h5jam -u u513.txt -i tay5.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub513.h5 tay6.h5 >temp.txt -h5jam -u u10.txt -i tay6.h5 --clobber -echo h5jam -u u10.txt -i tay6.h5 --clobber PASSED +h5jam -u u10.txt -i tay6.h5 --clobber +echo h5jam -u u10.txt -i tay6.h5 --clobber PASSED +echo h5jam -u u10.txt -i tay6.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub513.h5 tay7.h5 >temp.txt -h5jam -u u511.txt -i tay7.h5 --clobber -echo h5jam -u u511.txt -i tay7.h5 --clobber PASSED +h5jam -u u511.txt -i tay7.h5 --clobber +echo h5jam -u u511.txt -i tay7.h5 --clobber PASSED +echo h5jam -u u511.txt -i tay7.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub513.h5 tay8.h5 >temp.txt -h5jam -u u512.txt -i tay8.h5 --clobber -echo h5jam -u u512.txt -i tay8.h5 --clobber PASSED +h5jam -u u512.txt -i tay8.h5 --clobber +echo h5jam -u u512.txt -i tay8.h5 --clobber PASSED +echo h5jam -u u512.txt -i tay8.h5 --clobber PASSED >> ..\..\%tempResult% copy /Y twithub513.h5 tay9.h5 >temp.txt -h5jam -u u513.txt -i tay9.h5 --clobber -echo h5jam -u u513.txt -i tay9.h5 --clobber PASSED +h5jam -u u513.txt -i tay9.h5 --clobber +echo h5jam -u u513.txt -i tay9.h5 --clobber PASSED +echo h5jam -u u513.txt -i tay9.h5 --clobber PASSED >> ..\..\%tempResult% del temp.txt +del *.h5 +set tempResult= +set p1= +set p2= cd ../.. diff --git a/windows/tools/testhdf5tools.BAT b/windows/tools/testhdf5tools.BAT index 2c19474198..112b543f51 100755 --- a/windows/tools/testhdf5tools.BAT +++ b/windows/tools/testhdf5tools.BAT @@ -53,9 +53,13 @@ call stattest %1 %2 set p2=%2 if "%2"=="dll" ( -echo "DLL version is not available for h5copy,h5jam or h5unjam, SKIP the test" +echo "DLL version is not available for h5copy,h5jam or h5unjam, SKIP the test" >>toolstest_%1%2.txt ) else ( call jamtest %1 %2 + @more jamtest%2_%1.txt >> toolstest_%1%2.txt + @del jamtest%2_%1.txt call copytest %1 %2 + @more copytest%2_%1.txt >> toolstest_%1%2.txt + @del copytest%2_%1.txt )