summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5VLff.F903
-rw-r--r--fortran/test/CMakeLists.txt11
-rw-r--r--fortran/test/CMakeTests.cmake3
-rw-r--r--fortran/test/vol_connector.F9039
4 files changed, 31 insertions, 25 deletions
diff --git a/fortran/src/H5VLff.F90 b/fortran/src/H5VLff.F90
index 0c5e8fd..9abc157 100644
--- a/fortran/src/H5VLff.F90
+++ b/fortran/src/H5VLff.F90
@@ -232,7 +232,8 @@ CONTAINS
hdferr = 0
IF(PRESENT(name_len))THEN
- name_len = INT(H5VLget_connector_name(obj_id, c_name, 0_SIZE_T), SIZE_T)
+ c_name(1:1)(1:1) = C_NULL_CHAR
+ name_len = INT(H5VLget_connector_name(obj_id, c_name, 1_SIZE_T), SIZE_T)
IF(name_len.LT.0) hdferr = H5I_INVALID_HID_F
ELSE
l = INT(LEN(name)+1,SIZE_T)
diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt
index 719a9f3..921e29a 100644
--- a/fortran/test/CMakeLists.txt
+++ b/fortran/test/CMakeLists.txt
@@ -570,7 +570,11 @@ if (BUILD_SHARED_LIBS)
endif ()
#-- Adding test for vol_connector
-add_executable (vol_connector vol_connector.F90)
+add_executable (vol_connector
+ vol_connector.F90
+ tH5L_F03.F90
+ tHDF5_F03.F90)
+
target_include_directories (vol_connector
PRIVATE
${CMAKE_Fortran_MODULE_DIRECTORY}/static
@@ -600,7 +604,10 @@ set_target_properties (vol_connector PROPERTIES
add_dependencies (vol_connector ${HDF5_F90_TEST_LIB_TARGET})
if (BUILD_SHARED_LIBS)
- add_executable (vol_connector-shared vol_connector.F90)
+ add_executable (vol_connector-shared
+ vol_connector.F90
+ tH5L_F03.F90
+ tHDF5_F03.F90)
target_include_directories (vol_connector-shared
PRIVATE
${CMAKE_Fortran_MODULE_DIRECTORY}/shared
diff --git a/fortran/test/CMakeTests.cmake b/fortran/test/CMakeTests.cmake
index 45f14d1..bba9ee6 100644
--- a/fortran/test/CMakeTests.cmake
+++ b/fortran/test/CMakeTests.cmake
@@ -281,7 +281,4 @@ if (BUILD_SHARED_LIBS)
add_test (NAME FORTRAN_fflush2-shared COMMAND $<TARGET_FILE:fflush2-shared>)
set_tests_properties (FORTRAN_fflush2-shared PROPERTIES DEPENDS FORTRAN_fflush1-shared)
- #-- Adding test for vol_connector
- add_test (NAME FORTRAN_vol_connector-shared COMMAND $<TARGET_FILE:vol_connector-shared>)
- set_tests_properties (FORTRAN_vol_connector-shared PROPERTIES DEPENDS FORTRAN_vol_connector-shared)
endif ()
diff --git a/fortran/test/vol_connector.F90 b/fortran/test/vol_connector.F90
index 62e3f8d..623767b 100644
--- a/fortran/test/vol_connector.F90
+++ b/fortran/test/vol_connector.F90
@@ -55,9 +55,10 @@ CONTAINS
LOGICAL :: is_registered = .FALSE.
INTEGER(hid_t) :: vol_id = 0, vol_id_out = 1
CHARACTER(LEN=64) :: name
+ CHARACTER(LEN=1) :: name_null
+ CHARACTER(LEN=6) :: name_exact
INTEGER(SIZE_T) :: name_len
INTEGER(hid_t) :: file_id
- INTEGER :: cmp = -1
! The null VOL connector should not be registered at the start of the test
CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error)
@@ -87,16 +88,28 @@ CONTAINS
CALL check("H5VLget_connector_name_f",error,total_error)
CALL VERIFY("H5VLget_connector_name_f", name, NATIVE_VOL_CONNECTOR_NAME, total_error)
+ CALL H5VLget_connector_name_f(file_id, name_null, error, name_len)
+ CALL check("H5VLget_connector_name_f",error,total_error)
+ CALL VERIFY("H5VLget_connector_name_f", INT(name_len), LEN_TRIM(NATIVE_VOL_CONNECTOR_NAME), total_error)
+
+ CALL H5VLget_connector_name_f(file_id, name_null, error)
+ CALL check("H5VLget_connector_name_f",error,total_error)
+ CALL VERIFY("H5VLget_connector_name_f", name_null, NATIVE_VOL_CONNECTOR_NAME(1:1), total_error)
+
+ CALL H5VLget_connector_name_f(file_id, name_exact, error, name_len)
+ CALL check("H5VLget_connector_name_f",error,total_error)
+ CALL VERIFY("H5VLget_connector_name_f", INT(name_len), LEN_TRIM(NATIVE_VOL_CONNECTOR_NAME), total_error)
+
+ CALL H5VLget_connector_name_f(file_id, name_exact, error)
+ CALL check("H5VLget_connector_name_f",error,total_error)
+ CALL VERIFY("H5VLget_connector_name_f", name_exact, NATIVE_VOL_CONNECTOR_NAME, total_error)
+
CALL H5Fclose_f(file_id, error)
CALL check("H5Fclose_f",error,total_error)
CALL H5VLclose_f(vol_id_out, error)
CALL check("H5VLclose_f",error, total_error)
- ! Unregister the connector
- CALL H5VLunregister_connector_f(vol_id, error)
- CALL check("H5VLunregister_connector_f", error, total_error)
-
END SUBROUTINE test_registration_by_name
!-------------------------------------------------------------------------
@@ -132,10 +145,6 @@ CONTAINS
CALL check("H5VLis_connector_registered_f",error,total_error)
CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error)
- ! Unregister the connector
- CALL H5VLunregister_connector_f(vol_id, error)
- CALL check("H5VLunregister_connector_f", error, total_error)
-
END SUBROUTINE test_registration_by_value
@@ -157,19 +166,15 @@ CONTAINS
LOGICAL :: is_registered = .FALSE.
INTEGER(hid_t) :: vol_id = 0, vol_id_out = 1
- CHARACTER(LEN=64) :: name
- INTEGER(SIZE_T) :: name_len
INTEGER(hid_t) :: file_id
- INTEGER :: cmp = -1
INTEGER(hid_t) :: fapl_id
TYPE(C_PTR) :: f_ptr
- INTEGER(hid_t), TARGET :: under_fapl
CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error)
+
CALL check("H5VLis_connector_registered_f",error,total_error)
CALL VERIFY("H5VLis_connector_registered_f", is_registered, .FALSE., total_error)
-
! The null VOL connector should not be registered at the start of the test
CALL H5VLis_connector_registered_f( "FAKE_VOL_CONNECTOR_NAME", is_registered, error)
CALL check("H5VLis_connector_registered_f",error,total_error)
@@ -177,7 +182,7 @@ CONTAINS
CALL H5VLregister_connector_by_name_f(NATIVE_VOL_CONNECTOR_NAME, vol_id, error)
CALL check("H5VLregister_connector_by_name_f",error,total_error)
-
+
! The connector should be registered now
CALL H5VLis_connector_registered_f(NATIVE_VOL_CONNECTOR_NAME, is_registered, error)
CALL check("H5VLis_connector_registered_f",error,total_error)
@@ -216,10 +221,6 @@ CONTAINS
CALL H5VLclose_f(vol_id, error)
CALL check("H5VLclose_f",error, total_error)
- ! Unregister the connector
- CALL H5VLunregister_connector_f(vol_id, error)
- CALL check("H5VLunregister_connector_f", error, total_error)
-
CALL H5Fclose_f(file_id, error)
CALL check("H5Fclose_f",error,total_error)