diff options
Diffstat (limited to 'test/dsets.c')
-rw-r--r-- | test/dsets.c | 94 |
1 files changed, 63 insertions, 31 deletions
diff --git a/test/dsets.c b/test/dsets.c index 0522bd0..58fa2c8 100644 --- a/test/dsets.c +++ b/test/dsets.c @@ -710,7 +710,9 @@ test_max_compact(hid_t fapl) compact_size = (SIXTY_FOUR_KB-64)/sizeof(int); wbuf = (int*)HDmalloc(sizeof(int)*(size_t)compact_size); + assert(wbuf); rbuf = (int*)HDmalloc(sizeof(int)*(size_t)compact_size); + assert(rbuf); n=0; for(i=0; i<(int)compact_size; i++) @@ -767,8 +769,9 @@ test_max_compact(hid_t fapl) if(H5Dclose(dataset) < 0) goto error; if(H5Fclose(file) < 0) goto error; HDfree(wbuf); + wbuf = NULL; HDfree(rbuf); - + rbuf = NULL; /* Test compact dataset of size 64KB */ @@ -802,6 +805,19 @@ test_max_compact(hid_t fapl) return 0; error: + if(wbuf) + HDfree(wbuf); + if(rbuf) + HDfree(rbuf); + + H5E_BEGIN_TRY { + /* Close file */ + H5Sclose(space); + H5Pclose(plist); + H5Fclose(file); + H5Dclose(dataset); + } H5E_END_TRY; + return -1; } @@ -973,10 +989,10 @@ error: static herr_t test_tconv(hid_t file) { - char *out=NULL, *in=NULL; - int i; + char *out = NULL, *in = NULL; hsize_t dims[1]; - hid_t space, dataset; + hid_t space = -1, dataset = -1; + int i; out = (char *)HDmalloc((size_t)(4 * 1000 * 1000)); HDassert(out); @@ -987,11 +1003,11 @@ test_tconv(hid_t file) /* Initialize the dataset */ for(i = 0; i < 1000000; i++) { - out[i*4+0] = 0x11; - out[i*4+1] = 0x22; - out[i*4+2] = 0x33; - out[i*4+3] = 0x44; - } + out[i * 4 + 0] = 0x11; + out[i * 4 + 1] = 0x22; + out[i * 4 + 2] = 0x33; + out[i * 4 + 3] = 0x44; + } /* end for */ /* Create the data space */ dims[0] = 1000000; @@ -1008,27 +1024,39 @@ test_tconv(hid_t file) /* Read data with byte order conversion */ if(H5Dread(dataset, H5T_STD_I32BE, H5S_ALL, H5S_ALL, H5P_DEFAULT, in) < 0) - goto error; + goto error; /* Check */ for(i = 0; i < 1000000; i++) { - if(in[4*i+0]!=out[4*i+3] || - in[4*i+1]!=out[4*i+2] || - in[4*i+2]!=out[4*i+1] || - in[4*i+3]!=out[4*i+0]) { - H5_FAILED(); - puts(" Read with byte order conversion failed."); - goto error; - } + if(in[4 * i + 0] != out[4 * i + 3] || + in[4 * i + 1] != out[4 * i + 2] || + in[4 * i + 2] != out[4 * i + 1] || + in[4 * i + 3] != out[4 * i + 0]) { + H5_FAILED(); + puts(" Read with byte order conversion failed."); + goto error; + } } if(H5Dclose(dataset) < 0) goto error; - free (out); - free (in); + if(H5Sclose(space) < 0) goto error; + HDfree(out); + HDfree(in); + puts(" PASSED"); return 0; - error: +error: + if(out) + HDfree(out); + if(in) + HDfree(in); + + H5E_BEGIN_TRY { + H5Dclose(dataset); + H5Sclose(space); + } H5E_END_TRY; + return -1; } @@ -1241,19 +1269,19 @@ filter_corrupt(unsigned int flags, size_t cd_nelmts, const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf) { - size_t ret_value = 0; + void *data; unsigned char *dst = (unsigned char*)(*buf); unsigned int offset; unsigned int length; unsigned int value; - void *data; + size_t ret_value = 0; - if(cd_nelmts!=3 || !cd_values) + if(cd_nelmts != 3 || !cd_values) return 0; offset = cd_values[0]; length = cd_values[1]; value = cd_values[2]; - if(offset>nbytes || (offset+length)>nbytes || length<sizeof(unsigned int)) + if(offset > nbytes || (offset + length) > nbytes || length < sizeof(unsigned int)) return 0; data = HDmalloc((size_t)length); @@ -1261,15 +1289,19 @@ filter_corrupt(unsigned int flags, size_t cd_nelmts, if(flags & H5Z_FLAG_REVERSE) { /* Varify data is actually corrupted during read */ dst += offset; - if(HDmemcmp(data, dst, (size_t)length)!=0) return 0; - *buf_size = nbytes; - ret_value = nbytes; - } else { /* Write corrupted data */ + if(HDmemcmp(data, dst, (size_t)length) != 0) + ret_value = 0; + else { + *buf_size = nbytes; + ret_value = nbytes; + } /* end else */ + } /* end if */ + else { /* Write corrupted data */ dst += offset; HDmemcpy(dst, data, (size_t)length); *buf_size = nbytes; - ret_value = *buf_size; - } + ret_value = *buf_size; + } /* end else */ if(data) HDfree(data); |