diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2022-04-13 21:17:29 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2022-04-13 21:17:29 (GMT) |
commit | cabc39c3e197e2591449d2604bfee26465fb60e1 (patch) | |
tree | d5f39f5f5965584bf9bf49646a2af617adfd3e4e /src/H5EAtest.c | |
parent | 7355f4c505092a7a85474b47f18d5206028e2c95 (diff) | |
parent | ab69f5df770ee3cc6cd6c81d905a5317b894a002 (diff) | |
download | hdf5-feature/coding_standards.zip hdf5-feature/coding_standards.tar.gz hdf5-feature/coding_standards.tar.bz2 |
Merge branch 'develop' into feature/coding_standardsfeature/coding_standards
Diffstat (limited to 'src/H5EAtest.c')
-rw-r--r-- | src/H5EAtest.c | 318 |
1 files changed, 156 insertions, 162 deletions
diff --git a/src/H5EAtest.c b/src/H5EAtest.c index f7731eb..d07d9d9 100644 --- a/src/H5EAtest.c +++ b/src/H5EAtest.c @@ -6,12 +6,12 @@ * This file is part of HDF5. The full HDF5 copyright notice, including * * terms governing use, modification, and redistribution, is contained in * * the COPYING file, which can be found at the root of the source code * - * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * distribution tree, or in https://www.hdfgroup.org/licenses. * * If you do not have access to either file, you may request a copy from * * help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -/* Programmer: Quincey Koziol <koziol@hdfgroup.org> +/* Programmer: Quincey Koziol * Thursday, August 28, 2008 * * Purpose: Extensible array testing functions. @@ -22,32 +22,28 @@ /* Module Declaration */ /**********************/ -#include "H5EAmodule.h" /* This source code file is part of the H5EA module */ +#include "H5EAmodule.h" /* This source code file is part of the H5EA module */ #define H5EA_TESTING - /***********************/ /* Other Packages Used */ /***********************/ - /***********/ /* Headers */ /***********/ -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5EApkg.h" /* Extensible Arrays */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5VMprivate.h" /* Vector functions */ - +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5EApkg.h" /* Extensible Arrays */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5VMprivate.h" /* Vector functions */ /****************/ /* Local Macros */ /****************/ /* Sanity checking value for callback contexts */ -#define H5EA__TEST_BOGUS_VAL 42 - +#define H5EA__TEST_BOGUS_VAL 42 /******************/ /* Local Typedefs */ @@ -55,28 +51,26 @@ /* Callback context */ typedef struct H5EA__test_ctx_t { - uint32_t bogus; /* Placeholder field to verify that context is working */ - H5EA__ctx_cb_t *cb; /* Pointer to context's callback action */ + uint32_t bogus; /* Placeholder field to verify that context is working */ + H5EA__ctx_cb_t *cb; /* Pointer to context's callback action */ } H5EA__test_ctx_t; - /********************/ /* Package Typedefs */ /********************/ - /********************/ /* Local Prototypes */ /********************/ /* Extensible array class callbacks */ -static void *H5EA__test_crt_context(void *udata); +static void * H5EA__test_crt_context(void *udata); static herr_t H5EA__test_dst_context(void *ctx); static herr_t H5EA__test_fill(void *nat_blk, size_t nelmts); static herr_t H5EA__test_encode(void *raw, const void *elmt, size_t nelmts, void *ctx); static herr_t H5EA__test_decode(const void *raw, void *elmt, size_t nelmts, void *ctx); static herr_t H5EA__test_debug(FILE *stream, int indent, int fwidth, hsize_t idx, const void *elmt); -static void *H5EA__test_crt_dbg_context(H5F_t H5_ATTR_UNUSED *f, haddr_t H5_ATTR_UNUSED obj_addr); +static void * H5EA__test_crt_dbg_context(H5F_t H5_ATTR_UNUSED *f, haddr_t H5_ATTR_UNUSED obj_addr); static herr_t H5EA__test_dst_dbg_context(void *_ctx); /*********************/ @@ -84,7 +78,7 @@ static herr_t H5EA__test_dst_dbg_context(void *_ctx); /*********************/ /* Extensible array testing class information */ -const H5EA_class_t H5EA_CLS_TEST[1]={{ +const H5EA_class_t H5EA_CLS_TEST[1] = {{ H5EA_CLS_TEST_ID, /* Type of Extensible array */ "Testing", /* Name of Extensible Array class */ sizeof(uint64_t), /* Size of native element */ @@ -98,12 +92,10 @@ const H5EA_class_t H5EA_CLS_TEST[1]={{ H5EA__test_dst_dbg_context /* Destroy debugging context */ }}; - /*****************************/ /* Library Private Variables */ /*****************************/ - /*******************/ /* Local Variables */ /*******************/ @@ -114,8 +106,6 @@ H5FL_DEFINE_STATIC(H5EA__test_ctx_t); /* Declare a free list to manage the H5EA__ctx_cb_t struct */ H5FL_DEFINE_STATIC(H5EA__ctx_cb_t); - - /*------------------------------------------------------------------------- * Function: H5EA__test_crt_context * @@ -129,32 +119,31 @@ H5FL_DEFINE_STATIC(H5EA__ctx_cb_t); * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, ERR, -void *, NULL, NULL, -H5EA__test_crt_context(void *_udata)) +static void * +H5EA__test_crt_context(void *_udata) +{ + H5EA__test_ctx_t *ctx; /* Context for callbacks */ + H5EA__ctx_cb_t * udata = (H5EA__ctx_cb_t *)_udata; /* User data for context */ + void * ret_value = NULL; - /* Local variables */ - H5EA__test_ctx_t *ctx; /* Context for callbacks */ - H5EA__ctx_cb_t *udata = (H5EA__ctx_cb_t *)_udata; /* User data for context */ - - /* Sanity checks */ + FUNC_ENTER_PACKAGE /* Allocate new context structure */ - if(NULL == (ctx = H5FL_MALLOC(H5EA__test_ctx_t))) - H5E_THROW(H5E_CANTALLOC, "can't allocate extensible array client callback context") + if (NULL == (ctx = H5FL_MALLOC(H5EA__test_ctx_t))) + HGOTO_ERROR(H5E_EARRAY, H5E_CANTALLOC, NULL, + "can't allocate extensible array client callback context") /* Initialize the context */ ctx->bogus = H5EA__TEST_BOGUS_VAL; - ctx->cb = udata; + ctx->cb = udata; /* Set return value */ ret_value = ctx; -CATCH +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5EA__test_crt_context() */ -END_FUNC(STATIC) /* end H5EA__test_crt_context() */ - - /*------------------------------------------------------------------------- * Function: H5EA__test_dst_context * @@ -168,12 +157,12 @@ END_FUNC(STATIC) /* end H5EA__test_crt_context() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, NOERR, -herr_t, SUCCEED, -, -H5EA__test_dst_context(void *_ctx)) +static herr_t +H5EA__test_dst_context(void *_ctx) +{ + H5EA__test_ctx_t *ctx = (H5EA__test_ctx_t *)_ctx; /* Callback context to destroy */ - /* Local variables */ - H5EA__test_ctx_t *ctx = (H5EA__test_ctx_t *)_ctx; /* Callback context to destroy */ + FUNC_ENTER_PACKAGE_NOERR /* Sanity checks */ HDassert(H5EA__TEST_BOGUS_VAL == ctx->bogus); @@ -181,9 +170,9 @@ H5EA__test_dst_context(void *_ctx)) /* Release context structure */ ctx = H5FL_FREE(H5EA__test_ctx_t, ctx); -END_FUNC(STATIC) /* end H5EA__test_dst_context() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5EA__test_dst_context() */ - /*------------------------------------------------------------------------- * Function: H5EA__test_fill * @@ -197,12 +186,12 @@ END_FUNC(STATIC) /* end H5EA__test_dst_context() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, NOERR, -herr_t, SUCCEED, -, -H5EA__test_fill(void *nat_blk, size_t nelmts)) +static herr_t +H5EA__test_fill(void *nat_blk, size_t nelmts) +{ + uint64_t fill_val = H5EA_TEST_FILL; /* Value to fill elements with */ - /* Local variables */ - uint64_t fill_val = H5EA_TEST_FILL; /* Value to fill elements with */ + FUNC_ENTER_PACKAGE_NOERR /* Sanity checks */ HDassert(nat_blk); @@ -210,9 +199,9 @@ H5EA__test_fill(void *nat_blk, size_t nelmts)) H5VM_array_fill(nat_blk, &fill_val, sizeof(uint64_t), nelmts); -END_FUNC(STATIC) /* end H5EA__test_fill() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5EA__test_fill() */ - /*------------------------------------------------------------------------- * Function: H5EA__test_encode * @@ -226,13 +215,14 @@ END_FUNC(STATIC) /* end H5EA__test_fill() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, ERR, -herr_t, SUCCEED, FAIL, -H5EA__test_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)) +static herr_t +H5EA__test_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx) +{ + H5EA__test_ctx_t *ctx = (H5EA__test_ctx_t *)_ctx; /* Callback context to destroy */ + const uint64_t * elmt = (const uint64_t *)_elmt; /* Convenience pointer to native elements */ + herr_t ret_value = SUCCEED; - /* Local variables */ - H5EA__test_ctx_t *ctx = (H5EA__test_ctx_t *)_ctx; /* Callback context to destroy */ - const uint64_t *elmt = (const uint64_t *)_elmt; /* Convenience pointer to native elements */ + FUNC_ENTER_PACKAGE /* Sanity checks */ HDassert(raw); @@ -241,15 +231,14 @@ H5EA__test_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)) HDassert(H5EA__TEST_BOGUS_VAL == ctx->bogus); /* Check for callback action */ - if(ctx->cb) { - if((*ctx->cb->encode)(elmt, nelmts, ctx->cb->udata) < 0) - H5E_THROW(H5E_BADVALUE, "extensible array testing callback action failed") - } /* end if */ + if (ctx->cb) { + if ((*ctx->cb->encode)(elmt, nelmts, ctx->cb->udata) < 0) + HGOTO_ERROR(H5E_EARRAY, H5E_BADVALUE, FAIL, "extensible array testing callback action failed") + } /* Encode native elements into raw elements */ - while(nelmts) { - /* Encode element */ - /* (advances 'raw' pointer) */ + while (nelmts) { + /* Encode element - advances 'raw' pointer */ UINT64ENCODE(raw, *elmt); /* Advance native element pointer */ @@ -257,13 +246,12 @@ H5EA__test_encode(void *raw, const void *_elmt, size_t nelmts, void *_ctx)) /* Decrement # of elements to encode */ nelmts--; - } /* end while */ - -CATCH + } -END_FUNC(STATIC) /* end H5EA__test_encode() */ +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5EA__test_encode() */ - /*------------------------------------------------------------------------- * Function: H5EA__test_decode * @@ -277,29 +265,26 @@ END_FUNC(STATIC) /* end H5EA__test_encode() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, NOERR, -herr_t, SUCCEED, -, -H5EA__test_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)) +static herr_t +H5EA__test_decode(const void *_raw, void *_elmt, size_t nelmts, void H5_ATTR_NDEBUG_UNUSED *_ctx) +{ +#ifndef NDEBUG + H5EA__test_ctx_t *ctx = (H5EA__test_ctx_t *)_ctx; /* Callback context to destroy */ +#endif /* NDEBUG */ + uint64_t * elmt = (uint64_t *)_elmt; /* Convenience pointer to native elements */ + const uint8_t *raw = (const uint8_t *)_raw; /* Convenience pointer to raw elements */ - /* Local variables */ -#ifdef H5EA_DEBUG - H5EA__test_ctx_t *ctx = (H5EA__test_ctx_t *)_ctx; /* Callback context to destroy */ -#endif /* H5EA_DEBUG */ - uint64_t *elmt = (uint64_t *)_elmt; /* Convenience pointer to native elements */ - const uint8_t *raw = (const uint8_t *)_raw; /* Convenience pointer to raw elements */ + FUNC_ENTER_PACKAGE_NOERR /* Sanity checks */ HDassert(raw); HDassert(elmt); HDassert(nelmts); -#ifdef H5EA_DEBUG HDassert(H5EA__TEST_BOGUS_VAL == ctx->bogus); -#endif /* H5EA_DEBUG */ /* Decode raw elements into native elements */ - while(nelmts) { - /* Decode element */ - /* (advances 'raw' pointer) */ + while (nelmts) { + /* Decode element - advances 'raw' pointer */ UINT64DECODE(raw, *elmt); /* Advance native element pointer */ @@ -307,11 +292,11 @@ H5EA__test_decode(const void *_raw, void *_elmt, size_t nelmts, void *_ctx)) /* Decrement # of elements to decode */ nelmts--; - } /* end while */ + } -END_FUNC(STATIC) /* end H5EA__test_decode() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5EA__test_decode() */ - /*------------------------------------------------------------------------- * Function: H5EA__test_debug * @@ -325,56 +310,57 @@ END_FUNC(STATIC) /* end H5EA__test_decode() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, NOERR, -herr_t, SUCCEED, -, -H5EA__test_debug(FILE *stream, int indent, int fwidth, hsize_t idx, - const void *elmt)) +static herr_t +H5EA__test_debug(FILE *stream, int indent, int fwidth, hsize_t idx, const void *elmt) +{ + char temp_str[128]; /* Temporary string, for formatting */ - /* Local variables */ - char temp_str[128]; /* Temporary string, for formatting */ + FUNC_ENTER_PACKAGE_NOERR /* Sanity checks */ HDassert(stream); HDassert(elmt); /* Print element */ - HDsprintf(temp_str, "Element #%llu:", (unsigned long long)idx); + HDsnprintf(temp_str, sizeof(temp_str), "Element #%llu:", (unsigned long long)idx); HDfprintf(stream, "%*s%-*s %llu\n", indent, "", fwidth, temp_str, - (unsigned long long)*(const uint64_t *)elmt); + (unsigned long long)*(const uint64_t *)elmt); -END_FUNC(STATIC) /* end H5EA__test_debug() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5EA__test_debug() */ /*------------------------------------------------------------------------- * Function: H5EA__test_crt_dbg_context * * Purpose: Create context for debugging callback - * + * * Return: Success: non-NULL * Failure: NULL - * + * * Programmer: Vailin Choi; August 2010 * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, ERR, -void *, NULL, NULL, -H5EA__test_crt_dbg_context(H5F_t H5_ATTR_UNUSED *f, haddr_t H5_ATTR_UNUSED obj_addr)) - - /* Local variables */ - H5EA__ctx_cb_t *ctx; /* Context for callbacks */ - +static void * +H5EA__test_crt_dbg_context(H5F_t H5_ATTR_UNUSED *f, haddr_t H5_ATTR_UNUSED obj_addr) +{ + H5EA__ctx_cb_t *ctx; /* Context for callbacks */ + void * ret_value = NULL; + + FUNC_ENTER_PACKAGE + /* Allocate new context structure */ - if(NULL == (ctx = H5FL_MALLOC(H5EA__ctx_cb_t))) - H5E_THROW(H5E_CANTALLOC, "can't allocate extensible array client callback context") + if (NULL == (ctx = H5FL_MALLOC(H5EA__ctx_cb_t))) + HGOTO_ERROR(H5E_EARRAY, H5E_CANTALLOC, NULL, + "can't allocate extensible array client callback context") /* Set return value */ ret_value = ctx; -CATCH - -END_FUNC(STATIC) /* end H5EA__test_crt_dbg_context() */ +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5EA__test_crt_dbg_context() */ - /*------------------------------------------------------------------------- * Function: H5EA__test_dst_dbg_context * @@ -387,21 +373,21 @@ END_FUNC(STATIC) /* end H5EA__test_crt_dbg_context() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(STATIC, NOERR, -herr_t, SUCCEED, -, -H5EA__test_dst_dbg_context(void *_ctx)) +static herr_t +H5EA__test_dst_dbg_context(void *_ctx) +{ + H5EA__ctx_cb_t *ctx = (H5EA__ctx_cb_t *)_ctx; /* Callback context to destroy */ - /* Local variables */ - H5EA__ctx_cb_t *ctx = (H5EA__ctx_cb_t *)_ctx; /* Callback context to destroy */ + FUNC_ENTER_PACKAGE_NOERR HDassert(_ctx); /* Release context structure */ ctx = H5FL_FREE(H5EA__ctx_cb_t, ctx); -END_FUNC(STATIC) /* end H5EA__test_dst_dbg_context() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5EA__test_dst_dbg_context() */ - /*------------------------------------------------------------------------- * Function: H5EA__get_cparam_test * @@ -415,25 +401,26 @@ END_FUNC(STATIC) /* end H5EA__test_dst_dbg_context() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(PKG, NOERR, -herr_t, SUCCEED, -, -H5EA__get_cparam_test(const H5EA_t *ea, H5EA_create_t *cparam)) +herr_t +H5EA__get_cparam_test(const H5EA_t *ea, H5EA_create_t *cparam) +{ + FUNC_ENTER_PACKAGE_NOERR /* Check arguments. */ HDassert(ea); HDassert(cparam); /* Get extensible array creation parameters */ - cparam->raw_elmt_size = ea->hdr->cparam.raw_elmt_size; - cparam->max_nelmts_bits = ea->hdr->cparam.max_nelmts_bits; - cparam->idx_blk_elmts = ea->hdr->cparam.idx_blk_elmts; - cparam->sup_blk_min_data_ptrs = ea->hdr->cparam.sup_blk_min_data_ptrs; - cparam->data_blk_min_elmts = ea->hdr->cparam.data_blk_min_elmts; + cparam->raw_elmt_size = ea->hdr->cparam.raw_elmt_size; + cparam->max_nelmts_bits = ea->hdr->cparam.max_nelmts_bits; + cparam->idx_blk_elmts = ea->hdr->cparam.idx_blk_elmts; + cparam->sup_blk_min_data_ptrs = ea->hdr->cparam.sup_blk_min_data_ptrs; + cparam->data_blk_min_elmts = ea->hdr->cparam.data_blk_min_elmts; cparam->max_dblk_page_nelmts_bits = ea->hdr->cparam.max_dblk_page_nelmts_bits; -END_FUNC(PKG) /* end H5EA__get_cparam_test() */ + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5EA__get_cparam_test() */ - /*------------------------------------------------------------------------- * Function: H5EA__cmp_cparam_test * @@ -447,41 +434,48 @@ END_FUNC(PKG) /* end H5EA__get_cparam_test() */ * *------------------------------------------------------------------------- */ -BEGIN_FUNC(PKG, ERRCATCH, -int, 0, -, -H5EA__cmp_cparam_test(const H5EA_create_t *cparam1, const H5EA_create_t *cparam2)) +int +H5EA__cmp_cparam_test(const H5EA_create_t *cparam1, const H5EA_create_t *cparam2) +{ + int ret_value = 0; - /* Check arguments. */ + FUNC_ENTER_PACKAGE_NOERR + + /* Check arguments */ HDassert(cparam1); HDassert(cparam2); /* Compare creation parameters for array */ - if(cparam1->raw_elmt_size < cparam2->raw_elmt_size) - H5_LEAVE(-1) - else if(cparam1->raw_elmt_size > cparam2->raw_elmt_size) - H5_LEAVE(1) - if(cparam1->max_nelmts_bits < cparam2->max_nelmts_bits) - H5_LEAVE(-1) - else if(cparam1->max_nelmts_bits > cparam2->max_nelmts_bits) - H5_LEAVE(1) - if(cparam1->idx_blk_elmts < cparam2->idx_blk_elmts) - H5_LEAVE(-1) - else if(cparam1->idx_blk_elmts > cparam2->idx_blk_elmts) - H5_LEAVE(1) - if(cparam1->sup_blk_min_data_ptrs < cparam2->sup_blk_min_data_ptrs) - H5_LEAVE(-1) - else if(cparam1->sup_blk_min_data_ptrs > cparam2->sup_blk_min_data_ptrs) - H5_LEAVE(1) - if(cparam1->data_blk_min_elmts < cparam2->data_blk_min_elmts) - H5_LEAVE(-1) - else if(cparam1->data_blk_min_elmts > cparam2->data_blk_min_elmts) - H5_LEAVE(1) - if(cparam1->max_dblk_page_nelmts_bits < cparam2->max_dblk_page_nelmts_bits) - H5_LEAVE(-1) - else if(cparam1->max_dblk_page_nelmts_bits > cparam2->max_dblk_page_nelmts_bits) - H5_LEAVE(1) - -CATCH - -END_FUNC(PKG) /* end H5EA__cmp_cparam_test() */ - + if (cparam1->raw_elmt_size < cparam2->raw_elmt_size) + HGOTO_DONE(-1) + else if (cparam1->raw_elmt_size > cparam2->raw_elmt_size) + HGOTO_DONE(1) + + if (cparam1->max_nelmts_bits < cparam2->max_nelmts_bits) + HGOTO_DONE(-1) + else if (cparam1->max_nelmts_bits > cparam2->max_nelmts_bits) + HGOTO_DONE(1) + + if (cparam1->idx_blk_elmts < cparam2->idx_blk_elmts) + HGOTO_DONE(-1) + else if (cparam1->idx_blk_elmts > cparam2->idx_blk_elmts) + HGOTO_DONE(1) + + if (cparam1->sup_blk_min_data_ptrs < cparam2->sup_blk_min_data_ptrs) + HGOTO_DONE(-1) + else if (cparam1->sup_blk_min_data_ptrs > cparam2->sup_blk_min_data_ptrs) + HGOTO_DONE(1) + + if (cparam1->data_blk_min_elmts < cparam2->data_blk_min_elmts) + HGOTO_DONE(-1) + else if (cparam1->data_blk_min_elmts > cparam2->data_blk_min_elmts) + HGOTO_DONE(1) + + if (cparam1->max_dblk_page_nelmts_bits < cparam2->max_dblk_page_nelmts_bits) + HGOTO_DONE(-1) + else if (cparam1->max_dblk_page_nelmts_bits > cparam2->max_dblk_page_nelmts_bits) + HGOTO_DONE(1) + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5EA__cmp_cparam_test() */ |