mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '7bf6d847ae36940f1b1147820356795c7764dbeb': Remove incorrect comment. Updated error stacks for h5dump testing. Corrected comment in src/H5VLint.c, fixed pass-through info size in src/H5VLpassthru.c, switched to stashing VOL connector ID & info in API context (in src/H5CX.c, src/H5CXprivate.h, src/H5F.c, src/H5Fint.c, and src/H5Fefc.c), patched up all sorts of issues in the tests, to make them work with 'check-vfd' (and 'check-vol' again). Clean up style issues, make function callbacks static, correct debug statements, etc. No functionality changes at all.
This commit is contained in:
commit
619b0abfd6
78
src/H5CX.c
78
src/H5CX.c
@ -268,9 +268,11 @@ typedef struct H5CX_t {
|
||||
size_t nlinks; /* Number of soft / UD links to traverse (H5L_ACS_NLINKS_NAME) */
|
||||
hbool_t nlinks_valid; /* Whether number of soft / UD links to traverse is valid */
|
||||
|
||||
/* Cached VOL properties */
|
||||
void *vol_wrap_ctx; /* VOL plugin's "wrap context" for creating IDs */
|
||||
hbool_t vol_wrap_ctx_valid; /* Whether VOL plugin's "wrap context" for creating IDs is valid */
|
||||
/* Cached VOL settings */
|
||||
H5VL_connector_prop_t vol_connector_prop; /* Property for VOL connector ID & info */
|
||||
hbool_t vol_connector_prop_valid; /* Whether property for VOL connector ID & info is valid */
|
||||
void *vol_wrap_ctx; /* VOL connector's "wrap context" for creating IDs */
|
||||
hbool_t vol_wrap_ctx_valid; /* Whether VOL connector's "wrap context" for creating IDs is valid */
|
||||
} H5CX_t;
|
||||
|
||||
/* Typedef for nodes on the API context stack */
|
||||
@ -954,6 +956,40 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5CX_set_vol_wrap_ctx() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5CX_set_vol_connector_prop
|
||||
*
|
||||
* Purpose: Sets the VOL connector ID & info for an operation.
|
||||
*
|
||||
* Return: Non-negative on success / Negative on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol
|
||||
* January 3, 2019
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5CX_set_vol_connector_prop(const H5VL_connector_prop_t *vol_connector_prop)
|
||||
{
|
||||
H5CX_node_t **head = H5CX_get_my_context(); /* Get the pointer to the head of the API context, for this thread */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(FAIL)
|
||||
|
||||
/* Sanity check */
|
||||
HDassert(head && *head);
|
||||
|
||||
/* Set the API context value */
|
||||
HDmemcpy(&(*head)->ctx.vol_connector_prop, vol_connector_prop, sizeof(H5VL_connector_prop_t));
|
||||
|
||||
/* Mark the value as valid */
|
||||
(*head)->ctx.vol_connector_prop_valid = TRUE;
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5CX_set_vol_connector_prop() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5CX_get_dxpl
|
||||
@ -1042,6 +1078,42 @@ done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5CX_get_vol_wrap_ctx() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5CX_get_vol_connector_prop
|
||||
*
|
||||
* Purpose: Retrieves the VOL connector ID & info for an operation.
|
||||
*
|
||||
* Return: Non-negative on success / Negative on failure
|
||||
*
|
||||
* Programmer: Quincey Koziol
|
||||
* January 3, 2019
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5CX_get_vol_connector_prop(H5VL_connector_prop_t *vol_connector_prop)
|
||||
{
|
||||
H5CX_node_t **head = H5CX_get_my_context(); /* Get the pointer to the head of the API context, for this thread */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(FAIL)
|
||||
|
||||
/* Sanity check */
|
||||
HDassert(vol_connector_prop);
|
||||
HDassert(head && *head);
|
||||
|
||||
/* Check for value that was set */
|
||||
if((*head)->ctx.vol_connector_prop_valid)
|
||||
/* Get the value */
|
||||
HDmemcpy(vol_connector_prop, &(*head)->ctx.vol_connector_prop, sizeof(H5VL_connector_prop_t));
|
||||
else
|
||||
HDmemset(vol_connector_prop, 0, sizeof(H5VL_connector_prop_t));
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5CX_get_vol_connector_prop() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5CX_get_tag
|
||||
|
@ -64,11 +64,13 @@ H5_DLL herr_t H5CX_set_apl(hid_t *acspl_id, const H5P_libclass_t *libclass,
|
||||
hid_t loc_id, hbool_t is_collective);
|
||||
H5_DLL herr_t H5CX_set_loc(hid_t loc_id);
|
||||
H5_DLL herr_t H5CX_set_vol_wrap_ctx(void *wrap_ctx);
|
||||
H5_DLL herr_t H5CX_set_vol_connector_prop(const H5VL_connector_prop_t *vol_connector_prop);
|
||||
|
||||
/* "Getter" routines for API context info */
|
||||
H5_DLL hid_t H5CX_get_dxpl(void);
|
||||
H5_DLL hid_t H5CX_get_lapl(void);
|
||||
H5_DLL herr_t H5CX_get_vol_wrap_ctx(void **wrap_ctx);
|
||||
H5_DLL herr_t H5CX_get_vol_connector_prop(H5VL_connector_prop_t *vol_connector_prop);
|
||||
H5_DLL haddr_t H5CX_get_tag(void);
|
||||
H5_DLL H5AC_ring_t H5CX_get_ring(void);
|
||||
#ifdef H5_HAVE_PARALLEL
|
||||
|
18
src/H5F.c
18
src/H5F.c
@ -653,11 +653,17 @@ H5Fcreate(const char *filename, unsigned flags, hid_t fcpl_id, hid_t fapl_id)
|
||||
if(H5CX_set_apl(&fapl_id, H5P_CLS_FACC, H5I_INVALID_HID, TRUE) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, H5I_INVALID_HID, "can't set access property list info")
|
||||
|
||||
/* get the VOL info from the fapl */
|
||||
/* Get the VOL info from the fapl */
|
||||
if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id)))
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5I_INVALID_HID, "not a file access property list")
|
||||
if(H5P_peek(plist, H5F_ACS_VOL_CONN_NAME, &connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, H5I_INVALID_HID, "can't get VOL connector info")
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, H5I_INVALID_HID, "can't get VOL connector info")
|
||||
|
||||
/* Stash a copy of the "top-level" connector property, before any pass-through
|
||||
* connectors modify or unwrap it.
|
||||
*/
|
||||
if(H5CX_set_vol_connector_prop(&connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, H5I_INVALID_HID, "can't set VOL connector info in API context")
|
||||
|
||||
/* Adjust bit flags by turning on the creation bit and making sure that
|
||||
* the EXCL or TRUNC bit is set. All newly-created files are opened for
|
||||
@ -733,7 +739,13 @@ H5Fopen(const char *filename, unsigned flags, hid_t fapl_id)
|
||||
if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id)))
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, H5I_INVALID_HID, "not a file access property list")
|
||||
if(H5P_peek(plist, H5F_ACS_VOL_CONN_NAME, &connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, H5I_INVALID_HID, "can't get VOL connector info")
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, H5I_INVALID_HID, "can't get VOL connector info")
|
||||
|
||||
/* Stash a copy of the "top-level" connector property, before any pass-through
|
||||
* connectors modify or unwrap it.
|
||||
*/
|
||||
if(H5CX_set_vol_connector_prop(&connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, H5I_INVALID_HID, "can't set VOL connector info in API context")
|
||||
|
||||
/* Open the file through the VOL layer */
|
||||
if(NULL == (new_file = (H5F_t *)H5VL_file_open(&connector_prop, filename, flags, fapl_id, H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL)))
|
||||
|
790
src/H5FDmpio.c
790
src/H5FDmpio.c
File diff suppressed because it is too large
Load Diff
16
src/H5Fefc.c
16
src/H5Fefc.c
@ -29,8 +29,10 @@
|
||||
|
||||
/* Packages needed by this file... */
|
||||
#include "H5private.h" /* Generic Functions */
|
||||
#include "H5CXprivate.h" /* API Contexts */
|
||||
#include "H5Eprivate.h" /* Error handling */
|
||||
#include "H5Fpkg.h" /* File access */
|
||||
#include "H5Iprivate.h" /* IDs */
|
||||
#include "H5MMprivate.h" /* Memory management */
|
||||
#include "H5Pprivate.h" /* Property lists */
|
||||
|
||||
@ -144,6 +146,8 @@ H5F__efc_open(H5F_t *parent, const char *name, unsigned flags, hid_t fcpl_id, hi
|
||||
H5F_efc_t *efc = NULL; /* External file cache for parent file */
|
||||
H5F_efc_ent_t *ent = NULL; /* Entry for target file in efc */
|
||||
hbool_t open_file = FALSE; /* Whether ent->file needs to be closed in case of error */
|
||||
H5P_genplist_t *plist; /* Property list pointer for FAPL */
|
||||
H5VL_connector_prop_t connector_prop; /* Property for VOL connector ID & info */
|
||||
H5F_t *ret_value = NULL; /* Return value */
|
||||
|
||||
FUNC_ENTER_PACKAGE
|
||||
@ -153,6 +157,18 @@ H5F__efc_open(H5F_t *parent, const char *name, unsigned flags, hid_t fcpl_id, hi
|
||||
HDassert(parent->shared);
|
||||
HDassert(name);
|
||||
|
||||
/* Get the VOL info from the fapl */
|
||||
if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id)))
|
||||
HGOTO_ERROR(H5E_FILE, H5E_BADTYPE, NULL, "not a file access property list")
|
||||
if(H5P_peek(plist, H5F_ACS_VOL_CONN_NAME, &connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, NULL, "can't get VOL connector info")
|
||||
|
||||
/* Stash a copy of the "top-level" connector property, before any pass-through
|
||||
* connectors modify or unwrap it.
|
||||
*/
|
||||
if(H5CX_set_vol_connector_prop(&connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, NULL, "can't set VOL connector info in API context")
|
||||
|
||||
/* Get external file cache */
|
||||
efc = parent->shared->efc;
|
||||
|
||||
|
44
src/H5Fint.c
44
src/H5Fint.c
@ -76,7 +76,7 @@ typedef struct H5F_olist_t {
|
||||
/* Local Prototypes */
|
||||
/********************/
|
||||
|
||||
static herr_t H5F__set_vol_conn(H5F_t *file, hid_t vol_id, const void *vol_info);
|
||||
static herr_t H5F__set_vol_conn(H5F_t *file);
|
||||
static herr_t H5F__get_objects(const H5F_t *f, unsigned types, size_t max_index, hid_t *obj_id_list, hbool_t app_ref, size_t *obj_id_count_ptr);
|
||||
static int H5F__get_objects_cb(void *obj_ptr, hid_t obj_id, void *key);
|
||||
static herr_t H5F__build_name(const char *prefix, const char *file_name, char **full_name/*out*/);
|
||||
@ -119,8 +119,9 @@ H5FL_DEFINE(H5F_file_t);
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
H5F__set_vol_conn(H5F_t *file, hid_t vol_id, const void *vol_info)
|
||||
H5F__set_vol_conn(H5F_t *file)
|
||||
{
|
||||
H5VL_connector_prop_t connector_prop; /* Property for VOL connector ID & info */
|
||||
void *new_connector_info = NULL; /* Copy of connector info */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
@ -129,21 +130,30 @@ H5F__set_vol_conn(H5F_t *file, hid_t vol_id, const void *vol_info)
|
||||
/* Sanity check */
|
||||
HDassert(file);
|
||||
|
||||
/* Retrieve a copy of the "top-level" connector property, before any pass-through
|
||||
* connectors modified or unwrapped it.
|
||||
*/
|
||||
if(H5CX_get_vol_connector_prop(&connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get VOL connector info from API context")
|
||||
|
||||
/* Sanity check */
|
||||
HDassert(0 != connector_prop.connector_id);
|
||||
|
||||
/* Copy connector info, if it exists */
|
||||
if(vol_info) {
|
||||
if(connector_prop.connector_info) {
|
||||
H5VL_class_t *connector; /* Pointer to connector */
|
||||
|
||||
/* Retrieve the connector for the ID */
|
||||
if(NULL == (connector = (H5VL_class_t *)H5I_object(vol_id)))
|
||||
if(NULL == (connector = (H5VL_class_t *)H5I_object(connector_prop.connector_id)))
|
||||
HGOTO_ERROR(H5E_FILE, H5E_BADTYPE, FAIL, "not a VOL connector ID")
|
||||
|
||||
/* Allocate and copy connector info */
|
||||
if(H5VL_copy_connector_info(connector, &new_connector_info, vol_info) < 0)
|
||||
if(H5VL_copy_connector_info(connector, &new_connector_info, connector_prop.connector_info) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTCOPY, FAIL, "connector info copy failed")
|
||||
} /* end if */
|
||||
|
||||
/* Cache the connector ID & info for the container */
|
||||
file->shared->vol_id = vol_id;
|
||||
file->shared->vol_id = connector_prop.connector_id;
|
||||
file->shared->vol_info = new_connector_info;
|
||||
if(H5I_inc_ref(file->shared->vol_id, FALSE) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTINC, FAIL, "incrementing VOL connector ID failed")
|
||||
@ -792,14 +802,12 @@ H5F_prefix_open_file(H5F_t *primary_file, H5F_prefix_open_t prefix_type,
|
||||
|
||||
/* get last component of file_name */
|
||||
H5_GET_LAST_DELIMITER(actual_file_name, ptr)
|
||||
if(!ptr)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to open file, file name = '%s', temp_file_name = '%s'", file_name, temp_file_name)
|
||||
|
||||
/* Truncate filename portion from actual file name path */
|
||||
*ptr = '\0';
|
||||
if(ptr)
|
||||
/* Truncate filename portion from actual file name path */
|
||||
*ptr = '\0';
|
||||
|
||||
/* Build new file name for the external file */
|
||||
if(H5F__build_name(actual_file_name, temp_file_name, &full_name/*out*/) < 0)
|
||||
if(H5F__build_name((ptr ? actual_file_name : ""), temp_file_name, &full_name/*out*/) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, NULL, "can't prepend prefix to filename")
|
||||
actual_file_name = (char *)H5MM_xfree(actual_file_name);
|
||||
|
||||
@ -815,7 +823,7 @@ H5F_prefix_open_file(H5F_t *primary_file, H5F_prefix_open_t prefix_type,
|
||||
H5E_clear_stack(NULL);
|
||||
} /* end if */
|
||||
|
||||
/* Success */
|
||||
/* Set return value (possibly NULL or valid H5F_t *) */
|
||||
ret_value = src_file;
|
||||
|
||||
done:
|
||||
@ -1090,14 +1098,8 @@ H5F__new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id, hid_t fapl_id, H5FD_
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, NULL, "can't get object flush cb info")
|
||||
|
||||
/* Get the VOL connector info */
|
||||
{
|
||||
H5VL_connector_prop_t connector_prop; /* Property for VOL connector ID & info */
|
||||
|
||||
if(H5P_peek(plist, H5F_ACS_VOL_CONN_NAME, &connector_prop) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, NULL, "can't get VOL connector info")
|
||||
if(H5F__set_vol_conn(f, connector_prop.connector_id, connector_prop.connector_info) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, NULL, "can't cache VOL connector info")
|
||||
} /* end block */
|
||||
if(H5F__set_vol_conn(f) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, NULL, "can't cache VOL connector info")
|
||||
|
||||
/* Create a metadata cache with the specified number of elements.
|
||||
* The cache might be created with a different number of elements and
|
||||
|
@ -879,9 +879,11 @@ done:
|
||||
*
|
||||
* Purpose: Compare VOL class for a connector
|
||||
*
|
||||
* Return: Positive if VALUE1 is greater than VALUE2, negative if
|
||||
* VALUE2 is greater than VALUE1 and zero if VALUE1 and
|
||||
* VALUE2 are equal (like strcmp).
|
||||
* Note: Sets *cmp_value positive if VALUE1 is greater than VALUE2,
|
||||
* negative if VALUE2 is greater than VALUE1, and zero if VALUE1
|
||||
* and VALUE2 are equal (like strcmp).
|
||||
*
|
||||
* Return: SUCCEED / FAIL
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -26,6 +26,7 @@
|
||||
/* Header files needed */
|
||||
/* (Public HDF5 and standard C / POSIX only) */
|
||||
#include <assert.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -171,7 +172,7 @@ static const H5VL_class_t H5VL_pass_through_g = {
|
||||
0, /* capability flags */
|
||||
H5VL_pass_through_init, /* initialize */
|
||||
H5VL_pass_through_term, /* terminate */
|
||||
sizeof(H5VL_pass_through_t), /* info size */
|
||||
sizeof(H5VL_pass_through_info_t), /* info size */
|
||||
H5VL_pass_through_info_copy, /* info copy */
|
||||
H5VL_pass_through_info_cmp, /* info compare */
|
||||
H5VL_pass_through_info_free, /* info free */
|
||||
|
40
test/accum.c
40
test/accum.c
@ -26,10 +26,13 @@
|
||||
#include "H5VLprivate.h" /* Virtual Object Layer */
|
||||
|
||||
/* Filename */
|
||||
#define FILENAME "accum.h5"
|
||||
/* (The file names are the same as the define in accum_swmr_reader.c) */
|
||||
const char *FILENAME[] = {
|
||||
"accum",
|
||||
"accum_swmr_big",
|
||||
NULL
|
||||
};
|
||||
|
||||
/* The file name is the same as the define in accum_swmr_reader.c */
|
||||
#define SWMR_FILENAME "accum_swmr_big.h5"
|
||||
/* The reader forked by test_swmr_write_big() */
|
||||
#define SWMR_READER "accum_swmr_reader"
|
||||
|
||||
@ -92,6 +95,7 @@ main(void)
|
||||
hbool_t api_ctx_pushed = FALSE; /* Whether API context pushed */
|
||||
hid_t fid = -1;
|
||||
hid_t fapl = -1; /* File access property list */
|
||||
char filename[1024];
|
||||
H5F_t * f = NULL; /* File for all tests */
|
||||
|
||||
|
||||
@ -99,15 +103,13 @@ main(void)
|
||||
puts("Testing the metadata accumulator");
|
||||
|
||||
/* File access property list */
|
||||
h5_reset();
|
||||
if((fapl = h5_fileaccess()) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
|
||||
|
||||
/* Create a test file */
|
||||
if((fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) FAIL_STACK_ERROR
|
||||
|
||||
/* Closing and remove the file */
|
||||
if(H5Pclose(fapl) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) FAIL_STACK_ERROR
|
||||
|
||||
/* Push API context */
|
||||
if(H5CX_push() < 0) FAIL_STACK_ERROR
|
||||
@ -143,7 +145,6 @@ main(void)
|
||||
|
||||
/* End of test code, close and delete file */
|
||||
if(H5Fclose(fid) < 0) TEST_ERROR
|
||||
HDremove(FILENAME);
|
||||
|
||||
/* This test uses a different file */
|
||||
nerrors += test_swmr_write_big(TRUE);
|
||||
@ -152,6 +153,7 @@ main(void)
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All metadata accumulator tests passed.");
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
return 0;
|
||||
|
||||
@ -1828,6 +1830,7 @@ test_swmr_write_big(hbool_t newest_format)
|
||||
hid_t fid = -1; /* File ID */
|
||||
hid_t fapl = -1; /* File access property list */
|
||||
H5F_t *rf = NULL; /* File pointer */
|
||||
char filename[1024];
|
||||
uint8_t *wbuf2 = NULL, *rbuf = NULL; /* Buffers for reading & writing */
|
||||
uint8_t wbuf[1024]; /* Buffer for reading & writing */
|
||||
unsigned u; /* Local index variable */
|
||||
@ -1865,17 +1868,18 @@ test_swmr_write_big(hbool_t newest_format)
|
||||
/* File access property list */
|
||||
if((fapl = h5_fileaccess()) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
h5_fixname(FILENAME[1], fapl, filename, sizeof filename);
|
||||
|
||||
/* Both cases will result in v3 superblock and version 2 object header for SWMR */
|
||||
if(newest_format) { /* latest format */
|
||||
if(H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
|
||||
if((fid = H5Fcreate(SWMR_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
}
|
||||
else { /* non-latest-format */
|
||||
if((fid = H5Fcreate(SWMR_FILENAME, H5F_ACC_TRUNC|H5F_ACC_SWMR_WRITE, H5P_DEFAULT, fapl)) < 0)
|
||||
if((fid = H5Fcreate(filename, H5F_ACC_TRUNC|H5F_ACC_SWMR_WRITE, H5P_DEFAULT, fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
} /* end if */
|
||||
|
||||
@ -1884,7 +1888,7 @@ test_swmr_write_big(hbool_t newest_format)
|
||||
FAIL_STACK_ERROR
|
||||
|
||||
/* Open the file with SWMR_WRITE */
|
||||
if((fid = H5Fopen(SWMR_FILENAME, H5F_ACC_RDWR | H5F_ACC_SWMR_WRITE, fapl)) < 0)
|
||||
if((fid = H5Fopen(filename, H5F_ACC_RDWR | H5F_ACC_SWMR_WRITE, fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
|
||||
/* Push API context */
|
||||
@ -1979,20 +1983,19 @@ test_swmr_write_big(hbool_t newest_format)
|
||||
/* Flush the accumulator */
|
||||
if(accum_reset(rf) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
/* Close the property list */
|
||||
if(H5Pclose(fapl) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
|
||||
/* Close and remove the file */
|
||||
if(H5Fclose(fid) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
|
||||
/* Close the property list */
|
||||
if(H5Pclose(fapl) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
|
||||
/* Pop API context */
|
||||
if(api_ctx_pushed && H5CX_pop() < 0) FAIL_STACK_ERROR
|
||||
api_ctx_pushed = FALSE;
|
||||
|
||||
HDremove(SWMR_FILENAME);
|
||||
|
||||
/* Release memory */
|
||||
if(wbuf2)
|
||||
HDfree(wbuf2);
|
||||
@ -2004,12 +2007,11 @@ test_swmr_write_big(hbool_t newest_format)
|
||||
|
||||
error:
|
||||
/* Closing and remove the file */
|
||||
H5Pclose(fapl);
|
||||
H5Fclose(fid);
|
||||
|
||||
if(api_ctx_pushed) H5CX_pop();
|
||||
|
||||
HDremove(SWMR_FILENAME);
|
||||
H5Pclose(fapl);
|
||||
|
||||
/* Release memory */
|
||||
if(wbuf2)
|
||||
|
@ -23,7 +23,12 @@
|
||||
#include "H5VLprivate.h" /* Virtual Object Layer */
|
||||
|
||||
/* Filename: this is the same as the define in accum.c used by test_swmr_write_big() */
|
||||
#define SWMR_FILENAME "accum_swmr_big.h5"
|
||||
const char *FILENAME[] = {
|
||||
"accum",
|
||||
"accum_swmr_big",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -47,6 +52,7 @@ main(void)
|
||||
hid_t fid = -1; /* File ID */
|
||||
hid_t fapl = -1; /* file access property list ID */
|
||||
H5F_t *f = NULL; /* File pointer */
|
||||
char filename[1024];
|
||||
unsigned u; /* Local index variable */
|
||||
uint8_t rbuf[1024]; /* Buffer for reading */
|
||||
uint8_t buf[1024]; /* Buffer for holding the expected data */
|
||||
@ -68,10 +74,11 @@ main(void)
|
||||
|
||||
if((fapl = h5_fileaccess()) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
h5_fixname(FILENAME[1], fapl, filename, sizeof filename);
|
||||
|
||||
/* Open the file with SWMR_READ */
|
||||
if((fid = H5Fopen(SWMR_FILENAME, H5F_ACC_RDONLY | H5F_ACC_SWMR_READ, fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
if((fid = H5Fopen(filename, H5F_ACC_RDONLY | H5F_ACC_SWMR_READ, fapl)) < 0)
|
||||
FAIL_STACK_ERROR
|
||||
|
||||
/* Push API context */
|
||||
if(H5CX_push() < 0) FAIL_STACK_ERROR
|
||||
@ -79,21 +86,21 @@ main(void)
|
||||
|
||||
/* Get H5F_t * to internal file structure */
|
||||
if(NULL == (f = (H5F_t *)H5VL_object(fid)))
|
||||
FAIL_STACK_ERROR
|
||||
FAIL_STACK_ERROR
|
||||
|
||||
/* Should read in [1024, 2024] with buf data */
|
||||
if(H5F_block_read(f, H5FD_MEM_DEFAULT, (haddr_t)1024, (size_t)1024, rbuf) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
FAIL_STACK_ERROR;
|
||||
|
||||
/* Verify the data read is correct */
|
||||
if(HDmemcmp(buf, rbuf, (size_t)1024) != 0)
|
||||
TEST_ERROR;
|
||||
TEST_ERROR;
|
||||
|
||||
/* CLose the file */
|
||||
if(H5Pclose(fapl) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
FAIL_STACK_ERROR;
|
||||
if(H5Fclose(fid) < 0)
|
||||
FAIL_STACK_ERROR;
|
||||
FAIL_STACK_ERROR;
|
||||
|
||||
/* Pop API context */
|
||||
if(api_ctx_pushed && H5CX_pop() < 0) FAIL_STACK_ERROR
|
||||
|
@ -40,27 +40,27 @@ static void attempt_swmr_open_hdf5_file(hbool_t create_file,
|
||||
static void verify_datasets(hid_t file_id, int min_dset, int max_dset);
|
||||
|
||||
/* local test function declarations */
|
||||
static unsigned check_cache_image_ctl_flow_1(void);
|
||||
static unsigned check_cache_image_ctl_flow_2(void);
|
||||
static unsigned check_cache_image_ctl_flow_3(void);
|
||||
static unsigned check_cache_image_ctl_flow_4(void);
|
||||
static unsigned check_cache_image_ctl_flow_5(void);
|
||||
static unsigned check_cache_image_ctl_flow_6(void);
|
||||
static unsigned check_cache_image_ctl_flow_1(hbool_t single_file_vfd);
|
||||
static unsigned check_cache_image_ctl_flow_2(hbool_t single_file_vfd);
|
||||
static unsigned check_cache_image_ctl_flow_3(hbool_t single_file_vfd);
|
||||
static unsigned check_cache_image_ctl_flow_4(hbool_t single_file_vfd);
|
||||
static unsigned check_cache_image_ctl_flow_5(hbool_t single_file_vfd);
|
||||
static unsigned check_cache_image_ctl_flow_6(hbool_t single_file_vfd);
|
||||
|
||||
static unsigned cache_image_smoke_check_1(void);
|
||||
static unsigned cache_image_smoke_check_2(void);
|
||||
static unsigned cache_image_smoke_check_3(void);
|
||||
static unsigned cache_image_smoke_check_4(void);
|
||||
static unsigned cache_image_smoke_check_5(void);
|
||||
static unsigned cache_image_smoke_check_6(void);
|
||||
static unsigned cache_image_smoke_check_1(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_smoke_check_2(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_smoke_check_3(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_smoke_check_4(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_smoke_check_5(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_smoke_check_6(hbool_t single_file_vfd);
|
||||
|
||||
static unsigned cache_image_api_error_check_1(void);
|
||||
static unsigned cache_image_api_error_check_2(void);
|
||||
static unsigned cache_image_api_error_check_3(void);
|
||||
static unsigned cache_image_api_error_check_4(void);
|
||||
static unsigned cache_image_api_error_check_1(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_api_error_check_2(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_api_error_check_3(hbool_t single_file_vfd);
|
||||
static unsigned cache_image_api_error_check_4(hbool_t single_file_vfd);
|
||||
|
||||
static unsigned get_free_sections_test(void);
|
||||
static unsigned evict_on_close_test(void);
|
||||
static unsigned get_free_sections_test(hbool_t single_file_vfd);
|
||||
static unsigned evict_on_close_test(hbool_t single_file_vfd);
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
@ -1329,7 +1329,7 @@ verify_datasets(hid_t file_id, int min_dset, int max_dset)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
check_cache_image_ctl_flow_1(void)
|
||||
check_cache_image_ctl_flow_1(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "check_cache_image_ctl_flow_1()";
|
||||
char filename[512];
|
||||
@ -1341,6 +1341,13 @@ check_cache_image_ctl_flow_1(void)
|
||||
|
||||
TESTING("metadata cache image control flow test 1");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -1608,7 +1615,7 @@ check_cache_image_ctl_flow_1(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
check_cache_image_ctl_flow_2(void)
|
||||
check_cache_image_ctl_flow_2(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "check_cache_image_ctl_flow_2()";
|
||||
char filename[512];
|
||||
@ -1620,6 +1627,13 @@ check_cache_image_ctl_flow_2(void)
|
||||
|
||||
TESTING("metadata cache image control flow test 2");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -1871,7 +1885,7 @@ check_cache_image_ctl_flow_2(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
check_cache_image_ctl_flow_3(void)
|
||||
check_cache_image_ctl_flow_3(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "check_cache_image_ctl_flow_3()";
|
||||
char filename[512];
|
||||
@ -1883,6 +1897,13 @@ check_cache_image_ctl_flow_3(void)
|
||||
|
||||
TESTING("metadata cache image control flow test 3");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress ) /* 0 */
|
||||
@ -2242,7 +2263,7 @@ check_cache_image_ctl_flow_3(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
check_cache_image_ctl_flow_4(void)
|
||||
check_cache_image_ctl_flow_4(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "check_cache_image_ctl_flow_4()";
|
||||
char filename[512];
|
||||
@ -2254,6 +2275,13 @@ check_cache_image_ctl_flow_4(void)
|
||||
|
||||
TESTING("metadata cache image control flow test 4");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress ) /* 0 */
|
||||
@ -2573,7 +2601,7 @@ check_cache_image_ctl_flow_4(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
check_cache_image_ctl_flow_5(void)
|
||||
check_cache_image_ctl_flow_5(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "check_cache_image_ctl_flow_5()";
|
||||
char filename[512];
|
||||
@ -2585,6 +2613,13 @@ check_cache_image_ctl_flow_5(void)
|
||||
|
||||
TESTING("metadata cache image control flow test 5");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress ) /* 0 */
|
||||
@ -2854,7 +2889,7 @@ check_cache_image_ctl_flow_5(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
check_cache_image_ctl_flow_6(void)
|
||||
check_cache_image_ctl_flow_6(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "check_cache_image_ctl_flow_6()";
|
||||
char filename[512];
|
||||
@ -2866,6 +2901,13 @@ check_cache_image_ctl_flow_6(void)
|
||||
|
||||
TESTING("metadata cache image control flow test 6");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress ) /* 0 */
|
||||
@ -3139,7 +3181,7 @@ check_cache_image_ctl_flow_6(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_smoke_check_1(void)
|
||||
cache_image_smoke_check_1(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_smoke_check_1()";
|
||||
char filename[512];
|
||||
@ -3151,6 +3193,13 @@ cache_image_smoke_check_1(void)
|
||||
|
||||
TESTING("metadata cache image smoke check 1");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -3562,7 +3611,7 @@ cache_image_smoke_check_1(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_smoke_check_2(void)
|
||||
cache_image_smoke_check_2(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_smoke_check_2()";
|
||||
char filename[512];
|
||||
@ -3574,6 +3623,13 @@ cache_image_smoke_check_2(void)
|
||||
|
||||
TESTING("metadata cache image smoke check 2");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -3863,7 +3919,7 @@ cache_image_smoke_check_2(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_smoke_check_3(void)
|
||||
cache_image_smoke_check_3(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_smoke_check_3()";
|
||||
char filename[512];
|
||||
@ -3875,6 +3931,13 @@ cache_image_smoke_check_3(void)
|
||||
|
||||
TESTING("metadata cache image smoke check 3");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -4248,7 +4311,7 @@ cache_image_smoke_check_3(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_smoke_check_4(void)
|
||||
cache_image_smoke_check_4(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_smoke_check_4()";
|
||||
char filename[512];
|
||||
@ -4262,6 +4325,13 @@ cache_image_smoke_check_4(void)
|
||||
|
||||
TESTING("metadata cache image smoke check 4");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -4653,7 +4723,7 @@ cache_image_smoke_check_4(void)
|
||||
#define MAX_NUM_GROUPS 128
|
||||
|
||||
static unsigned
|
||||
cache_image_smoke_check_5(void)
|
||||
cache_image_smoke_check_5(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_smoke_check_5()";
|
||||
char filename[512];
|
||||
@ -4670,6 +4740,13 @@ cache_image_smoke_check_5(void)
|
||||
|
||||
TESTING("metadata cache image smoke check 5");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -5168,7 +5245,7 @@ cache_image_smoke_check_5(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_smoke_check_6(void)
|
||||
cache_image_smoke_check_6(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_smoke_check_6()";
|
||||
char filename[512];
|
||||
@ -5183,6 +5260,13 @@ cache_image_smoke_check_6(void)
|
||||
|
||||
TESTING("metadata cache image smoke check 6");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -5578,7 +5662,7 @@ cache_image_smoke_check_6(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_api_error_check_1(void)
|
||||
cache_image_api_error_check_1(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_api_error_check_1()";
|
||||
char filename[512];
|
||||
@ -5590,6 +5674,13 @@ cache_image_api_error_check_1(void)
|
||||
|
||||
TESTING("metadata cache image api error check 1");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -5954,7 +6045,7 @@ cache_image_api_error_check_1(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_api_error_check_2(void)
|
||||
cache_image_api_error_check_2(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_api_error_check_2()";
|
||||
char filename[512];
|
||||
@ -5966,6 +6057,13 @@ cache_image_api_error_check_2(void)
|
||||
|
||||
TESTING("metadata cache image api error check 2");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -6365,7 +6463,7 @@ cache_image_api_error_check_2(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_api_error_check_3(void)
|
||||
cache_image_api_error_check_3(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_api_error_check_3()";
|
||||
char filename[512];
|
||||
@ -6377,6 +6475,13 @@ cache_image_api_error_check_3(void)
|
||||
|
||||
TESTING("metadata cache image api error check 3");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -6649,7 +6754,7 @@ cache_image_api_error_check_3(void)
|
||||
*/
|
||||
|
||||
static unsigned
|
||||
cache_image_api_error_check_4(void)
|
||||
cache_image_api_error_check_4(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "cache_image_api_error_check_4()";
|
||||
char filename[512];
|
||||
@ -6663,6 +6768,13 @@ cache_image_api_error_check_4(void)
|
||||
|
||||
TESTING("metadata cache image api error check 4");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -7238,7 +7350,7 @@ cache_image_api_error_check_4(void)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static unsigned
|
||||
get_free_sections_test(void)
|
||||
get_free_sections_test(hbool_t single_file_vfd)
|
||||
{
|
||||
const char * fcn_name = "get_free_sections_test()";
|
||||
char filename[512];
|
||||
@ -7251,6 +7363,13 @@ get_free_sections_test(void)
|
||||
|
||||
TESTING("Cache image / H5Fget_free_sections() interaction");
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -7710,7 +7829,7 @@ get_free_sections_test(void)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static unsigned
|
||||
evict_on_close_test(void)
|
||||
evict_on_close_test(hbool_t single_file_vfd)
|
||||
{
|
||||
#ifndef H5_HAVE_PARALLEL
|
||||
const char * fcn_name = "evict_on_close_test()";
|
||||
@ -7731,6 +7850,13 @@ evict_on_close_test(void)
|
||||
return 0;
|
||||
#else
|
||||
|
||||
/* Check for VFD that is a single file */
|
||||
if(!single_file_vfd) {
|
||||
SKIPPED();
|
||||
HDputs(" Cache image not supported with the current VFD.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pass = TRUE;
|
||||
|
||||
if ( show_progress )
|
||||
@ -8041,9 +8167,16 @@ evict_on_close_test(void)
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
const char *env_h5_drvr; /* File driver value from environment */
|
||||
hbool_t single_file_vfd; /* Whether VFD used stores data in a single file */
|
||||
unsigned nerrs = 0;
|
||||
int express_test;
|
||||
|
||||
/* Get the VFD to use */
|
||||
env_h5_drvr = HDgetenv("HDF5_DRIVER");
|
||||
if(env_h5_drvr == NULL)
|
||||
env_h5_drvr = "nomatch";
|
||||
|
||||
H5open();
|
||||
|
||||
express_test = GetTestExpress();
|
||||
@ -8053,27 +8186,30 @@ main(void)
|
||||
printf(" express_test = %d\n", express_test);
|
||||
printf("=========================================\n");
|
||||
|
||||
nerrs += check_cache_image_ctl_flow_1();
|
||||
nerrs += check_cache_image_ctl_flow_2();
|
||||
nerrs += check_cache_image_ctl_flow_3();
|
||||
nerrs += check_cache_image_ctl_flow_4();
|
||||
nerrs += check_cache_image_ctl_flow_5();
|
||||
nerrs += check_cache_image_ctl_flow_6();
|
||||
/* Check for VFD which stores data in multiple files */
|
||||
single_file_vfd = (hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"));
|
||||
|
||||
nerrs += cache_image_smoke_check_1();
|
||||
nerrs += cache_image_smoke_check_2();
|
||||
nerrs += cache_image_smoke_check_3();
|
||||
nerrs += cache_image_smoke_check_4();
|
||||
nerrs += cache_image_smoke_check_5();
|
||||
nerrs += cache_image_smoke_check_6();
|
||||
nerrs += check_cache_image_ctl_flow_1(single_file_vfd);
|
||||
nerrs += check_cache_image_ctl_flow_2(single_file_vfd);
|
||||
nerrs += check_cache_image_ctl_flow_3(single_file_vfd);
|
||||
nerrs += check_cache_image_ctl_flow_4(single_file_vfd);
|
||||
nerrs += check_cache_image_ctl_flow_5(single_file_vfd);
|
||||
nerrs += check_cache_image_ctl_flow_6(single_file_vfd);
|
||||
|
||||
nerrs += cache_image_api_error_check_1();
|
||||
nerrs += cache_image_api_error_check_2();
|
||||
nerrs += cache_image_api_error_check_3();
|
||||
nerrs += cache_image_api_error_check_4();
|
||||
nerrs += cache_image_smoke_check_1(single_file_vfd);
|
||||
nerrs += cache_image_smoke_check_2(single_file_vfd);
|
||||
nerrs += cache_image_smoke_check_3(single_file_vfd);
|
||||
nerrs += cache_image_smoke_check_4(single_file_vfd);
|
||||
nerrs += cache_image_smoke_check_5(single_file_vfd);
|
||||
nerrs += cache_image_smoke_check_6(single_file_vfd);
|
||||
|
||||
nerrs += get_free_sections_test();
|
||||
nerrs += evict_on_close_test();
|
||||
nerrs += cache_image_api_error_check_1(single_file_vfd);
|
||||
nerrs += cache_image_api_error_check_2(single_file_vfd);
|
||||
nerrs += cache_image_api_error_check_3(single_file_vfd);
|
||||
nerrs += cache_image_api_error_check_4(single_file_vfd);
|
||||
|
||||
nerrs += get_free_sections_test(single_file_vfd);
|
||||
nerrs += evict_on_close_test(single_file_vfd);
|
||||
|
||||
return(nerrs > 0);
|
||||
|
||||
|
@ -448,7 +448,7 @@ check_file_creation_tags(hid_t fcpl_id, int type)
|
||||
TESTING("tag application during file creation");
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl_id, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -539,7 +539,7 @@ check_file_open_tags(hid_t fcpl, int type)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -652,7 +652,7 @@ check_group_creation_tags(void)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -751,7 +751,7 @@ check_multi_group_creation_tags(void)
|
||||
TESTING("tag application during multiple group creation");
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Set latest version of library */
|
||||
if ( H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0 ) TEST_ERROR;
|
||||
@ -881,7 +881,7 @@ check_link_iteration_tags(void)
|
||||
TESTING("tag application during iteration over links in a group");
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* =========== */
|
||||
/* Create File */
|
||||
@ -1000,7 +1000,7 @@ check_dense_attribute_tags(void)
|
||||
TESTING("tag application during dense attribute manipulation");
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
if ( H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create Dcpl */
|
||||
@ -1184,7 +1184,7 @@ check_group_open_tags(void)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -1295,7 +1295,7 @@ check_attribute_creation_tags(hid_t fcpl, int type)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -1429,7 +1429,7 @@ check_attribute_open_tags(hid_t fcpl, int type)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -1576,7 +1576,7 @@ check_attribute_rename_tags(hid_t fcpl, int type)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -1761,7 +1761,7 @@ check_attribute_delete_tags(hid_t fcpl, int type)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -1917,7 +1917,7 @@ check_dataset_creation_tags(hid_t fcpl, int type)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
|
||||
@ -2051,7 +2051,7 @@ check_dataset_creation_earlyalloc_tags(hid_t fcpl, int type)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
|
||||
@ -2187,7 +2187,7 @@ check_dataset_open_tags(void)
|
||||
/* ========= */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -2318,7 +2318,7 @@ check_dataset_write_tags(void)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -2457,7 +2457,7 @@ check_attribute_write_tags(hid_t fcpl, int type)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file with provided fcpl_t */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -2613,7 +2613,7 @@ check_dataset_read_tags(void)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -2751,7 +2751,7 @@ check_dataset_size_retrieval(void)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -2890,7 +2890,7 @@ check_dataset_extend_tags(void)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3017,7 +3017,7 @@ check_object_info_tags(void)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3126,7 +3126,7 @@ check_object_copy_tags(void)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3257,7 +3257,7 @@ check_link_removal_tags(hid_t fcpl, int type)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, fcpl, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3416,7 +3416,7 @@ check_link_getname_tags(void)
|
||||
if ( (NULL == (data = (int *)HDcalloc(DIMS * DIMS, sizeof(int)))) ) TEST_ERROR;
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3553,7 +3553,7 @@ check_external_link_creation_tags(void)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3660,7 +3660,7 @@ check_external_link_open_tags(void)
|
||||
/* ===== */
|
||||
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
@ -3671,8 +3671,6 @@ check_external_link_open_tags(void)
|
||||
/* Create a second file */
|
||||
if ( (fid2 = H5Fcreate(FILENAME2, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
|
||||
if ( H5Pclose(fapl) < 0 ) TEST_ERROR;
|
||||
|
||||
/* determine tag value of root group's object header */
|
||||
if ( get_object_header_tag(fid2, &root2_tag) < 0 ) TEST_ERROR;
|
||||
|
||||
@ -3688,7 +3686,9 @@ check_external_link_open_tags(void)
|
||||
|
||||
/* Close and Reopen the file */
|
||||
if ( H5Fclose(fid) < 0 ) TEST_ERROR;
|
||||
if ( (fid = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT)) < 0 ) TEST_ERROR;
|
||||
if ( (fid = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl)) < 0 ) TEST_ERROR;
|
||||
|
||||
if ( H5Pclose(fapl) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Evict as much as we can from the cache so we can track full tag path */
|
||||
if ( evict_entries(fid) < 0 ) TEST_ERROR;
|
||||
@ -3787,7 +3787,7 @@ check_invalid_tag_application(void)
|
||||
|
||||
#if H5C_DO_TAGGING_SANITY_CHECKS
|
||||
/* Create Fapl */
|
||||
if ( (fapl = h5_fileaccess()) < 0 ) TEST_ERROR;
|
||||
if ( (fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0 ) TEST_ERROR;
|
||||
|
||||
/* Create a test file */
|
||||
if ( (fid = H5Fcreate(FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0 ) TEST_ERROR;
|
||||
|
@ -2070,7 +2070,7 @@ test_ooo_order(char *filename, hid_t fapl_id)
|
||||
/* Close and reopen the file */
|
||||
if(H5Tclose(dtype)) TEST_ERROR
|
||||
if(H5Fclose(file)) TEST_ERROR
|
||||
if((file = H5Fopen(filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) TEST_ERROR
|
||||
if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR
|
||||
|
||||
/* Open the type */
|
||||
if((dtype_tmp = H5Topen2(file, "dtype", H5P_DEFAULT)) < 0) TEST_ERROR
|
||||
@ -2123,7 +2123,7 @@ test_ooo_order(char *filename, hid_t fapl_id)
|
||||
if(H5Tclose(dtype_tmp)) TEST_ERROR
|
||||
if(H5Tclose(dtype)) TEST_ERROR
|
||||
if(H5Fclose(file)) TEST_ERROR
|
||||
if((file = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) TEST_ERROR
|
||||
if((file = H5Fopen(filename, H5F_ACC_RDONLY, fapl_id)) < 0) TEST_ERROR
|
||||
|
||||
/* Open the type, and verify status */
|
||||
if((dtype_tmp = H5Topen2(file, "dtype2", H5P_DEFAULT)) < 0) TEST_ERROR
|
||||
|
12
test/efc.c
12
test/efc.c
@ -20,6 +20,7 @@
|
||||
#include "H5Fpkg.h"
|
||||
#include "H5CXprivate.h" /* API Contexts */
|
||||
#include "H5Iprivate.h"
|
||||
#include "H5Pprivate.h" /* Property lists */
|
||||
|
||||
const char *FILENAME[] = {
|
||||
"efc0",
|
||||
@ -2896,6 +2897,8 @@ int
|
||||
main(void)
|
||||
{
|
||||
unsigned nerrors = 0; /* track errors */
|
||||
H5P_genplist_t *plist; /* Property list pointer for FAPL */
|
||||
H5VL_connector_prop_t connector_prop; /* Property for VOL connector ID & info */
|
||||
hbool_t api_ctx_pushed = FALSE; /* Whether API context pushed */
|
||||
|
||||
/* Test Setup */
|
||||
@ -2917,6 +2920,15 @@ main(void)
|
||||
if(H5CX_push() < 0) FAIL_STACK_ERROR
|
||||
api_ctx_pushed = TRUE;
|
||||
|
||||
/* Get the VOL info from the fapl */
|
||||
plist = (H5P_genplist_t *)H5I_object(fapl_id);
|
||||
H5P_peek(plist, H5F_ACS_VOL_CONN_NAME, &connector_prop);
|
||||
|
||||
/* Stash a copy of the "top-level" connector property, before any pass-through
|
||||
* connectors modify or unwrap it.
|
||||
*/
|
||||
H5CX_set_vol_connector_prop(&connector_prop);
|
||||
|
||||
/* Test Functions */
|
||||
nerrors += test_single();
|
||||
nerrors += test_graph_nocycle();
|
||||
|
@ -801,6 +801,50 @@ error:
|
||||
return H5I_INVALID_HID;
|
||||
} /* end h5_fileaccess() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5_fileaccess_flags
|
||||
*
|
||||
* Purpose: Returns a file access template which is the default template
|
||||
* but with a file driver, VOL connector, or libver bound set
|
||||
* according to a constant or environment variable
|
||||
*
|
||||
* Return: Success: A file access property list
|
||||
* Failure: H5I_INVALID_HID
|
||||
*
|
||||
* Programmer: Robb Matzke
|
||||
* Thursday, November 19, 1998
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
hid_t
|
||||
h5_fileaccess_flags(unsigned flags)
|
||||
{
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
|
||||
if((fapl_id = H5Pcreate(H5P_FILE_ACCESS)) < 0)
|
||||
goto error;
|
||||
|
||||
/* Attempt to set up a file driver first */
|
||||
if((flags & H5_FILEACCESS_VFD) && h5_get_vfd_fapl(fapl_id) < 0)
|
||||
goto error;
|
||||
|
||||
/* Next, try to set up a VOL connector */
|
||||
if((flags & H5_FILEACCESS_VOL) && h5_get_vol_fapl(fapl_id) < 0)
|
||||
goto error;
|
||||
|
||||
/* Finally, check for libver bounds */
|
||||
if((flags & H5_FILEACCESS_LIBVER) && h5_get_libver_fapl(fapl_id) < 0)
|
||||
goto error;
|
||||
|
||||
return fapl_id;
|
||||
|
||||
error:
|
||||
if(fapl_id != H5I_INVALID_HID)
|
||||
H5Pclose(fapl_id);
|
||||
return H5I_INVALID_HID;
|
||||
} /* end h5_fileaccess_flags() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5_get_vfd_fapl
|
||||
|
@ -121,6 +121,11 @@ H5TEST_DLLVAR MPI_Info h5_io_info_g; /* MPI INFO object for IO */
|
||||
#define ALARM_ON TestAlarmOn()
|
||||
#define ALARM_OFF HDalarm(0)
|
||||
|
||||
/* Flags for h5_fileaccess_flags() */
|
||||
#define H5_FILEACCESS_VFD 0x01
|
||||
#define H5_FILEACCESS_VOL 0x02
|
||||
#define H5_FILEACCESS_LIBVER 0x04
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@ -132,6 +137,7 @@ H5TEST_DLL char *h5_fixname(const char *base_name, hid_t fapl, char *fullname, s
|
||||
H5TEST_DLL char *h5_fixname_no_suffix(const char *base_name, hid_t fapl, char *fullname, size_t size);
|
||||
H5TEST_DLL char *h5_fixname_printf(const char *base_name, hid_t fapl, char *fullname, size_t size);
|
||||
H5TEST_DLL hid_t h5_fileaccess(void);
|
||||
H5TEST_DLL hid_t h5_fileaccess_flags(unsigned flags);
|
||||
H5TEST_DLL void h5_no_hwconv(void);
|
||||
H5TEST_DLL const char *h5_rmprefix(const char *filename);
|
||||
H5TEST_DLL void h5_reset(void);
|
||||
|
@ -7871,7 +7871,7 @@ test_copy_old_layout(hid_t fcpl_dst, hid_t fapl, hbool_t test_open)
|
||||
addr_reset();
|
||||
|
||||
/* Setup */
|
||||
if((src_fapl = h5_fileaccess()) < 0) TEST_ERROR
|
||||
if((src_fapl = h5_fileaccess_flags(H5_FILEACCESS_VOL | H5_FILEACCESS_LIBVER)) < 0) TEST_ERROR
|
||||
|
||||
/* open source file (read-only) */
|
||||
if((fid_src = H5Fopen(src_filename, H5F_ACC_RDONLY, src_fapl)) < 0) TEST_ERROR
|
||||
|
50
test/ohdr.c
50
test/ohdr.c
@ -850,7 +850,7 @@ test_minimized_dset_ohdr_attribute_addition(hid_t fapl_id)
|
||||
* SETUP *
|
||||
*********/
|
||||
|
||||
if(h5_fixname(FILENAME[1], H5P_DEFAULT, filename, sizeof(filename)) == NULL)
|
||||
if(h5_fixname(FILENAME[1], fapl_id, filename, sizeof(filename)) == NULL)
|
||||
TEST_ERROR
|
||||
|
||||
dspace_id = H5Screate_simple(1, array_10, NULL);
|
||||
@ -1081,10 +1081,10 @@ test_minimized_dset_ohdr_size_comparisons(hid_t fapl_id)
|
||||
* SETUP *
|
||||
*********/
|
||||
|
||||
if(h5_fixname(FILENAME[1], H5P_DEFAULT, filename_a, sizeof(filename_a)) == NULL)
|
||||
if(h5_fixname(FILENAME[1], fapl_id, filename_a, sizeof(filename_a)) == NULL)
|
||||
TEST_ERROR
|
||||
|
||||
if(h5_fixname(FILENAME[2], H5P_DEFAULT, filename_b, sizeof(filename_b)) == NULL)
|
||||
if(h5_fixname(FILENAME[2], fapl_id, filename_b, sizeof(filename_b)) == NULL)
|
||||
TEST_ERROR
|
||||
|
||||
for (compact = 0; compact < 2; compact++) { /* 0 or 1 */
|
||||
@ -1244,7 +1244,7 @@ test_minimized_dset_ohdr_with_filter(hid_t fapl_id)
|
||||
* SETUP *
|
||||
*********/
|
||||
|
||||
if(h5_fixname(FILENAME[1], H5P_DEFAULT, filename, sizeof(filename)) == NULL)
|
||||
if(h5_fixname(FILENAME[1], fapl_id, filename, sizeof(filename)) == NULL)
|
||||
TEST_ERROR
|
||||
|
||||
dcpl_mx_id = H5Pcreate(H5P_DATASET_CREATE);
|
||||
@ -1383,7 +1383,7 @@ test_minimized_dset_ohdr_modification_times(hid_t _fapl_id)
|
||||
* SETUP *
|
||||
*********/
|
||||
|
||||
if(h5_fixname(FILENAME[1], H5P_DEFAULT, filename, sizeof(filename)) == NULL)
|
||||
if(h5_fixname(FILENAME[1], _fapl_id, filename, sizeof(filename)) == NULL)
|
||||
TEST_ERROR
|
||||
|
||||
dcpl_mx_id = H5Pcreate(H5P_DATASET_CREATE);
|
||||
@ -1426,8 +1426,6 @@ test_minimized_dset_ohdr_modification_times(hid_t _fapl_id)
|
||||
if(fapl_id < 0) TEST_ERROR
|
||||
|
||||
if(cases[i].oh_version > 1) {
|
||||
fapl_id = H5Pcreate(H5P_FILE_ACCESS);
|
||||
if(fapl_id < 0) TEST_ERROR
|
||||
ret = H5Pset_libver_bounds(fapl_id, H5F_LIBVER_V18, H5F_LIBVER_V110);
|
||||
if(ret < 0) TEST_ERROR
|
||||
}
|
||||
@ -1534,7 +1532,10 @@ test_minimized_dset_ohdr_fillvalue_backwards_compatability(hid_t _fapl_id)
|
||||
|
||||
TESTING("minimized dset object headers with fill values and different libver support");
|
||||
|
||||
if(h5_fixname(FILENAME[1], H5P_DEFAULT, filename, sizeof(filename)) == NULL)
|
||||
fapl_id = H5Pcopy(_fapl_id);
|
||||
if(fapl_id < 0) TEST_ERROR
|
||||
|
||||
if(h5_fixname(FILENAME[1], fapl_id, filename, sizeof(filename)) == NULL)
|
||||
TEST_ERROR
|
||||
|
||||
dspace_id = H5Screate_simple(1, extents, extents);
|
||||
@ -1552,9 +1553,6 @@ test_minimized_dset_ohdr_fillvalue_backwards_compatability(hid_t _fapl_id)
|
||||
ret = H5Pset_fill_value(dcpl_id, dtype_id, fill);
|
||||
if(ret == FAIL) TEST_ERROR;
|
||||
|
||||
fapl_id = H5Pcopy(_fapl_id);
|
||||
if(fapl_id < 0) TEST_ERROR
|
||||
|
||||
ret = H5Pset_libver_bounds(fapl_id, H5F_LIBVER_EARLIEST, H5F_LIBVER_LATEST);
|
||||
if(ret == FAIL) TEST_ERROR;
|
||||
|
||||
@ -1678,6 +1676,8 @@ main(void)
|
||||
hid_t fapl = -1;
|
||||
hid_t file = -1;
|
||||
H5F_t *f = NULL;
|
||||
const char *env_h5_drvr; /* File driver value from environment */
|
||||
hbool_t single_file_vfd; /* Whether VFD used stores data in a single file */
|
||||
char filename[1024];
|
||||
H5O_hdr_info_t hdr_info; /* Object info */
|
||||
H5O_loc_t oh_loc; /* Object header locations */
|
||||
@ -1688,6 +1688,14 @@ main(void)
|
||||
hbool_t api_ctx_pushed = FALSE; /* Whether API context pushed */
|
||||
herr_t ret; /* Generic return value */
|
||||
|
||||
/* Get the VFD to use */
|
||||
env_h5_drvr = HDgetenv("HDF5_DRIVER");
|
||||
if(env_h5_drvr == NULL)
|
||||
env_h5_drvr = "nomatch";
|
||||
|
||||
/* Check for VFD which stores data in multiple files */
|
||||
single_file_vfd = (hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"));
|
||||
|
||||
/* Reset library */
|
||||
h5_reset();
|
||||
fapl = h5_fileaccess();
|
||||
@ -1906,11 +1914,23 @@ main(void)
|
||||
* and the various "fail/mark if unknown" object header message flags
|
||||
*/
|
||||
HDputs("Accessing objects with unknown header messages: H5O_BOGUS_VALID_ID");
|
||||
if(test_unknown(H5O_BOGUS_VALID_ID, filename, fapl) < 0)
|
||||
TEST_ERROR
|
||||
if(single_file_vfd) {
|
||||
if(test_unknown(H5O_BOGUS_VALID_ID, filename, fapl) < 0)
|
||||
TEST_ERROR
|
||||
} /* end if */
|
||||
else {
|
||||
SKIPPED();
|
||||
HDputs(" Unknown header message test not supported with the current VFD.");
|
||||
} /* end else */
|
||||
HDputs("Accessing objects with unknown header messages: H5O_BOGUS_INVALID_ID");
|
||||
if(test_unknown(H5O_BOGUS_INVALID_ID, filename, fapl) < 0)
|
||||
TEST_ERROR
|
||||
if(single_file_vfd) {
|
||||
if(test_unknown(H5O_BOGUS_INVALID_ID, filename, fapl) < 0)
|
||||
TEST_ERROR
|
||||
} /* end if */
|
||||
else {
|
||||
SKIPPED();
|
||||
HDputs(" Unknown header message test not supported with the current VFD.");
|
||||
} /* end else */
|
||||
|
||||
/* Test object header creation metadata cache issues */
|
||||
if(test_ohdr_cache(filename, fapl) < 0)
|
||||
|
128
test/tfile.c
128
test/tfile.c
@ -1595,16 +1595,18 @@ test_file_perm2(void)
|
||||
**
|
||||
*****************************************************************/
|
||||
static void
|
||||
test_file_is_accessible(void)
|
||||
test_file_is_accessible(const char *env_h5_drvr)
|
||||
{
|
||||
hid_t fid; /* File opened with read-write permission */
|
||||
hid_t fcpl_id; /* File creation property list */
|
||||
hid_t fapl = -1; /* File access property list */
|
||||
int fd; /* POSIX file descriptor */
|
||||
char filename[FILENAME_LEN]; /* Filename to use */
|
||||
ssize_t nbytes; /* Number of bytes written */
|
||||
unsigned u; /* Local index variable */
|
||||
unsigned char buf[1024]; /* Buffer of data to write */
|
||||
htri_t status; /* Whether a file is an HDF5 file */
|
||||
hbool_t single_file_vfd; /* Whether VFD used is a single file */
|
||||
herr_t ret;
|
||||
|
||||
/* Output message about test being performed */
|
||||
@ -1613,9 +1615,10 @@ test_file_is_accessible(void)
|
||||
/* Get FAPL */
|
||||
fapl = h5_fileaccess();
|
||||
CHECK(fapl, FAIL, "H5Pcreate");
|
||||
h5_fixname(FILE1, fapl, filename, sizeof filename);
|
||||
|
||||
/* Create a file */
|
||||
fid = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
|
||||
fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
|
||||
CHECK(fid, FAIL, "H5Fcreate");
|
||||
|
||||
/* Close file */
|
||||
@ -1623,53 +1626,60 @@ test_file_is_accessible(void)
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
|
||||
/* Verify that the file is an HDF5 file */
|
||||
status = H5Fis_accessible(FILE1, fapl);
|
||||
status = H5Fis_accessible(filename, fapl);
|
||||
VERIFY(status, TRUE, "H5Fis_accessible");
|
||||
|
||||
|
||||
/* Create a file creation property list with a non-default user block size */
|
||||
fcpl_id = H5Pcreate(H5P_FILE_CREATE);
|
||||
CHECK(fcpl_id, FAIL, "H5Pcreate");
|
||||
/* This test is not currently working for the family VFD */
|
||||
if(0 != HDstrcmp(env_h5_drvr, "family")) {
|
||||
/* Create a file creation property list with a non-default user block size */
|
||||
fcpl_id = H5Pcreate(H5P_FILE_CREATE);
|
||||
CHECK(fcpl_id, FAIL, "H5Pcreate");
|
||||
|
||||
ret = H5Pset_userblock(fcpl_id, (hsize_t)2048);
|
||||
CHECK(ret, FAIL, "H5Pset_userblock");
|
||||
ret = H5Pset_userblock(fcpl_id, (hsize_t)2048);
|
||||
CHECK(ret, FAIL, "H5Pset_userblock");
|
||||
|
||||
/* Create file with non-default user block */
|
||||
fid = H5Fcreate(FILE1, H5F_ACC_TRUNC, fcpl_id, fapl);
|
||||
CHECK(fid, FAIL, "H5Fcreate");
|
||||
/* Create file with non-default user block */
|
||||
fid = H5Fcreate(filename, H5F_ACC_TRUNC, fcpl_id, fapl);
|
||||
CHECK(fid, FAIL, "H5Fcreate");
|
||||
|
||||
/* Release file-creation property list */
|
||||
ret = H5Pclose(fcpl_id);
|
||||
CHECK(ret, FAIL, "H5Pclose");
|
||||
/* Release file-creation property list */
|
||||
ret = H5Pclose(fcpl_id);
|
||||
CHECK(ret, FAIL, "H5Pclose");
|
||||
|
||||
/* Close file */
|
||||
ret = H5Fclose(fid);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
/* Close file */
|
||||
ret = H5Fclose(fid);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
|
||||
/* Verify that the file is an HDF5 file */
|
||||
status = H5Fis_accessible(FILE1, fapl);
|
||||
VERIFY(status, TRUE, "H5Fis_accessible");
|
||||
/* Verify that the file is an HDF5 file */
|
||||
status = H5Fis_accessible(filename, fapl);
|
||||
VERIFY(status, TRUE, "H5Fis_accessible");
|
||||
} /* end if */
|
||||
|
||||
|
||||
/* Create non-HDF5 file and check it */
|
||||
fd = HDopen(FILE1, O_RDWR|O_CREAT|O_TRUNC, H5_POSIX_CREATE_MODE_RW);
|
||||
CHECK(fd, FAIL, "HDopen");
|
||||
/* This test only works for VFDs with a single file */
|
||||
single_file_vfd = (hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"));
|
||||
if(single_file_vfd) {
|
||||
/* Create non-HDF5 file and check it */
|
||||
fd = HDopen(filename, O_RDWR|O_CREAT|O_TRUNC, H5_POSIX_CREATE_MODE_RW);
|
||||
CHECK(fd, FAIL, "HDopen");
|
||||
|
||||
/* Initialize information to write */
|
||||
for (u=0; u<1024; u++)
|
||||
buf[u]=(unsigned char)u;
|
||||
/* Initialize information to write */
|
||||
for (u=0; u<1024; u++)
|
||||
buf[u]=(unsigned char)u;
|
||||
|
||||
/* Write some information */
|
||||
nbytes = HDwrite(fd, buf, (size_t)1024);
|
||||
VERIFY(nbytes, 1024, "HDwrite");
|
||||
/* Write some information */
|
||||
nbytes = HDwrite(fd, buf, (size_t)1024);
|
||||
VERIFY(nbytes, 1024, "HDwrite");
|
||||
|
||||
/* Close the file */
|
||||
ret = HDclose(fd);
|
||||
CHECK(ret, FAIL, "HDclose");
|
||||
/* Close the file */
|
||||
ret = HDclose(fd);
|
||||
CHECK(ret, FAIL, "HDclose");
|
||||
|
||||
/* Verify that the file is not an HDF5 file */
|
||||
status = H5Fis_accessible(FILE1, fapl);
|
||||
VERIFY(status, FALSE, "H5Fis_accessible");
|
||||
/* Verify that the file is not an HDF5 file */
|
||||
status = H5Fis_accessible(filename, fapl);
|
||||
VERIFY(status, FALSE, "H5Fis_accessible");
|
||||
} /* end if */
|
||||
|
||||
/* Close property list */
|
||||
ret = H5Pclose(fapl);
|
||||
@ -1693,6 +1703,7 @@ test_file_ishdf5(void)
|
||||
hid_t fcpl; /* File creation property list */
|
||||
hid_t fapl = -1; /* File access property list */
|
||||
int fd; /* File Descriptor */
|
||||
char filename[FILENAME_LEN]; /* Filename to use */
|
||||
ssize_t nbytes; /* Number of bytes written */
|
||||
unsigned u; /* Local index variable */
|
||||
unsigned char buf[1024]; /* Buffer of data to write */
|
||||
@ -1705,9 +1716,10 @@ test_file_ishdf5(void)
|
||||
/* Get FAPL */
|
||||
fapl = h5_fileaccess();
|
||||
CHECK(fapl, FAIL, "H5Pcreate");
|
||||
h5_fixname(FILE1, fapl, filename, sizeof filename);
|
||||
|
||||
/* Create a file */
|
||||
file = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
|
||||
file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
|
||||
CHECK(file, FAIL, "H5Fcreate");
|
||||
|
||||
/* Close file */
|
||||
@ -1715,7 +1727,7 @@ test_file_ishdf5(void)
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
|
||||
/* Verify that the file is an HDF5 file */
|
||||
status = H5Fis_hdf5(FILE1);
|
||||
status = H5Fis_hdf5(filename);
|
||||
VERIFY(status, TRUE, "H5Fis_hdf5");
|
||||
|
||||
|
||||
@ -1727,7 +1739,7 @@ test_file_ishdf5(void)
|
||||
CHECK(ret, FAIL, "H5Pset_userblock");
|
||||
|
||||
/* Create file with non-default user block */
|
||||
file = H5Fcreate(FILE1, H5F_ACC_TRUNC, fcpl, fapl);
|
||||
file = H5Fcreate(filename, H5F_ACC_TRUNC, fcpl, fapl);
|
||||
CHECK(file, FAIL, "H5Fcreate");
|
||||
|
||||
/* Release file-creation property list */
|
||||
@ -1739,12 +1751,12 @@ test_file_ishdf5(void)
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
|
||||
/* Verify that the file is an HDF5 file */
|
||||
status = H5Fis_hdf5(FILE1);
|
||||
status = H5Fis_hdf5(filename);
|
||||
VERIFY(status, TRUE, "H5Fis_hdf5");
|
||||
|
||||
|
||||
/* Create non-HDF5 file and check it */
|
||||
fd = HDopen(FILE1, O_RDWR|O_CREAT|O_TRUNC, H5_POSIX_CREATE_MODE_RW);
|
||||
fd = HDopen(filename, O_RDWR|O_CREAT|O_TRUNC, H5_POSIX_CREATE_MODE_RW);
|
||||
CHECK(fd, FAIL, "HDopen");
|
||||
|
||||
/* Initialize information to write */
|
||||
@ -1760,7 +1772,7 @@ test_file_ishdf5(void)
|
||||
CHECK(ret, FAIL, "HDclose");
|
||||
|
||||
/* Verify that the file is not an HDF5 file */
|
||||
status = H5Fis_hdf5(FILE1);
|
||||
status = H5Fis_hdf5(filename);
|
||||
VERIFY(status, FALSE, "H5Fis_hdf5");
|
||||
|
||||
/* Close property list */
|
||||
@ -2247,6 +2259,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
hsize_t max_dims2[2] = {H5S_UNLIMITED, H5S_UNLIMITED}; /* Maximum dimension sizes for v2 B-tree index */
|
||||
hsize_t chunks[1] = {2}, chunks2[2] = {4, 5}; /* Chunk dimension sizes */
|
||||
hsize_t size; /* File size */
|
||||
char filename[FILENAME_LEN]; /* Filename to use */
|
||||
const char* data[] = {"String 1", "String 2", "String 3", "String 4", "String 5"}; /* Input Data */
|
||||
const char* e_data[] = {"String 1", "String 2", "String 3", "String 4", "String 5", "String 6", "String 7"}; /* Input Data */
|
||||
char* buffer[5]; /* Output buffer */
|
||||
@ -2263,9 +2276,10 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
ret = H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST);
|
||||
CHECK(ret, FAIL, "H5Pset_libver_bounds");
|
||||
} /* end if */
|
||||
h5_fixname(FILE1, fapl, filename, sizeof filename);
|
||||
|
||||
/* Create the test file */
|
||||
fid1 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
|
||||
fid1 = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
|
||||
CHECK(fid1, FAIL, "H5Fcreate");
|
||||
|
||||
/* Create a chunked dataset with fixed array indexing */
|
||||
@ -2347,8 +2361,6 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
CHECK(ret, FAIL, "H5Sclose");
|
||||
ret = H5Pclose(dcpl);
|
||||
CHECK(ret, FAIL, "H5Pclose");
|
||||
ret = H5Pclose(fapl);
|
||||
CHECK(ret, FAIL, "H5Pclose");
|
||||
ret = H5Fclose(fid1);
|
||||
CHECK(ret, FAIL, "H5Fclose");
|
||||
|
||||
@ -2357,7 +2369,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
*/
|
||||
|
||||
/* First file open */
|
||||
fid1 = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
|
||||
fid1 = H5Fopen(filename, H5F_ACC_RDWR, fapl);
|
||||
CHECK(fid1, FAIL, "H5Fopen");
|
||||
|
||||
/* First file's dataset open */
|
||||
@ -2372,7 +2384,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
CHECK(ret, FAIL, "H5Dwrite");
|
||||
|
||||
/* Second file open */
|
||||
fid2 = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
|
||||
fid2 = H5Fopen(filename, H5F_ACC_RDWR, fapl);
|
||||
CHECK(fid2, FAIL, "H5Fopen");
|
||||
|
||||
/* Second file's dataset open */
|
||||
@ -2413,11 +2425,11 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
*/
|
||||
|
||||
/* First file open */
|
||||
fid1 = H5Fopen(FILE1, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
fid1 = H5Fopen(filename, H5F_ACC_RDONLY, fapl);
|
||||
CHECK(fid1, FAIL, "H5Fopen");
|
||||
|
||||
/* Second file open */
|
||||
fid2 = H5Fopen(FILE1, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
fid2 = H5Fopen(filename, H5F_ACC_RDONLY, fapl);
|
||||
CHECK(fid2, FAIL, "H5Fopen");
|
||||
|
||||
/* Second file's dataset open */
|
||||
@ -2478,7 +2490,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
*/
|
||||
|
||||
/* First file open */
|
||||
fid1 = H5Fopen(FILE1, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
fid1 = H5Fopen(filename, H5F_ACC_RDONLY, fapl);
|
||||
CHECK(fid1, FAIL, "H5Fopen");
|
||||
|
||||
/* First file's dataset open */
|
||||
@ -2490,7 +2502,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
CHECK(size, 0, "H5Dget_storage_size");
|
||||
|
||||
/* Second file open */
|
||||
fid2 = H5Fopen(FILE1, H5F_ACC_RDONLY, H5P_DEFAULT);
|
||||
fid2 = H5Fopen(filename, H5F_ACC_RDONLY, fapl);
|
||||
CHECK(fid2, FAIL, "H5Fopen");
|
||||
|
||||
/* Second file's dataset open */
|
||||
@ -2523,7 +2535,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
* from second call to H5Dset_extent->...H5D__earray_idx_remove->H5EA_get...H5EA__iblock_protect...H5AC_protect
|
||||
*/
|
||||
/* First file open */
|
||||
fid1 = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
|
||||
fid1 = H5Fopen(filename, H5F_ACC_RDWR, fapl);
|
||||
CHECK(fid1, FAIL, "H5Fopen");
|
||||
|
||||
/* First file's dataset open */
|
||||
@ -2542,7 +2554,7 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
CHECK(ret, FAIL, "H5Dwrite");
|
||||
|
||||
/* Second file open */
|
||||
fid2 = H5Fopen(FILE1, H5F_ACC_RDWR, H5P_DEFAULT);
|
||||
fid2 = H5Fopen(filename, H5F_ACC_RDWR, fapl);
|
||||
CHECK(fid2, FAIL, "H5Fopen");
|
||||
|
||||
/* Second file's dataset open */
|
||||
@ -2573,6 +2585,9 @@ test_file_double_file_dataset_open(hbool_t new_format)
|
||||
ret = H5Tclose(tid1);
|
||||
CHECK(ret, FAIL, "H5Tclose");
|
||||
|
||||
/* Close FAPL */
|
||||
ret = H5Pclose(fapl);
|
||||
CHECK(ret, FAIL, "H5Pclose");
|
||||
} /* end test_file_double_dataset_open() */
|
||||
|
||||
/****************************************************************
|
||||
@ -7500,6 +7515,7 @@ test_deprec(void)
|
||||
void
|
||||
test_file(void)
|
||||
{
|
||||
hbool_t single_file_vfd; /* Whether VFD used is a single file */
|
||||
const char *env_h5_drvr; /* File Driver value from environment */
|
||||
|
||||
/* Output message about test being performed */
|
||||
@ -7509,6 +7525,7 @@ test_file(void)
|
||||
env_h5_drvr = HDgetenv("HDF5_DRIVER");
|
||||
if(env_h5_drvr == NULL)
|
||||
env_h5_drvr = "nomatch";
|
||||
single_file_vfd = (hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"));
|
||||
|
||||
test_file_create(); /* Test file creation(also creation templates)*/
|
||||
test_file_open(); /* Test file opening */
|
||||
@ -7518,7 +7535,7 @@ test_file(void)
|
||||
test_get_obj_ids(); /* Test H5Fget_obj_ids for Jira Issue 8528 */
|
||||
test_file_perm(); /* Test file access permissions */
|
||||
test_file_perm2(); /* Test file access permission again */
|
||||
test_file_is_accessible(); /* Test detecting HDF5 files correctly */
|
||||
test_file_is_accessible(env_h5_drvr); /* Test detecting HDF5 files correctly */
|
||||
test_file_open_dot(); /* Test opening objects with "." for a name */
|
||||
test_file_open_overlap(); /* Test opening files in an overlapping manner */
|
||||
test_file_getname(); /* Test basic H5Fget_name() functionality */
|
||||
@ -7554,7 +7571,10 @@ test_file(void)
|
||||
test_incr_filesize(); /* Test H5Fincrement_filesize() and H5Fget_eoa() */
|
||||
test_min_dset_ohdr(); /* Test datset object header minimization */
|
||||
#ifndef H5_NO_DEPRECATED_SYMBOLS
|
||||
test_file_ishdf5(); /* Test detecting HDF5 files correctly */
|
||||
if(single_file_vfd)
|
||||
test_file_ishdf5(); /* Test detecting HDF5 files correctly */
|
||||
else
|
||||
MESSAGE(5, ("Skipping testing detection of HDF5 Files (using deprecated H5Fis_hdf5() call for non-single file VFDs)\n"));
|
||||
test_deprec(); /* Test deprecated routines */
|
||||
#endif /* H5_NO_DEPRECATED_SYMBOLS */
|
||||
} /* test_file() */
|
||||
|
210
test/vol.c
210
test/vol.c
@ -20,8 +20,12 @@
|
||||
|
||||
#include "h5test.h"
|
||||
|
||||
/* Filename */
|
||||
const char *FILENAME[] = {
|
||||
"native_vol_test",
|
||||
NULL
|
||||
};
|
||||
|
||||
#define NATIVE_VOL_TEST_FILENAME "native_vol_test"
|
||||
#define NATIVE_VOL_TEST_GROUP_NAME "test_group"
|
||||
#define NATIVE_VOL_TEST_DATASET_NAME "test_dataset"
|
||||
#define NATIVE_VOL_TEST_ATTRIBUTE_NAME "test_dataset"
|
||||
@ -237,7 +241,7 @@ error:
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
test_basic_file_operation(void)
|
||||
test_basic_file_operation(const char *env_h5_drvr)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t fid_reopen = H5I_INVALID_HID;
|
||||
@ -245,6 +249,7 @@ test_basic_file_operation(void)
|
||||
hid_t fapl_id2 = H5I_INVALID_HID;
|
||||
hid_t fcpl_id = H5I_INVALID_HID;
|
||||
|
||||
char filename[1024];
|
||||
ssize_t obj_count;
|
||||
hid_t obj_id_list[1];
|
||||
hsize_t file_size;
|
||||
@ -257,6 +262,7 @@ test_basic_file_operation(void)
|
||||
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
/* Set the file close degree to a non-default value, to make the H5Pequal
|
||||
* work out. This is kinda odd, but the library's current behavior with
|
||||
@ -273,7 +279,7 @@ test_basic_file_operation(void)
|
||||
FAIL_STACK_ERROR
|
||||
|
||||
/* H5Fcreate */
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fget_obj_count */
|
||||
@ -290,13 +296,16 @@ test_basic_file_operation(void)
|
||||
if ((obj_count = H5Fget_obj_ids((hid_t)H5F_OBJ_ALL, H5F_OBJ_DATASET, 2, obj_id_list)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fget_access_plist */
|
||||
if ((fapl_id2 = H5Fget_access_plist(fid)) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Pequal(fapl_id, fapl_id2) != TRUE)
|
||||
TEST_ERROR;
|
||||
if (H5Pclose(fapl_id2) < 0)
|
||||
TEST_ERROR;
|
||||
/* Can't compare VFD properties for split / multi / family VFDs */
|
||||
if((hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"))) {
|
||||
/* H5Fget_access_plist */
|
||||
if ((fapl_id2 = H5Fget_access_plist(fid)) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Pequal(fapl_id, fapl_id2) != TRUE)
|
||||
TEST_ERROR;
|
||||
if (H5Pclose(fapl_id2) < 0)
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
|
||||
/* H5Fget_create_plist */
|
||||
if ((fcpl_id = H5Fget_create_plist(fid)) < 0)
|
||||
@ -308,9 +317,12 @@ test_basic_file_operation(void)
|
||||
if (H5Fget_filesize(fid, &file_size) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fget_vfd_handle */
|
||||
if (H5Fget_vfd_handle(fid, H5P_DEFAULT, &os_file_handle) < 0)
|
||||
TEST_ERROR;
|
||||
/* Can't retrieve VFD handle for split / multi / family VFDs */
|
||||
if((hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"))) {
|
||||
/* H5Fget_vfd_handle */
|
||||
if (H5Fget_vfd_handle(fid, H5P_DEFAULT, &os_file_handle) < 0)
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
|
||||
/* H5Fget_intent */
|
||||
if (H5Fget_intent(fid, &intent) < 0)
|
||||
@ -337,43 +349,49 @@ test_basic_file_operation(void)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fis_accessible */
|
||||
if (H5Fis_accessible(NATIVE_VOL_TEST_FILENAME, fapl_id) < 0)
|
||||
if (H5Fis_accessible(filename, fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fopen */
|
||||
if ((fid = H5Fopen(NATIVE_VOL_TEST_FILENAME, H5F_ACC_RDWR, fapl_id)) < 0)
|
||||
if ((fid = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fget_access_plist */
|
||||
if ((fapl_id2 = H5Fget_access_plist(fid)) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Pequal(fapl_id, fapl_id2) != TRUE)
|
||||
TEST_ERROR;
|
||||
if (H5Pclose(fapl_id2) < 0)
|
||||
TEST_ERROR;
|
||||
/* Can't compare VFD properties for split / multi / family VFDs */
|
||||
if((hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"))) {
|
||||
/* H5Fget_access_plist */
|
||||
if((fapl_id2 = H5Fget_access_plist(fid)) < 0)
|
||||
TEST_ERROR;
|
||||
if(H5Pequal(fapl_id, fapl_id2) != TRUE)
|
||||
TEST_ERROR;
|
||||
if(H5Pclose(fapl_id2) < 0)
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
|
||||
if ((fid_reopen = H5Freopen(fid)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Fget_access_plist */
|
||||
if ((fapl_id2 = H5Fget_access_plist(fid_reopen)) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Pequal(fapl_id, fapl_id2) != TRUE)
|
||||
TEST_ERROR;
|
||||
if (H5Pclose(fapl_id2) < 0)
|
||||
TEST_ERROR;
|
||||
/* Can't compare VFD properties for split / multi / family VFDs */
|
||||
if((hbool_t)(HDstrcmp(env_h5_drvr, "split") && HDstrcmp(env_h5_drvr, "multi") && HDstrcmp(env_h5_drvr, "family"))) {
|
||||
/* H5Fget_access_plist */
|
||||
if((fapl_id2 = H5Fget_access_plist(fid_reopen)) < 0)
|
||||
TEST_ERROR;
|
||||
if(H5Pequal(fapl_id, fapl_id2) != TRUE)
|
||||
TEST_ERROR;
|
||||
if(H5Pclose(fapl_id2) < 0)
|
||||
TEST_ERROR;
|
||||
} /* end if */
|
||||
|
||||
if (H5Fclose(fid) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Fclose(fid_reopen) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
|
||||
@ -404,14 +422,20 @@ static herr_t
|
||||
test_basic_group_operation(void)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t gid = H5I_INVALID_HID;
|
||||
hid_t gid_a = H5I_INVALID_HID;
|
||||
hid_t gcpl_id = H5I_INVALID_HID;
|
||||
char filename[1024];
|
||||
H5G_info_t info;
|
||||
|
||||
TESTING("Basic VOL group operations");
|
||||
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* H5Gcreate */
|
||||
@ -465,7 +489,11 @@ test_basic_group_operation(void)
|
||||
if (H5Fclose(fid) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
@ -474,6 +502,7 @@ error:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Fclose(fid);
|
||||
H5Gclose(gid);
|
||||
H5Pclose(fapl_id);
|
||||
H5Pclose(gcpl_id);
|
||||
} H5E_END_TRY;
|
||||
|
||||
@ -495,6 +524,7 @@ static herr_t
|
||||
test_basic_dataset_operation(void)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t dcpl_id = H5I_INVALID_HID;
|
||||
hid_t dapl_id = H5I_INVALID_HID;
|
||||
hid_t did = H5I_INVALID_HID;
|
||||
@ -502,6 +532,8 @@ test_basic_dataset_operation(void)
|
||||
hid_t sid = H5I_INVALID_HID;
|
||||
hid_t tid = H5I_INVALID_HID;
|
||||
|
||||
char filename[1024];
|
||||
|
||||
hsize_t curr_dims = 0;
|
||||
hsize_t max_dims = H5S_UNLIMITED;
|
||||
|
||||
@ -516,7 +548,11 @@ test_basic_dataset_operation(void)
|
||||
|
||||
TESTING("Basic VOL dataset operations");
|
||||
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
for (i = 0; i < N_ELEMENTS; i++) {
|
||||
in_buf[i] = i;
|
||||
@ -630,7 +666,11 @@ test_basic_dataset_operation(void)
|
||||
if (H5Fclose(fid) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
@ -642,6 +682,7 @@ error:
|
||||
H5Dclose(did_a);
|
||||
H5Sclose(sid);
|
||||
H5Tclose(tid);
|
||||
H5Pclose(fapl_id);
|
||||
H5Pclose(dapl_id);
|
||||
H5Pclose(dcpl_id);
|
||||
} H5E_END_TRY;
|
||||
@ -664,11 +705,14 @@ static herr_t
|
||||
test_basic_attribute_operation(void)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t gid = H5I_INVALID_HID;
|
||||
hid_t aid = H5I_INVALID_HID;
|
||||
hid_t aid_name = H5I_INVALID_HID;
|
||||
hid_t sid = H5I_INVALID_HID;
|
||||
|
||||
char filename[1024];
|
||||
|
||||
hsize_t dims = 1;
|
||||
|
||||
int data_in = 42;
|
||||
@ -676,7 +720,11 @@ test_basic_attribute_operation(void)
|
||||
|
||||
TESTING("Basic VOL attribute operations");
|
||||
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
if ((gid = H5Gcreate2(fid, NATIVE_VOL_TEST_GROUP_NAME, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -730,7 +778,11 @@ test_basic_attribute_operation(void)
|
||||
if (H5Fclose(fid) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
@ -738,6 +790,7 @@ test_basic_attribute_operation(void)
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Fclose(fid);
|
||||
H5Pclose(fapl_id);
|
||||
H5Gclose(gid);
|
||||
H5Sclose(sid);
|
||||
H5Aclose(aid);
|
||||
@ -762,14 +815,20 @@ static herr_t
|
||||
test_basic_object_operation(void)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t gid = H5I_INVALID_HID;
|
||||
hid_t oid = H5I_INVALID_HID;
|
||||
|
||||
char filename[1024];
|
||||
H5O_info_t object_info;
|
||||
|
||||
TESTING("Basic VOL object operations");
|
||||
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
if ((gid = H5Gcreate2(fid, NATIVE_VOL_TEST_GROUP_NAME, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -797,7 +856,12 @@ test_basic_object_operation(void)
|
||||
if (H5Gclose(gid) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
@ -805,6 +869,7 @@ test_basic_object_operation(void)
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Fclose(fid);
|
||||
H5Pclose(fapl_id);
|
||||
H5Gclose(gid);
|
||||
} H5E_END_TRY;
|
||||
|
||||
@ -827,10 +892,16 @@ test_basic_link_operation(void)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t gid = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
char filename[1024];
|
||||
|
||||
TESTING("Basic VOL link operations");
|
||||
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
if ((gid = H5Gcreate2(fid, NATIVE_VOL_TEST_GROUP_NAME, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -862,7 +933,12 @@ test_basic_link_operation(void)
|
||||
if (H5Gclose(gid) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
@ -871,6 +947,7 @@ error:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Fclose(fid);
|
||||
H5Fclose(gid);
|
||||
H5Pclose(fapl_id);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return FAIL;
|
||||
@ -891,13 +968,19 @@ static herr_t
|
||||
test_basic_datatype_operation(void)
|
||||
{
|
||||
hid_t fid = H5I_INVALID_HID;
|
||||
hid_t fapl_id = H5I_INVALID_HID;
|
||||
hid_t tid = H5I_INVALID_HID;
|
||||
hid_t tid_anon = H5I_INVALID_HID;
|
||||
hid_t tcpl_id = H5I_INVALID_HID;
|
||||
char filename[1024];
|
||||
|
||||
TESTING("Basic VOL datatype operations");
|
||||
|
||||
if ((fid = H5Fcreate(NATIVE_VOL_TEST_FILENAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT)) < 0)
|
||||
/* Retrieve the file access property for testing */
|
||||
fapl_id = h5_fileaccess();
|
||||
h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
|
||||
|
||||
if ((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0)
|
||||
TEST_ERROR;
|
||||
if ((tid = H5Tcopy(H5T_NATIVE_INT)) < 0)
|
||||
TEST_ERROR;
|
||||
@ -941,7 +1024,11 @@ test_basic_datatype_operation(void)
|
||||
if (H5Fclose(fid) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
HDremove(NATIVE_VOL_TEST_FILENAME);
|
||||
h5_delete_test_file(FILENAME[0], fapl_id);
|
||||
|
||||
/* H5Pclose */
|
||||
if (H5Pclose(fapl_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
@ -950,6 +1037,7 @@ error:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Pclose(tcpl_id);
|
||||
H5Fclose(fid);
|
||||
H5Pclose(fapl_id);
|
||||
H5Tclose(tid);
|
||||
H5Tclose(tid_anon);
|
||||
} H5E_END_TRY;
|
||||
@ -958,34 +1046,6 @@ error:
|
||||
|
||||
} /* end test_basic_datatype_operation() */
|
||||
|
||||
#if 0
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: test_echo_vol_operation()
|
||||
*
|
||||
* Purpose: Uses the echo VOL connector to test basic VOL operations
|
||||
* via the H5VL public API.
|
||||
*
|
||||
* Return: SUCCEED/FAIL
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
test_echo_vol_operation(void)
|
||||
{
|
||||
char name[25];
|
||||
|
||||
TESTING("Echo VOL operations");
|
||||
|
||||
PASSED();
|
||||
return SUCCEED;
|
||||
|
||||
error:
|
||||
return FAIL;
|
||||
|
||||
} /* end test_basic_vol_operation() */
|
||||
#endif
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: main
|
||||
@ -999,15 +1059,21 @@ error:
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
const char *env_h5_drvr; /* File driver value from environment */
|
||||
int nerrors = 0;
|
||||
|
||||
/* Get the VFD to use */
|
||||
env_h5_drvr = HDgetenv("HDF5_DRIVER");
|
||||
if(env_h5_drvr == NULL)
|
||||
env_h5_drvr = "nomatch";
|
||||
|
||||
h5_reset();
|
||||
|
||||
HDputs("Testing basic Virtual Object Layer (VOL) functionality.");
|
||||
|
||||
nerrors += test_vol_registration() < 0 ? 1 : 0;
|
||||
nerrors += test_native_vol_init() < 0 ? 1 : 0;
|
||||
nerrors += test_basic_file_operation() < 0 ? 1 : 0;
|
||||
nerrors += test_basic_file_operation(env_h5_drvr) < 0 ? 1 : 0;
|
||||
nerrors += test_basic_group_operation() < 0 ? 1 : 0;
|
||||
nerrors += test_basic_dataset_operation() < 0 ? 1 : 0;
|
||||
nerrors += test_basic_attribute_operation() < 0 ? 1 : 0;
|
||||
|
@ -32,6 +32,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'somefile'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'somefile', temp_file_name = 'somefile'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
@ -32,6 +32,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'somefile'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'somefile', temp_file_name = 'somefile'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
@ -32,6 +32,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'somefile'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'somefile', temp_file_name = 'somefile'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
@ -32,6 +32,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'somefile'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'somefile', temp_file_name = 'somefile'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
@ -32,9 +32,6 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'filename'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'filename', temp_file_name = 'filename'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#000: (file name) line (number) in H5Oopen(): unable to open object
|
||||
major: Object header
|
||||
@ -69,6 +66,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'anotherfile'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'anotherfile', temp_file_name = 'anotherfile'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
@ -32,6 +32,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'fname'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'fname', temp_file_name = 'fname'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
@ -32,6 +32,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
|
||||
#010: (file name) line (number) in H5L__extern_traverse(): unable to open external file, external link file name = 'fname'
|
||||
major: Links
|
||||
minor: Unable to open file
|
||||
#011: (file name) line (number) in H5F_prefix_open_file(): unable to open file, file name = 'fname', temp_file_name = 'fname'
|
||||
major: File accessibility
|
||||
minor: Unable to open file
|
||||
|
Loading…
x
Reference in New Issue
Block a user