summaryrefslogtreecommitdiffstats
path: root/test/vds.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2015-07-22 18:36:30 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2015-07-22 18:36:30 (GMT)
commit6bb109bf6d0b17e4c67a1fc3d252a0b6547c875f (patch)
treee1b7579a2c0b7ad497f7ffe38ca0f2db2b8bd4a6 /test/vds.c
parenta8fc7eeaecfcaf13480ca68c688ba91869bf8e16 (diff)
downloadhdf5-6bb109bf6d0b17e4c67a1fc3d252a0b6547c875f.zip
hdf5-6bb109bf6d0b17e4c67a1fc3d252a0b6547c875f.tar.gz
hdf5-6bb109bf6d0b17e4c67a1fc3d252a0b6547c875f.tar.bz2
[svn-r27424] Implement support for h5debug for VDS.
Implement support for H5Pencode/decode with VDS properties. Testing for H5Pencode/decode with VDS. Relax assertion check for number of elements written to buffer as we do not check for overlaps in mappings. Other minor fixes/cleanup. Tested: ummon
Diffstat (limited to 'test/vds.c')
-rw-r--r--test/vds.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/test/vds.c b/test/vds.c
index 62b444f..573af9e 100644
--- a/test/vds.c
+++ b/test/vds.c
@@ -25,6 +25,7 @@
typedef enum {
TEST_API_BASIC,
TEST_API_COPY_PLIST,
+ TEST_API_ENCDEC_PLIST,
TEST_API_CREATE_DSET,
TEST_API_REOPEN_DSET,
TEST_API_REOPEN_FILE,
@@ -45,7 +46,6 @@ const char *FILENAME[] = {
#define TEST_IO_DIFFERENT_FILE 0x02u
#define TEST_IO_REOPEN_VIRT 0x04u
#define TEST_IO_NTESTS 0x08u
-//VDSINC add close source, virtual file
#define LIST_DOUBLE_SIZE (H5D_VIRTUAL_DEF_LIST_SIZE + 1)
@@ -331,6 +331,7 @@ test_api_get_ex_dcpl(test_api_config_t config, hid_t fapl, hid_t dcpl,
{
hid_t file = -1; /* File */
hid_t dset = -1; /* Virtual dataset */
+ void *plist_buf = NULL; /* Serialized property list buffer */
HDassert((config >= TEST_API_BASIC) && (config < TEST_API_NTESTS));
HDassert(fapl >= 0);
@@ -386,6 +387,25 @@ test_api_get_ex_dcpl(test_api_config_t config, hid_t fapl, hid_t dcpl,
if((*ex_dcpl = H5Pcopy(dcpl)) < 0)
TEST_ERROR
} /* end if */
+ else if(config == TEST_API_ENCDEC_PLIST) {
+ size_t plist_buf_size;
+
+ /* Encode property list to plist_buf */
+ if(H5Pencode(dcpl, NULL, &plist_buf_size) < 0)
+ TEST_ERROR
+ if(NULL == (plist_buf = HDmalloc(plist_buf_size)))
+ TEST_ERROR
+ if(H5Pencode(dcpl, plist_buf, &plist_buf_size) < 0)
+ TEST_ERROR
+
+ /* Decode serialized property list to *ex_dcpl */
+ if((*ex_dcpl = H5Pdecode(plist_buf)) < 0)
+ TEST_ERROR
+
+ /* Free plist_buf */
+ HDfree(plist_buf);
+ plist_buf = NULL;
+ } /* end if */
else {
/* Simply copy the id to ex_dcpl and increment the ref count so ex_dcpl
* can be closed */
@@ -403,6 +423,8 @@ error:
if(dset >= 0)
(void)H5Dclose(dset);
} H5E_END_TRY;
+ if(plist_buf)
+ HDfree(plist_buf);
return -1;
} /* end test_api_get_ex_dcpl() */
@@ -440,6 +462,9 @@ test_api(test_api_config_t config, hid_t fapl)
case TEST_API_COPY_PLIST:
TESTING("virtual dataset API functions with copied plists")
break;
+ case TEST_API_ENCDEC_PLIST:
+ TESTING("virtual dataset API functions with encoded and decoded plists")
+ break;
case TEST_API_CREATE_DSET:
TESTING("virtual dataset create")
break;