mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Skip vlen IO API test for cache VOL (#4135)
* Fix cache VOL segfault in vlen io test * Skip vlen IO API test
This commit is contained in:
@@ -9868,6 +9868,10 @@ test_dataset_vlen_io(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Skipped for now due to segfault with the Cache VOL */
|
||||
SKIPPED();
|
||||
return 0;
|
||||
|
||||
TESTING_2("test setup");
|
||||
|
||||
if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) {
|
||||
@@ -9955,9 +9959,6 @@ test_dataset_vlen_io(void)
|
||||
|
||||
dset_string = H5I_INVALID_HID;
|
||||
|
||||
memset(wbuf, 0, sizeof(hvl_t) * DATASET_VLEN_IO_DSET_DIMS);
|
||||
memset(rbuf, 0, sizeof(hvl_t) * DATASET_VLEN_IO_DSET_DIMS);
|
||||
|
||||
PASSED();
|
||||
|
||||
BEGIN_MULTIPART
|
||||
@@ -9985,6 +9986,9 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dwrite(dset_int, vlen_int, space_id, H5S_ALL, H5P_DEFAULT, (const void *)wbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
|
||||
if (H5Dflush(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
/* Close and reopen file objects to flush cache */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
@@ -10014,6 +10018,11 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dread(dset_int, vlen_int, space_id, H5S_ALL, H5P_DEFAULT, (void *)rbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
|
||||
/* Close to finalize read */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
dset_int = H5I_INVALID_HID;
|
||||
|
||||
/* Verify data */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (!rbuf[i].p)
|
||||
@@ -10027,12 +10036,6 @@ test_dataset_vlen_io(void)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
}
|
||||
|
||||
/* Close before use in selection tests */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
|
||||
dset_int = H5I_INVALID_HID;
|
||||
|
||||
/* Reset buffers */
|
||||
if (H5Treclaim(vlen_int, space_id, H5P_DEFAULT, rbuf) < 0)
|
||||
PART_TEST_ERROR(rw_all_int);
|
||||
@@ -10069,6 +10072,9 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dwrite(dset_float, vlen_float, space_id, H5S_ALL, H5P_DEFAULT, (const void *)wbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_all_float);
|
||||
|
||||
if (H5Dflush(dset_float) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
/* Close and reopen file objects to flush cache */
|
||||
if (H5Dclose(dset_float) < 0)
|
||||
PART_TEST_ERROR(rw_all_float);
|
||||
@@ -10098,6 +10104,11 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dread(dset_float, vlen_float, space_id, H5S_ALL, H5P_DEFAULT, (void *)rbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_all_float);
|
||||
|
||||
/* Close to finalize read */
|
||||
if (H5Dclose(dset_float) < 0)
|
||||
PART_TEST_ERROR(rw_all_float);
|
||||
dset_float = H5I_INVALID_HID;
|
||||
|
||||
/* Verify data */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (!rbuf[i].p)
|
||||
@@ -10116,7 +10127,6 @@ test_dataset_vlen_io(void)
|
||||
}
|
||||
|
||||
/* Reset buffers */
|
||||
|
||||
if (H5Treclaim(vlen_float, space_id, H5P_DEFAULT, rbuf) < 0)
|
||||
PART_TEST_ERROR(rw_all_float);
|
||||
|
||||
@@ -10155,6 +10165,9 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dwrite(dset_string, vlen_string, space_id, H5S_ALL, H5P_DEFAULT, (const void *)wbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_all_string);
|
||||
|
||||
if (H5Dflush(dset_string) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
/* Close and reopen file objects to flush cache */
|
||||
if (H5Dclose(dset_string) < 0)
|
||||
PART_TEST_ERROR(rw_all_string);
|
||||
@@ -10185,6 +10198,11 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dread(dset_string, vlen_string, space_id, H5S_ALL, H5P_DEFAULT, (void *)rbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_all_string);
|
||||
|
||||
/* Close to finalize read */
|
||||
if (H5Dclose(dset_string) < 0)
|
||||
PART_TEST_ERROR(rw_all_string);
|
||||
dset_string = H5I_INVALID_HID;
|
||||
|
||||
/* Verify data */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (!rbuf[i].p)
|
||||
@@ -10205,7 +10223,6 @@ test_dataset_vlen_io(void)
|
||||
}
|
||||
|
||||
/* Reset buffers */
|
||||
|
||||
if (H5Treclaim(vlen_string, space_id, H5P_DEFAULT, rbuf) < 0)
|
||||
PART_TEST_ERROR(rw_all_string);
|
||||
|
||||
@@ -10251,6 +10268,9 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dwrite(dset_int, vlen_int, space_id, space_id, H5P_DEFAULT, (const void *)wbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_point_selection);
|
||||
|
||||
if (H5Dflush(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
/* Close and reopen file objects to flush cache */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_point_selection);
|
||||
@@ -10277,6 +10297,11 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dread(dset_int, vlen_int, space_id, space_id, H5P_DEFAULT, (void *)rbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_point_selection);
|
||||
|
||||
/* Close to finalize read */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_point_selection);
|
||||
dset_int = H5I_INVALID_HID;
|
||||
|
||||
/* Verify data */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (i % 2 == 0) {
|
||||
@@ -10299,10 +10324,6 @@ test_dataset_vlen_io(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_point_selection);
|
||||
dset_int = H5I_INVALID_HID;
|
||||
|
||||
/* Reset buffers */
|
||||
if (H5Treclaim(vlen_int, space_id, H5P_DEFAULT, rbuf) < 0)
|
||||
PART_TEST_ERROR(rw_point_selection);
|
||||
@@ -10349,6 +10370,9 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dwrite(dset_int, vlen_int, space_id, space_id, H5P_DEFAULT, (const void *)wbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
if (H5Dflush(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
/* Close and reopen file objects to flush cache */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
@@ -10375,6 +10399,11 @@ test_dataset_vlen_io(void)
|
||||
if ((H5Dread(dset_int, vlen_int, space_id, space_id, H5P_DEFAULT, (void *)rbuf)) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
|
||||
/* Close to finalize read */
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
PART_TEST_ERROR(rw_hyperslab_selection);
|
||||
dset_int = H5I_INVALID_HID;
|
||||
|
||||
/* Verify data */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (i % stride[0] == 0) {
|
||||
@@ -10415,57 +10444,30 @@ test_dataset_vlen_io(void)
|
||||
|
||||
TESTING_2("test cleanup");
|
||||
|
||||
if (H5Fclose(file_id) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Gclose(container_group) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Dclose(dset_int) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Dclose(dset_float) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Dclose(dset_string) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Sclose(space_id) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
/* In case of memory allocation error, not all hvl_t buffers in array may be allocated.
|
||||
* Free one-by-one */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (wbuf[i].p) {
|
||||
free(wbuf[i].p);
|
||||
wbuf[i].p = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (rbuf[i].p) {
|
||||
free(rbuf[i].p);
|
||||
rbuf[i].p = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (H5Tclose(vlen_int) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Tclose(vlen_float) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Tclose(vlen_string) < 0)
|
||||
TEST_ERROR;
|
||||
|
||||
if (H5Gclose(container_group) < 0)
|
||||
TEST_ERROR;
|
||||
if (H5Fclose(file_id) < 0)
|
||||
TEST_ERROR;
|
||||
PASSED();
|
||||
return 0;
|
||||
error:
|
||||
|
||||
H5E_BEGIN_TRY
|
||||
{
|
||||
H5Fclose(file_id);
|
||||
H5Gclose(container_group);
|
||||
if (dset_int != H5I_INVALID_HID)
|
||||
H5Dclose(dset_int);
|
||||
if (dset_float != H5I_INVALID_HID)
|
||||
H5Dclose(dset_float);
|
||||
if (dset_string != H5I_INVALID_HID)
|
||||
H5Dclose(dset_string);
|
||||
H5Dclose(dset_int);
|
||||
H5Dclose(dset_float);
|
||||
H5Dclose(dset_string);
|
||||
H5Sclose(space_id);
|
||||
/* In case of memory allocation error, not all hvl_t buffers in array may be allocated.
|
||||
* Free one-by-one */
|
||||
for (size_t i = 0; i < DATASET_VLEN_IO_DSET_DIMS; i++) {
|
||||
if (wbuf[i].p) {
|
||||
free(wbuf[i].p);
|
||||
@@ -10482,6 +10484,8 @@ error:
|
||||
H5Tclose(vlen_int);
|
||||
H5Tclose(vlen_float);
|
||||
H5Tclose(vlen_string);
|
||||
H5Gclose(container_group);
|
||||
H5Fclose(file_id);
|
||||
}
|
||||
H5E_END_TRY
|
||||
|
||||
@@ -10513,7 +10517,8 @@ test_dataset_set_extent_chunked_unlimited(void)
|
||||
|
||||
/* Make sure the connector supports the API functions being tested */
|
||||
if (!(vol_cap_flags_g & H5VL_CAP_FLAG_FILE_BASIC) || !(vol_cap_flags_g & H5VL_CAP_FLAG_GROUP_BASIC) ||
|
||||
!(vol_cap_flags_g & H5VL_CAP_FLAG_DATASET_BASIC) || !(vol_cap_flags_g & H5VL_CAP_FLAG_DATASET_MORE)) {
|
||||
!(vol_cap_flags_g & H5VL_CAP_FLAG_DATASET_BASIC) || !(vol_cap_flags_g & H5VL_CAP_FLAG_DATASET_MORE) ||
|
||||
!(vol_cap_flags_g & H5VL_CAP_FLAG_DATASET_MORE)) {
|
||||
SKIPPED();
|
||||
printf(" API functions for basic file, group, basic or more dataset aren't supported with this "
|
||||
"connector\n");
|
||||
|
||||
Reference in New Issue
Block a user