summaryrefslogtreecommitdiffstats
path: root/tools/src
diff options
context:
space:
mode:
Diffstat (limited to 'tools/src')
-rw-r--r--tools/src/h5diff/ph5diff_main.c2
-rw-r--r--tools/src/h5dump/h5dump.c8
-rw-r--r--tools/src/h5ls/h5ls.c9
-rw-r--r--tools/src/h5perf/sio_engine.c55
-rw-r--r--tools/src/h5stat/h5stat.c9
5 files changed, 56 insertions, 27 deletions
diff --git a/tools/src/h5diff/ph5diff_main.c b/tools/src/h5diff/ph5diff_main.c
index 8e5c3e8..75fb9a4 100644
--- a/tools/src/h5diff/ph5diff_main.c
+++ b/tools/src/h5diff/ph5diff_main.c
@@ -312,5 +312,5 @@ h5diff_exit(int status)
/* Always exit(0), since MPI implementations do weird stuff when they
* receive a non-zero exit value. - QAK
*/
- HDexit(0);
+ HDexit(status);
}
diff --git a/tools/src/h5dump/h5dump.c b/tools/src/h5dump/h5dump.c
index d82ea94..22b869c 100644
--- a/tools/src/h5dump/h5dump.c
+++ b/tools/src/h5dump/h5dump.c
@@ -25,8 +25,8 @@ static const char *xml_dtd_uri_g = NULL;
static hbool_t use_custom_vol_g = FALSE;
static hbool_t use_custom_vfd_g = FALSE;
-static h5tools_vol_info_t vol_info_g;
-static h5tools_vfd_info_t vfd_info_g;
+static h5tools_vol_info_t vol_info_g = {0};
+static h5tools_vfd_info_t vfd_info_g = {0};
#ifdef H5_HAVE_ROS3_VFD
/* Default "anonymous" S3 configuration */
@@ -1238,6 +1238,8 @@ end_collect:
h5tools_setstatus(EXIT_FAILURE);
goto done;
}
+
+ vfd_info_g.info = &ros3_fa_g;
#else
error_msg("Read-Only S3 VFD not enabled.\n");
h5tools_setstatus(EXIT_FAILURE);
@@ -1255,6 +1257,8 @@ end_collect:
h5tools_setstatus(EXIT_FAILURE);
goto done;
}
+
+ vfd_info_g.info = &hdfs_fa_g;
#else
error_msg("HDFS VFD not enabled.\n");
h5tools_setstatus(EXIT_FAILURE);
diff --git a/tools/src/h5ls/h5ls.c b/tools/src/h5ls/h5ls.c
index c30c08f..b7ee380 100644
--- a/tools/src/h5ls/h5ls.c
+++ b/tools/src/h5ls/h5ls.c
@@ -1657,7 +1657,6 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ain
hid_t space = H5I_INVALID_HID;
hid_t type = H5I_INVALID_HID;
hsize_t size[H5S_MAX_RANK];
- hsize_t nelmts = 1;
int ndims;
int i;
H5S_class_t space_type;
@@ -1699,10 +1698,8 @@ list_attr(hid_t obj, const char *attr_name, const H5A_info_t H5_ATTR_UNUSED *ain
case H5S_SIMPLE:
/* simple dataspace */
h5tools_str_append(&buffer, " {");
- for (i = 0; i < ndims; i++) {
+ for (i = 0; i < ndims; i++)
h5tools_str_append(&buffer, "%s%" PRIuHSIZE, i ? ", " : "", size[i]);
- nelmts *= size[i];
- }
h5tools_str_append(&buffer, "}\n");
h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols,
(hsize_t)0, (hsize_t)0);
@@ -2857,6 +2854,8 @@ main(int argc, char *argv[])
usage();
leave(EXIT_FAILURE);
}
+
+ vfd_info.info = &ros3_fa;
#else
HDfprintf(rawerrorstream, "Error: Read-Only S3 VFD is not enabled\n\n");
usage();
@@ -2878,6 +2877,8 @@ main(int argc, char *argv[])
usage();
leave(EXIT_FAILURE);
}
+
+ vfd_info.info = &hdfs_fa;
#else
HDfprintf(rawerrorstream, "Error: The HDFS VFD is not enabled\n\n");
usage();
diff --git a/tools/src/h5perf/sio_engine.c b/tools/src/h5perf/sio_engine.c
index bdd2c08..abf8b9a 100644
--- a/tools/src/h5perf/sio_engine.c
+++ b/tools/src/h5perf/sio_engine.c
@@ -123,7 +123,6 @@ static hid_t h5dxpl = H5I_INVALID_HID; /* Dataset transfer property
* Purpose: SIO Engine where IO are executed.
* Return: results
* Programmer: Christian Chilan, April, 2008
- * Modifications:
*/
void
do_sio(parameters param, results *res)
@@ -134,18 +133,20 @@ do_sio(parameters param, results *res)
iotype iot; /* API type */
char base_name[256]; /* test file base name */
/* return codes */
- herr_t ret_code = 0; /*return code */
+ herr_t ret_code = 0; /* return code */
- char fname[FILENAME_MAX]; /* test file name */
- int i;
- /* HDF5 variables */
- herr_t hrc; /*HDF5 return code */
+ char *fname = NULL;
+ int i;
- /* Sanity check parameters */
+ /* HDF5 variables */
+ herr_t hrc; /* HDF5 return code */
/* IO type */
iot = param.io_type;
+ if (NULL == (fname = HDcalloc(FILENAME_MAX, sizeof(char))))
+ GOTOERROR(FAIL);
+
switch (iot) {
case POSIXIO:
fd.posixfd = -1;
@@ -267,8 +268,8 @@ done:
}
/* release generic resources */
- if (buffer)
- free(buffer);
+ HDfree(buffer);
+ HDfree(fname);
res->ret_code = ret_code;
}
@@ -1125,7 +1126,6 @@ done:
* Purpose: Sets file driver.
* Return: SUCCESS or FAIL
* Programmer: Christian Chilan, April, 2008
- * Modifications:
*/
hid_t
@@ -1164,9 +1164,11 @@ set_vfd(parameters *param)
H5FD_mem_t memb_map[H5FD_MEM_NTYPES];
hid_t memb_fapl[H5FD_MEM_NTYPES];
const char *memb_name[H5FD_MEM_NTYPES];
- char sv[H5FD_MEM_NTYPES][1024];
haddr_t memb_addr[H5FD_MEM_NTYPES];
H5FD_mem_t mt;
+ struct {
+ char arr[H5FD_MEM_NTYPES][1024];
+ } *sv = NULL;
HDmemset(memb_map, 0, sizeof memb_map);
HDmemset(memb_fapl, 0, sizeof memb_fapl);
@@ -1174,16 +1176,22 @@ set_vfd(parameters *param)
HDmemset(memb_addr, 0, sizeof memb_addr);
HDassert(HDstrlen(multi_letters) == H5FD_MEM_NTYPES);
+
+ if (NULL == (sv = HDcalloc(1, sizeof(*sv))))
+ return -1;
for (mt = H5FD_MEM_DEFAULT; mt < H5FD_MEM_NTYPES; mt++) {
memb_fapl[mt] = H5P_DEFAULT;
- HDsprintf(sv[mt], "%%s-%c.h5", multi_letters[mt]);
- memb_name[mt] = sv[mt];
+ HDsprintf(sv->arr[mt], "%%s-%c.h5", multi_letters[mt]);
+ memb_name[mt] = sv->arr[mt];
memb_addr[mt] = (haddr_t)MAX(mt - 1, 0) * (HADDR_MAX / 10);
}
if (H5Pset_fapl_multi(my_fapl, memb_map, memb_fapl, memb_name, memb_addr, FALSE) < 0) {
+ HDfree(sv);
return -1;
}
+
+ HDfree(sv);
}
else if (vfd == family) {
hsize_t fam_size = 1 * 1024 * 1024; /*100 MB*/
@@ -1262,14 +1270,18 @@ done:
* Purpose: Cleanup temporary file unless HDF5_NOCLEANUP is set.
* Return: void
* Programmer: Albert Cheng 2001/12/12
- * Modifications: Support for file drivers. Christian Chilan, April, 2008
*/
static void
do_cleanupfile(iotype iot, char *filename)
{
- char temp[4096 + sizeof("-?.h5")];
- int j;
- hid_t driver;
+ char * temp = NULL;
+ size_t temp_sz;
+ int j;
+ hid_t driver;
+
+ temp_sz = (4096 + sizeof("-?.h5")) * sizeof(char);
+ if (NULL == (temp = HDcalloc(1, temp_sz)))
+ goto done;
if (clean_file_g == -1)
clean_file_g = (HDgetenv(HDF5_NOCLEANUP) == NULL) ? 1 : 0;
@@ -1286,7 +1298,7 @@ do_cleanupfile(iotype iot, char *filename)
if (driver == H5FD_FAMILY) {
for (j = 0; /*void*/; j++) {
- HDsnprintf(temp, sizeof temp, filename, j);
+ HDsnprintf(temp, temp_sz, filename, j);
if (HDaccess(temp, F_OK) < 0)
break;
@@ -1305,10 +1317,10 @@ do_cleanupfile(iotype iot, char *filename)
}
else if (driver == H5FD_MULTI) {
H5FD_mem_t mt;
- assert(HDstrlen(multi_letters) == H5FD_MEM_NTYPES);
+ HDassert(HDstrlen(multi_letters) == H5FD_MEM_NTYPES);
for (mt = H5FD_MEM_DEFAULT; mt < H5FD_MEM_NTYPES; mt++) {
- HDsnprintf(temp, sizeof temp, "%s-%c.h5", filename, multi_letters[mt]);
+ HDsnprintf(temp, temp_sz, "%s-%c.h5", filename, multi_letters[mt]);
HDremove(temp); /*don't care if it fails*/
}
}
@@ -1325,4 +1337,7 @@ do_cleanupfile(iotype iot, char *filename)
break;
}
}
+
+done:
+ HDfree(temp);
}
diff --git a/tools/src/h5stat/h5stat.c b/tools/src/h5stat/h5stat.c
index e42af10..d5b9a1a 100644
--- a/tools/src/h5stat/h5stat.c
+++ b/tools/src/h5stat/h5stat.c
@@ -1711,6 +1711,15 @@ main(int argc, char *argv[])
vfd_info.info = NULL;
vfd_info.u.name = drivername;
+#ifdef H5_HAVE_ROS3_VFD
+ if (!HDstrcmp(drivername, drivernames[ROS3_VFD_IDX]))
+ vfd_info.info = &ros3_fa;
+#endif
+#ifdef H5_HAVE_LIBHDFS
+ if (!HDstrcmp(drivername, drivernames[HDFS_VFD_IDX]))
+ vfd_info.info = &hdfs_fa;
+#endif
+
if ((fapl_id = h5tools_get_fapl(H5P_DEFAULT, NULL, &vfd_info)) < 0) {
error_msg("Unable to create FAPL for file access\n");
goto done;