diff options
Diffstat (limited to 'tools/test/h5repack/h5repackgentest.c')
-rw-r--r-- | tools/test/h5repack/h5repackgentest.c | 297 |
1 files changed, 112 insertions, 185 deletions
diff --git a/tools/test/h5repack/h5repackgentest.c b/tools/test/h5repack/h5repackgentest.c index 12883b7..aaac285 100644 --- a/tools/test/h5repack/h5repackgentest.c +++ b/tools/test/h5repack/h5repackgentest.c @@ -42,7 +42,10 @@ #define FILE_UINT8BE "h5repack_uint8be" #define FILE_F32LE "h5repack_f32le" -#define H5REPACKGENTEST_OOPS ret_value = -1; goto done; +#define H5REPACKGENTEST_OOPS { \ + ret_value = -1; \ + goto done; \ +} #define H5REPACKGENTEST_COMMON_CLEANUP(dcpl, file, space) { \ if ((dcpl) != H5P_DEFAULT && (dcpl) != H5I_INVALID_HID) { \ @@ -53,58 +56,37 @@ } struct external_def { - hsize_t type_size; + hsize_t type_size; unsigned n_elts_per_file; unsigned n_elts_total; }; - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Helper function to create and write a dataset to file. * Returns 0 on success, -1 on failure. */ static int -__make_dataset( - hid_t file_id, - const char *dset_name, - hid_t mem_type_id, - hid_t space_id, - hid_t dcpl_id, - void *wdata) -{ - hid_t dset_id = H5I_INVALID_HID; +__make_dataset(hid_t file_id, const char *dset_name, + hid_t mem_type_id, hid_t space_id, hid_t dcpl_id, void *wdata) { + hid_t dset_id = H5I_INVALID_HID; int ret_value = 0; - dset_id = H5Dcreate2( - file_id, - dset_name, - mem_type_id, - space_id, - H5P_DEFAULT, - dcpl_id, - H5P_DEFAULT); - if (dset_id == H5I_INVALID_HID) { + dset_id = H5Dcreate2(file_id, dset_name, mem_type_id, space_id, + H5P_DEFAULT, dcpl_id, + H5P_DEFAULT); + if (dset_id == H5I_INVALID_HID) H5REPACKGENTEST_OOPS; - } - if (H5Dwrite( - dset_id, - mem_type_id, - H5S_ALL, - H5S_ALL, - H5P_DEFAULT, - wdata) - < 0) - { + if (H5Dwrite(dset_id, mem_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, wdata) < 0) H5REPACKGENTEST_OOPS; - } done: - if (dset_id != H5I_INVALID_HID) { (void)H5Dclose(dset_id); } + if (dset_id != H5I_INVALID_HID) + (void) H5Dclose(dset_id); + return ret_value; } /* end __make_dataset() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Helper function to populate the DCPL external storage list. * Creates external files for the DCPL, with each file name following the @@ -114,38 +96,30 @@ done: * Returns 0 on success, -1 on failure. */ static int -__set_dcpl_external_list( - hid_t dcpl, - const char *filename, - unsigned n_elts_per_file, - unsigned n_elts_total, - hsize_t elt_size) -{ +__set_dcpl_external_list(hid_t dcpl, const char *filename, + unsigned n_elts_per_file, unsigned n_elts_total, hsize_t elt_size) { char name[MAX_NAME_SIZE]; unsigned n_external_files = 0; unsigned i = 0; - if (NULL == filename || '\0' == *filename) { + if (NULL == filename || '\0' == *filename) return -1; - } n_external_files = n_elts_total / n_elts_per_file; - if (n_elts_total != (n_external_files * n_elts_per_file)) { + if (n_elts_total != (n_external_files * n_elts_per_file)) return -1; - } + for (i = 0; i < n_external_files; i++) { - if (snprintf(name, MAX_NAME_SIZE, "%s_ex-%u.dat", filename, i) >= MAX_NAME_SIZE) { + if (HDsnprintf(name, MAX_NAME_SIZE, "%s_ex-%u.dat", filename, i) >= MAX_NAME_SIZE) return -1; - } - if (H5Pset_external(dcpl, name, 0, n_elts_per_file * elt_size) < 0) { + + if (H5Pset_external(dcpl, name, 0, n_elts_per_file * elt_size) < 0) return -1; - } } return 0; } /* end __set_dcpl_external_list() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Generalized utility function to write a file with the specified data and * dataset configuration. If `ext` is provided, will attempt to use external @@ -153,141 +127,102 @@ __set_dcpl_external_list( * Returns 0 on success, -1 on failure. */ static int -__make_file( - const char *basename, - struct external_def *ext, - hid_t type_id, - hsize_t rank, - hsize_t *dims, - void *wdata) -{ - char filename[MAX_NAME_SIZE]; - hid_t file_id = H5I_INVALID_HID; - hid_t dcpl_id = H5P_DEFAULT; - hid_t space_id = H5I_INVALID_HID; - int ret_value = 0; +__make_file(const char *basename, struct external_def *ext, + hid_t type_id, hsize_t rank, hsize_t *dims, void *wdata) { + char filename[MAX_NAME_SIZE]; + hid_t file_id = H5I_INVALID_HID; + hid_t dcpl_id = H5P_DEFAULT; + hid_t space_id = H5I_INVALID_HID; + int ret_value = 0; - if (snprintf(filename, - MAX_NAME_SIZE, - "%s%s.h5", - basename, - (NULL != ext) ? "_ex" : "") - >= MAX_NAME_SIZE) - { + if (HDsnprintf(filename, MAX_NAME_SIZE, "%s%s.h5", basename, (NULL != ext) ? "_ex" : "") >= MAX_NAME_SIZE) H5REPACKGENTEST_OOPS; - } if (NULL != ext) { dcpl_id = H5Pcreate(H5P_DATASET_CREATE); - if (dcpl_id == H5I_INVALID_HID) { + if (dcpl_id == H5I_INVALID_HID) H5REPACKGENTEST_OOPS; - } - if (__set_dcpl_external_list( - dcpl_id, - basename, - ext->n_elts_per_file, - ext->n_elts_total, - ext->type_size) - < 0) - { + + if (__set_dcpl_external_list(dcpl_id, basename, ext->n_elts_per_file, ext->n_elts_total, ext->type_size) < 0) H5REPACKGENTEST_OOPS; - } } space_id = H5Screate_simple(rank, dims, NULL); - if (space_id == H5I_INVALID_HID) { + if (space_id == H5I_INVALID_HID) H5REPACKGENTEST_OOPS; - } file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); - if (file_id == H5I_INVALID_HID) { + if (file_id == H5I_INVALID_HID) H5REPACKGENTEST_OOPS; - } - if (__make_dataset( - file_id, - "dset", - type_id, - space_id, - dcpl_id, - wdata) - < 0) - { + + if (__make_dataset(file_id, "dset", type_id, space_id, dcpl_id, wdata) < 0) H5REPACKGENTEST_OOPS; - } done: H5REPACKGENTEST_COMMON_CLEANUP(dcpl_id, file_id, space_id); - return ret_value; +return ret_value; } /* end __make_file() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Returns 0 on success, -1 on failure. */ static int -generate_int32le_1d(hbool_t external) -{ - int32_t wdata[12]; - hsize_t dims[] = {12}; - struct external_def *def_ptr = NULL; - struct external_def def = { (hsize_t)sizeof(int32_t), 6, 12 }; - int32_t n = 0; - int ret_value = 0; +generate_int32le_1d(hbool_t external) { + int32_t wdata[12]; + hsize_t dims[] = { 12 }; + struct external_def *def_ptr = NULL; + struct external_def def = { (hsize_t) sizeof(int32_t), 6, 12 }; + int32_t n = 0; + int ret_value = 0; /* Generate values - */ + */ for (n = 0; n < 12; n++) { - wdata[n] = n-6; + wdata[n] = n - 6; } def_ptr = (TRUE == external) ? (&def) : NULL; - if (__make_file(FILE_INT32LE_1, def_ptr, H5T_STD_I32LE, 1, dims, wdata) < 0) { + if (__make_file(FILE_INT32LE_1, def_ptr, H5T_STD_I32LE, 1, dims, wdata) < 0) ret_value = -1; - } return ret_value; } /* end generate_int32le_1d() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Returns 0 on success, -1 on failure. */ static int -generate_int32le_2d(hbool_t external) -{ - int32_t wdata[64]; - hsize_t dims[] = {8, 8}; - struct external_def *def_ptr = NULL; - struct external_def def = { (hsize_t)sizeof(int32_t), 64, 64 }; - int32_t n = 0; - int ret_value = 0; +generate_int32le_2d(hbool_t external) { + int32_t wdata[64]; + hsize_t dims[] = { 8, 8 }; + struct external_def *def_ptr = NULL; + struct external_def def = { (hsize_t) sizeof(int32_t), 64, 64 }; + int32_t n = 0; + int ret_value = 0; /* Generate values - */ + */ for (n = 0; n < 64; n++) { - wdata[n] = n-32; + wdata[n] = n - 32; } def_ptr = (TRUE == external) ? (&def) : NULL; - if (__make_file(FILE_INT32LE_2, def_ptr, H5T_STD_I32LE, 2, dims, wdata) < 0) { + if (__make_file(FILE_INT32LE_2, def_ptr, H5T_STD_I32LE, 2, dims, wdata) < 0) ret_value = -1; - } return ret_value; } /* end generate_int32le_2d() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Returns 0 on success, -1 on failure. */ static int -generate_int32le_3d(hbool_t external) -{ - hsize_t dims[] = {8, 8, 8}; - int32_t wdata[512]; /* 8^3, from dims */ +generate_int32le_3d(hbool_t external) { + hsize_t dims[] = { 8, 8, 8 }; + int32_t wdata[512]; /* 8^3, from dims */ struct external_def *def_ptr = NULL; - struct external_def def = { (hsize_t)sizeof(int32_t), 512, 512 }; + struct external_def def = { (hsize_t) sizeof(int32_t), 512, 512 }; int32_t n = 0; int i = 0; int j = 0; @@ -295,34 +230,31 @@ generate_int32le_3d(hbool_t external) int ret_value = 0; /* generate values, alternating positive and negative - */ - for (i=0, n=0; i < dims[0]; i++) { - for (j=0; j < dims[1]; j++) { - for (k=0; k < dims[2]; k++, n++) { - wdata[n] = (k + j*512 + i*4096) * ((n&1) ? (-1) : (1)); + */ + for (i = 0, n = 0; i < dims[0]; i++) { + for (j = 0; j < dims[1]; j++) { + for (k = 0; k < dims[2]; k++, n++) { + wdata[n] = (k + j * 512 + i * 4096) * ((n & 1) ? (-1) : (1)); } } } def_ptr = (TRUE == external) ? (&def) : NULL; - if (__make_file(FILE_INT32LE_3, def_ptr, H5T_STD_I32LE, 3, dims, wdata) < 0) { + if (__make_file(FILE_INT32LE_3, def_ptr, H5T_STD_I32LE, 3, dims, wdata) < 0) ret_value = -1; - } return ret_value; } /* end generate_int32le_3d() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Returns 0 on success, -1 on failure. */ static int -generate_uint8be(hbool_t external) -{ - hsize_t dims[] = {4, 8, 8}; - uint8_t wdata[256]; /* 4*8*8, from dims */ +generate_uint8be(hbool_t external) { + hsize_t dims[] = { 4, 8, 8 }; + uint8_t wdata[256]; /* 4*8*8, from dims */ struct external_def *def_ptr = NULL; - struct external_def def = { (hsize_t)sizeof(uint8_t), 64, 256 }; + struct external_def def = { (hsize_t) sizeof(uint8_t), 64, 256 }; uint8_t n = 0; int i = 0; int j = 0; @@ -330,84 +262,79 @@ generate_uint8be(hbool_t external) int ret_value = 0; /* Generate values, ping-pong from ends of range - */ - for (i=0, n=0; i < dims[0]; i++) { - for (j=0; j < dims[1]; j++) { - for (k=0; k < dims[2]; k++, n++) { - wdata[n] = n * ((n&1) ? (-1) : (1)); + */ + for (i = 0, n = 0; i < dims[0]; i++) { + for (j = 0; j < dims[1]; j++) { + for (k = 0; k < dims[2]; k++, n++) { + wdata[n] = n * ((n & 1) ? (-1) : (1)); } } } def_ptr = (TRUE == external) ? (&def) : NULL; - if (__make_file(FILE_UINT8BE, def_ptr, H5T_STD_U8BE, 3, dims, wdata) < 0) { + if (__make_file(FILE_UINT8BE, def_ptr, H5T_STD_U8BE, 3, dims, wdata) < 0) ret_value = -1; - } return ret_value; } /* end generate_uint8be() */ - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Returns 0 on success, -1 on failure. */ static int -generate_f32le(hbool_t external) -{ - hsize_t dims[] = {12, 6}; - float wdata[72]; /* 12*6, from dims */ +generate_f32le(hbool_t external) { + hsize_t dims[] = { 12, 6 }; + float wdata[72]; /* 12*6, from dims */ struct external_def *def_ptr = NULL; - struct external_def def = { - (hsize_t)sizeof(float), - 72, - 72 - }; - float n = 0; - int i = 0; - int j = 0; - int k = 0; - int ret_value = 0; + struct external_def def = { (hsize_t) sizeof(float), 72, 72 }; + float n = 0; + int i = 0; + int j = 0; + int k = 0; + int ret_value = 0; /* Generate values */ - for (i=0, k=0, n=0; i < dims[0]; i++) { - for (j=0; j < dims[1]; j++, k++, n++) { + for (i = 0, k = 0, n = 0; i < dims[0]; i++) { + for (j = 0; j < dims[1]; j++, k++, n++) { wdata[k] = n * 801.1 * ((k % 5 == 1) ? (-1) : (1)); } } def_ptr = (TRUE == external) ? (&def) : NULL; - if (__make_file(FILE_F32LE, def_ptr, H5T_IEEE_F32LE, 2, dims, wdata) < 0) { + if (__make_file(FILE_F32LE, def_ptr, H5T_IEEE_F32LE, 2, dims, wdata) < 0) ret_value = -1; - } return ret_value; } /* end generate_f32le() */ - /* ---------------------------------------------------------------------------- * Create files. * Return 0 on success, nonzero on failure. */ int -main(void) -{ - int i = 0; +main(void) { + int i = 0; int ret_value = 0; - for (i=0; i < 2; i++) { - hbool_t external = (i&1) ? TRUE : FALSE; - if (ret_value == 0) { ret_value -= generate_int32le_1d(external); } - if (ret_value == 0) { ret_value -= generate_int32le_2d(external); } - if (ret_value == 0) { ret_value -= generate_int32le_3d(external); } - if (ret_value == 0) { ret_value -= generate_uint8be(external); } - if (ret_value == 0) { ret_value -= generate_f32le(external); } - } /* end for external data storage or not */ + for (i = 0; i < 2; i++) { + hbool_t external = (i & 1) ? TRUE : FALSE; + if (generate_int32le_1d(external) < 0) + HDprintf("A generate_int32le_1d failed!\n"); - if (ret_value != 0) { - HDprintf("A problem occurred!\n"); - } + if (generate_int32le_2d(external) < 0) + HDprintf("A generate_int32le_2d failed!\n"); - return ret_value; -} /* end main() */ + if (generate_int32le_3d(external) < 0) + HDprintf("A generate_int32le_3d failed!\n"); + if (generate_uint8be(external) < 0) + HDprintf("A generate_uint8be failed!\n"); + + if (generate_f32le(external) < 0) + HDprintf("A generate_f32le failed!\n"); + + } /* end for external data storage or not */ + + return EXIT_SUCCESS; +} /* end main() */ |