summaryrefslogtreecommitdiffstats
path: root/test/dt_arith.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2015-09-14 03:58:59 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2015-09-14 03:58:59 (GMT)
commit102337449220dfc29be1cce29147704b9c760832 (patch)
tree2f57d117f2bd934eac2768be18dcc866619f390f /test/dt_arith.c
parentf16361d5f1dc70c344d8143270aa4aeaa867f244 (diff)
downloadhdf5-102337449220dfc29be1cce29147704b9c760832.zip
hdf5-102337449220dfc29be1cce29147704b9c760832.tar.gz
hdf5-102337449220dfc29be1cce29147704b9c760832.tar.bz2
[svn-r27768] Description:
Complete revamp of package initialization/shutdown mechanism in the library. Each package now has a single init/term routine. This new way should avoid packages being re-initialized during library shutdown and is also be _much_ more proactive about giving feedback for resource leaks internal to the library. Introduces a new "module" header file for packages in the library (e.g src/H5Fmodule.h) which sets up some necessary package configuration macros for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly modified version of this header, src/H5FDdrvr_module.h) Also cleaned up a bunch of resources leaks all across the library and tests, along with addressing many warnings, as I encountered them. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/64 3.10.x (kituo) w/serial & parallel Linux/64 2.6.x (ostrich) w/serial
Diffstat (limited to 'test/dt_arith.c')
-rw-r--r--test/dt_arith.c68
1 files changed, 66 insertions, 2 deletions
diff --git a/test/dt_arith.c b/test/dt_arith.c
index eb201d0..102f217 100644
--- a/test/dt_arith.c
+++ b/test/dt_arith.c
@@ -45,7 +45,7 @@
/* Alignment test stuff */
#ifdef TEST_ALIGNMENT
-#define H5T_PACKAGE
+#define H5T_FRIEND /*suppress error about including H5Tpkg */
#include "H5Tpkg.h"
#endif
#define SET_ALIGNMENT(TYPE,VAL) \
@@ -645,11 +645,18 @@ test_hard_query(void)
}
PASSED();
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5();
return 0;
- error:
+error:
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5();
return 1;
}
@@ -871,7 +878,11 @@ error:
if(saved_buf2)
HDfree(saved_buf2);
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
+
return MAX((int)fails_this_test, 1);
}
@@ -1290,6 +1301,10 @@ test_derived_flt(void)
} /* end if */
PASSED();
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
return 0;
@@ -1305,7 +1320,12 @@ test_derived_flt(void)
H5Pclose (dxpl_id);
H5Fclose (file);
} H5E_END_TRY;
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
+
return MAX((int)fails_this_test, 1);
}
@@ -1592,6 +1612,10 @@ test_derived_integer(void)
HDfree(saved_buf);
PASSED();
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
return 0;
@@ -1606,7 +1630,12 @@ test_derived_integer(void)
H5Pclose (dxpl_id);
H5Fclose (file);
} H5E_END_TRY;
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
+
return MAX((int)fails_this_test, 1);
}
@@ -2601,7 +2630,12 @@ done:
if (saved) aligned_free(saved);
if (aligned) HDfree(aligned);
HDfflush(stdout);
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
+
return (int)fails_all_tests;
error:
@@ -2609,7 +2643,12 @@ error:
if (saved) aligned_free(saved);
if (aligned) HDfree(aligned);
HDfflush(stdout);
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
+
return MAX((int)fails_all_tests, 1);
}
@@ -3307,6 +3346,9 @@ done:
HDassert(0 && "Should not reach this point!");
return 1;
#else
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5();
/* If the source is normalized values, treat the failures as error;
@@ -3330,7 +3372,11 @@ error:
HDassert(0 && "Should not reach this point!");
return 1;
#else
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5();
+
if(run_test==TEST_NOOP || run_test==TEST_NORMAL)
return MAX((int)fails_all_tests, 1);
else if(run_test==TEST_DENORM || run_test==TEST_SPECIAL)
@@ -4504,6 +4550,9 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
if (saved) aligned_free(saved);
if (aligned) HDfree(aligned);
HDfflush(stdout);
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
/* If the source is normalized floating values, treat the failures as error;
@@ -4518,6 +4567,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
if (saved) aligned_free(saved);
if (aligned) HDfree(aligned);
HDfflush(stdout);
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5(); /*print statistics*/
if(run_test==TEST_NORMAL)
@@ -5164,6 +5217,10 @@ main(void)
*----------------------------------------------------------------------
*/
without_hardware_g = TRUE;
+
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5();
/* Test software floating-point conversion functions */
@@ -5179,8 +5236,14 @@ main(void)
/* Test software integer-float conversion functions */
nerrors += run_int_fp_conv("soft");
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
reset_hdf5();
+ /* Restore the default error handler (set in h5_reset()) */
+ h5_restore_err();
+
if (nerrors) {
printf("***** %lu FAILURE%s! *****\n",
nerrors, 1==nerrors?"":"S");
@@ -5189,3 +5252,4 @@ main(void)
printf("All data type tests passed.\n");
return 0;
}
+