mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
Renamed h5repart's -family_to_sec2 to -family_to_single.
This commit is contained in:
parent
ca1788e082
commit
3edd97731e
@ -170,7 +170,7 @@ New Features
|
|||||||
(DER - 2018/10/26, HDFFV-10614)
|
(DER - 2018/10/26, HDFFV-10614)
|
||||||
|
|
||||||
|
|
||||||
Parallel Library:
|
Parallel Library:
|
||||||
-----------------
|
-----------------
|
||||||
-
|
-
|
||||||
|
|
||||||
@ -233,7 +233,17 @@ New Features
|
|||||||
|
|
||||||
Tools:
|
Tools:
|
||||||
------
|
------
|
||||||
-
|
- The h5repart -family-to-sec2 argument was changed to -family-to-single
|
||||||
|
|
||||||
|
In order to better support other single-file VFDs which could work with
|
||||||
|
h5repart, the -family-to-sec2 argument was renamed to -family-to-single.
|
||||||
|
This is just a name change and the functionality of the argument has not
|
||||||
|
changed.
|
||||||
|
|
||||||
|
The -family-to-sec2 argument has been kept for backwards-compatibility.
|
||||||
|
This argument should be considered deprecated.
|
||||||
|
|
||||||
|
(DER - 2018/11/14, HDFFV-10633)
|
||||||
|
|
||||||
High-Level APIs:
|
High-Level APIs:
|
||||||
---------------
|
---------------
|
||||||
|
@ -117,7 +117,7 @@ typedef struct H5FD_log_t {
|
|||||||
* Whether to eliminate the family driver info and convert this file to
|
* Whether to eliminate the family driver info and convert this file to
|
||||||
* a single file
|
* a single file
|
||||||
*/
|
*/
|
||||||
hbool_t fam_to_sec2;
|
hbool_t fam_to_single;
|
||||||
|
|
||||||
/* Fields for tracking I/O operations */
|
/* Fields for tracking I/O operations */
|
||||||
unsigned char *nread; /* Number of reads from a file location */
|
unsigned char *nread; /* Number of reads from a file location */
|
||||||
@ -635,13 +635,13 @@ H5FD_log_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
|||||||
/* Check for non-default FAPL */
|
/* Check for non-default FAPL */
|
||||||
if(H5P_FILE_ACCESS_DEFAULT != fapl_id) {
|
if(H5P_FILE_ACCESS_DEFAULT != fapl_id) {
|
||||||
/* This step is for h5repart tool only. If user wants to change file driver from
|
/* This step is for h5repart tool only. If user wants to change file driver from
|
||||||
* family to sec2 while using h5repart, this private property should be set so that
|
* family to one that uses single files (sec2, etc.) while using h5repart, this
|
||||||
* in the later step, the library can ignore the family driver information saved
|
* private property should be set so that in the later step, the library can ignore
|
||||||
* in the superblock.
|
* the family driver information saved in the superblock.
|
||||||
*/
|
*/
|
||||||
if(H5P_exist_plist(plist, H5F_ACS_FAMILY_TO_SEC2_NAME) > 0)
|
if(H5P_exist_plist(plist, H5F_ACS_FAMILY_TO_SINGLE_NAME) > 0)
|
||||||
if(H5P_get(plist, H5F_ACS_FAMILY_TO_SEC2_NAME, &file->fam_to_sec2) < 0)
|
if(H5P_get(plist, H5F_ACS_FAMILY_TO_SINGLE_NAME, &file->fam_to_single) < 0)
|
||||||
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, NULL, "can't get property of changing family to sec2")
|
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, NULL, "can't get property of changing family to single")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
/* Set return value */
|
/* Set return value */
|
||||||
@ -900,7 +900,7 @@ H5FD_log_query(const H5FD_t *_file, unsigned long *flags /* out */)
|
|||||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||||
|
|
||||||
/* Check for flags that are set by h5repart */
|
/* Check for flags that are set by h5repart */
|
||||||
if(file && file->fam_to_sec2)
|
if(file && file->fam_to_single)
|
||||||
*flags |= H5FD_FEAT_IGNORE_DRVRINFO; /* Ignore the driver info when file is opened (which eliminates it) */
|
*flags |= H5FD_FEAT_IGNORE_DRVRINFO; /* Ignore the driver info when file is opened (which eliminates it) */
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ typedef struct H5FD_sec2_t {
|
|||||||
* Whether to eliminate the family driver info and convert this file to
|
* Whether to eliminate the family driver info and convert this file to
|
||||||
* a single file.
|
* a single file.
|
||||||
*/
|
*/
|
||||||
hbool_t fam_to_sec2;
|
hbool_t fam_to_single;
|
||||||
|
|
||||||
} H5FD_sec2_t;
|
} H5FD_sec2_t;
|
||||||
|
|
||||||
@ -386,13 +386,13 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
|
|||||||
HGOTO_ERROR(H5E_VFL, H5E_BADTYPE, NULL, "not a file access property list")
|
HGOTO_ERROR(H5E_VFL, H5E_BADTYPE, NULL, "not a file access property list")
|
||||||
|
|
||||||
/* This step is for h5repart tool only. If user wants to change file driver from
|
/* This step is for h5repart tool only. If user wants to change file driver from
|
||||||
* family to sec2 while using h5repart, this private property should be set so that
|
* family to one that uses single files (sec2, etc.) while using h5repart, this
|
||||||
* in the later step, the library can ignore the family driver information saved
|
* private property should be set so that in the later step, the library can ignore
|
||||||
* in the superblock.
|
* the family driver information saved in the superblock.
|
||||||
*/
|
*/
|
||||||
if(H5P_exist_plist(plist, H5F_ACS_FAMILY_TO_SEC2_NAME) > 0)
|
if(H5P_exist_plist(plist, H5F_ACS_FAMILY_TO_SINGLE_NAME) > 0)
|
||||||
if(H5P_get(plist, H5F_ACS_FAMILY_TO_SEC2_NAME, &file->fam_to_sec2) < 0)
|
if(H5P_get(plist, H5F_ACS_FAMILY_TO_SINGLE_NAME, &file->fam_to_single) < 0)
|
||||||
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, NULL, "can't get property of changing family to sec2")
|
HGOTO_ERROR(H5E_VFL, H5E_CANTGET, NULL, "can't get property of changing family to single")
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
/* Set return value */
|
/* Set return value */
|
||||||
@ -532,7 +532,7 @@ H5FD_sec2_query(const H5FD_t *_file, unsigned long *flags /* out */)
|
|||||||
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
*flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */
|
||||||
|
|
||||||
/* Check for flags that are set by h5repart */
|
/* Check for flags that are set by h5repart */
|
||||||
if(file && file->fam_to_sec2)
|
if(file && file->fam_to_single)
|
||||||
*flags |= H5FD_FEAT_IGNORE_DRVRINFO; /* Ignore the driver info when file is opened (which eliminates it) */
|
*flags |= H5FD_FEAT_IGNORE_DRVRINFO; /* Ignore the driver info when file is opened (which eliminates it) */
|
||||||
} /* end if */
|
} /* end if */
|
||||||
|
|
||||||
|
@ -483,7 +483,7 @@ typedef struct H5F_t H5F_t;
|
|||||||
#define H5F_ACS_CLOSE_DEGREE_NAME "close_degree" /* File close degree */
|
#define H5F_ACS_CLOSE_DEGREE_NAME "close_degree" /* File close degree */
|
||||||
#define H5F_ACS_FAMILY_OFFSET_NAME "family_offset" /* Offset position in file for family file driver */
|
#define H5F_ACS_FAMILY_OFFSET_NAME "family_offset" /* Offset position in file for family file driver */
|
||||||
#define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize" /* New member size of family driver. (private property only used by h5repart) */
|
#define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize" /* New member size of family driver. (private property only used by h5repart) */
|
||||||
#define H5F_ACS_FAMILY_TO_SEC2_NAME "family_to_sec2" /* Whether to convert family to sec2 driver. (private property only used by h5repart) */
|
#define H5F_ACS_FAMILY_TO_SINGLE_NAME "family_to_single" /* Whether to convert family to a single-file driver. (private property only used by h5repart) */
|
||||||
#define H5F_ACS_MULTI_TYPE_NAME "multi_type" /* Data type in multi file driver */
|
#define H5F_ACS_MULTI_TYPE_NAME "multi_type" /* Data type in multi file driver */
|
||||||
#define H5F_ACS_LIBVER_LOW_BOUND_NAME "libver_low_bound" /* 'low' bound of library format versions */
|
#define H5F_ACS_LIBVER_LOW_BOUND_NAME "libver_low_bound" /* 'low' bound of library format versions */
|
||||||
#define H5F_ACS_LIBVER_HIGH_BOUND_NAME "libver_high_bound" /* 'high' bound of library format versions */
|
#define H5F_ACS_LIBVER_HIGH_BOUND_NAME "libver_high_bound" /* 'high' bound of library format versions */
|
||||||
|
@ -135,10 +135,11 @@
|
|||||||
* property only used by h5repart */
|
* property only used by h5repart */
|
||||||
#define H5F_ACS_FAMILY_NEWSIZE_SIZE sizeof(hsize_t)
|
#define H5F_ACS_FAMILY_NEWSIZE_SIZE sizeof(hsize_t)
|
||||||
#define H5F_ACS_FAMILY_NEWSIZE_DEF 0
|
#define H5F_ACS_FAMILY_NEWSIZE_DEF 0
|
||||||
/* Definition for whether to convert family to sec2 driver. It's private
|
/* Definition for whether to convert family to a single-file driver.
|
||||||
* property only used by h5repart */
|
* It's a private property only used by h5repart.
|
||||||
#define H5F_ACS_FAMILY_TO_SEC2_SIZE sizeof(hbool_t)
|
*/
|
||||||
#define H5F_ACS_FAMILY_TO_SEC2_DEF FALSE
|
#define H5F_ACS_FAMILY_TO_SINGLE_SIZE sizeof(hbool_t)
|
||||||
|
#define H5F_ACS_FAMILY_TO_SINGLE_DEF FALSE
|
||||||
/* Definition for data type in multi file driver */
|
/* Definition for data type in multi file driver */
|
||||||
#define H5F_ACS_MULTI_TYPE_SIZE sizeof(H5FD_mem_t)
|
#define H5F_ACS_MULTI_TYPE_SIZE sizeof(H5FD_mem_t)
|
||||||
#define H5F_ACS_MULTI_TYPE_DEF H5FD_MEM_DEFAULT
|
#define H5F_ACS_MULTI_TYPE_DEF H5FD_MEM_DEFAULT
|
||||||
@ -391,7 +392,7 @@ static const unsigned H5F_def_gc_ref_g = H5F_ACS_GARBG_COLCT_REF_DEF;
|
|||||||
static const H5F_close_degree_t H5F_def_close_degree_g = H5F_CLOSE_DEGREE_DEF; /* Default file close degree */
|
static const H5F_close_degree_t H5F_def_close_degree_g = H5F_CLOSE_DEGREE_DEF; /* Default file close degree */
|
||||||
static const hsize_t H5F_def_family_offset_g = H5F_ACS_FAMILY_OFFSET_DEF; /* Default offset for family VFD */
|
static const hsize_t H5F_def_family_offset_g = H5F_ACS_FAMILY_OFFSET_DEF; /* Default offset for family VFD */
|
||||||
static const hsize_t H5F_def_family_newsize_g = H5F_ACS_FAMILY_NEWSIZE_DEF; /* Default size of new files for family VFD */
|
static const hsize_t H5F_def_family_newsize_g = H5F_ACS_FAMILY_NEWSIZE_DEF; /* Default size of new files for family VFD */
|
||||||
static const hbool_t H5F_def_family_to_sec2_g = H5F_ACS_FAMILY_TO_SEC2_DEF; /* Default ?? for family VFD */
|
static const hbool_t H5F_def_family_to_single_g = H5F_ACS_FAMILY_TO_SINGLE_DEF; /* Default ?? for family VFD */
|
||||||
static const H5FD_mem_t H5F_def_mem_type_g = H5F_ACS_MULTI_TYPE_DEF; /* Default file space type for multi VFD */
|
static const H5FD_mem_t H5F_def_mem_type_g = H5F_ACS_MULTI_TYPE_DEF; /* Default file space type for multi VFD */
|
||||||
|
|
||||||
static const H5F_libver_t H5F_def_libver_low_bound_g = H5F_ACS_LIBVER_LOW_BOUND_DEF; /* Default setting for "low" bound of format version */
|
static const H5F_libver_t H5F_def_libver_low_bound_g = H5F_ACS_LIBVER_LOW_BOUND_DEF; /* Default setting for "low" bound of format version */
|
||||||
@ -527,9 +528,9 @@ H5P__facc_reg_prop(H5P_genclass_t *pclass)
|
|||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0)
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0)
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class")
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class")
|
||||||
|
|
||||||
/* Register the private property of whether convert family to sec2 driver. It's used by h5repart only. */
|
/* Register the private property of whether convert family to a single-file driver. It's used by h5repart only. */
|
||||||
/* (Note: this property should not have an encode/decode callback -QAK) */
|
/* (Note: this property should not have an encode/decode callback -QAK) */
|
||||||
if(H5P__register_real(pclass, H5F_ACS_FAMILY_TO_SEC2_NAME, H5F_ACS_FAMILY_TO_SEC2_SIZE, &H5F_def_family_to_sec2_g,
|
if(H5P__register_real(pclass, H5F_ACS_FAMILY_TO_SINGLE_NAME, H5F_ACS_FAMILY_TO_SINGLE_SIZE, &H5F_def_family_to_single_g,
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0)
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) < 0)
|
||||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class")
|
HGOTO_ERROR(H5E_PLIST, H5E_CANTINSERT, FAIL, "can't insert property into class")
|
||||||
|
|
||||||
|
@ -29,11 +29,12 @@
|
|||||||
#define NAMELEN 4096
|
#define NAMELEN 4096
|
||||||
#define GB *1024*1024*1024
|
#define GB *1024*1024*1024
|
||||||
|
|
||||||
/*Make these 2 private properties(defined in H5Fprivate.h) available to h5repart.
|
/* Make these 2 private properties(defined in H5Fprivate.h) available to h5repart.
|
||||||
*The first one updates the member file size in the superblock. The second one
|
* The first one updates the member file size in the superblock. The second one
|
||||||
*change file driver from family to sec2. */
|
* change file driver from family to a single file driver.
|
||||||
|
*/
|
||||||
#define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize"
|
#define H5F_ACS_FAMILY_NEWSIZE_NAME "family_newsize"
|
||||||
#define H5F_ACS_FAMILY_TO_SEC2_NAME "family_to_sec2"
|
#define H5F_ACS_FAMILY_TO_SINGLE_NAME "family_to_single"
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
@ -53,13 +54,14 @@
|
|||||||
static void
|
static void
|
||||||
usage (const char *progname)
|
usage (const char *progname)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: %s [-v] [-V] [-[b|m] N[g|m|k]] [-family_to_sec2] SRC DST\n",
|
fprintf(stderr, "usage: %s [-v] [-V] [-[b|m] N[g|m|k]] [-family_to_sec2|-family_to_single] SRC DST\n",
|
||||||
progname);
|
progname);
|
||||||
fprintf(stderr, " -v Produce verbose output\n");
|
fprintf(stderr, " -v Produce verbose output\n");
|
||||||
fprintf(stderr, " -V Print a version number and exit\n");
|
fprintf(stderr, " -V Print a version number and exit\n");
|
||||||
fprintf(stderr, " -b N The I/O block size, defaults to 1kB\n");
|
fprintf(stderr, " -b N The I/O block size, defaults to 1kB\n");
|
||||||
fprintf(stderr, " -m N The destination member size or 1GB\n");
|
fprintf(stderr, " -m N The destination member size or 1GB\n");
|
||||||
fprintf(stderr, " -family_to_sec2 Change file driver from family to sec2\n");
|
fprintf(stderr, " -family_to_sec2 Deprecated version of -family_to_single (below)\n");
|
||||||
|
fprintf(stderr, " -family_to_single Change file driver from family to the default single-file VFD (windows or sec2)\n");
|
||||||
fprintf(stderr, " SRC The name of the source file\n");
|
fprintf(stderr, " SRC The name of the source file\n");
|
||||||
fprintf(stderr, " DST The name of the destination files\n");
|
fprintf(stderr, " DST The name of the destination files\n");
|
||||||
fprintf(stderr, "Sizes may be suffixed with `g' for GB, `m' for MB or "
|
fprintf(stderr, "Sizes may be suffixed with `g' for GB, `m' for MB or "
|
||||||
@ -186,7 +188,7 @@ main (int argc, char *argv[])
|
|||||||
hid_t fapl; /*file access property list */
|
hid_t fapl; /*file access property list */
|
||||||
hid_t file;
|
hid_t file;
|
||||||
hsize_t hdsize; /*destination logical memb size */
|
hsize_t hdsize; /*destination logical memb size */
|
||||||
hbool_t family_to_sec2=FALSE; /*change family to sec2 driver? */
|
hbool_t family_to_single = FALSE; /*change family to single file driver? */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the program name from argv[0]. Use only the last component.
|
* Get the program name from argv[0]. Use only the last component.
|
||||||
@ -206,7 +208,10 @@ main (int argc, char *argv[])
|
|||||||
prog_name, H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE);
|
prog_name, H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE);
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
} else if (!strcmp (argv[argno], "-family_to_sec2")) {
|
} else if (!strcmp (argv[argno], "-family_to_sec2")) {
|
||||||
family_to_sec2 = TRUE;
|
family_to_single = TRUE;
|
||||||
|
argno++;
|
||||||
|
} else if (!strcmp (argv[argno], "-family_to_single")) {
|
||||||
|
family_to_single = TRUE;
|
||||||
argno++;
|
argno++;
|
||||||
} else if ('b'==argv[argno][1]) {
|
} else if ('b'==argv[argno][1]) {
|
||||||
blk_size = (size_t)get_size (prog_name, &argno, argc, argv);
|
blk_size = (size_t)get_size (prog_name, &argno, argc, argv);
|
||||||
@ -422,11 +427,12 @@ main (int argc, char *argv[])
|
|||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(family_to_sec2) {
|
if(family_to_single) {
|
||||||
/* The user wants to change file driver from family to sec2. Open the file
|
/* The user wants to change file driver from family to a single-file VFD.
|
||||||
* with sec2 driver. This property signals the library to ignore the family
|
* Open the file with the sec2, windows, etc. driver. This property signals
|
||||||
* driver information saved in the superblock. */
|
* the library to ignore the family driver information saved in the superblock.
|
||||||
if(H5Pset(fapl, H5F_ACS_FAMILY_TO_SEC2_NAME, &family_to_sec2) < 0) {
|
*/
|
||||||
|
if(H5Pset(fapl, H5F_ACS_FAMILY_TO_SINGLE_NAME, &family_to_single) < 0) {
|
||||||
perror ("H5Pset");
|
perror ("H5Pset");
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
@ -449,13 +455,14 @@ main (int argc, char *argv[])
|
|||||||
|
|
||||||
/* If the new file is a family file, try to open file for "read and write" to
|
/* If the new file is a family file, try to open file for "read and write" to
|
||||||
* flush metadata. Flushing metadata will update the superblock to the new
|
* flush metadata. Flushing metadata will update the superblock to the new
|
||||||
* member size. If the original file is a family file and the new file is a sec2
|
* member size. If the original file is a family file and the new file is a single
|
||||||
* file, the property FAMILY_TO_SEC2 will signal the library to switch to sec2
|
* file, the property FAMILY_TO_SINGLE will signal the library to switch to default
|
||||||
* driver when the new file is opened. If the original file is a sec2 file and the
|
* single-file driver when the new file is opened. If the original file is a single
|
||||||
* new file can only be a sec2 file, reopen the new file should fail. There's
|
* file and the new file can only be a single file, reopen the new file should fail.
|
||||||
* nothing to do in this case. */
|
* There's nothing to do in this case.
|
||||||
|
*/
|
||||||
H5E_BEGIN_TRY {
|
H5E_BEGIN_TRY {
|
||||||
file=H5Fopen(dst_gen_name, H5F_ACC_RDWR, fapl);
|
file = H5Fopen(dst_gen_name, H5F_ACC_RDWR, fapl);
|
||||||
} H5E_END_TRY;
|
} H5E_END_TRY;
|
||||||
|
|
||||||
if(file>=0) {
|
if(file>=0) {
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
scd_family00001.h5
|
scd_family00001.h5
|
||||||
scd_family00002.h5
|
scd_family00002.h5
|
||||||
scd_family00003.h5
|
scd_family00003.h5
|
||||||
|
family_to_single.h5
|
||||||
family_to_sec2.h5
|
family_to_sec2.h5
|
||||||
)
|
)
|
||||||
if (NOT "${last_test}" STREQUAL "")
|
if (NOT "${last_test}" STREQUAL "")
|
||||||
@ -84,6 +85,10 @@
|
|||||||
set_tests_properties (H5REPART-h5repart_5K PROPERTIES DEPENDS H5REPART-clearall-objects)
|
set_tests_properties (H5REPART-h5repart_5K PROPERTIES DEPENDS H5REPART-clearall-objects)
|
||||||
|
|
||||||
# convert family file to sec2 file of 20,000 bytes
|
# convert family file to sec2 file of 20,000 bytes
|
||||||
|
add_test (NAME H5REPART-h5repart_single COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_single family_file%05d.h5 family_to_single.h5)
|
||||||
|
set_tests_properties (H5REPART-h5repart_single PROPERTIES DEPENDS H5REPART-clearall-objects)
|
||||||
|
|
||||||
|
# convert family file to sec2 file of 20,000 bytes (old argument)
|
||||||
add_test (NAME H5REPART-h5repart_sec2 COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5)
|
add_test (NAME H5REPART-h5repart_sec2 COMMAND $<TARGET_FILE:h5repart> -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5)
|
||||||
set_tests_properties (H5REPART-h5repart_sec2 PROPERTIES DEPENDS H5REPART-clearall-objects)
|
set_tests_properties (H5REPART-h5repart_sec2 PROPERTIES DEPENDS H5REPART-clearall-objects)
|
||||||
|
|
||||||
|
@ -26,12 +26,13 @@
|
|||||||
const char *FILENAME[] = {
|
const char *FILENAME[] = {
|
||||||
"fst_family%05d.h5",
|
"fst_family%05d.h5",
|
||||||
"scd_family%05d.h5",
|
"scd_family%05d.h5",
|
||||||
|
"family_to_single.h5",
|
||||||
"family_to_sec2.h5",
|
"family_to_sec2.h5",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
herr_t test_family_h5repart_opens(void);
|
herr_t test_family_h5repart_opens(void);
|
||||||
herr_t test_sec2_h5repart_opens(void);
|
herr_t test_single_h5repart_opens(void);
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
@ -90,23 +91,28 @@ error:
|
|||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
* Function: test_sec2_h5repart_opens
|
* Function: test_single_h5repart_opens
|
||||||
*
|
*
|
||||||
* Purpose: Tries to reopen a sec2 file.
|
* Purpose: Tries to reopen a single file.
|
||||||
*
|
*
|
||||||
* Return: SUCCEED/FAIL
|
* Return: SUCCEED/FAIL
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
herr_t
|
herr_t
|
||||||
test_sec2_h5repart_opens(void)
|
test_single_h5repart_opens(void)
|
||||||
{
|
{
|
||||||
hid_t fid = -1;
|
hid_t fid = -1;
|
||||||
|
|
||||||
/* open the sec2 file */
|
/* open the single file */
|
||||||
if ((fid = H5Fopen(FILENAME[2], H5F_ACC_RDWR, H5P_DEFAULT)) < 0)
|
if ((fid = H5Fopen(FILENAME[2], H5F_ACC_RDWR, H5P_DEFAULT)) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
if (H5Fclose(fid) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
/* open the single file (created using the old argument) */
|
||||||
|
if ((fid = H5Fopen(FILENAME[3], H5F_ACC_RDWR, H5P_DEFAULT)) < 0)
|
||||||
|
goto error;
|
||||||
if (H5Fclose(fid) < 0)
|
if (H5Fclose(fid) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@ -119,7 +125,7 @@ error:
|
|||||||
|
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
|
||||||
} /* end test_sec2_h5repart_opens() */
|
} /* end test_single_h5repart_opens() */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------
|
/*-------------------------------------------------------------------------
|
||||||
@ -137,7 +143,7 @@ main(void)
|
|||||||
int nerrors = 0;
|
int nerrors = 0;
|
||||||
|
|
||||||
nerrors += test_family_h5repart_opens() < 0 ? 1 : 0;
|
nerrors += test_family_h5repart_opens() < 0 ? 1 : 0;
|
||||||
nerrors += test_sec2_h5repart_opens() < 0 ? 1 : 0;
|
nerrors += test_single_h5repart_opens() < 0 ? 1 : 0;
|
||||||
|
|
||||||
if (nerrors)
|
if (nerrors)
|
||||||
goto error;
|
goto error;
|
||||||
@ -150,3 +156,4 @@ error:
|
|||||||
nerrors, 1 == nerrors ? "" : "S");
|
nerrors, 1 == nerrors ? "" : "S");
|
||||||
HDexit(EXIT_FAILURE);
|
HDexit(EXIT_FAILURE);
|
||||||
} /* end main() */
|
} /* end main() */
|
||||||
|
|
||||||
|
@ -171,7 +171,9 @@ COPY_TESTFILES_TO_TESTDIR
|
|||||||
TOOLTEST -m 20000 family_file%05d.h5 fst_family%05d.h5
|
TOOLTEST -m 20000 family_file%05d.h5 fst_family%05d.h5
|
||||||
# repartition family member size to 5 KB.
|
# repartition family member size to 5 KB.
|
||||||
TOOLTEST -m 5k family_file%05d.h5 scd_family%05d.h5
|
TOOLTEST -m 5k family_file%05d.h5 scd_family%05d.h5
|
||||||
# convert family file to sec2 file of 20,000 bytes
|
# convert family file to single file of 20,000 bytes
|
||||||
|
TOOLTEST -m 20000 -family_to_single family_file%05d.h5 family_to_single.h5
|
||||||
|
# convert family file to single file of 20,000 bytes (old argument)
|
||||||
TOOLTEST -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5
|
TOOLTEST -m 20000 -family_to_sec2 family_file%05d.h5 family_to_sec2.h5
|
||||||
|
|
||||||
# test the output files repartitioned above.
|
# test the output files repartitioned above.
|
||||||
@ -183,7 +185,7 @@ CLEAN_TESTFILES_AND_TESTDIR
|
|||||||
|
|
||||||
if test -z "$HDF5_NOCLEANUP"; then
|
if test -z "$HDF5_NOCLEANUP"; then
|
||||||
cd $actual_dir
|
cd $actual_dir
|
||||||
rm -f fst_family*.h5 scd_family*.h5 family_to_sec2.h5
|
rm -f fst_family*.h5 scd_family*.h5 family_to_single.h5 family_to_sec2.h5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test $nerrors -eq 0 ; then
|
if test $nerrors -eq 0 ; then
|
||||||
|
Loading…
Reference in New Issue
Block a user