diff options
Diffstat (limited to 'test/API/H5_api_dataset_test.c')
-rw-r--r-- | test/API/H5_api_dataset_test.c | 722 |
1 files changed, 30 insertions, 692 deletions
diff --git a/test/API/H5_api_dataset_test.c b/test/API/H5_api_dataset_test.c index 35a19f3..e31ed43 100644 --- a/test/API/H5_api_dataset_test.c +++ b/test/API/H5_api_dataset_test.c @@ -50,20 +50,10 @@ static int test_read_dataset_small_all(void); static int test_read_dataset_small_hyperslab(void); static int test_read_dataset_small_point_selection(void); static int test_dataset_io_point_selections(void); -#ifndef NO_LARGE_TESTS -static int test_read_dataset_large_all(void); -static int test_read_dataset_large_hyperslab(void); -static int test_read_dataset_large_point_selection(void); -#endif static int test_read_dataset_invalid_params(void); static int test_write_dataset_small_all(void); static int test_write_dataset_small_hyperslab(void); static int test_write_dataset_small_point_selection(void); -#ifndef NO_LARGE_TESTS -static int test_write_dataset_large_all(void); -static int test_write_dataset_large_hyperslab(void); -static int test_write_dataset_large_point_selection(void); -#endif static int test_write_dataset_data_verification(void); static int test_write_dataset_invalid_params(void); static int test_dataset_builtin_type_conversion(void); @@ -132,20 +122,10 @@ static int (*dataset_tests[])(void) = { test_read_dataset_small_hyperslab, test_read_dataset_small_point_selection, test_dataset_io_point_selections, -#ifndef NO_LARGE_TESTS - test_read_dataset_large_all, - test_read_dataset_large_hyperslab, - test_read_dataset_large_point_selection, -#endif test_read_dataset_invalid_params, test_write_dataset_small_all, test_write_dataset_small_hyperslab, test_write_dataset_small_point_selection, -#ifndef NO_LARGE_TESTS - test_write_dataset_large_all, - test_write_dataset_large_hyperslab, - test_write_dataset_large_point_selection, -#endif test_write_dataset_data_verification, test_write_dataset_invalid_params, test_dataset_builtin_type_conversion, @@ -1780,7 +1760,7 @@ test_create_dataset_enum_types(void) for (i = 0; i < DATASET_ENUM_TYPE_TEST_NUM_MEMBERS; i++) { char val_name[15]; - HDsprintf(val_name, "%s%zu", DATASET_ENUM_TYPE_TEST_VAL_BASE_NAME, i); + HDsnprintf(val_name, 15, "%s%zu", DATASET_ENUM_TYPE_TEST_VAL_BASE_NAME, i); if (H5Tenum_insert(enum_non_native, val_name, &i) < 0) TEST_ERROR; @@ -2080,13 +2060,11 @@ test_create_dataset_creation_properties(void) TESTING_MULTIPART("dataset creation properties"); /* Make sure the connector supports the API functions being tested */ - if (!(vol_cap_flags_g & H5VL_CAP_FLAG_FILTERS) || !(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_CREATION_ORDER) || !(vol_cap_flags_g & H5VL_CAP_FLAG_TRACK_TIMES) || - !(vol_cap_flags_g & H5VL_CAP_FLAG_FILTERS)) { + 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)) { SKIPPED(); - HDprintf(" API functions for basic file, group, dataset, creation order, track time, or filter " - "pipeline aren't supported with this connector\n"); + HDprintf(" API functions for basic file, group, or dataset " + "aren't supported with this connector\n"); return 0; } @@ -2209,6 +2187,12 @@ test_create_dataset_creation_properties(void) TESTING_2("attribute creation order property for DCPL"); + if (!(vol_cap_flags_g & H5VL_CAP_FLAG_CREATION_ORDER)) { + SKIPPED(); + HDprintf(" creation order tracking is not supported by this VOL connector\n"); + PART_EMPTY(DCPL_attr_crt_order_test); + } + if ((dcpl_id = H5Pcreate(H5P_DATASET_CREATE)) < 0) { H5_FAILED(); HDprintf(" couldn't create DCPL\n"); @@ -2411,6 +2395,12 @@ test_create_dataset_creation_properties(void) { TESTING_2("dataset filters"); + if (!(vol_cap_flags_g & H5VL_CAP_FLAG_FILTERS)) { + SKIPPED(); + HDprintf(" dataset filters are not supported by this VOL connector\n"); + PART_EMPTY(DCPL_filters_test); + } + if ((dcpl_id = H5Pcreate(H5P_DATASET_CREATE)) < 0) { H5_FAILED(); HDprintf(" couldn't create DCPL\n"); @@ -2591,6 +2581,12 @@ test_create_dataset_creation_properties(void) { TESTING_2("object time tracking property for DCPL"); + if (!(vol_cap_flags_g & H5VL_CAP_FLAG_TRACK_TIMES)) { + SKIPPED(); + HDprintf(" object time tracking is not supported by this VOL connector\n"); + PART_EMPTY(DCPL_track_obj_times_test); + } + if ((dcpl_id = H5Pcreate(H5P_DATASET_CREATE)) < 0) { H5_FAILED(); HDprintf(" couldn't create DCPL\n"); @@ -4933,372 +4929,6 @@ error: return 1; } /* end test_dataset_io_point_selections() */ -#ifndef NO_LARGE_TESTS -/* - * A test to check that a large amount of data can be - * read back from a dataset using an H5S_ALL selection. - */ -static int -test_read_dataset_large_all(void) -{ - hsize_t dims[DATASET_LARGE_READ_TEST_ALL_DSET_SPACE_RANK] = {600, 600, 600}; - size_t i, data_size; - hid_t file_id = H5I_INVALID_HID; - hid_t container_group = H5I_INVALID_HID, group_id = H5I_INVALID_HID; - hid_t dset_id = H5I_INVALID_HID; - hid_t fspace_id = H5I_INVALID_HID; - void *read_buf = NULL; - - TESTING("large read from dataset with H5S_ALL"); - - /* 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)) { - SKIPPED(); - HDprintf( - " API functions for basic file, group, or dataset aren't supported with this connector\n"); - return 0; - } - - if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open file '%s'\n", H5_api_test_filename); - goto error; - } - - if ((container_group = H5Gopen2(file_id, DATASET_TEST_GROUP_NAME, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open container group '%s'\n", DATASET_TEST_GROUP_NAME); - goto error; - } - - if ((group_id = H5Gcreate2(container_group, DATASET_LARGE_READ_TEST_ALL_GROUP_NAME, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create container sub-group '%s'\n", DATASET_LARGE_READ_TEST_ALL_GROUP_NAME); - goto error; - } - - if ((fspace_id = H5Screate_simple(DATASET_LARGE_READ_TEST_ALL_DSET_SPACE_RANK, dims, NULL)) < 0) - TEST_ERROR; - - if ((dset_id = H5Dcreate2(group_id, DATASET_LARGE_READ_TEST_ALL_DSET_NAME, - DATASET_LARGE_READ_TEST_ALL_DSET_DTYPE, fspace_id, H5P_DEFAULT, H5P_DEFAULT, - H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create dataset '%s'\n", DATASET_LARGE_READ_TEST_ALL_DSET_NAME); - goto error; - } - - for (i = 0, data_size = 1; i < DATASET_LARGE_READ_TEST_ALL_DSET_SPACE_RANK; i++) - data_size *= dims[i]; - data_size *= DATASET_LARGE_READ_TEST_ALL_DSET_DTYPESIZE; - - if (NULL == (read_buf = HDmalloc(data_size))) - TEST_ERROR; - - if (H5Dread(dset_id, DATASET_LARGE_READ_TEST_ALL_DSET_DTYPE, H5S_ALL, H5S_ALL, H5P_DEFAULT, read_buf) < - 0) { - H5_FAILED(); - HDprintf(" couldn't read from dataset '%s'\n", DATASET_LARGE_READ_TEST_ALL_DSET_NAME); - goto error; - } - - if (read_buf) { - HDfree(read_buf); - read_buf = NULL; - } - - if (H5Sclose(fspace_id) < 0) - TEST_ERROR; - if (H5Dclose(dset_id) < 0) - TEST_ERROR; - if (H5Gclose(group_id) < 0) - TEST_ERROR; - if (H5Gclose(container_group) < 0) - TEST_ERROR; - if (H5Fclose(file_id) < 0) - TEST_ERROR; - - PASSED(); - - return 0; - -error: - H5E_BEGIN_TRY - { - if (read_buf) - HDfree(read_buf); - H5Sclose(fspace_id); - H5Dclose(dset_id); - H5Gclose(group_id); - H5Gclose(container_group); - H5Fclose(file_id); - } - H5E_END_TRY; - - return 1; -} - -/* - * A test to check that a large amount of data can be - * read back from a dataset using a hyperslab selection. - */ -static int -test_read_dataset_large_hyperslab(void) -{ - hsize_t start[DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t stride[DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t count[DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t block[DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t dims[DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK] = {600, 600, 600}; - size_t i, data_size; - hid_t file_id = H5I_INVALID_HID; - hid_t container_group = H5I_INVALID_HID, group_id = H5I_INVALID_HID; - hid_t dset_id = H5I_INVALID_HID; - hid_t mspace_id = H5I_INVALID_HID, fspace_id = H5I_INVALID_HID; - void *read_buf = NULL; - - TESTING("large read from dataset with a hyperslab selection"); - - /* 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)) { - SKIPPED(); - HDprintf( - " API functions for basic file, group, or dataset aren't supported with this connector\n"); - return 0; - } - - if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open file '%s'\n", H5_api_test_filename); - goto error; - } - - if ((container_group = H5Gopen2(file_id, DATASET_TEST_GROUP_NAME, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open container group '%s'\n", DATASET_TEST_GROUP_NAME); - goto error; - } - - if ((group_id = H5Gcreate2(container_group, DATASET_LARGE_READ_TEST_HYPERSLAB_GROUP_NAME, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create container sub-group '%s'\n", - DATASET_LARGE_READ_TEST_HYPERSLAB_GROUP_NAME); - goto error; - } - - if ((fspace_id = H5Screate_simple(DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK, dims, NULL)) < 0) - TEST_ERROR; - if ((mspace_id = H5Screate_simple(DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK, dims, NULL)) < 0) - TEST_ERROR; - - if ((dset_id = H5Dcreate2(group_id, DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_NAME, - DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_DTYPE, fspace_id, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create dataset '%s'\n", DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_NAME); - goto error; - } - - for (i = 0; i < DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK; i++) { - start[i] = 0; - stride[i] = 1; - count[i] = dims[i]; - block[i] = 1; - } - - if (H5Sselect_hyperslab(fspace_id, H5S_SELECT_SET, start, stride, count, block) < 0) - TEST_ERROR; - - for (i = 0, data_size = 1; i < DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_SPACE_RANK; i++) - data_size *= dims[i]; - data_size *= DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_DTYPESIZE; - - if (NULL == (read_buf = HDmalloc(data_size))) - TEST_ERROR; - - if (H5Dread(dset_id, DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_DTYPE, mspace_id, fspace_id, H5P_DEFAULT, - read_buf) < 0) { - H5_FAILED(); - HDprintf(" couldn't read from dataset '%s'\n", DATASET_LARGE_READ_TEST_HYPERSLAB_DSET_NAME); - goto error; - } - - if (read_buf) { - HDfree(read_buf); - read_buf = NULL; - } - - if (H5Sclose(mspace_id) < 0) - TEST_ERROR; - if (H5Sclose(fspace_id) < 0) - TEST_ERROR; - if (H5Dclose(dset_id) < 0) - TEST_ERROR; - if (H5Gclose(group_id) < 0) - TEST_ERROR; - if (H5Gclose(container_group) < 0) - TEST_ERROR; - if (H5Fclose(file_id) < 0) - TEST_ERROR; - - PASSED(); - - return 0; - -error: - H5E_BEGIN_TRY - { - H5Sclose(mspace_id); - H5Sclose(fspace_id); - H5Dclose(dset_id); - H5Gclose(group_id); - H5Gclose(container_group); - H5Fclose(file_id); - } - H5E_END_TRY; - - return 1; -} - -/* - * A test to check that a large amount of data can be - * read back from a dataset using a large point selection. - * - * XXX: Test takes up significant amounts of memory. - */ -static int -test_read_dataset_large_point_selection(void) -{ - hsize_t *points = NULL; - hsize_t dims[DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_SPACE_RANK] = {225000000}; - size_t i, data_size; - hid_t file_id = H5I_INVALID_HID; - hid_t container_group = H5I_INVALID_HID, group_id = H5I_INVALID_HID; - hid_t dset_id = H5I_INVALID_HID; - hid_t fspace_id = H5I_INVALID_HID; - void *data = NULL; - - TESTING("large read from dataset with a point selection"); - - /* 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)) { - SKIPPED(); - HDprintf( - " API functions for basic file, group, or dataset aren't supported with this connector\n"); - return 0; - } - - if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open file '%s'\n", H5_api_test_filename); - goto error; - } - - if ((container_group = H5Gopen2(file_id, DATASET_TEST_GROUP_NAME, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open container group '%s'\n", DATASET_TEST_GROUP_NAME); - goto error; - } - - if ((group_id = H5Gcreate2(container_group, DATASET_LARGE_READ_TEST_POINT_SELECTION_GROUP_NAME, - H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create container sub-group '%s'\n", - DATASET_LARGE_READ_TEST_POINT_SELECTION_GROUP_NAME); - goto error; - } - - if ((fspace_id = H5Screate_simple(DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_SPACE_RANK, dims, NULL)) < - 0) - TEST_ERROR; - - if ((dset_id = H5Dcreate2(group_id, DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_NAME, - DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_DTYPE, fspace_id, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create dataset '%s'\n", DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_NAME); - goto error; - } - - for (i = 0, data_size = 1; i < DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_SPACE_RANK; i++) - data_size *= dims[i]; - data_size *= DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_DTYPESIZE; - - if (NULL == (data = HDmalloc(data_size))) - TEST_ERROR; - if (NULL == - (points = HDmalloc((data_size / DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_DTYPESIZE) * - ((DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_SPACE_RANK) * (sizeof(hsize_t)))))) - TEST_ERROR; - - /* Select the entire dataspace */ - for (i = 0; i < data_size / DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_DTYPESIZE; i++) { - points[i] = i; - } - - if (H5Sselect_elements(fspace_id, H5S_SELECT_SET, - data_size / DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_DTYPESIZE, points) < 0) { - H5_FAILED(); - HDprintf(" couldn't select points\n"); - goto error; - } - - if (H5Dread(dset_id, DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_DTYPE, H5S_ALL, fspace_id, H5P_DEFAULT, - data) < 0) { - H5_FAILED(); - HDprintf(" couldn't read from dataset '%s'\n", DATASET_LARGE_READ_TEST_POINT_SELECTION_DSET_NAME); - goto error; - } - - if (data) { - HDfree(data); - data = NULL; - } - - if (points) { - HDfree(points); - points = NULL; - } - - if (H5Sclose(fspace_id) < 0) - TEST_ERROR; - if (H5Dclose(dset_id) < 0) - TEST_ERROR; - if (H5Gclose(group_id) < 0) - TEST_ERROR; - if (H5Gclose(container_group) < 0) - TEST_ERROR; - if (H5Fclose(file_id) < 0) - TEST_ERROR; - - PASSED(); - - return 0; - -error: - H5E_BEGIN_TRY - { - if (data) - HDfree(data); - if (points) - HDfree(points); - H5Sclose(fspace_id); - H5Dclose(dset_id); - H5Gclose(group_id); - H5Gclose(container_group); - H5Fclose(file_id); - } - H5E_END_TRY; - - return 1; -} -#endif - /* * A test to check that data can't be read from a * dataset when H5Dread is passed invalid parameters. @@ -5929,281 +5559,6 @@ error: return 1; } -#ifndef NO_LARGE_TESTS -/* - * A test to check that a large write can be made - * to a dataset using an H5S_ALL selection. - */ -static int -test_write_dataset_large_all(void) -{ - hssize_t space_npoints; - hsize_t dims[DATASET_LARGE_WRITE_TEST_ALL_DSET_SPACE_RANK] = {600, 600, 600}; - size_t i, data_size; - hid_t file_id = H5I_INVALID_HID; - hid_t container_group = H5I_INVALID_HID, group_id = H5I_INVALID_HID; - hid_t dset_id = H5I_INVALID_HID; - hid_t fspace_id = H5I_INVALID_HID; - void *data = NULL; - - TESTING("large write to dataset with H5S_ALL"); - - /* 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)) { - SKIPPED(); - HDprintf(" API functions for basic file, group, basic or more dataset aren't supported with this " - "connector\n"); - return 0; - } - - if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open file '%s'\n", H5_api_test_filename); - goto error; - } - - if ((container_group = H5Gopen2(file_id, DATASET_TEST_GROUP_NAME, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open container group '%s'\n", DATASET_TEST_GROUP_NAME); - goto error; - } - - if ((group_id = H5Gcreate2(container_group, DATASET_LARGE_WRITE_TEST_ALL_GROUP_NAME, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create container sub-group '%s'\n", DATASET_LARGE_WRITE_TEST_ALL_GROUP_NAME); - goto error; - } - - if ((fspace_id = H5Screate_simple(DATASET_LARGE_WRITE_TEST_ALL_DSET_SPACE_RANK, dims, NULL)) < 0) - TEST_ERROR; - - if ((dset_id = H5Dcreate2(group_id, DATASET_LARGE_WRITE_TEST_ALL_DSET_NAME, - DATASET_LARGE_WRITE_TEST_ALL_DSET_DTYPE, fspace_id, H5P_DEFAULT, H5P_DEFAULT, - H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create dataset '%s'\n", DATASET_LARGE_WRITE_TEST_ALL_DSET_NAME); - goto error; - } - - /* Close the dataset and dataspace to ensure that retrieval of file space ID is working */ - if (H5Dclose(dset_id) < 0) - TEST_ERROR; - if (H5Sclose(fspace_id) < 0) - TEST_ERROR; - - if ((dset_id = H5Dopen2(group_id, DATASET_LARGE_WRITE_TEST_ALL_DSET_NAME, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open dataset '%s'\n", DATASET_LARGE_WRITE_TEST_ALL_DSET_NAME); - goto error; - } - - if ((fspace_id = H5Dget_space(dset_id)) < 0) { - H5_FAILED(); - HDprintf(" couldn't get dataset dataspace\n"); - goto error; - } - - if ((space_npoints = H5Sget_simple_extent_npoints(fspace_id)) < 0) { - H5_FAILED(); - HDprintf(" couldn't get dataspace num points\n"); - goto error; - } - - if (NULL == (data = HDmalloc((hsize_t)space_npoints * DATASET_LARGE_WRITE_TEST_ALL_DSET_DTYPESIZE))) - TEST_ERROR; - - for (i = 0; i < (hsize_t)space_npoints; i++) - ((int *)data)[i] = (int)i; - - if (H5Dwrite(dset_id, DATASET_LARGE_WRITE_TEST_ALL_DSET_DTYPE, H5S_ALL, H5S_ALL, H5P_DEFAULT, data) < 0) { - H5_FAILED(); - HDprintf(" couldn't write to dataset '%s'\n", DATASET_LARGE_WRITE_TEST_ALL_DSET_NAME); - goto error; - } - - if (data) { - HDfree(data); - data = NULL; - } - - if (H5Sclose(fspace_id) < 0) - TEST_ERROR; - if (H5Dclose(dset_id) < 0) - TEST_ERROR; - if (H5Gclose(group_id) < 0) - TEST_ERROR; - if (H5Gclose(container_group) < 0) - TEST_ERROR; - if (H5Fclose(file_id) < 0) - TEST_ERROR; - - PASSED(); - - return 0; - -error: - H5E_BEGIN_TRY - { - H5Sclose(fspace_id); - H5Dclose(dset_id); - H5Gclose(group_id); - H5Gclose(container_group); - H5Fclose(file_id); - } - H5E_END_TRY; - - return 1; -} - -/* - * A test to check that a large write can be made - * to a dataset using a hyperslab selection. - */ -static int -test_write_dataset_large_hyperslab(void) -{ - hsize_t start[DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t stride[DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t count[DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t block[DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK]; - hsize_t dims[DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK] = {600, 600, 600}; - size_t i, data_size; - hid_t file_id = H5I_INVALID_HID; - hid_t container_group = H5I_INVALID_HID, group_id = H5I_INVALID_HID; - hid_t dset_id = H5I_INVALID_HID; - hid_t mspace_id = H5I_INVALID_HID, fspace_id = H5I_INVALID_HID; - void *data = NULL; - - TESTING("large write to dataset with a hyperslab selection"); - - /* 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)) { - SKIPPED(); - HDprintf( - " API functions for basic file, group, or dataset aren't supported with this connector\n"); - return 0; - } - - if ((file_id = H5Fopen(H5_api_test_filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open file '%s'\n", H5_api_test_filename); - goto error; - } - - if ((container_group = H5Gopen2(file_id, DATASET_TEST_GROUP_NAME, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't open container group '%s'\n", DATASET_TEST_GROUP_NAME); - goto error; - } - - if ((group_id = H5Gcreate2(container_group, DATASET_LARGE_WRITE_TEST_HYPERSLAB_GROUP_NAME, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create container sub-group '%s'\n", - DATASET_LARGE_WRITE_TEST_HYPERSLAB_GROUP_NAME); - goto error; - } - - if ((fspace_id = H5Screate_simple(DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK, dims, NULL)) < 0) - TEST_ERROR; - if ((mspace_id = H5Screate_simple(DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK, dims, NULL)) < 0) - TEST_ERROR; - - if ((dset_id = H5Dcreate2(group_id, DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_NAME, - DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_DTYPE, fspace_id, H5P_DEFAULT, - H5P_DEFAULT, H5P_DEFAULT)) < 0) { - H5_FAILED(); - HDprintf(" couldn't create dataset '%s'\n", DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_NAME); - goto error; - } - - for (i = 0, data_size = 1; i < DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK; i++) - data_size *= dims[i]; - data_size *= DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_DTYPESIZE; - - if (NULL == (data = HDmalloc(data_size))) - TEST_ERROR; - - for (i = 0; i < data_size / DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_DTYPESIZE; i++) - ((int *)data)[i] = (int)i; - - for (i = 0; i < DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_SPACE_RANK; i++) { - start[i] = 0; - stride[i] = 1; - count[i] = dims[i]; - block[i] = 1; - } - - if (H5Sselect_hyperslab(fspace_id, H5S_SELECT_SET, start, stride, count, block) < 0) - TEST_ERROR; - - if (H5Dwrite(dset_id, DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_DTYPE, mspace_id, fspace_id, H5P_DEFAULT, - data) < 0) { - H5_FAILED(); - HDprintf(" couldn't write to dataset '%s'\n", DATASET_LARGE_WRITE_TEST_HYPERSLAB_DSET_NAME); - goto error; - } - - if (data) { - HDfree(data); - data = NULL; - } - - if (H5Sclose(mspace_id) < 0) - TEST_ERROR; - if (H5Sclose(fspace_id) < 0) - TEST_ERROR; - if (H5Dclose(dset_id) < 0) - TEST_ERROR; - if (H5Gclose(group_id) < 0) - TEST_ERROR; - if (H5Gclose(container_group) < 0) - TEST_ERROR; - if (H5Fclose(file_id) < 0) - TEST_ERROR; - - PASSED(); - - return 0; - -error: - H5E_BEGIN_TRY - { - if (data) - HDfree(data); - H5Sclose(mspace_id); - H5Sclose(fspace_id); - H5Dclose(dset_id); - H5Gclose(group_id); - H5Gclose(container_group); - H5Fclose(file_id); - } - H5E_END_TRY; - - return 1; -} - -/* - * A test to check that a large write can be made - * to a dataset using a point selection. - */ -static int -test_write_dataset_large_point_selection(void) -{ - TESTING("large write to dataset with a point selection"); - - SKIPPED(); - - return 0; - -error: - return 1; -} -#endif - /* * A test to ensure that data is read back correctly from * a dataset after it has been written. @@ -8298,10 +7653,8 @@ test_dataset_set_extent_data(void) hid_t dcpl_id = H5I_INVALID_HID; hid_t fspace_id = H5I_INVALID_HID, dset_space_id = H5I_INVALID_HID; int buf_origin[DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM][DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM]; -#ifndef NO_CLEAR_ON_SHRINK - int buf_expand2[DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM][DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM]; -#endif - int buf_expand[DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM * 2 - 1] + int buf_expand2[DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM][DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM]; + int buf_expand[DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM * 2 - 1] [DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM * 2 - 1]; int buf_shrink[DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM / 2 + 1] [DATASET_SET_EXTENT_DATA_TEST_SPACE_DIM / 2 + 1]; @@ -8468,7 +7821,7 @@ test_dataset_set_extent_data(void) PART_BEGIN(H5Dset_extent_data_expand_to_origin) { TESTING_2("H5Dset_extent for data back to the original size"); -#ifndef NO_CLEAR_ON_SHRINK + /* Expand the dataset back to the original size. The data should look like this: * X X X X X 0 0 0 * X X X X X 0 0 0 @@ -8508,10 +7861,6 @@ test_dataset_set_extent_data(void) } PASSED(); -#else - SKIPPED(); - PART_EMPTY(H5Dset_extent_data_expand_to_origin); -#endif } PART_END(H5Dset_extent_data_expand_to_origin); @@ -8552,7 +7901,7 @@ test_dataset_set_extent_data(void) PART_BEGIN(H5Dset_extent_data_expand_to_origin_again) { TESTING_2("H5Dset_extent for data expansion back to the original again"); -#ifndef NO_CLEAR_ON_SHRINK + /* Expand the dataset back to the original size. The data should look like this: * 0 0 0 0 0 0 0 0 * 0 0 0 0 0 0 0 0 @@ -8581,10 +7930,6 @@ test_dataset_set_extent_data(void) } PASSED(); -#else - SKIPPED(); - PART_EMPTY(H5Dset_extent_data_expand_to_origin_again); -#endif } PART_END(H5Dset_extent_data_expand_to_origin_again); } @@ -8633,7 +7978,6 @@ error: static int test_dataset_set_extent_double_handles(void) { -#ifndef NO_DOUBLE_OBJECT_OPENS hsize_t dims_origin[DATASET_SET_EXTENT_DOUBLE_HANDLES_TEST_SPACE_RANK] = { DATASET_SET_EXTENT_DOUBLE_HANDLES_TEST_SPACE_DIM, DATASET_SET_EXTENT_DOUBLE_HANDLES_TEST_SPACE_DIM}; hsize_t dims_expand[DATASET_SET_EXTENT_DOUBLE_HANDLES_TEST_SPACE_RANK] = { @@ -8650,12 +7994,9 @@ test_dataset_set_extent_double_handles(void) hid_t dcpl_id = H5I_INVALID_HID; hid_t fspace_id = H5I_INVALID_HID, dset_space_id = H5I_INVALID_HID; int i; -#endif TESTING("H5Dset_extent on double dataset handles"); -#ifndef NO_DOUBLE_OBJECT_OPENS - /* 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)) { @@ -8730,7 +8071,8 @@ test_dataset_set_extent_double_handles(void) for (i = 0; i < DATASET_SET_EXTENT_DOUBLE_HANDLES_TEST_SPACE_RANK; i++) if (dims_out[i] != dims_expand[i]) { H5_FAILED(); - HDprintf(" dims_out[%d] = %d. It should be %d.\n", i, dims_out[i], dims_expand[i]); + HDprintf(" dims_out[%d] = %" PRIuHSIZE ". It should be %" PRIuHSIZE ".\n", i, dims_out[i], + dims_expand[i]); goto error; } @@ -8768,10 +8110,6 @@ error: H5E_END_TRY; return 1; -#else - SKIPPED(); - return 0; -#endif } /* test_dataset_set_extent_double_handles */ /* @@ -11551,7 +10889,7 @@ test_get_vlen_buf_size(void) 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)) { SKIPPED(); - HDprintf(" API functions for basic file, group, dataset, or more aren't supported with this " + HDprintf(" API functions for basic file, group, or dataset aren't supported with this " "connector\n"); return 0; } |