summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/links.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/test/links.c b/test/links.c
index 092cdac..d807352 100644
--- a/test/links.c
+++ b/test/links.c
@@ -4121,7 +4121,7 @@ external_set_elink_cb_cb(const char *parent_file, const char *parent_group,
static int
external_set_elink_cb(hid_t fapl, hbool_t new_format)
{
- hid_t file1, file2, group, gapl, fam_fapl, ret_fapl;
+ hid_t file1, file2, group, gapl, fam_fapl, ret_fapl, base_driver;
set_elink_cb_t op_data,
*op_data_p;
H5L_elink_traverse_t cb;
@@ -4138,7 +4138,12 @@ external_set_elink_cb(hid_t fapl, hbool_t new_format)
op_data.parent_file = filename1;
op_data.target_file = filename2;
/* Core file driver has issues when used as the member file driver for a family file */
- op_data.base_fapl = H5Pget_driver(fapl) == H5FD_CORE ? H5P_DEFAULT : fapl;
+ /* Family file driver cannot be used with family or multi drivers for member files */
+ /* Also disable parellel member drivers, because IS_H5FD_MPI whould report FALSE, causing problems */
+ base_driver = H5Pget_driver(fapl);
+ op_data.base_fapl = (base_driver == H5FD_FAMILY || base_driver == H5FD_MULTI
+ || base_driver == H5FD_MPIO || base_driver == H5FD_MPIPOSIX
+ || base_driver == H5FD_CORE) ? H5P_DEFAULT : fapl;
op_data.fam_size = ELINK_CB_FAM_SIZE;
op_data.code = 0;