From 819a5d610b9f1cf6ce454b66b836ec6be678028a Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Thu, 7 Nov 2013 14:56:31 -0500 Subject: [svn-r24414] Fixed failure of dsets test when --enable-production is set. Fixes SWMR-12. Also fixed a few minor warnings in dsets.c. Tested on: jam (very minor test code change) --- test/dsets.c | 115 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 63 insertions(+), 52 deletions(-) diff --git a/test/dsets.c b/test/dsets.c index b1813a5..736c5da 100644 --- a/test/dsets.c +++ b/test/dsets.c @@ -4109,7 +4109,7 @@ test_nbit_int_size(hid_t file) */ for (i=0; i < DSET_DIM1; i++) for (j=0; j < DSET_DIM2; j++) - orig_data[i][j] = rand() % (int)pow(2, precision-1) <= 0) { - H5_FAILED(); - puts(" library allowed creation of a version 1 B-tree indexed dataset under SWMR semantics"); - goto error; - } + if((fid = H5Fopen(filename, H5F_ACC_RDWR | H5F_ACC_SWMR_WRITE, v1_fapl)) < 0) FAIL_STACK_ERROR /* Attempt to write to a dataset that uses v-1 B-tree chunk indexing under - * SWMR semantics. Since the library can't protect a v-1 B-tree node under - * SWMR semantics (we have no idea if someone will try to modify it), - * even opening the dataset will fail. + * SWMR semantics. */ + did = -1; + err = -1; H5E_BEGIN_TRY { did = H5Dopen(fid, DSET_DEFAULT_NAME, H5P_DEFAULT); + if(did >= 0) { + err = H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &data); + } } H5E_END_TRY; - if(did >= 0) { + + /* Fail on successful write */ + if(did >= 0 && err >= 0) { H5_FAILED(); - puts(" library allowed opening (and potential writing) to a version 1 B-tree indexed dataset under SWMR semantics"); + puts(" library allowed writing to a version 1 B-tree indexed dataset under SWMR semantics"); goto error; } /* Close everything */ - if(H5Pclose(my_fapl) < 0) FAIL_STACK_ERROR + if(did >= 0) + if(H5Dclose(did) < 0) FAIL_STACK_ERROR + if(H5Pclose(v1_fapl) < 0) FAIL_STACK_ERROR + if(H5Pclose(fh_fapl) < 0) FAIL_STACK_ERROR if(H5Pclose(dcpl) < 0) FAIL_STACK_ERROR if(H5Sclose(sid) < 0) FAIL_STACK_ERROR if(H5Fclose(fid) < 0) FAIL_STACK_ERROR @@ -10112,18 +10124,17 @@ test_swmr_v1_btree_ci_fail(hid_t fapl) return 0; error: - return -1; H5E_BEGIN_TRY { - H5Pclose(my_fapl); + H5Pclose(v1_fapl); + H5Pclose(fh_fapl); H5Pclose(dcpl); H5Dclose(did); H5Sclose(sid); H5Fclose(fid); } H5E_END_TRY; + return -1; } /* end test_swmr_v1_btree_ci_fail() */ - - /*------------------------------------------------------------------------- * Function: test_scatter @@ -10232,7 +10243,7 @@ test_scatter(void) scatter_info.size = 8; /* Scatter data */ - if(H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) + if(H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) TEST_ERROR /* Verify data */ @@ -10272,7 +10283,7 @@ test_scatter(void) scatter_info.size = 12; /* Scatter data */ - if(H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) + if(H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) TEST_ERROR /* Verify data */ @@ -10330,7 +10341,7 @@ test_scatter(void) scatter_info.size = 36; /* Scatter data */ - if(H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) + if(H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) TEST_ERROR /* Verify data */ @@ -10386,7 +10397,7 @@ test_scatter(void) scatter_info.size = 16; /* Scatter data */ - if(H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) + if(H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) TEST_ERROR /* Verify data */ @@ -10420,7 +10431,7 @@ test_scatter(void) scatter_info.size = 4; /* Scatter data */ - if(H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) + if(H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) TEST_ERROR /* Verify data */ @@ -10897,7 +10908,7 @@ test_scatter_error(void) scatter_info.src_buf = src_buf; scatter_info.block = sizeof(src_buf)/sizeof(src_buf[0]); scatter_info.size = 6; - if(H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) + if(H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf) < 0) TEST_ERROR @@ -10914,21 +10925,21 @@ test_scatter_error(void) scatter_info.src_buf = src_buf; scatter_info.size = 6; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_cb, &scatter_info, sid, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, sid, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR scatter_info.src_buf = src_buf; scatter_info.size = 6; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, H5T_NATIVE_INT, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, H5T_NATIVE_INT, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR scatter_info.src_buf = src_buf; scatter_info.size = 6; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, NULL); + ret = H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, NULL); } H5E_END_TRY if(ret >= 0) TEST_ERROR @@ -10939,7 +10950,7 @@ test_scatter_error(void) scatter_info.src_buf = src_buf; scatter_info.size = 7; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_cb, &scatter_info, H5T_NATIVE_INT, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR @@ -10950,7 +10961,7 @@ test_scatter_error(void) scatter_info.src_buf = src_buf; scatter_info.size = 6; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_error_cb_fail, &scatter_info, H5T_NATIVE_INT, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_error_cb_fail, &scatter_info, H5T_NATIVE_INT, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR @@ -10961,7 +10972,7 @@ test_scatter_error(void) scatter_info.src_buf = src_buf; scatter_info.size = 6; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_error_cb_null, &scatter_info, H5T_NATIVE_INT, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_error_cb_null, &scatter_info, H5T_NATIVE_INT, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR @@ -10971,7 +10982,7 @@ test_scatter_error(void) */ cb_unalign_nbytes = 0; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_error_cb_unalign, &cb_unalign_nbytes, H5T_NATIVE_INT, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_error_cb_unalign, &cb_unalign_nbytes, H5T_NATIVE_INT, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR @@ -10982,13 +10993,13 @@ test_scatter_error(void) */ cb_unalign_nbytes = sizeof(src_buf[0]) - 1; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_error_cb_unalign, &cb_unalign_nbytes, H5T_NATIVE_INT, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_error_cb_unalign, &cb_unalign_nbytes, H5T_NATIVE_INT, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR cb_unalign_nbytes = sizeof(src_buf[0]) + 1; H5E_BEGIN_TRY { - ret = H5Dscatter(scatter_error_cb_unalign, &cb_unalign_nbytes, H5T_NATIVE_INT, sid, dst_buf); + ret = H5Dscatter((H5D_scatter_func_t)scatter_error_cb_unalign, &cb_unalign_nbytes, H5T_NATIVE_INT, sid, dst_buf); } H5E_END_TRY if(ret >= 0) TEST_ERROR -- cgit v0.12