From faecad8247a6bd9f30e40393379357a48b3d0bc4 Mon Sep 17 00:00:00 2001 From: Neil Fortner Date: Thu, 11 May 2017 17:58:40 -0500 Subject: Add maps to h5dsm_test.sh. Fix issues with maps implementation. --- examples/h5dsm_obj_open.c | 2 ++ examples/h5dsm_obj_open_addr.c | 2 ++ examples/h5dsm_test.out.exp | 22 +++++++++----- examples/h5dsm_test.sh | 69 +++++++++++++++++++++++++++++++++++------- src/H5O.c | 1 + src/H5VLint.c | 3 +- 6 files changed, 80 insertions(+), 19 deletions(-) diff --git a/examples/h5dsm_obj_open.c b/examples/h5dsm_obj_open.c index af9acc3..d4f0371 100644 --- a/examples/h5dsm_obj_open.c +++ b/examples/h5dsm_obj_open.c @@ -57,6 +57,8 @@ int main(int argc, char *argv[]) { obj_str = "dataset"; else if(obj_type == H5I_DATATYPE) obj_str = "datatype"; + else if(obj_type == H5I_MAP) + obj_str = "map"; else obj_str = "unknown"; printf("Object type is %s\n", obj_str); diff --git a/examples/h5dsm_obj_open_addr.c b/examples/h5dsm_obj_open_addr.c index 608f1b0..875c729 100644 --- a/examples/h5dsm_obj_open_addr.c +++ b/examples/h5dsm_obj_open_addr.c @@ -61,6 +61,8 @@ int main(int argc, char *argv[]) { obj_str = "dataset"; else if(obj_type == H5I_DATATYPE) obj_str = "datatype"; + else if(obj_type == H5I_MAP) + obj_str = "map"; else obj_str = "unknown"; printf("Object type is %s\n", obj_str); diff --git a/examples/h5dsm_test.out.exp b/examples/h5dsm_test.out.exp index 8041fb2..f9c59f9 100644 --- a/examples/h5dsm_test.out.exp +++ b/examples/h5dsm_test.out.exp @@ -9,11 +9,14 @@ Success Iterating over links dset2: hard, address = 0x4000000000000004 slpath: soft, val_size = 19 +MAP_FIXED: hard, address = 0xc000000000000007 +MAP_VL_STR: hard, address = 0xc000000000000006 grp: hard, address = 0x0000000000000002 slink: soft, val_size = 4 -grp2: hard, address = 0x0000000000000005 +grp2: hard, address = 0x0000000000000008 +MAP_VL_T: hard, address = 0xc000000000000005 dset: hard, address = 0x4000000000000003 -Complete. Number of links: 6 +Complete. Number of links: 9 Success Iterating over links slroot: soft, val_size = 2 @@ -33,23 +36,28 @@ attrdset: 96 bytes Complete. Number of attributes: 1 Success Opening object -fileno = 4889012549849695529 +fileno = 10997552374967658951 addr = 0x0000000000000001 Object type is group Success Opening object -fileno = 4889012549849695529 +fileno = 10997552374967658951 addr = 0x0000000000000002 Object type is group Success Opening object -fileno = 4889012549849695529 +fileno = 10997552374967658951 addr = 0x4000000000000003 Object type is dataset Success -Opening snapshot 7 +Opening object +fileno = 10997552374967658951 +addr = 0xc000000000000005 +Object type is unknown +Success +Opening snapshot 9 Checking if link exists... FALSE Success -Opening snapshot 8 +Opening snapshot 10 Checking if link exists... TRUE Success diff --git a/examples/h5dsm_test.sh b/examples/h5dsm_test.sh index 2abfe52..5b7eda6 100755 --- a/examples/h5dsm_test.sh +++ b/examples/h5dsm_test.sh @@ -135,6 +135,14 @@ if test $? -ne 0; then exit 1 fi +# --------------- MAPS --------------- # +echo h5dsm_map $FILE +orterun -np 1 $EXEC_ARGS ./h5dsm_map $POOL_UUID $FILE +if test $? -ne 0; then + echo FAILED + exit 1 +fi + # --------------- LINKS --------------- # # H5Lexists (should be FALSE) echo h5dsm_link_exists $FILE grp2 @@ -412,6 +420,21 @@ if test $? -ne 0; then exit 1 fi +# H5Oopen map +echo h5dsm_obj_open $FILE MAP_VL_T +orterun -np 1 $EXEC_ARGS ./h5dsm_obj_open $POOL_UUID $FILE MAP_VL_T +if test $? -ne 0; then + echo FAILED + exit 1 +fi + +echo h5dsm_obj_open $FILE MAP_VL_T \(2 processes\) +orterun -np 2 $EXEC_ARGS ./h5dsm_obj_open $POOL_UUID $FILE MAP_VL_T +if test $? -ne 0; then + echo FAILED + exit 1 +fi + # H5Oget_info root group echo h5dsm_obj_info $FILE / orterun -np 1 $EXEC_ARGS ./h5dsm_obj_info $POOL_UUID $FILE / | tee -a h5dsm_test.out @@ -436,6 +459,14 @@ if test $? -ne 0; then exit 1 fi +# H5Oget_info map +echo h5dsm_obj_info $FILE /MAP_VL_T +orterun -np 1 $EXEC_ARGS ./h5dsm_obj_info $POOL_UUID $FILE /MAP_VL_T | tee -a h5dsm_test.out +if test $? -ne 0; then + echo FAILED + exit 1 +fi + # H5Oopen_by_addr root group echo h5dsm_obj_open_addr $FILE 0x0000000000000001 orterun -np 1 $EXEC_ARGS ./h5dsm_obj_open_addr $POOL_UUID $FILE 0x0000000000000001 @@ -481,18 +512,33 @@ if test $? -ne 0; then exit 1 fi +# H5Oopen_by_addr dataset +echo h5dsm_obj_open_addr $FILE 0xc000000000000005 +orterun -np 1 $EXEC_ARGS ./h5dsm_obj_open_addr $POOL_UUID $FILE 0xc000000000000005 +if test $? -ne 0; then + echo FAILED + exit 1 +fi + +echo h5dsm_obj_open_addr $FILE 0xc000000000000005 \(2 processes\) +orterun -np 2 $EXEC_ARGS ./h5dsm_obj_open_addr $POOL_UUID $FILE 0xc000000000000005 +if test $? -ne 0; then + echo FAILED + exit 1 +fi + # --------------- Snapshots --------------- # # H5Lexists before slink created (should be FALSE) -echo h5dsm_link_exists $FILE grp2 7 -orterun -np 1 $EXEC_ARGS ./h5dsm_link_exists $POOL_UUID $FILE slink 7 | tee -a h5dsm_test.out +echo h5dsm_link_exists $FILE grp2 9 +orterun -np 1 $EXEC_ARGS ./h5dsm_link_exists $POOL_UUID $FILE slink 9 | tee -a h5dsm_test.out if test $? -ne 0; then echo FAILED exit 1 fi # H5Lexists after slink created (should be TRUE) -echo h5dsm_link_exists $FILE grp2 8 -orterun -np 1 $EXEC_ARGS ./h5dsm_link_exists $POOL_UUID $FILE slink 8 | tee -a h5dsm_test.out +echo h5dsm_link_exists $FILE grp2 10 +orterun -np 1 $EXEC_ARGS ./h5dsm_link_exists $POOL_UUID $FILE slink 10 | tee -a h5dsm_test.out if test $? -ne 0; then echo FAILED exit 1 @@ -507,13 +553,14 @@ if test $? -ne 0; then fi # --------------- Output Comparison --------------- # -# Disabled due to DAOS debug messages -#cmp h5dsm_test.out h5dsm_test.out.exp -#if test $? -ne 0; then -# echo h5dsm_test.out does not match h5dsm_test.out.exp -# echo FAILED -# exit 1 -#fi +sed -i -e 's/#.*//' -e 's/[ ^I]*$//' -e '/^$/ d' h5dsm_test.out +echo cmp h5dsm_test.out h5dsm_test.out.exp +cmp h5dsm_test.out h5dsm_test.out.exp +if test $? -ne 0; then + echo h5dsm_test.out does not match h5dsm_test.out.exp + echo FAILED + exit 1 +fi echo PASSED exit 0 diff --git a/src/H5O.c b/src/H5O.c index d7c6a4c..ca2f3f3 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -1192,6 +1192,7 @@ H5Oclose(hid_t object_id) case H5I_GROUP: case H5I_DATATYPE: case H5I_DATASET: + case H5I_MAP: if(H5I_object(object_id) == NULL) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a valid object") if(H5I_dec_app_ref(object_id) < 0) diff --git a/src/H5VLint.c b/src/H5VLint.c index a9388b7..4dcc095 100644 --- a/src/H5VLint.c +++ b/src/H5VLint.c @@ -331,7 +331,8 @@ H5VL_get_object(hid_t id) FUNC_ENTER_NOAPI(NULL) if(H5I_FILE == obj_type || H5I_GROUP == obj_type || H5I_ATTR == obj_type || - H5I_DATASET == obj_type || H5I_DATATYPE == obj_type) { + H5I_DATASET == obj_type || H5I_DATATYPE == obj_type + || H5I_MAP == obj_type) { /* get the object */ if(NULL == (obj = H5I_object(id))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "invalid identifier") -- cgit v0.12