-
-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix 'make check-vfd' target for Autotools #4211
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -70,8 +70,17 @@ macro (H5_SET_VFD_LIST) | |
split | ||
multi | ||
family | ||
splitter | ||
#log - log VFD currently has file space allocation bugs | ||
# Splitter VFD currently can't be tested with the h5_fileaccess() | ||
# approach due to it trying to lock the same W/O file when two | ||
# files are created/opened with the same FAPL that has the VFD | ||
# set on it. When tested with the environment variable and a | ||
# default FAPL, the VFD appends "_wo" to the filename when the | ||
# W/O path isn't specified, which works for all the tests. | ||
#splitter | ||
# Log VFD currently has file space allocation bugs | ||
#log | ||
# Onion VFD not currently tested with VFD tests | ||
#onion | ||
) | ||
|
||
if (H5_HAVE_DIRECT) | ||
|
@@ -82,16 +91,21 @@ macro (H5_SET_VFD_LIST) | |
# list (APPEND VFD_LIST mpio) | ||
endif () | ||
if (H5_HAVE_MIRROR_VFD) | ||
list (APPEND VFD_LIST mirror) | ||
# Mirror VFD needs network configuration, etc. and isn't easy to set | ||
# reasonable defaults for that info. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Matching what's in Autotools |
||
# list (APPEND VFD_LIST mirror) | ||
endif () | ||
if (H5_HAVE_ROS3_VFD) | ||
list (APPEND VFD_LIST ros3) | ||
# This would require a custom test suite | ||
# list (APPEND VFD_LIST ros3) | ||
endif () | ||
if (H5_HAVE_LIBHDFS) | ||
list (APPEND VFD_LIST hdfs) | ||
# This would require a custom test suite | ||
# list (APPEND VFD_LIST hdfs) | ||
endif () | ||
if (H5_HAVE_SUBFILING_VFD) | ||
list (APPEND VFD_LIST subfiling) | ||
# Subfiling has a few VFD test failures to be resolved | ||
# list (APPEND VFD_LIST subfiling) | ||
endif () | ||
if (H5_HAVE_WINDOWS) | ||
list (APPEND VFD_LIST windows) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -67,14 +67,15 @@ | |
* Purpose: Determines if a VFD supports SWMR. | ||
* | ||
* The function determines SWMR support by inspecting the | ||
* HDF5_DRIVER environment variable, not by checking the | ||
* VFD feature flags (which do not exist until the driver | ||
* is instantiated). | ||
* HDF5_DRIVER and HDF5_TEST_DRIVER environment variables, not | ||
* by checking the VFD feature flags (which do not exist until | ||
* the driver is instantiated). | ||
* | ||
* This function is only intended for use in the test code. | ||
* | ||
* Return: true (1) if the VFD supports SWMR I/O or vfd_name is | ||
* NULL or the empty string (which implies the default VFD). | ||
* NULL or the empty string (which implies the default VFD) or | ||
* compares equal to the default VFD's name. | ||
* | ||
* false (0) if it does not | ||
* | ||
|
@@ -89,7 +90,10 @@ H5FD__supports_swmr_test(const char *vfd_name) | |
|
||
FUNC_ENTER_NOAPI_NOINIT_NOERR | ||
|
||
if (!vfd_name || !strcmp(vfd_name, "") || !strcmp(vfd_name, "nomatch")) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No need for the "nomatch" case. It was only checked in a few places where we can just as easily return "sec2" for the same behavior. |
||
if (!vfd_name) | ||
vfd_name = getenv("HDF5_TEST_DRIVER"); | ||
|
||
if (!vfd_name || !strcmp(vfd_name, "") || !strcmp(vfd_name, H5_DEFAULT_VFD_NAME)) | ||
ret_value = true; | ||
else | ||
ret_value = !strcmp(vfd_name, "log") || !strcmp(vfd_name, "sec2"); | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -71,6 +71,9 @@ add_custom_target(HDF5_VFDTEST_LIB_files ALL COMMENT "Copying files needed by HD | |
links_env | ||
external_env | ||
vds_env | ||
mirror_vfd | ||
ros3 | ||
hdfs | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Exclude VFD-specific tests from CMake's VFD testing, as it often doesn't make sense to run these tests with other VFDs. |
||
) | ||
|
||
# Skip several tests with subfiling VFD, mostly due | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The splitter VFD was previously being tested just with the environment variable approach, where it would add "_wo" to the end of filenames to create the name for the W/O file, which worked well in testing. With the changes in this PR though, any tests that use
h5_fileaccess()
would setup a FAPL with a single W/O path that gets used for any file create or open calls that use that FAPL, leading to failures due to multiple locks on the same file. We should revisit this at some point.