summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Vicente Nunes <pvn@hdfgroup.org>2008-04-07 15:53:35 (GMT)
committerPedro Vicente Nunes <pvn@hdfgroup.org>2008-04-07 15:53:35 (GMT)
commit59f29fa02f3fd04a94afaf8069d73cae35a4a7e6 (patch)
tree5868beff32314462b534d797d80872e61d220a57
parent7c6a99f05cbc16db5dd3d99140cf0737e18d1db2 (diff)
downloadhdf5-59f29fa02f3fd04a94afaf8069d73cae35a4a7e6.zip
hdf5-59f29fa02f3fd04a94afaf8069d73cae35a4a7e6.tar.gz
hdf5-59f29fa02f3fd04a94afaf8069d73cae35a4a7e6.tar.bz2
[svn-r14802] bug fix: #1106 h5dump -b will dump ASCII values for datasets after the first one. One variable that controls the binary output was incorrectly reset to zero after a binary output was done a first time. The effect was that on cases of several datasets, the ones after the first were not binary written. Eliminated the resetting of that variable and tested a file with several datasets. Modified the test file so that it is easier to test with the tool binread, that reads the binary output of h5dump.
tested: windows, linux
-rw-r--r--tools/h5dump/h5dumpgentest.c38
-rw-r--r--tools/lib/h5tools.c1
-rw-r--r--tools/testfiles/tbin4.ddl2
-rw-r--r--tools/testfiles/tbinary.h5bin806144 -> 2144 bytes
4 files changed, 9 insertions, 32 deletions
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c
index b21a020..4070425 100644
--- a/tools/h5dump/h5dumpgentest.c
+++ b/tools/h5dump/h5dumpgentest.c
@@ -5542,8 +5542,7 @@ error:
* Contains:
* 1) an integer dataset
* 2) a float dataset
- * 3) an array dataset
- * 4) a large double dataset
+ * 4) a double dataset
*
*-------------------------------------------------------------------------
*/
@@ -5551,64 +5550,43 @@ static void
gent_binary(void)
{
hid_t fid, sid, did, tid;
- hsize_t dims[1] = {6};
- hsize_t dimarray[1] = {2};
- hsize_t dimsl[1] = {100000};
+ hsize_t dims[1] = {6};
int ibuf[6] = {1,2,3,4,5,6};
float fbuf[6] = {1,2,3,4,5,6};
- int abuf[2][6] = {{1,2,3,4,5,6},{7,8,9,10,11,12}}; /* array */
- double *dbuf=NULL;
+ double dbuf[6] = {1,2,3,4,5,6};
fid = H5Fcreate(FILE55, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ sid = H5Screate_simple(1, dims, NULL);
/*-------------------------------------------------------------------------
* integer
*-------------------------------------------------------------------------
*/
- sid = H5Screate_simple(1, dims, NULL);
+
did = H5Dcreate2(fid, "integer", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
H5Dwrite(did, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, ibuf);
H5Dclose(did);
- H5Sclose(sid);
/*-------------------------------------------------------------------------
* float
*-------------------------------------------------------------------------
*/
- sid = H5Screate_simple(1, dims, NULL);
did = H5Dcreate2(fid, "float", H5T_NATIVE_FLOAT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
H5Dwrite(did, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, fbuf);
H5Dclose(did);
- H5Sclose(sid);
-
-/*-------------------------------------------------------------------------
- * array
- *-------------------------------------------------------------------------
- */
- tid = H5Tarray_create2(H5T_NATIVE_INT, 1, dims);
- sid = H5Screate_simple(1, dimarray, NULL);
- did = H5Dcreate2(fid, "array", tid, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- H5Dwrite(did, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, abuf);
- H5Dclose(did);
- H5Tclose(tid);
- H5Sclose(sid);
/*-------------------------------------------------------------------------
* double
*-------------------------------------------------------------------------
*/
- sid = H5Screate_simple(1, dimsl, NULL);
did = H5Dcreate2(fid, "double", H5T_NATIVE_DOUBLE, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
- dbuf = calloc(100000, sizeof(double));
- if(dbuf != NULL) {
- H5Dwrite(did, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dbuf);
- free(dbuf);
- }
+ H5Dwrite(did, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dbuf);
H5Dclose(did);
- H5Sclose(sid);
+
/* close */
+ H5Sclose(sid);
H5Fclose(fid);
}
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index 6fc09d7..3e407e6 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -557,7 +557,6 @@ h5tools_dump_simple_data(FILE *stream, const h5tool_format_t *info, hid_t contai
/* binary dump */
if(bin_output) {
do_bin_output(stream, nelmts, type, _mem);
- bin_output = 0;
} /* end if */
else {
/* Setup */
diff --git a/tools/testfiles/tbin4.ddl b/tools/testfiles/tbin4.ddl
index 89849e4..78a6cd2 100644
--- a/tools/testfiles/tbin4.ddl
+++ b/tools/testfiles/tbin4.ddl
@@ -1,7 +1,7 @@
HDF5 "tbinary.h5" {
DATASET "double" {
DATATYPE H5T_IEEE_F64LE
- DATASPACE SIMPLE { ( 100000 ) / ( 100000 ) }
+ DATASPACE SIMPLE { ( 6 ) / ( 6 ) }
DATA {
}
}
diff --git a/tools/testfiles/tbinary.h5 b/tools/testfiles/tbinary.h5
index 691b008..4b2e2c0 100644
--- a/tools/testfiles/tbinary.h5
+++ b/tools/testfiles/tbinary.h5
Binary files differ