mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-31 17:10:47 +08:00
removed VOLL NULL connector and replaced it with native VOL
This commit is contained in:
parent
1d6641ee3a
commit
32c4900e89
2
MANIFEST
2
MANIFEST
@ -265,8 +265,8 @@
|
||||
./fortran/src/h5fc.in
|
||||
./fortran/src/hdf5_fortrandll.def.in
|
||||
|
||||
|
||||
./fortran/test/Makefile.am
|
||||
./fortran/test/vol_connector.F90
|
||||
./fortran/test/fflush1.F90
|
||||
./fortran/test/fflush2.F90
|
||||
./fortran/test/fortranlib_test.F90
|
||||
|
@ -4,7 +4,7 @@
|
||||
! MODULE H5VL
|
||||
!
|
||||
! PURPOSE
|
||||
! This file contains Fortran interfaces for H5VL functions.
|
||||
! This file contains Fortran interfaces for H5VL (VOL) functions.
|
||||
!
|
||||
! COPYRIGHT
|
||||
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
@ -57,9 +57,9 @@ CONTAINS
|
||||
! layer class by name.
|
||||
!
|
||||
! INPUTS
|
||||
! cls -
|
||||
! name - Connector name
|
||||
! OUTPUTS
|
||||
! vol_id -
|
||||
! vol_id - VOL id
|
||||
! hdferr - Returns 0 if successful and -1 if fails
|
||||
! SOURCE
|
||||
|
||||
@ -72,10 +72,10 @@ CONTAINS
|
||||
!*****
|
||||
CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
|
||||
INTEGER(HID_T) :: vipl_id_default
|
||||
|
||||
|
||||
INTERFACE
|
||||
INTEGER(HID_T) FUNCTION H5VLregister_connector_by_name(name, vipl_id) BIND(C,NAME='H5VLregister_connector_by_name')
|
||||
INTEGER(HID_T) FUNCTION H5VLregister_connector_by_name(name, vipl_id) &
|
||||
BIND(C,NAME='H5VLregister_connector_by_name')
|
||||
IMPORT :: C_CHAR
|
||||
IMPORT :: HID_T
|
||||
CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
|
||||
@ -113,7 +113,6 @@ CONTAINS
|
||||
END FUNCTION H5VLregister_connector_by_value
|
||||
END INTERFACE
|
||||
|
||||
|
||||
vipl_id_default = H5P_DEFAULT_F
|
||||
IF(PRESENT(vipl_id)) vipl_id_default = vipl_id
|
||||
|
||||
@ -134,9 +133,9 @@ CONTAINS
|
||||
! Tests whether a VOL class has been registered or not.
|
||||
!
|
||||
! INPUTS
|
||||
! cls -
|
||||
! name - Connector name
|
||||
! OUTPUTS
|
||||
! vol_id -
|
||||
! registered - state of VOL class registration
|
||||
! hdferr - Returns 0 if successful and -1 if fails
|
||||
! SOURCE
|
||||
|
||||
@ -177,9 +176,9 @@ CONTAINS
|
||||
! Retrieves the ID for a registered VOL connector.
|
||||
!
|
||||
! INPUTS
|
||||
! cls -
|
||||
! name - Connector name
|
||||
! OUTPUTS
|
||||
! vol_id -
|
||||
! vol_id - Connector id
|
||||
! hdferr - Returns 0 if successful and -1 if fails
|
||||
! SOURCE
|
||||
|
||||
@ -236,15 +235,11 @@ CONTAINS
|
||||
name_len = INT(H5VLget_connector_name(obj_id, c_name, 0_SIZE_T), SIZE_T)
|
||||
IF(name_len.LT.0) hdferr = H5I_INVALID_HID_F
|
||||
ELSE
|
||||
! f_ptr = C_LOC(c_name(1)(1:1))
|
||||
PRINT*,LEN(name)+1
|
||||
l = INT(LEN(name)+1,SIZE_T)
|
||||
IF(INT(H5VLget_connector_name(obj_id, c_name, l), SIZE_T).LT.0)THEN
|
||||
hdferr = H5I_INVALID_HID_F
|
||||
ELSE
|
||||
PRINT*,"C_NAME", c_name
|
||||
CALL HD5c2fstring(name,c_name,LEN(name))
|
||||
PRINT*,"name", name
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
@ -261,7 +256,7 @@ CONTAINS
|
||||
! Closes a VOL connector ID.
|
||||
!
|
||||
! INPUTS
|
||||
! plugin_id - A valid identifier of the connectory to unregister.
|
||||
! vol_id - A valid identifier of the connectory to unregister.
|
||||
!
|
||||
! OUTPUTS
|
||||
! hdferr - Returns 0 if successful and -1 if fails
|
||||
@ -317,40 +312,4 @@ CONTAINS
|
||||
|
||||
END SUBROUTINE H5VLunregister_connector_f
|
||||
|
||||
!---------------------------------------------------------------------------
|
||||
! Function: H5VLcmp_connector_cls_f
|
||||
!
|
||||
! Purpose: Compares two connector classes (based on their value field)
|
||||
!
|
||||
! Return: Success: Non-negative, *cmp set to a value like strcmp
|
||||
!
|
||||
! Failure: Negative, *cmp unset
|
||||
!
|
||||
!---------------------------------------------------------------------------
|
||||
|
||||
SUBROUTINE H5VLcmp_connector_cls_f(cmp, connector_id1, connector_id2, hdferr)
|
||||
IMPLICIT NONE
|
||||
INTEGER, INTENT(OUT), TARGET :: cmp
|
||||
INTEGER(HID_T), INTENT(IN) :: connector_id1
|
||||
INTEGER(HID_T), INTENT(IN) :: connector_id2
|
||||
INTEGER, INTENT(OUT) :: hdferr
|
||||
!*****
|
||||
|
||||
INTEGER(C_INT) :: cmp_c
|
||||
|
||||
INTERFACE
|
||||
INTEGER FUNCTION H5VLcmp_connector_cls(cmp, connector_id1, connector_id2) BIND(C, NAME='H5VLcmp_connector_cls')
|
||||
IMPORT :: HID_T
|
||||
IMPORT :: C_INT
|
||||
INTEGER(C_INT) :: cmp
|
||||
INTEGER(HID_T), INTENT(IN), VALUE :: connector_id1
|
||||
INTEGER(HID_T), INTENT(IN), VALUE :: connector_id2
|
||||
END FUNCTION H5VLcmp_connector_cls
|
||||
END INTERFACE
|
||||
|
||||
hdferr = INT(H5VLcmp_connector_cls(cmp_c, connector_id1, connector_id2))
|
||||
cmp = INT(cmp_c)
|
||||
|
||||
END SUBROUTINE H5VLcmp_connector_cls_f
|
||||
|
||||
END MODULE H5VL
|
||||
|
@ -460,7 +460,6 @@ H5VL_mp_H5VLGET_CONNECTOR_ID_F
|
||||
H5VL_mp_H5VLGET_CONNECTOR_NAME_F
|
||||
H5VL_mp_H5VLCLOSE_F
|
||||
H5VL_mp_H5VLUNREGISTER_CONNECTOR_F
|
||||
H5VL_mp_H5VLCMP_CONNECTOR_CLS_F
|
||||
; H5Z
|
||||
H5Z_mp_H5ZUNREGISTER_F
|
||||
H5Z_mp_H5ZFILTER_AVAIL_F
|
||||
|
@ -30,8 +30,6 @@ noinst_LTLIBRARIES=libh5test_fortran.la
|
||||
# want to build a shared C library and a static Fortran library. If so,
|
||||
# pass the -static flag to the library linker.
|
||||
if FORTRAN_SHARED_CONDITIONAL
|
||||
TEST_SCRIPT = test_vol_connector.sh
|
||||
SCRIPT_DEPEND = vol_connector$(EXEEXT)
|
||||
else
|
||||
AM_LDFLAGS+=-static
|
||||
endif
|
||||
@ -39,26 +37,9 @@ endif
|
||||
check_SCRIPTS = $(TEST_SCRIPT)
|
||||
|
||||
# Our main targets, the tests themselves
|
||||
TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03
|
||||
TEST_PROG=fortranlib_test fflush1 fflush2 fortranlib_test_1_8 fortranlib_test_F03 vol_connector
|
||||
|
||||
check_PROGRAMS=$(TEST_PROG)
|
||||
if FORTRAN_SHARED_CONDITIONAL
|
||||
check_PROGRAMS+= vol_connector
|
||||
endif
|
||||
|
||||
if FORTRAN_SHARED_CONDITIONAL
|
||||
# The libh5test library provides common support code for the tests.
|
||||
# The filter_plugin* libraries are for use in filter_plugin.c.
|
||||
# Build them as shared libraries if that option was enabled in configure.
|
||||
noinst_LTLIBRARIES += libnull_vol_connector.la
|
||||
|
||||
# VOL plugin test libraries
|
||||
#
|
||||
# null_vol_connector is used for testing basic VOL plugin functionality.
|
||||
libnull_vol_connector_la_SOURCES=null_vol_connector.c
|
||||
libnull_vol_connector_la_LDFLAGS=$(AM_LDFLAGS) -avoid-version -module -shared -export-dynamic -rpath /nowhere
|
||||
endif
|
||||
|
||||
|
||||
libh5test_fortran_la_SOURCES = tf_gen.F90 tf.F90 t.c
|
||||
|
||||
@ -117,8 +98,6 @@ H5_test_buildiface_SOURCES = H5_test_buildiface.F90
|
||||
|
||||
H5_test_buildiface_LDADD =
|
||||
|
||||
DISTCLEANFILES=test_vol_connector.sh # TODO:CHECK IF WORKS MSB
|
||||
|
||||
# fflush2 depends on files created by fflush1
|
||||
fflush2.chkexe_: fflush1.chkexe_
|
||||
|
||||
|
@ -127,6 +127,8 @@ H5VL_file_create(const char *name)
|
||||
{
|
||||
hid_t under_fapl;
|
||||
H5VL_t *file;
|
||||
|
||||
printf(" H5VL_file_create \n");
|
||||
|
||||
file = (H5VL_t *)calloc(1, sizeof(H5VL_t));
|
||||
|
||||
|
@ -31,9 +31,8 @@ MODULE VOL_TMOD
|
||||
USE THDF5_F03
|
||||
IMPLICIT NONE
|
||||
|
||||
|
||||
INTEGER, PARAMETER :: NULL_VOL_CONNECTOR_VALUE = 160
|
||||
CHARACTER(LEN=18), PARAMETER :: NULL_VOL_CONNECTOR_NAME = "null_vol_connector"
|
||||
INTEGER, PARAMETER :: NATIVE_VOL_CONNECTOR_VALUE = 0
|
||||
CHARACTER(LEN=6), PARAMETER :: NATIVE_VOL_CONNECTOR_NAME = "native"
|
||||
|
||||
CONTAINS
|
||||
|
||||
@ -57,50 +56,47 @@ CONTAINS
|
||||
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
|
||||
! CHARACTER(LEN=12) :: filename = "h5null.posix"
|
||||
! INTEGER(HID_T) :: file_id
|
||||
|
||||
! The null VOL connector should not be registered at the start of the test
|
||||
CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error)
|
||||
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)
|
||||
|
||||
! Register the connector by name
|
||||
CALL H5VLregister_connector_by_name_f(NULL_VOL_CONNECTOR_NAME, vol_id, error)
|
||||
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(NULL_VOL_CONNECTOR_NAME, is_registered, error)
|
||||
CALL H5VLis_connector_registered_f(NATIVE_VOL_CONNECTOR_NAME, is_registered, error)
|
||||
CALL check("H5VLis_connector_registered_f",error,total_error)
|
||||
CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error)
|
||||
|
||||
CALL H5VLget_connector_id_f(NULL_VOL_CONNECTOR_NAME, vol_id_out, error)
|
||||
CALL H5VLget_connector_id_f(NATIVE_VOL_CONNECTOR_NAME, vol_id_out, error)
|
||||
CALL check("H5VLget_connector_id_f",error,total_error)
|
||||
|
||||
PRINT*,vol_id_out
|
||||
CALL H5Fcreate_f("voltest.h5",H5F_ACC_TRUNC_F, file_id, error)
|
||||
CALL check("H5F_create_f",error,total_error)
|
||||
|
||||
CALL H5VLget_connector_name_f(vol_id_out, name, error, name_len)
|
||||
CALL H5VLget_connector_name_f(file_id, name, 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(vol_id_out, name, error)
|
||||
! CALL check("H5VLget_connector_name_f",error,total_error)
|
||||
CALL H5VLget_connector_name_f(file_id, name, error)
|
||||
CALL check("H5VLget_connector_name_f",error,total_error)
|
||||
CALL VERIFY("H5VLget_connector_name_f", name, NATIVE_VOL_CONNECTOR_NAME, total_error)
|
||||
|
||||
CALL H5VLcmp_connector_cls_f( cmp, vol_id_out, vol_id, error)
|
||||
CALL check("H5VLcmp_connector_cls_f",error, total_error)
|
||||
CALL VERIFY("H5VLcmp_connector_cls_f", cmp, 0, 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)
|
||||
|
||||
! The connector should not be registered now
|
||||
CALL H5VLis_connector_registered_f( NULL_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)
|
||||
|
||||
END SUBROUTINE test_registration_by_name
|
||||
|
||||
!-------------------------------------------------------------------------
|
||||
@ -123,16 +119,16 @@ CONTAINS
|
||||
|
||||
|
||||
! The null VOL connector should not be registered at the start of the test
|
||||
CALL H5VLis_connector_registered_f( NULL_VOL_CONNECTOR_NAME, is_registered, error)
|
||||
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)
|
||||
|
||||
! Register the connector by value
|
||||
CALL H5VLregister_connector_by_value_f(NULL_VOL_CONNECTOR_VALUE, vol_id, error)
|
||||
CALL H5VLregister_connector_by_value_f(NATIVE_VOL_CONNECTOR_VALUE, vol_id, error)
|
||||
CALL check("H5VLregister_connector_by_value_f", error, total_error)
|
||||
|
||||
! The connector should be registered now
|
||||
CALL H5VLis_connector_registered_f(NULL_VOL_CONNECTOR_NAME, is_registered, error)
|
||||
CALL H5VLis_connector_registered_f(NATIVE_VOL_CONNECTOR_NAME, is_registered, error)
|
||||
CALL check("H5VLis_connector_registered_f",error,total_error)
|
||||
CALL VERIFY("H5VLis_connector_registered_f", is_registered, .TRUE., total_error)
|
||||
|
||||
@ -140,11 +136,6 @@ CONTAINS
|
||||
CALL H5VLunregister_connector_f(vol_id, error)
|
||||
CALL check("H5VLunregister_connector_f", error, total_error)
|
||||
|
||||
! The connector should not be registered now
|
||||
CALL H5VLis_connector_registered_f( NULL_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)
|
||||
|
||||
END SUBROUTINE test_registration_by_value
|
||||
|
||||
END MODULE VOL_TMOD
|
||||
|
@ -114,6 +114,11 @@ test_registration_by_name(void)
|
||||
if(FALSE == is_registered)
|
||||
FAIL_PUTS_ERROR("NULL VOL connector was not registered");
|
||||
|
||||
hid_t acc_tpl = H5Pcreate(H5P_FILE_ACCESS);
|
||||
H5Pset_vol(acc_tpl, vol_id, NULL);
|
||||
|
||||
H5Pclose(acc_tpl);
|
||||
|
||||
/* Unregister the connector */
|
||||
if(H5VLunregister_connector(vol_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
Loading…
x
Reference in New Issue
Block a user