diff options
Diffstat (limited to 'tools/h5dump')
-rw-r--r-- | tools/h5dump/h5dumpgentest.c | 69 | ||||
-rw-r--r-- | tools/h5dump/testh5dump.sh.in | 3 |
2 files changed, 70 insertions, 2 deletions
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index 2a955b4..93bb456 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -84,7 +84,8 @@ #define FILE54 "tudlink.h5" #define FILE55 "tbinary.h5" #define FILE56 "tbigdims.h5" -#define FILE57 "thyperslab.h5" +#define FILE57 "tbigdata.h5" +#define FILE58 "thyperslab.h5" /*------------------------------------------------------------------------- * prototypes @@ -5727,6 +5728,69 @@ out: return; } + + +/*------------------------------------------------------------------------- + * Function: gen_bigdata + * + * Purpose: generate a dataset with integer numbers greater than 4GB + * + *------------------------------------------------------------------------- + */ + +static void gen_bigdata(void) +{ + hid_t fid; + hid_t did; + hid_t f_sid; + hsize_t dims[1]={10}; /* dataset dimensions */ + long_long buf[10]; + hsize_t i; + size_t nelmts=10; + int ret; + + /* create a file */ + fid = H5Fcreate(FILE57, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + assert(fid>=0); + + if ((f_sid = H5Screate_simple(1,dims,NULL))<0) + goto out; + if ((did = H5Dcreate(fid,"dsetlonglong",H5T_NATIVE_LLONG,f_sid,H5P_DEFAULT))<0) + goto out; + + buf[0] = GB4LL - 2; + + for (i=1; i<nelmts; i++) + { + buf[i] = buf[i-1] + 1; + } + + if (H5Dwrite (did,H5T_NATIVE_LLONG,H5S_ALL,f_sid,H5P_DEFAULT,buf)<0) + goto out; + + /* close */ + if(H5Sclose(f_sid)<0) + goto out; + if(H5Dclose(did)<0) + goto out; + + ret=H5Fclose(fid); + assert(ret>=0); + + return; + +out: + printf("Error.....\n"); + H5E_BEGIN_TRY { + H5Sclose(f_sid); + H5Dclose(did); + H5Fclose(fid); + } H5E_END_TRY; + return; + +} + + /*------------------------------------------------------------------------- * Function: gent_hyperslab * @@ -5746,7 +5810,7 @@ static void gent_hyperslab(void) buf[i] = 1; /* create a file */ - fid = H5Fcreate(FILE57, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + fid = H5Fcreate(FILE58, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); assert(fid>=0); write_dset(fid,2,dims,"stripmine",H5T_NATIVE_DOUBLE,buf); @@ -5822,6 +5886,7 @@ int main(void) gent_ldouble(); gent_binary(); gent_bigdims(); + gen_bigdata(); gent_hyperslab(); return 0; diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 54d4311..4516c2b 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -346,6 +346,9 @@ TOOLTEST tregref.ddl tdatareg.h5 # dimensions over 4GB, print boundary TOOLTEST tbigdims.ddl -d dset4gb -s 4294967284 -c 22 tbigdims.h5 +# numbers over 4GB +TOOLTEST tbigdata.ddl tbigdata.h5 + # hyperslab read TOOLTEST thyperslab.ddl thyperslab.h5 |