summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/h5dsm_obj_open.c2
-rw-r--r--examples/h5dsm_obj_open_addr.c2
-rw-r--r--examples/h5dsm_test.out.exp22
-rwxr-xr-xexamples/h5dsm_test.sh69
-rw-r--r--src/H5O.c1
-rw-r--r--src/H5VLint.c3
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")