-
-
Notifications
You must be signed in to change notification settings - Fork 266
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
API test updates #3018
API test updates #3018
Conversation
Clean up API tests' random datatype generation and fix bug with enum datatype generation
Determine whether a VOL connector failed to load before running API tests
testpar/API/CMakeLists.txt
Outdated
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 changes in this file hook up external built VOL connectors into the API tests
test/CMakeLists.txt
Outdated
@@ -49,6 +49,22 @@ if (BUILD_STATIC_LIBS) | |||
endif () | |||
H5_SET_LIB_OPTIONS (${HDF5_TEST_LIB_TARGET} ${HDF5_TEST_LIB_NAME} STATIC 0) | |||
set_target_properties (${HDF5_TEST_LIB_TARGET} PROPERTIES FOLDER libraries/test) | |||
|
|||
if (HDF5_EXPORTED_TARGETS) |
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.
@byrnHDF I just realized for the purposes of the API tests I was unconditionally installing the test lib here and below. Would it be appropriate to surround it with if (HDF5_TEST_API_INSTALL)
or should we have something else since there may be other reasons to install the test lib?
test/API/H5_api_test_util.c
Outdated
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 changes in this file mostly just separated the code for generating different datatypes into sub-functions, but it also fixed a bug in enum. datatype generation where we tried to insert duplicate name/value pairs into the datatype.
test/API/CMakeLists.txt
Outdated
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 changes in this file hook up external built VOL connectors into the API tests
src/H5VLnative_attr.c
Outdated
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 changes in this file mirror a check that was added to H5Aopen where we want to make sure we return failure when an invalid AAPL is passed in. The API tests were failing for the native VOL connector due to checking this.
CMakeVOL.cmake
Outdated
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.
This new file contains all the code to generate CMake options and variables for specifying external VOL connectors and then pulling in, building those connectors and setting up for later testing of the connectors.
those semi-colons should be escaped with a single backslash so that CMake | ||
doesn't parse the string as a list. If `cmake` is run from a shell, extra care | ||
may need to be taken when escaping the semi-colons depending on how the | ||
shell interprets backslashes. |
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.
'semicolons' shouldn't have a '-'
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.
Fixed
The EOS workflow appears to be failing due to too many requests being made, likely because the same actions are running in the feature/api_tests feature branch and those end up running two sets of the same actions for some reason, so I believe there are 122 checks running simultaneously, which is a bit overkill |
* Remove macros from api tests (HDFGroup#2929) * Remove macros and undefined callbacks (HDFGroup#2959) * Remove remaining macros from H5_api_tests_disabled.h (HDFGroup#2968) * Put some vol capability checks in testpar tests and remove remaining warnings (HDFGroup#2995) * API tests datatype generation cleanup * Clean up API tests' random datatype generation and fix bug with enum datatype generation * Init parallel API tests with MPI_THREAD_MULTIPLE * HDF5 API tests - Check VOL connector registration * Determine whether a VOL connector failed to load before running API tests * Cleanup some usages of H5VL_CAP_FLAG_CREATION_ORDER in API tests * Remove some now-unused macros from H5_api_tests_disabled.h * Enable HDF5 API tests by default * Implement CMake option to install HDF5 API tests * Check for invalid AAPL from H5Acreate * Enable building of VOL connectors alongside HDF5 in CMake * Prepend CMake VOL URL option indices with 0s so they come in order * Don't turn on API tests by default yet * Document VOL connector FetchContent functionality * Add release note for API test updates * Only install testing library if API tests are installed * Fix grammar
* Remove macros from api tests (#2929) * Remove macros and undefined callbacks (#2959) * Remove remaining macros from H5_api_tests_disabled.h (#2968) * Put some vol capability checks in testpar tests and remove remaining warnings (#2995) * API tests datatype generation cleanup * Clean up API tests' random datatype generation and fix bug with enum datatype generation * Init parallel API tests with MPI_THREAD_MULTIPLE * HDF5 API tests - Check VOL connector registration * Determine whether a VOL connector failed to load before running API tests * Cleanup some usages of H5VL_CAP_FLAG_CREATION_ORDER in API tests * Remove some now-unused macros from H5_api_tests_disabled.h * Enable HDF5 API tests by default * Implement CMake option to install HDF5 API tests * Check for invalid AAPL from H5Acreate * Enable building of VOL connectors alongside HDF5 in CMake * Prepend CMake VOL URL option indices with 0s so they come in order * Don't turn on API tests by default yet * Document VOL connector FetchContent functionality * Add release note for API test updates * Only install testing library if API tests are installed * Fix grammar
Most of the changes in this PR just replace macros from test/API/H5_api_tests_disabled.h that were disabling API tests with appropriate checks for VOL connector capability flags. However, there are a few bug fixes and CMake code updates to implement support for pulling in, building and testing external VOL connectors.