mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r19409] Purpose:
Add extra test cases for bug1975 h5diff - support recursive comparison on group when specified as an object. Description: Additional tests for combination of group recursive and --follow-symlinks with multi-linked external links with several files (same name/strucure). Tested: jam, amani, heiwa
This commit is contained in:
parent
eb7b5b2cef
commit
a436e41203
8
MANIFEST
8
MANIFEST
@ -1627,6 +1627,10 @@
|
||||
./tools/h5diff/testfiles/h5diff_512.txt
|
||||
./tools/h5diff/testfiles/h5diff_513.txt
|
||||
./tools/h5diff/testfiles/h5diff_514.txt
|
||||
./tools/h5diff/testfiles/h5diff_515.txt
|
||||
./tools/h5diff/testfiles/h5diff_516.txt
|
||||
./tools/h5diff/testfiles/h5diff_517.txt
|
||||
./tools/h5diff/testfiles/h5diff_518.txt
|
||||
|
||||
./tools/h5diff/testfiles/h5diff_attr1.h5
|
||||
./tools/h5diff/testfiles/h5diff_attr2.h5
|
||||
@ -1650,6 +1654,10 @@
|
||||
./tools/h5diff/testfiles/h5diff_danglelinks2.h5
|
||||
./tools/h5diff/testfiles/h5diff_grp_recurse1.h5
|
||||
./tools/h5diff/testfiles/h5diff_grp_recurse2.h5
|
||||
./tools/h5diff/testfiles/h5diff_grp_recurse_ext1.h5
|
||||
./tools/h5diff/testfiles/h5diff_grp_recurse_ext2-1.h5
|
||||
./tools/h5diff/testfiles/h5diff_grp_recurse_ext2-2.h5
|
||||
./tools/h5diff/testfiles/h5diff_grp_recurse_ext2-3.h5
|
||||
./tools/h5diff/testfiles/h5diff_exclude1-1.h5
|
||||
./tools/h5diff/testfiles/h5diff_exclude1-2.h5
|
||||
./tools/h5diff/testfiles/h5diff_exclude2-1.h5
|
||||
|
@ -194,6 +194,10 @@ IF (BUILD_TESTING)
|
||||
h5diff_danglelinks2.h5
|
||||
h5diff_grp_recurse1.h5
|
||||
h5diff_grp_recurse2.h5
|
||||
h5diff_grp_recurse_ext1.h5
|
||||
h5diff_grp_recurse_ext2-1.h5
|
||||
h5diff_grp_recurse_ext2-2.h5
|
||||
h5diff_grp_recurse_ext2-3.h5
|
||||
h5diff_exclude1-1.h5
|
||||
h5diff_exclude1-2.h5
|
||||
h5diff_exclude2-1.h5
|
||||
@ -304,6 +308,11 @@ SET (DANGLE_LINK_FILE1 h5diff_danglelinks1.h5)
|
||||
SET (DANGLE_LINK_FILE2 h5diff_danglelinks2.h5)
|
||||
SET (GRP_RECURSE_FILE1 h5diff_grp_recurse1.h5)
|
||||
SET (GRP_RECURSE_FILE2 h5diff_grp_recurse2.h5)
|
||||
# group recursive - same structure via external links through files
|
||||
SET (GRP_RECURSE1_EXT h5diff_grp_recurse_ext1.h5)
|
||||
SET (GRP_RECURSE2_EXT1 h5diff_grp_recurse_ext2-1.h5)
|
||||
SET (GRP_RECURSE2_EXT2 h5diff_grp_recurse_ext2-2.h5)
|
||||
SET (GRP_RECURSE2_EXT3 h5diff_grp_recurse_ext2-3.h5)
|
||||
# same structure, same obj name with different value
|
||||
SET (EXCLUDE_FILE1_1 h5diff_exclude1-1.h5)
|
||||
SET (EXCLUDE_FILE1_2 h5diff_exclude1-2.h5)
|
||||
@ -732,6 +741,18 @@ ADD_H5_TEST (h5diff_512 -v --follow-symlinks ${GRP_RECURSE_FILE1} ${GRP_RECURSE_
|
||||
ADD_H5_TEST (h5diff_513 -v ${GRP_RECURSE_FILE1} ${GRP_RECURSE_FILE2} /slink_grp10 /slink_grp11)
|
||||
ADD_H5_TEST (h5diff_514 -v --follow-symlinks ${GRP_RECURSE_FILE1} ${GRP_RECURSE_FILE2} /slink_grp10 /slink_grp11)
|
||||
|
||||
###############################################################################
|
||||
# Test for group recursive diff via multi-linked external links
|
||||
# With follow-symlinks, file $GRP_RECURSE1_EXT and $GRP_RECURSE2_EXT1 should
|
||||
# be same with the external links.
|
||||
###############################################################################
|
||||
# file vs file
|
||||
ADD_H5_TEST (h5diff_515 -v ${GRP_RECURSE1_EXT} ${GRP_RECURSE2_EXT1})
|
||||
ADD_H5_TEST (h5diff_516 -v --follow-symlinks ${GRP_RECURSE1_EXT} ${GRP_RECURSE2_EXT1})
|
||||
# group vs group
|
||||
ADD_H5_TEST (h5diff_517 -v ${GRP_RECURSE1_EXT} ${GRP_RECURSE2_EXT1} /g1)
|
||||
ADD_H5_TEST (h5diff_518 -v --follow-symlinks ${GRP_RECURSE1_EXT} ${GRP_RECURSE2_EXT1} /g1)
|
||||
|
||||
|
||||
# ##############################################################################
|
||||
# # Exclude path (--exclude-path)
|
||||
|
@ -57,6 +57,11 @@
|
||||
#define DANGLE_LINK_FILE2 "h5diff_danglelinks2.h5"
|
||||
#define GRP_RECURSE_FILE1 "h5diff_grp_recurse1.h5"
|
||||
#define GRP_RECURSE_FILE2 "h5diff_grp_recurse2.h5"
|
||||
/* same structure via external links through files */
|
||||
#define GRP_RECURSE1_EXT "h5diff_grp_recurse_ext1.h5"
|
||||
#define GRP_RECURSE2_EXT1 "h5diff_grp_recurse_ext2-1.h5"
|
||||
#define GRP_RECURSE2_EXT2 "h5diff_grp_recurse_ext2-2.h5"
|
||||
#define GRP_RECURSE2_EXT3 "h5diff_grp_recurse_ext2-3.h5"
|
||||
/* same structure, same obj name with different value */
|
||||
#define EXCLUDE_FILE1_1 "h5diff_exclude1-1.h5"
|
||||
#define EXCLUDE_FILE1_2 "h5diff_exclude1-2.h5"
|
||||
@ -108,6 +113,7 @@ static int test_external_links(const char *fname1, const char *fname2);
|
||||
static int test_ext2soft_links(const char *fname1, const char *fname2);
|
||||
static int test_dangle_links(const char *fname1, const char *fname2);
|
||||
static int test_group_recurse(const char *fname1, const char *fname2);
|
||||
static int test_group_recurse2();
|
||||
static int test_exclude_obj1(const char *fname1, const char *fname2);
|
||||
static int test_exclude_obj2(const char *fname1, const char *fname2);
|
||||
|
||||
@ -160,11 +166,11 @@ int main(void)
|
||||
test_dangle_links(DANGLE_LINK_FILE1, DANGLE_LINK_FILE2);
|
||||
|
||||
test_group_recurse(GRP_RECURSE_FILE1, GRP_RECURSE_FILE2);
|
||||
test_group_recurse2();
|
||||
|
||||
test_exclude_obj1(EXCLUDE_FILE1_1, EXCLUDE_FILE1_2);
|
||||
test_exclude_obj2(EXCLUDE_FILE2_1, EXCLUDE_FILE2_2);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2303,6 +2309,334 @@ out:
|
||||
return status;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* Purpose:
|
||||
* For testing comparing group member objects recursively via multiple
|
||||
* linked external links
|
||||
*
|
||||
* Programmer: Jonathan Kim (Sep 16, 2010)
|
||||
*
|
||||
*-------------------------------------------------------------------------*/
|
||||
#define GRP_R_DSETNAME1 "dset1"
|
||||
#define GRP_R_DSETNAME2 "dset2"
|
||||
static int test_group_recurse2()
|
||||
{
|
||||
hid_t fileid1;
|
||||
hid_t grp1=0, grp2;
|
||||
hid_t grp3=0;
|
||||
hid_t grp4=0;
|
||||
hid_t tid;
|
||||
hid_t dset1, dset2;
|
||||
hid_t datatype, dataspace; /* handles */
|
||||
hid_t fileid2;
|
||||
hid_t fileid3;
|
||||
hid_t fileid4;
|
||||
hid_t fileid4_1;
|
||||
hsize_t dimsf[2]; /* dataset dimensions */
|
||||
herr_t status=0;
|
||||
int data1[4][2] = {{0,0},{1,1},{2,2},{3,3}};
|
||||
int data2[4][2] = {{0,0},{0,1},{0,2},{3,3}};
|
||||
int i, j;
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FILE 1
|
||||
*------------------------------------------------------------------------*/
|
||||
/*
|
||||
* Create a new file using H5F_ACC_TRUNC access,
|
||||
* default file creation properties, and default file
|
||||
* access properties.
|
||||
*/
|
||||
fileid1 = H5Fcreate(GRP_RECURSE1_EXT, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Groups
|
||||
*------------------------------------------------------------------------*/
|
||||
grp1 = H5Gcreate2(fileid1, "/g1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp1 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE1_EXT);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
grp2 = H5Gcreate2(grp1, "g2", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp2 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE1_EXT);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
grp3 = H5Gcreate2(grp2, "g3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp3 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE1_EXT);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
grp4 = H5Gcreate2(grp3, "g4", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp4 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE1_EXT);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Datasets
|
||||
*------------------------------------------------------------------------*/
|
||||
/*
|
||||
* Describe the size of the array and create the data space for fixed
|
||||
* size dataset.
|
||||
*/
|
||||
dimsf[0] = 4;
|
||||
dimsf[1] = 2;
|
||||
dataspace = H5Screate_simple(2, dimsf, NULL);
|
||||
|
||||
/*
|
||||
* Define datatype for the data in the file.
|
||||
* We will store little endian INT numbers.
|
||||
*/
|
||||
datatype = H5Tcopy(H5T_NATIVE_INT);
|
||||
status = H5Tset_order(datatype, H5T_ORDER_LE);
|
||||
|
||||
/*---------------
|
||||
* dset1
|
||||
*/
|
||||
/*
|
||||
* Create a new dataset within the file using defined dataspace and
|
||||
* datatype and default dataset creation properties.
|
||||
*/
|
||||
dset1 = H5Dcreate2(fileid1, GRP_R_DSETNAME1, datatype, dataspace,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*
|
||||
* Write the data to the dataset using default transfer properties.
|
||||
*/
|
||||
status = H5Dwrite(dset1, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1);
|
||||
H5Dclose(dset1);
|
||||
|
||||
/*---------------
|
||||
* dset1
|
||||
*/
|
||||
/*
|
||||
* Create a new dataset within the file using defined dataspace and
|
||||
* datatype and default dataset creation properties.
|
||||
*/
|
||||
dset1 = H5Dcreate2(grp3, GRP_R_DSETNAME1, datatype, dataspace,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*
|
||||
* Write the data to the dataset using default transfer properties.
|
||||
*/
|
||||
status = H5Dwrite(dset1, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1);
|
||||
|
||||
/*---------------
|
||||
* dset2
|
||||
*/
|
||||
/*
|
||||
* Create a new dataset within the fileid1 using defined dataspace and
|
||||
* datatype and default dataset creation properties.
|
||||
*/
|
||||
dset2 = H5Dcreate2(grp4, GRP_R_DSETNAME2, datatype, dataspace,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*
|
||||
* Write the data to the dataset using default transfer properties.
|
||||
*/
|
||||
status = H5Dwrite(dset2, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Soft links
|
||||
*------------------------------------------------------------------------*/
|
||||
/*
|
||||
* under '/' root
|
||||
*/
|
||||
/* link to dset1 */
|
||||
status = H5Lcreate_soft(GRP_R_DSETNAME1, fileid1, "soft_dset1", H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (status < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Lcreate_soft failed.\n", GRP_RECURSE1_EXT);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
H5Dclose(dset1);
|
||||
H5Dclose(dset2);
|
||||
H5Gclose(grp1);
|
||||
H5Gclose(grp2);
|
||||
H5Gclose(grp3);
|
||||
H5Gclose(grp4);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FILE 2-3
|
||||
*------------------------------------------------------------------------*/
|
||||
|
||||
/* crate target file */
|
||||
fileid4 = H5Fcreate(GRP_RECURSE2_EXT3, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*-----------------------------------------------
|
||||
* Groups
|
||||
*/
|
||||
grp4 = H5Gcreate2(fileid4, "/g4", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp4 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE2_EXT3);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*---------------
|
||||
* dset2
|
||||
*/
|
||||
/*
|
||||
* Create a new dataset within the fileid1 using defined dataspace and
|
||||
* datatype and default dataset creation properties.
|
||||
*/
|
||||
dset2 = H5Dcreate2(grp4, GRP_R_DSETNAME2, datatype, dataspace,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*
|
||||
* Write the data to the dataset using default transfer properties.
|
||||
*/
|
||||
status = H5Dwrite(dset2, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data2);
|
||||
|
||||
H5Gclose(grp4);
|
||||
H5Dclose(dset2);
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FILE 2-2
|
||||
*------------------------------------------------------------------------*/
|
||||
|
||||
/* crate target file */
|
||||
fileid3 = H5Fcreate(GRP_RECURSE2_EXT2, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*-----------------------------------------------
|
||||
* Groups
|
||||
*/
|
||||
grp2 = H5Gcreate2(fileid3, "g2", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp2 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE2_EXT2);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
grp3 = H5Gcreate2(grp2, "g3", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp3 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE2_EXT2);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*---------------
|
||||
* dset1
|
||||
*/
|
||||
/*
|
||||
* Create a new dataset within the fileid1 using defined dataspace and
|
||||
* datatype and default dataset creation properties.
|
||||
*/
|
||||
dset1 = H5Dcreate2(grp3, GRP_R_DSETNAME1, datatype, dataspace,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*
|
||||
* Write the data to the dataset using default transfer properties.
|
||||
*/
|
||||
status = H5Dwrite(dset1, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1);
|
||||
|
||||
/*-----------------------------------------------
|
||||
* extlink to $GRP_RECURSE2_EXT3/g4
|
||||
*/
|
||||
status = H5Lcreate_external(GRP_RECURSE2_EXT3, "/g4", fileid3, "/g2/g3/g4", H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (status < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Lcreate_external failed.\n", GRP_RECURSE2_EXT2);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
H5Dclose(dset1);
|
||||
H5Gclose(grp2);
|
||||
H5Gclose(grp3);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* FILE 2-1
|
||||
*------------------------------------------------------------------------*/
|
||||
|
||||
/* crate target file */
|
||||
fileid2 = H5Fcreate(GRP_RECURSE2_EXT1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*-----------------------------------------------
|
||||
* Groups
|
||||
*/
|
||||
grp1 = H5Gcreate2(fileid2, "g1", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (grp1 < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Gcreate2 failed.\n", GRP_RECURSE1_EXT);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*---------------
|
||||
* dset1
|
||||
*/
|
||||
dset1 = H5Dcreate2(fileid2, GRP_R_DSETNAME1, datatype, dataspace,
|
||||
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
|
||||
|
||||
/*
|
||||
* Write the data to the dataset using default transfer properties.
|
||||
*/
|
||||
status = H5Dwrite(dset1, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, data1);
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Soft links
|
||||
*------------------------------------------------------------------------*/
|
||||
/*
|
||||
* under '/' root
|
||||
*/
|
||||
/* link to dset1 */
|
||||
status = H5Lcreate_soft(GRP_R_DSETNAME1, fileid2, "soft_dset1", H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (status < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Lcreate_soft failed.\n", GRP_RECURSE2_EXT1);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------
|
||||
* extlink to $GRP_RECURSE2_EXT2/g2
|
||||
*/
|
||||
status = H5Lcreate_external(GRP_RECURSE2_EXT2, "/g2", fileid2, "/g1/g2", H5P_DEFAULT, H5P_DEFAULT);
|
||||
if (status < 0)
|
||||
{
|
||||
fprintf(stderr, "Error: %s> H5Lcreate_external failed.\n", GRP_RECURSE2_EXT1);
|
||||
status = FAIL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
H5Gclose(grp1);
|
||||
H5Dclose(dset1);
|
||||
|
||||
out:
|
||||
/*
|
||||
* Close/release resources.
|
||||
*/
|
||||
H5Sclose(dataspace);
|
||||
H5Tclose(datatype);
|
||||
H5Fclose(fileid1);
|
||||
H5Fclose(fileid2);
|
||||
H5Fclose(fileid3);
|
||||
H5Fclose(fileid4);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* Purpose: Create test files for excluding obj.
|
||||
|
24
tools/h5diff/testfiles/h5diff_515.txt
Normal file
24
tools/h5diff/testfiles/h5diff_515.txt
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
file1 file2
|
||||
---------------------------------------
|
||||
x x /
|
||||
x x /dset1
|
||||
x x /g1
|
||||
x x /g1/g2
|
||||
x /g1/g2/g3
|
||||
x /g1/g2/g3/dset1
|
||||
x /g1/g2/g3/g4
|
||||
x /g1/g2/g3/g4/dset2
|
||||
x x /soft_dset1
|
||||
|
||||
group : </> and </>
|
||||
0 differences found
|
||||
dataset: </dset1> and </dset1>
|
||||
0 differences found
|
||||
group : </g1> and </g1>
|
||||
0 differences found
|
||||
group : </g1/g2> and </g1/g2>
|
||||
0 differences found
|
||||
link : </soft_dset1> and </soft_dset1>
|
||||
0 differences found
|
||||
EXIT CODE: 1
|
32
tools/h5diff/testfiles/h5diff_516.txt
Normal file
32
tools/h5diff/testfiles/h5diff_516.txt
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
file1 file2
|
||||
---------------------------------------
|
||||
x x /
|
||||
x x /dset1
|
||||
x x /g1
|
||||
x x /g1/g2
|
||||
x x /g1/g2/g3
|
||||
x x /g1/g2/g3/dset1
|
||||
x x /g1/g2/g3/g4
|
||||
x x /g1/g2/g3/g4/dset2
|
||||
x x /soft_dset1
|
||||
|
||||
group : </> and </>
|
||||
0 differences found
|
||||
dataset: </dset1> and </dset1>
|
||||
0 differences found
|
||||
group : </g1> and </g1>
|
||||
0 differences found
|
||||
group : </g1/g2> and </g1/g2>
|
||||
0 differences found
|
||||
group : </g1/g2/g3> and </g1/g2/g3>
|
||||
0 differences found
|
||||
dataset: </g1/g2/g3/dset1> and </g1/g2/g3/dset1>
|
||||
0 differences found
|
||||
group : </g1/g2/g3/g4> and </g1/g2/g3/g4>
|
||||
0 differences found
|
||||
dataset: </g1/g2/g3/g4/dset2> and </g1/g2/g3/g4/dset2>
|
||||
0 differences found
|
||||
dataset: </soft_dset1> and </soft_dset1>
|
||||
0 differences found
|
||||
EXIT CODE: 0
|
15
tools/h5diff/testfiles/h5diff_517.txt
Normal file
15
tools/h5diff/testfiles/h5diff_517.txt
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
group1 group2
|
||||
---------------------------------------
|
||||
x x
|
||||
x x /g2
|
||||
x /g2/g3
|
||||
x /g2/g3/dset1
|
||||
x /g2/g3/g4
|
||||
x /g2/g3/g4/dset2
|
||||
|
||||
group : </g1> and </g1>
|
||||
0 differences found
|
||||
group : </g1/g2> and </g1/g2>
|
||||
0 differences found
|
||||
EXIT CODE: 1
|
23
tools/h5diff/testfiles/h5diff_518.txt
Normal file
23
tools/h5diff/testfiles/h5diff_518.txt
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
group1 group2
|
||||
---------------------------------------
|
||||
x x
|
||||
x x /g2
|
||||
x x /g2/g3
|
||||
x x /g2/g3/dset1
|
||||
x x /g2/g3/g4
|
||||
x x /g2/g3/g4/dset2
|
||||
|
||||
group : </g1> and </g1>
|
||||
0 differences found
|
||||
group : </g1/g2> and </g1/g2>
|
||||
0 differences found
|
||||
group : </g1/g2/g3> and </g1/g2/g3>
|
||||
0 differences found
|
||||
dataset: </g1/g2/g3/dset1> and </g1/g2/g3/dset1>
|
||||
0 differences found
|
||||
group : </g1/g2/g3/g4> and </g1/g2/g3/g4>
|
||||
0 differences found
|
||||
dataset: </g1/g2/g3/g4/dset2> and </g1/g2/g3/g4/dset2>
|
||||
0 differences found
|
||||
EXIT CODE: 0
|
@ -54,8 +54,14 @@ FILE17=h5diff_ext2softlink_src.h5
|
||||
FILE18=h5diff_ext2softlink_trg.h5
|
||||
DANGLE_LINK_FILE1=h5diff_danglelinks1.h5
|
||||
DANGLE_LINK_FILE2=h5diff_danglelinks2.h5
|
||||
/* group recursive */
|
||||
GRP_RECURSE_FILE1=h5diff_grp_recurse1.h5
|
||||
GRP_RECURSE_FILE2=h5diff_grp_recurse2.h5
|
||||
/* group recursive - same structure via external links through files */
|
||||
GRP_RECURSE1_EXT=h5diff_grp_recurse_ext1.h5
|
||||
GRP_RECURSE2_EXT1=h5diff_grp_recurse_ext2-1.h5
|
||||
GRP_RECURSE2_EXT2=h5diff_grp_recurse_ext2-2.h5
|
||||
GRP_RECURSE2_EXT3=h5diff_grp_recurse_ext2-3.h5
|
||||
# same structure, same obj name with different value
|
||||
EXCLUDE_FILE1_1=h5diff_exclude1-1.h5
|
||||
EXCLUDE_FILE1_2=h5diff_exclude1-2.h5
|
||||
@ -733,6 +739,18 @@ TOOLTEST h5diff_512.txt -v --follow-symlinks $GRP_RECURSE_FILE1 $GRP_RECURSE_FIL
|
||||
TOOLTEST h5diff_513.txt -v $GRP_RECURSE_FILE1 $GRP_RECURSE_FILE2 /slink_grp10 /slink_grp11
|
||||
TOOLTEST h5diff_514.txt -v --follow-symlinks $GRP_RECURSE_FILE1 $GRP_RECURSE_FILE2 /slink_grp10 /slink_grp11
|
||||
|
||||
###############################################################################
|
||||
# Test for group recursive diff via multi-linked external links
|
||||
# With follow-symlinks, file $GRP_RECURSE1_EXT and $GRP_RECURSE2_EXT1 should
|
||||
# be same with the external links.
|
||||
###############################################################################
|
||||
# file vs file
|
||||
TOOLTEST h5diff_515.txt -v $GRP_RECURSE1_EXT $GRP_RECURSE2_EXT1
|
||||
TOOLTEST h5diff_516.txt -v --follow-symlinks $GRP_RECURSE1_EXT $GRP_RECURSE2_EXT1
|
||||
# group vs group
|
||||
TOOLTEST h5diff_517.txt -v $GRP_RECURSE1_EXT $GRP_RECURSE2_EXT1 /g1
|
||||
TOOLTEST h5diff_518.txt -v --follow-symlinks $GRP_RECURSE1_EXT $GRP_RECURSE2_EXT1 /g1
|
||||
|
||||
# ##############################################################################
|
||||
# # Exclude objects (--exclude-path)
|
||||
# ##############################################################################
|
||||
|
@ -50,6 +50,10 @@ 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 src_grp_recurse1_ext=h5diff_grp_recurse_ext1.h5
|
||||
set src_grp_recurse2_ext1=h5diff_grp_recurse_ext2-1.h5
|
||||
set src_grp_recurse2_ext2=h5diff_grp_recurse_ext2-2.h5
|
||||
set src_grp_recurse2_ext3=h5diff_grp_recurse_ext2-3.h5
|
||||
set srcexclude1_1=h5diff_exclude1-1.h5
|
||||
set srcexclude1_2=h5diff_exclude1-2.h5
|
||||
set srcexclude2_1=h5diff_exclude2-1.h5
|
||||
@ -77,6 +81,10 @@ 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
|
||||
set grp_recurse1_ext=%indir%\h5diff_grp_recurse_ext1.h5
|
||||
set grp_recurse2_ext1=%indir%\h5diff_grp_recurse_ext2-1.h5
|
||||
set grp_recurse2_ext2=%indir%\h5diff_grp_recurse_ext2-2.h5
|
||||
set grp_recurse2_ext3=%indir%\h5diff_grp_recurse_ext2-3.h5
|
||||
set exclude1_1=%indir%\h5diff_exclude1-1.h5
|
||||
set exclude1_2=%indir%\h5diff_exclude1-2.h5
|
||||
set exclude2_1=%indir%\h5diff_exclude2-1.h5
|
||||
@ -794,6 +802,25 @@ rem ############################################################################
|
||||
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 # Test for group recursive diff via multi-linked external links
|
||||
rem # With follow-symlinks, file $GRP_RECURSE1_EXT and $GRP_RECURSE2_EXT1
|
||||
rem # should be same with the external links.
|
||||
rem ######################################################################
|
||||
rem file vs file
|
||||
call :testing %h5diff% -v %src_grp_recurse1_ext% %src_grp_recurse2_ext1%
|
||||
call :tooltest h5diff_515.txt -v %grp_recurse1_ext% %grp_recurse2_ext1%
|
||||
|
||||
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1_ext% %src_grp_recurse2_ext1%
|
||||
call :tooltest h5diff_516.txt -v --follow-symlinks %grp_recurse1_ext% %grp_recurse2_ext1%
|
||||
|
||||
rem group vs group
|
||||
call :testing %h5diff% -v %src_grp_recurse1_ext% %src_grp_recurse2_ext1% /g1
|
||||
call :tooltest h5diff_517.txt -v %grp_recurse1_ext% %grp_recurse2_ext1% /g1
|
||||
|
||||
call :testing %h5diff% -v --follow-symlinks %src_grp_recurse1_ext% %src_grp_recurse2_ext1% /g1
|
||||
call :tooltest h5diff_518.txt -v --follow-symlinks %grp_recurse1_ext% %grp_recurse2_ext1% /g1
|
||||
|
||||
|
||||
rem ##############################################################################
|
||||
rem # Exclude objects (--exclude-object)
|
||||
|
Loading…
Reference in New Issue
Block a user