summaryrefslogtreecommitdiffstats
path: root/test/vfd_swmr_common.c
diff options
context:
space:
mode:
authorvchoi <vchoi@jelly.ad.hdfgroup.org>2021-11-17 17:25:20 (GMT)
committervchoi <vchoi@jelly.ad.hdfgroup.org>2021-11-17 17:25:20 (GMT)
commit97a37aa84913808792418e6814126bdee856288e (patch)
treee613e8f34a3988777909e0fa813dd8b7ee60df44 /test/vfd_swmr_common.c
parentf3293556b7af7191496909f4577e983da19a9e68 (diff)
downloadhdf5-97a37aa84913808792418e6814126bdee856288e.zip
hdf5-97a37aa84913808792418e6814126bdee856288e.tar.gz
hdf5-97a37aa84913808792418e6814126bdee856288e.tar.bz2
1) Core changes for adding NFS/updater support as described in the RFC.
src/H5Pfapl.c src/H5Fvfd_swmr.c src/H5Fpublic.h src/H5Fpkg.h src/H5Fprivate.h 2) For VFD SWMR testing, add private property for checksum generation of metadata files: src/H5Fint.c src/H5Fvfd_swmr.c src/H5Pfapl.c src/H5Fpkg.h src/H5Fprivate.h 3) Fix the following in H5F_vfd_swmr_init() and H5F_vfd_swmr_close_or_flush(): (a) Allocate metadata file index right after metadata file header. (b) Set tick number to 0 when creating header and index for file open case. (c) Remove tick number increment at file close. src/H5Fvfd_swmr.c src/H5Ftest.c 4) To be consistent with the RFC, change the name for field "chksum" to "checksum" in struct H5FD_vfd_swmr_idx_entry_t: src/H5FDprivate.h src/H5FDtest.c src/H5FDvfd_swmr.c src/H5Ftest.c src/H5PB.c 4) Add tests for NFS/updater test/vfd_swmr.c 5) Modify common routine init_vfd_swmr_config() to accept updater_file_path test/vfd_swmr_common.c test/vfd_swmr_common.h 6) Changes to the tests due to the common routine init_vfd_swmr_config(): test/vfd_swmr_addrem_writer.c test/vfd_swmr_attrdset_writer.c test/vfd_swmr_bigset_writer.c test/vfd_swmr_dsetchks_writer.c test/vfd_swmr_dsetops_writer.c test/vfd_swmr_generator.c test/vfd_swmr_gfail_writer.c test/vfd_swmr_gperf_writer.c test/vfd_swmr_group_writer.c test/vfd_swmr_reader.c test/vfd_swmr_remove_reader.c test/vfd_swmr_remove_writer.c test/vfd_swmr_sparse_reader.c test/vfd_swmr_sparse_writer.c test/vfd_swmr_vlstr_reader.c test/vfd_swmr_vlstr_writer.c test/vfd_swmr_writer.c test/page_buffer.c
Diffstat (limited to 'test/vfd_swmr_common.c')
-rw-r--r--test/vfd_swmr_common.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/test/vfd_swmr_common.c b/test/vfd_swmr_common.c
index cfe93aa..90abeed 100644
--- a/test/vfd_swmr_common.c
+++ b/test/vfd_swmr_common.c
@@ -345,10 +345,10 @@ await_signal(hid_t fid)
/* Revised support routines that can be used for all VFD SWMR integration tests
*/
-/* Initialize fields in config with the input parameters */
void
init_vfd_swmr_config(H5F_vfd_swmr_config_t *config, uint32_t tick_len, uint32_t max_lag, hbool_t writer,
- hbool_t flush_raw_data, uint32_t md_pages_reserved, const char *md_file_fmtstr, ...)
+ hbool_t maintain_metadata_file, hbool_t generate_updater_files, hbool_t flush_raw_data,
+ uint32_t md_pages_reserved, const char *md_file_fmtstr, const char *updater_file_path, ...)
{
va_list ap;
@@ -360,13 +360,20 @@ init_vfd_swmr_config(H5F_vfd_swmr_config_t *config, uint32_t tick_len, uint32_t
config->tick_len = tick_len;
config->max_lag = max_lag;
config->writer = writer;
+ config->maintain_metadata_file = maintain_metadata_file;
+ config->generate_updater_files = generate_updater_files;
config->flush_raw_data = flush_raw_data;
config->md_pages_reserved = md_pages_reserved;
- HDva_start(ap, md_file_fmtstr);
+ HDva_start(ap, updater_file_path);
+
evsnprintf(config->md_file_path, sizeof(config->md_file_path), md_file_fmtstr, ap);
+
HDva_end(ap);
+ if(config->generate_updater_files && updater_file_path != NULL)
+ HDstrcpy(config->updater_file_path, updater_file_path);
+
} /* init_vfd_swmr_config() */
/* Initialize the log file path in config, this function should be called after init_vfd_swmr_config. */