[svn-r19401] Purpose:

Fix for Bug1975 h5diff - support recursive comparison on group when specified as an object

Description:
 Merged from hdf5 trunk (r19400).
 Compare member objects and groups recursively when two files or groups are specified to be compared. Support parallel diff and handling symbolic links accordingly.

Tested:
 jam, amani
This commit is contained in:
Jonathan Kim
2010-09-16 13:09:59 -05:00
parent 9f028ea458
commit a9a3f22e78
56 changed files with 2442 additions and 662 deletions

View File

@@ -48,6 +48,8 @@ set srcfile17=h5diff_ext2softlink_src.h5
set srcfile18=h5diff_ext2softlink_trg.h5
set srclnkfile1=h5diff_danglelinks1.h5
set srclnkfile2=h5diff_danglelinks2.h5
set src_grp_recurse1=h5diff_grp_recurse1.h5
set src_grp_recurse2=h5diff_grp_recurse2.h5
set file1=%indir%\h5diff_basic1.h5
set file2=%indir%\h5diff_basic2.h5
@@ -69,6 +71,8 @@ set file17=%indir%\h5diff_ext2softlink_src.h5
set file18=%indir%\h5diff_ext2softlink_trg.h5
set lnkfile1=%indir%\h5diff_danglelinks1.h5
set lnkfile2=%indir%\h5diff_danglelinks2.h5
set grp_recurse1=%indir%\h5diff_grp_recurse1.h5
set grp_recurse2=%indir%\h5diff_grp_recurse2.h5
rem The tool name
@@ -222,7 +226,7 @@ rem The tests
rem To avoid the printing of the complete full path of the test file, that hides
rem all the other parameters for long paths, the printing of the command line
rem is done first in
rem TESTING with the name only of the test file $TOOL, not its full path $TESTFILErem ############################################################################
rem TESTING with the name only of the test file $TOOL, not its full path $TESTFILE
rem ############################################################################
rem ############################################################################
@@ -282,9 +286,9 @@ rem ############################################################################
call :testing %h5diff% -q %srcfile1% %srcfile2%
call :tooltest h5diff_18.txt -q %file1% %file2%
rem ##############################################################################
rem ########################################################################
rem # not comparable types
rem ##############################################################################
rem ########################################################################
rem 2.0
call :testing %h5diff% -v %srcfile3% %srcfile3% dset g1
@@ -298,9 +302,9 @@ rem ############################################################################
call :testing %h5diff% -v %srcfile3% %srcfile3% dset t1
call :tooltest h5diff_22.txt -v %file3% %file3% dset t1
rem ##############################################################################
rem #######################################################################
rem # compare groups, types, links (no differences and differences)
rem ##############################################################################
rem #######################################################################
rem 2.3
call :testing %h5diff% -v %srcfile3% %srcfile3% g1 g1
@@ -328,9 +332,9 @@ rem ############################################################################
rem ##############################################################################
rem ########################################################################
rem # Dataset datatypes
rem ##############################################################################
rem ########################################################################
rem 5.0
call :testing %h5diff% -v %srcfile4% %srcfile4% dset0a dset0b
@@ -368,19 +372,23 @@ rem ############################################################################
call :testing %h5diff% -v %srcfile7% %srcfile8% refreg
call :tooltest h5diff_58.txt -v %file7% %file8% refreg
rem ##############################################################################
rem ########################################################################
rem # Error messages
rem ##############################################################################
rem ########################################################################
rem 6.0: Check if the command line number of arguments is less than 3
call :testing %h5diff% %srcfile1%
call :tooltest h5diff_600.txt %file1%
rem 6.1: Check if non-exist object name is specified
call :testing %h5diff% %srcfile1% %srcfile1% nono_obj
call :tooltest h5diff_601.txt %file1% %file1% nono_obj
rem ##############################################################################
rem ########################################################################
rem # -d
rem ##############################################################################
rem ########################################################################
rem 6.3: negative value
@@ -416,9 +424,9 @@ rem ############################################################################
call :tooltest h5diff_610.txt -d 1 %file1% %file2% g1/dset3 g1/dset4
rem ##############################################################################
rem ########################################################################
rem # -p
rem ##############################################################################
rem ########################################################################
@@ -455,9 +463,9 @@ rem ############################################################################
call :tooltest h5diff_619.txt -p 0.005 %file1% %file2% g1/dset3 g1/dset4
rem ##############################################################################
rem ########################################################################
rem # -n
rem ##############################################################################
rem ########################################################################
rem 6.21: negative value
call :testing %h5diff% -n -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4
@@ -496,15 +504,15 @@ rem ############################################################################
call :testing %h5diff% file1.h6 file2.h6
call :tooltest h5diff_629.txt file1.h6 file2.h6
rem ##############################################################################
rem ########################################################################
rem 7. attributes
rem ##############################################################################
rem ########################################################################
call :testing %h5diff% -v %srcfile5% %srcfile6%
call :tooltest h5diff_70.txt -v %file5% %file6%
rem ##############################################################################
rem #######################################################################
rem 8. all dataset datatypes
rem ##############################################################################
rem #######################################################################
call :testing %h5diff% -v %srcfile7% %srcfile8%
call :tooltest h5diff_80.txt -v %file7% %file8%
@@ -513,13 +521,13 @@ rem ############################################################################
call :tooltest h5diff_90.txt -v %file2% %file2%
rem 10. read by hyperslab, print indexes
rem ##############################################################################
rem #######################################################################
rem Not skipped on windows as this has not been a problem - ADB 1/22/2009
rem if test -n "$pmode" -a "$mydomainname" = hdfgroup.uiuc.edu; then
rem # skip this test which sometimes hangs in some THG machines
rem SKIP -v $SRCFILE9 $SRCFILE10
rem else
rem ##############################################################################
rem #######################################################################
call :testing %h5diff% -v %srcfile9% %srcfile10%
call :tooltest h5diff_100.txt -v %file9% %file10%
rem fi
@@ -563,16 +571,16 @@ rem ############################################################################
call :testing %h5diff% -c %srcfile2% %srcfile2% g2/dset8 g2/dset9
call :tooltest h5diff_207.txt -c %file2% %file2% g2/dset8 g2/dset9
rem ##############################################################################
rem #######################################################################
rem # Links compare without --follow-symlinks nor --no-dangling-links
rem ##############################################################################
rem #######################################################################
rem test for bug1749
call :testing %h5diff% -v %srcfile12% %srcfile12% /link_g1 /link_g2
call :tooltest h5diff_300.txt -v %file12% %file12% /link_g1 /link_g2
rem ##############################################################################
rem #######################################################################
rem # Links compare with --follow-symlinks Only
rem ##############################################################################
rem #######################################################################
rem soft links file to file
call :testing %h5diff% --follow-symlinks -v %srcfile13% %srcfile13%
call :tooltest h5diff_400.txt --follow-symlinks -v %file13% %file13%
@@ -678,9 +686,9 @@ rem ############################################################################
call :tooltest h5diff_425.txt --follow-symlinks -v %file17% %file17% /ext_link_to_slink1 /ext_link_to_slink2
rem ##############################################################################
rem #######################################################################
rem # Dangling links compare (--follow-symlinks and --no-dangling-links)
rem ##############################################################################
rem #######################################################################
rem dangling links --follow-symlinks (FILE to FILE)
call :testing %h5diff% --follow-symlinks -v %srclnkfile1% %srclnkfile2%
call :tooltest h5diff_450.txt --follow-symlinks -v %lnkfile1% %lnkfile2%
@@ -721,10 +729,66 @@ rem ############################################################################
call :testing %h5diff% --follow-symlinks -v --no-dangling-links %srcfile15% %srcfile15% /ext_link_noexist1 /ext_link_noexist2
call :tooltest h5diff_459.txt --follow-symlinks -v --no-dangling-links %file15% %file15% /ext_link_noexist1 /ext_link_noexist2
rem ########################################################################
rem # test for group diff recursivly
rem ########################################################################
rem root
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% / /
call :tooltest h5diff_500.txt -v %grp_recurse1% %grp_recurse2% / /
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% / /
call :tooltest h5diff_501.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% / /
rem root vs group
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% / /grp1/grp2/grp3
call :tooltest h5diff_502.txt -v %grp_recurse1% %grp_recurse2% / /grp1/grp2/grp3
rem group vs group (same name and structure)
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp1 /grp1
call :tooltest h5diff_503.txt -v %grp_recurse1% %grp_recurse2% /grp1 /grp1
rem group vs group (different name and structure)
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp1/grp2 /grp1/grp2/grp3
call :tooltest h5diff_504.txt -v %grp_recurse1% %grp_recurse2% /grp1/grp2 /grp1/grp2/grp3
rem groups vs soft-link
call :testing %h5diff%
call :tooltest h5diff_505.txt -v %grp_recurse1% %grp_recurse2% /grp1 /slink_grp1
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /grp1/grp2 /slink_grp2
call :tooltest h5diff_506.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /grp1/grp2 /slink_grp2
rem groups vs ext-link
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp1 /elink_grp1
call :tooltest h5diff_507.txt -v %grp_recurse1% %grp_recurse2% /grp1 /elink_grp1
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /grp1 /elink_grp1
call :tooltest h5diff_508.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /grp1 /elink_grp1
rem soft-link vs ext-link
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /slink_grp1 /elink_grp1
call :tooltest h5diff_509.txt -v %grp_recurse1% %grp_recurse2% /slink_grp1 /elink_grp1
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /slink_grp1 /elink_grp1
call :tooltest h5diff_510.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /slink_grp1 /elink_grp1
rem circled ext links
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /grp10 /grp11
call :tooltest h5diff_511.txt -v %grp_recurse1% %grp_recurse2% /grp10 /grp11
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /grp10 /grp11
call :tooltest h5diff_512.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /grp10 /grp11
rem circled soft2ext-link vs soft2ext-link
call :testing %h5diff% -v %src_grp_recurse1% %src_grp_recurse2% /slink_grp10 /slink_grp11
call :tooltest h5diff_513.txt -v %grp_recurse1% %grp_recurse2% /slink_grp10 /slink_grp11
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1% %src_grp_recurse2% /slink_grp10 /slink_grp11
call :tooltest h5diff_514.txt -v --follow-symlinks %grp_recurse1% %grp_recurse2% /slink_grp10 /slink_grp11
rem ##############################################################################
rem #######################################################################
rem # END
rem ##############################################################################
rem #######################################################################
if %nerrors% equ 0 (
echo.All %h5diff% tests passed.