diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2017-05-24 13:41:26 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2017-05-24 13:41:26 (GMT) |
commit | 479f326a267ca5ffacc2012f33674c66cf2907d8 (patch) | |
tree | 19d03323c3ceb6e6b9e4da5e3529aeec74992974 /test | |
parent | e5a57c97aa43d6c76d1bb1fe64d24aaa0bbbb7d3 (diff) | |
download | hdf5-479f326a267ca5ffacc2012f33674c66cf2907d8.zip hdf5-479f326a267ca5ffacc2012f33674c66cf2907d8.tar.gz hdf5-479f326a267ca5ffacc2012f33674c66cf2907d8.tar.bz2 |
* Added new public H5FDdriver_query() API call.
* Changed return type of H5FD_driver_query() to herr_t.
* Updated swmr.c to use H5FDdriver_query() instead of the private call.
* Added some flags tests to vfd.c.
Diffstat (limited to 'test')
-rw-r--r-- | test/swmr.c | 5 | ||||
-rw-r--r-- | test/vfd.c | 48 |
2 files changed, 49 insertions, 4 deletions
diff --git a/test/swmr.c b/test/swmr.c index 9239ca2..3b1bd09 100644 --- a/test/swmr.c +++ b/test/swmr.c @@ -120,7 +120,6 @@ test_metadata_read_attempts(hid_t in_fapl) hid_t file_fapl = -1; /* The file's access property list */ hid_t fid = -1, fid1 = -1, fid2 = -1; /* File IDs */ hid_t driver_id = -1; /* ID for this VFD */ - H5FD_class_t *driver = NULL; /* Pointer to VFD class struct */ unsigned long driver_flags = 0; /* VFD feature flags */ hbool_t compat_w_default_vfd; /* current VFD compat w/ H5P_DEFAULT? */ unsigned attempts; /* The # of read attempts */ @@ -138,9 +137,7 @@ test_metadata_read_attempts(hid_t in_fapl) */ if ((driver_id = H5Pget_driver(in_fapl)) < 0) FAIL_STACK_ERROR - if (NULL == (driver = (H5FD_class_t *)H5I_object_verify(driver_id, H5I_VFL))) - FAIL_STACK_ERROR - if (H5FD_driver_query(driver, &driver_flags) < 0) + if (H5FDdriver_query(driver_id, &driver_flags) < 0) FAIL_STACK_ERROR compat_w_default_vfd = (driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE) ? TRUE : FALSE; @@ -86,6 +86,8 @@ test_sec2(void) hid_t fid = -1; /* file ID */ hid_t fapl_id = -1; /* file access property list ID */ hid_t fapl_id_out = -1; /* from H5Fget_access_plist */ + hid_t driver_id = -1; /* ID for this VFD */ + unsigned long driver_flags = 0; /* VFD feature flags */ char filename[1024]; /* filename */ void *os_file_handle = NULL; /* OS file handle */ hsize_t file_size; /* file size */ @@ -102,6 +104,28 @@ test_sec2(void) if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id)) < 0) TEST_ERROR; + /* Check that the VFD feature flags are correct */ + if ((driver_id = H5Pget_driver(fapl_id)) < 0) + TEST_ERROR + if (H5FDdriver_query(driver_id, &driver_flags) < 0) + TEST_ERROR + if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_POSIX_COMPAT_HANDLE)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_SUPPORTS_SWMR_IO)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_DEFAULT_VFD_COMPATIBLE)) TEST_ERROR + /* Check for extra flags not accounted for above */ + if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA + | H5FD_FEAT_ACCUMULATE_METADATA + | H5FD_FEAT_DATA_SIEVE + | H5FD_FEAT_AGGREGATE_SMALLDATA + | H5FD_FEAT_POSIX_COMPAT_HANDLE + | H5FD_FEAT_SUPPORTS_SWMR_IO + | H5FD_FEAT_DEFAULT_VFD_COMPATIBLE)) + TEST_ERROR + /* Retrieve the access property list... */ if((fapl_id_out = H5Fget_access_plist(fid)) < 0) TEST_ERROR; @@ -174,6 +198,8 @@ test_core(void) hid_t fid = -1; /* file ID */ hid_t fapl_id = -1; /* file access property list ID */ hid_t fapl_id_out = -1; /* from H5Fget_access_plist */ + hid_t driver_id = -1; /* ID for this VFD */ + unsigned long driver_flags = 0; /* VFD feature flags */ hid_t did = -1; /* dataset ID */ hid_t sid = -1; /* dataspace ID */ char filename[1024]; /* filename */ @@ -219,6 +245,28 @@ test_core(void) if(HDaccess(filename, F_OK) != -1) FAIL_PUTS_ERROR("file created when backing store set to FALSE"); + /* Check that the VFD feature flags are correct. + * Note that the H5FDdriver_query() API call does not require a file + * so backing-store related flags will not be returned here. + */ + if ((driver_id = H5Pget_driver(fapl_id)) < 0) + TEST_ERROR + if (H5FDdriver_query(driver_id, &driver_flags) < 0) + TEST_ERROR + if(!(driver_flags & H5FD_FEAT_AGGREGATE_METADATA)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_ACCUMULATE_METADATA)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_DATA_SIEVE)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_AGGREGATE_SMALLDATA)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_ALLOW_FILE_IMAGE)) TEST_ERROR + if(!(driver_flags & H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS)) TEST_ERROR + /* Check for extra flags not accounted for above */ + if(driver_flags != (H5FD_FEAT_AGGREGATE_METADATA + | H5FD_FEAT_ACCUMULATE_METADATA + | H5FD_FEAT_DATA_SIEVE + | H5FD_FEAT_AGGREGATE_SMALLDATA + | H5FD_FEAT_ALLOW_FILE_IMAGE + | H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS)) + TEST_ERROR /************************************************************************ * Check basic core VFD operation and properties. This is done with the |