diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2022-05-03 17:57:19 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-03 17:57:19 (GMT) |
commit | 493846dbf4793b7e9f6ce5e1d8b8cfc29705ecca (patch) | |
tree | 9053e2f8881464c63630dddee33bc9ba9dafe53c /test | |
parent | 5f00066eacdf2b2ddb3cf92635bea99eb1aee85e (diff) | |
download | hdf5-493846dbf4793b7e9f6ce5e1d8b8cfc29705ecca.zip hdf5-493846dbf4793b7e9f6ce5e1d8b8cfc29705ecca.tar.gz hdf5-493846dbf4793b7e9f6ce5e1d8b8cfc29705ecca.tar.bz2 |
[1.12 Merge]Hdf5 1 12 warnings fixes (#1715)
* Warnings fixes (#1680)
* Clean stack size warnings in sio_engine (#1687)
* Fixes stack size warnings in tcoords.c (#1688)
* Address some warnings from casting away of const (#1684)
* Fixes stack size warnings in ntypes (#1695)
* Fixes stack size warnings in dtransform (#1696)
* Fixes stack size warnings in set_extent test (#1698)
* Be a bit safer with signed arithmetic, thus quieting some signed-overflow warnings from GCC (#1706)
* Avoid a signed overflow: check the range of `entry_ptr->age` before
increasing it instead of increasing it and then checking the range.
This quiets a GCC warning.
* Avoid the potential for signed overflow by rewriting expressions
`MAX(0, fwidth - n)` as `MAX(n, fwidth) - n` for various `n`.
This change quiets some GCC warnings.
* Change some local variables that cannot take sensible negative values
from signed to unsigned. This quiets GCC warnings about potential
signed overflow.
* In a handful of instances, check the range of a signed integer before
increasing/decreasing it, just in case the increase/decrease overflows.
This quiets a handful of GCC signed-overflow warnings.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fix object size warnings in cache.c test (#1701)
* Fix some const cast and stack/static object size warnings (#1700)
* Fix various warnings
* Move HDfree_const to H5private.h for wider use
* Print output from all ranks in parallel tests on allocation failure
* Move const pointer freeing macro to h5test.h for now
* Stop lying about H5S_t const-ness (#1209)
Hyperslabs can be reworked inside several H5S callbacks, making H5S_t
non-const in some places where it is marked const. This change switches
these incorrectly const H5S_t pointer parameters and variables to
non-const where appropriate.
* Fix a few warnings after recent H5S const-related changes (#1225)
* Adjustments for HDF5 1.12
Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
Co-authored-by: David Young <dyoung@hdfgroup.org>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/cache.c | 6768 | ||||
-rw-r--r-- | test/cache_image.c | 2 | ||||
-rw-r--r-- | test/dt_arith.c | 6 | ||||
-rw-r--r-- | test/dtransform.c | 36 | ||||
-rw-r--r-- | test/h5test.h | 9 | ||||
-rw-r--r-- | test/ntypes.c | 75 | ||||
-rw-r--r-- | test/set_extent.c | 204 | ||||
-rw-r--r-- | test/tcoords.c | 62 | ||||
-rw-r--r-- | test/vds_env.c | 51 |
9 files changed, 3030 insertions, 4183 deletions
diff --git a/test/cache.c b/test/cache.c index 95a985b..2a70e0f 100644 --- a/test/cache.c +++ b/test/cache.c @@ -123,6 +123,21 @@ struct move_entry_test_spec { hbool_t is_protected; }; +struct pinned_single_entry_test_spec { + int test_num; + int entry_type; + int entry_idx; + hbool_t dirty_flag; + hbool_t mark_dirty; + hbool_t pop_mark_dirty_prot; + hbool_t pop_mark_dirty_pinned; + hbool_t unprotect_unpin; + unsigned int flags; + unsigned int flush_flags; + hbool_t expected_serialized; + hbool_t expected_destroyed; +}; + /* private function declarations: */ static unsigned smoke_check_1(int express_test, unsigned paged); @@ -4814,7 +4829,11 @@ check_flush_cache__pe_multi_entry_test(H5F_t *file_ptr, int test_num, unsigned i static void check_flush_cache__flush_ops(H5F_t *file_ptr) { - H5C_t *cache_ptr = file_ptr->shared->cache; + const int max_num_spec = 10; + const int max_num_check = 4; + struct fo_flush_cache_test_spec *spec = NULL; + struct fo_flush_entry_check * checks = NULL; + H5C_t * cache_ptr = file_ptr->shared->cache; if (cache_ptr == NULL) { @@ -4827,85 +4846,105 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) failure_mssg = "cache not empty at beginning of flush ops test."; } + spec = HDmalloc((size_t)max_num_spec * sizeof(struct fo_flush_cache_test_spec)); + if (spec == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocate flush ops test spec array"; + } + + checks = HDmalloc((size_t)max_num_check * sizeof(struct fo_flush_entry_check)); + if (checks == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocate flush ops test check array"; + } + if (pass) /* test #1 */ { /* start with a very simple test, in which there are two entries * resident in cache, and the second entry dirties the first in * the flush callback. No size changes, and no flush flags. */ - int test_num = 1; - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 2; - unsigned init_expected_index_len = 2; - size_t init_expected_index_size = 2 * PICO_ENTRY_SIZE; - unsigned expected_index_len = 2; - size_t expected_index_size = 2 * PICO_ENTRY_SIZE; - struct fo_flush_cache_test_spec spec[2] = { - {/* entry_num = */ 0, - /* entry_type = */ 0, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, - /* entry_type = */ 0, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 1; + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 2; + int check_size = 0; + unsigned init_expected_index_len = 2; + size_t init_expected_index_size = 2 * PICO_ENTRY_SIZE; + unsigned expected_index_len = 2; + size_t expected_index_size = 2 * PICO_ENTRY_SIZE; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ 0, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ 0, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -4921,79 +4960,85 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * Create two entries resident in cache, and have the second entry * dirty the first in the flush callback. */ - int test_num = 2; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 2; - unsigned init_expected_index_len = 2; - size_t init_expected_index_size = 2 * PICO_ENTRY_SIZE; - unsigned expected_index_len = 0; - size_t expected_index_size = 0; - struct fo_flush_cache_test_spec spec[2] = { - {/* entry_num = */ 0, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr*/ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 2; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 2; + int check_size = 0; + unsigned init_expected_index_len = 2; + size_t init_expected_index_size = 2 * PICO_ENTRY_SIZE; + unsigned expected_index_len = 0; + size_t expected_index_size = 0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr*/ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5006,53 +5051,58 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * which the call back function resizes the entry for which it has * been called. */ - int test_num = 3; - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 4; - unsigned expected_index_len = 1; - size_t expected_index_size = VARIABLE_ENTRY_SIZE / 2; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 4, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr:*/ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 3; + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 1; + int check_size = 0; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 4; + unsigned expected_index_len = 1; + size_t expected_index_size = VARIABLE_ENTRY_SIZE / 2; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 4, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr:*/ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5067,53 +5117,58 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * which the call back function resizes the entry for which it has * been called. */ - int test_num = 4; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 4; - unsigned expected_index_len = 0; - size_t expected_index_size = 0; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 4, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 4; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 1; + int check_size = 0; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 4; + unsigned expected_index_len = 0; + size_t expected_index_size = 0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 4, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5135,53 +5190,58 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * be accompanied by a resize. Note that as a result, this * test becomes redundant with later tests. */ - int test_num = 5; /* and 6 */ - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 1; - size_t expected_index_size = VARIABLE_ENTRY_SIZE / 2; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 2, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 5; /* and 6 */ + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 1; + int check_size = 0; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 1; + size_t expected_index_size = VARIABLE_ENTRY_SIZE / 2; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 2, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5227,53 +5287,58 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * be accompanied by a resize. Note that as a result, this * test becomes redundant with later tests. */ - int test_num = 7; /* and 8 */ - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 1; - size_t expected_index_size = VARIABLE_ENTRY_SIZE / 2; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 2, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 7; /* and 8 */ + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 1; + int check_size = 0; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 1; + size_t expected_index_size = VARIABLE_ENTRY_SIZE / 2; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 2, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5315,53 +5380,58 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * Again, we run this entry twice, as the first run moves the entry * to its alternate address, and the second moves it back. */ - int test_num = 9; /* and 10 */ - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 2; - unsigned expected_index_len = 1; - size_t expected_index_size = VARIABLE_ENTRY_SIZE / 4; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 2, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 2, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 9; /* and 10 */ + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 1; + int check_size = 0; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 2; + unsigned expected_index_len = 1; + size_t expected_index_size = VARIABLE_ENTRY_SIZE / 4; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 2, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 2, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5401,53 +5471,58 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * Again, we run this entry twice, as the first run moves the entry to its * alternate address, and the second moves it back. */ - int test_num = 11; /* and 12 */ - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 2; - unsigned expected_index_len = 1; - size_t expected_index_size = VARIABLE_ENTRY_SIZE / 4; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 2, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 2, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 11; /* and 12 */ + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 1; + int check_size = 0; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = VARIABLE_ENTRY_SIZE / 2; + unsigned expected_index_len = 1; + size_t expected_index_size = VARIABLE_ENTRY_SIZE / 4; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 2, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 2, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5489,65 +5564,70 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * At present, I am assured that this case will never occur, but * lets make sure we can handle it regardless. */ - int test_num = 13; - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = 1 * PICO_ENTRY_SIZE; - unsigned expected_index_len = 3; - size_t expected_index_size = 3 * PICO_ENTRY_SIZE; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ 0, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 2, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, 0, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 2; - struct fo_flush_entry_check checks[2] = {{/* entry_num = */ 0, + int test_num = 13; + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 1; + int check_size = 2; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = 1 * PICO_ENTRY_SIZE; + unsigned expected_index_len = 3; + size_t expected_index_size = 3 * PICO_ENTRY_SIZE; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ 0, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 2, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, 0, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ PICO_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ PICO_ENTRY_SIZE, /* in_cache = */ TRUE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ PICO_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ PICO_ENTRY_SIZE, /* in_cache = */ TRUE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5566,65 +5646,70 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * At present, I am assured that this case will never occur, but * lets make sure we can handle it regardless. */ - int test_num = 14; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = 1 * PICO_ENTRY_SIZE; - unsigned expected_index_len = 0; - size_t expected_index_size = (size_t)0; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ 0, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 2, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, 0, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 2; - struct fo_flush_entry_check checks[2] = {{/* entry_num = */ 0, + int test_num = 14; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 1; + int check_size = 2; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = 1 * PICO_ENTRY_SIZE; + unsigned expected_index_len = 0; + size_t expected_index_size = (size_t)0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ 0, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 2, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, 0, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ PICO_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ PICO_ENTRY_SIZE, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ TRUE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ PICO_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ PICO_ENTRY_SIZE, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; + /* expected_destroyed = */ TRUE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5643,63 +5728,68 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) int test_num = 15; unsigned int flush_flags = H5C__NO_FLAGS_SET; int spec_size = 1; + int check_size = 2; unsigned init_expected_index_len = 1; size_t init_expected_index_size = 1 * VARIABLE_ENTRY_SIZE; unsigned expected_index_len = 3; size_t expected_index_size = VARIABLE_ENTRY_SIZE + (VARIABLE_ENTRY_SIZE / 4) + (VARIABLE_ENTRY_SIZE / 2); - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 4, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 2; - struct fo_flush_entry_check checks[2] = {{/* entry_num = */ 0, + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 4, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ TRUE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5717,65 +5807,70 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * At present, I am assured that this case will never occur, but * lets make sure we can handle it regardless. */ - int test_num = 16; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 1; - unsigned init_expected_index_len = 1; - size_t init_expected_index_size = 1 * VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 0; - size_t expected_index_size = (size_t)0; - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 4, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 2; - struct fo_flush_entry_check checks[2] = {{/* entry_num = */ 0, + int test_num = 16; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 1; + int check_size = 2; + unsigned init_expected_index_len = 1; + size_t init_expected_index_size = 1 * VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 0; + size_t expected_index_size = (size_t)0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 4, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ TRUE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; + /* expected_destroyed = */ TRUE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5794,63 +5889,68 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) int test_num = 17; /* and 18 */ unsigned int flush_flags = H5C__NO_FLAGS_SET; int spec_size = 1; + int check_size = 2; unsigned init_expected_index_len = 1; size_t init_expected_index_size = 1 * VARIABLE_ENTRY_SIZE; unsigned expected_index_len = 3; size_t expected_index_size = VARIABLE_ENTRY_SIZE + (VARIABLE_ENTRY_SIZE / 4) + (VARIABLE_ENTRY_SIZE / 2); - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 2; - struct fo_flush_entry_check checks[2] = {{/* entry_num = */ 0, + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -5893,63 +5993,68 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) int test_num = 19; /* and 20 */ unsigned int flush_flags = H5C__NO_FLAGS_SET; int spec_size = 1; + int check_size = 2; unsigned init_expected_index_len = 1; size_t init_expected_index_size = 1 * VARIABLE_ENTRY_SIZE; unsigned expected_index_len = 3; size_t expected_index_size = VARIABLE_ENTRY_SIZE + (VARIABLE_ENTRY_SIZE / 4) + (VARIABLE_ENTRY_SIZE / 2); - struct fo_flush_cache_test_spec spec[1] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 2; - struct fo_flush_entry_check checks[2] = {{/* entry_num = */ 0, + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -6003,165 +6108,173 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) int test_num = 21; unsigned int flush_flags = H5C__FLUSH_MARKED_ENTRIES_FLAG; int spec_size = 4; + int check_size = 4; unsigned init_expected_index_len = 4; size_t init_expected_index_size = (2 * VARIABLE_ENTRY_SIZE) + (2 * PICO_ENTRY_SIZE); unsigned expected_index_len = 6; size_t expected_index_size = (2 * VARIABLE_ENTRY_SIZE) + (VARIABLE_ENTRY_SIZE / 4) + (VARIABLE_ENTRY_SIZE / 2) + (2 * PICO_ENTRY_SIZE); - struct fo_flush_cache_test_spec spec[4] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG | H5C__SET_FLUSH_MARKER_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 11, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG | H5C__SET_FLUSH_MARKER_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 3, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; - int check_size = 4; - struct fo_flush_entry_check checks[4] = {{/* entry_num = */ 0, + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG | H5C__SET_FLUSH_MARKER_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 11, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ FALSE, + /* expected_destroyed = */ FALSE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG | H5C__SET_FLUSH_MARKER_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ FALSE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ TRUE, + /* is_dirty = */ TRUE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ TRUE, + /* is_dirty = */ TRUE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, + /* expected_destroyed = */ FALSE}; + checks[2] = (struct fo_flush_entry_check){/* entry_num = */ 2, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 10, /* expected_size = */ VARIABLE_ENTRY_SIZE, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 3, + /* expected_destroyed = */ FALSE}; + checks[3] = (struct fo_flush_entry_check){/* entry_num = */ 3, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 12, /* expected_size = */ VARIABLE_ENTRY_SIZE, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -6183,217 +6296,227 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) int test_num = 22; unsigned int flush_flags = H5C__NO_FLAGS_SET; int spec_size = 6; + int check_size = 4; unsigned init_expected_index_len = 6; size_t init_expected_index_size = (2 * VARIABLE_ENTRY_SIZE) + (4 * PICO_ENTRY_SIZE); unsigned expected_index_len = 10; size_t expected_index_size = (2 * VARIABLE_ENTRY_SIZE) + (2 * (VARIABLE_ENTRY_SIZE / 4)) + (2 * (VARIABLE_ENTRY_SIZE / 2)) + (4 * PICO_ENTRY_SIZE); - struct fo_flush_cache_test_spec spec[6] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 11, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 3, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 4, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 10, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 5, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 20, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 4; - struct fo_flush_entry_check checks[4] = {{/* entry_num = */ 0, + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 11, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ FALSE, + /* expected_destroyed = */ FALSE}; + spec[4] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 4, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 10, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[5] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 5, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 20, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, + /* expected_destroyed = */ FALSE}; + checks[2] = (struct fo_flush_entry_check){/* entry_num = */ 2, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 10, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 3, + /* expected_destroyed = */ FALSE}; + checks[3] = (struct fo_flush_entry_check){/* entry_num = */ 3, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 12, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -6414,219 +6537,229 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * Also load entries that have flush ops on entries that are in * cache. */ - int test_num = 23; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 6; - unsigned init_expected_index_len = 6; - size_t init_expected_index_size = (2 * VARIABLE_ENTRY_SIZE) + (4 * PICO_ENTRY_SIZE); - unsigned expected_index_len = 0; - size_t expected_index_size = 0; - struct fo_flush_cache_test_spec spec[6] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 11, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 6, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 2, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 0, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 3, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 1, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ FALSE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 4, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 10, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 5, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 20, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 4; - struct fo_flush_entry_check checks[4] = {{/* entry_num = */ 0, + int test_num = 23; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 6; + int check_size = 4; + unsigned init_expected_index_len = 6; + size_t init_expected_index_size = (2 * VARIABLE_ENTRY_SIZE) + (4 * PICO_ENTRY_SIZE); + unsigned expected_index_len = 0; + size_t expected_index_size = 0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 11, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 6, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 10, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 12, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 0, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 1, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ FALSE, + /* expected_destroyed = */ TRUE}; + spec[4] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 4, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 10, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[5] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 5, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 20, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 0, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ TRUE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 2, + /* expected_destroyed = */ TRUE}; + checks[2] = (struct fo_flush_entry_check){/* entry_num = */ 2, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 10, /* expected_size = */ VARIABLE_ENTRY_SIZE / 4, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 3, + /* expected_destroyed = */ TRUE}; + checks[3] = (struct fo_flush_entry_check){/* entry_num = */ 3, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 12, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; + /* expected_destroyed = */ TRUE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -6643,105 +6776,112 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) /* Pico entries 50 and 150 pin pico entry 100, and also dirty * pico entry 100 on flush. */ - int test_num = 24; - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 3; - unsigned init_expected_index_len = 3; - size_t init_expected_index_size = 3 * PICO_ENTRY_SIZE; - unsigned expected_index_len = 3; - size_t expected_index_size = 3 * PICO_ENTRY_SIZE; - struct fo_flush_cache_test_spec spec[3] = { - {/* entry_num = */ 0, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 100, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 50, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 1, - /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 150, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 1, - /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 24; + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 3; + int check_size = 0; + unsigned init_expected_index_len = 3; + size_t init_expected_index_size = 3 * PICO_ENTRY_SIZE; + unsigned expected_index_len = 3; + size_t expected_index_size = 3 * PICO_ENTRY_SIZE; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 100, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 50, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 1, + /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 150, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 1, + /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -6755,105 +6895,112 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * Pico entries 50 and 150 pin pico entry 100, and also dirty * pico entry 100 on flush. */ - int test_num = 25; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 3; - unsigned init_expected_index_len = 3; - size_t init_expected_index_size = 3 * PICO_ENTRY_SIZE; - unsigned expected_index_len = 0; - size_t expected_index_size = (size_t)0; - struct fo_flush_cache_test_spec spec[3] = { - {/* entry_num = */ 0, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 100, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 50, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 1, - /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 2, - /* entry_type = */ PICO_ENTRY_TYPE, - /* entry_index = */ 150, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 1, - /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 1, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 25; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 3; + int check_size = 0; + unsigned init_expected_index_len = 3; + size_t init_expected_index_size = 3 * PICO_ENTRY_SIZE; + unsigned expected_index_len = 0; + size_t expected_index_size = (size_t)0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 100, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 50, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 1, + /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ PICO_ENTRY_TYPE, + /* entry_index = */ 150, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 1, + /* pin_type = */ {PICO_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 1, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ (size_t)0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -6937,313 +7084,325 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * dirties (VET, 650) * dirties (VET, 750) */ - int test_num = 26; - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 10; - unsigned init_expected_index_len = 10; - size_t init_expected_index_size = 10 * VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 13; - size_t expected_index_size = 9 * VARIABLE_ENTRY_SIZE; - struct fo_flush_cache_test_spec spec[10] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 200, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 2100, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 2300, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 3, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1000, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 4, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 4, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 2000, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2300, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 5, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 350, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 350, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 6, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 450, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 450, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 7, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 650, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 650, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 8, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 750, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 750, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 9, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 500, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 4, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 350, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 450, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 650, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 750, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 3; - struct fo_flush_entry_check checks[3] = {{/* entry_num = */ 0, + int test_num = 26; + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 10; + int check_size = 3; + unsigned init_expected_index_len = 10; + size_t init_expected_index_size = 10 * VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 13; + size_t expected_index_size = 9 * VARIABLE_ENTRY_SIZE; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 200, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 2100, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 2300, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1000, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 4, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[4] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 4, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 2000, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2300, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[5] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 5, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 350, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 350, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[6] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 6, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 450, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 450, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[7] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 7, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 650, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 650, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[8] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 8, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 750, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 750, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[9] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 9, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 500, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 4, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 350, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 450, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 650, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 750, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 100, /* expected_size = */ VARIABLE_ENTRY_SIZE, /* in_cache = */ TRUE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ FALSE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 300, /* expected_size = */ VARIABLE_ENTRY_SIZE, /* in_cache = */ TRUE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, + /* expected_destroyed = */ FALSE}; + checks[2] = (struct fo_flush_entry_check){/* entry_num = */ 2, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2200, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ TRUE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE} - - }; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -7333,313 +7492,325 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * dirties (VET, 650) * dirties (VET, 750) */ - int test_num = 27; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 10; - unsigned init_expected_index_len = 10; - size_t init_expected_index_size = 10 * VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 0; - size_t expected_index_size = (size_t)0; - struct fo_flush_cache_test_spec spec[10] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 200, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 2100, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 2, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 2300, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 3, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 1000, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 4, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 4, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 2000, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2300, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 5, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 350, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 350, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 6, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 450, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 450, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 7, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 650, - /* insert_flag = */ TRUE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 650, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ FALSE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 8, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 750, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 2, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 750, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 9, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 500, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 4, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 350, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 450, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 650, FALSE, 0, NULL}, - {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 750, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 3; - struct fo_flush_entry_check checks[3] = {{/* entry_num = */ 0, + int test_num = 27; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 10; + int check_size = 3; + unsigned init_expected_index_len = 10; + size_t init_expected_index_size = 10 * VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 0; + size_t expected_index_size = (size_t)0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 200, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 2100, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 2300, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 1000, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 4, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[4] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 4, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 2000, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2200, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 2300, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[5] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 5, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 350, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 350, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[6] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 6, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 450, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 450, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[7] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 7, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 650, + /* insert_flag = */ TRUE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 650, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ FALSE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[8] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 8, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 750, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 2, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 750, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[9] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 9, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 500, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 4, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 350, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 450, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 650, FALSE, 0, NULL}, + {FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 750, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 100, /* expected_size = */ VARIABLE_ENTRY_SIZE, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, + /* expected_destroyed = */ TRUE}; + checks[1] = (struct fo_flush_entry_check){/* entry_num = */ 1, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 300, /* expected_size = */ VARIABLE_ENTRY_SIZE, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 2, + /* expected_destroyed = */ TRUE}; + checks[2] = (struct fo_flush_entry_check){/* entry_num = */ 2, /* entry_type = */ VARIABLE_ENTRY_TYPE, /* entry_index = */ 2200, /* expected_size = */ VARIABLE_ENTRY_SIZE / 2, /* in_cache = */ FALSE, /* at_main_addr = */ TRUE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ TRUE, /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE} - - }; + /* expected_destroyed = */ TRUE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -7654,157 +7825,166 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * and resizes itself, and dirties an entry which it has * pinned. */ - int test_num = 28; - unsigned int flush_flags = H5C__NO_FLAGS_SET; - int spec_size = 5; - unsigned init_expected_index_len = 5; - size_t init_expected_index_size = 3 * VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 5; - size_t expected_index_size = 4 * VARIABLE_ENTRY_SIZE; - struct fo_flush_cache_test_spec spec[5] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 100, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 200, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 2, - /* num_pins = */ 1, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 200, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 2, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 300, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 4, - /* num_pins = */ 1, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {400, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 400, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 300, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 3, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 400, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}, - {/* entry_num = */ 4, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 500, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 4, - /* num_pins = */ 1, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 500, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 500, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ FALSE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 28; + unsigned int flush_flags = H5C__NO_FLAGS_SET; + int spec_size = 5; + int check_size = 0; + unsigned init_expected_index_len = 5; + size_t init_expected_index_size = 3 * VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 5; + size_t expected_index_size = 4 * VARIABLE_ENTRY_SIZE; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 100, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 200, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 2, + /* num_pins = */ 1, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 200, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 300, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 4, + /* num_pins = */ 1, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {400, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 400, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 300, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 400, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + spec[4] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 4, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 500, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 4, + /* num_pins = */ 1, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 500, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 500, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ FALSE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ 0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -7821,157 +8001,166 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) * and resizes itself, and dirties an entry which it has * pinned. */ - int test_num = 29; - unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; - int spec_size = 5; - unsigned init_expected_index_len = 5; - size_t init_expected_index_size = 3 * VARIABLE_ENTRY_SIZE; - unsigned expected_index_len = 0; - size_t expected_index_size = 0; - struct fo_flush_cache_test_spec spec[5] = { - {/* entry_num = */ 0, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 100, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 1, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 200, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 2, - /* num_pins = */ 1, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 200, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 2, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 300, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 4, - /* num_pins = */ 1, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {400, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 400, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 300, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 3, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 400, - /* insert_flag = */ FALSE, - /* flags = */ H5C__NO_FLAGS_SET, - /* resize_flag = */ FALSE, - /* new_size = */ 0, - /* num_pins = */ 0, - /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 0, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}, - {/* entry_num = */ 4, - /* entry_type = */ VARIABLE_ENTRY_TYPE, - /* entry_index = */ 500, - /* insert_flag = */ FALSE, - /* flags = */ H5C__DIRTIED_FLAG, - /* resize_flag = */ TRUE, - /* new_size = */ VARIABLE_ENTRY_SIZE / 4, - /* num_pins = */ 1, - /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, - /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, - /* num_flush_ops = */ 3, - /* flush_ops = */ - /* op_code: type: idx: flag: size: order_ptr: */ - {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, - {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 500, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, - {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 500, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, - {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, - /* expected_deserialized = */ TRUE, - /* expected_serialized = */ TRUE, - /* expected_destroyed = */ TRUE}}; - int check_size = 0; - struct fo_flush_entry_check checks[1] = {{/* entry_num = */ 0, + int test_num = 29; + unsigned int flush_flags = H5C__FLUSH_INVALIDATE_FLAG; + int spec_size = 5; + int check_size = 0; + unsigned init_expected_index_len = 5; + size_t init_expected_index_size = 3 * VARIABLE_ENTRY_SIZE; + unsigned expected_index_len = 0; + size_t expected_index_size = 0; + + HDassert(spec_size <= max_num_spec); + HDassert(check_size <= max_num_check); + + spec[0] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 0, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 100, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[1] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 1, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 200, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 2, + /* num_pins = */ 1, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 200, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[2] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 2, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 300, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 4, + /* num_pins = */ 1, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {400, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 400, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 300, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 300, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[3] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 3, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 400, + /* insert_flag = */ FALSE, + /* flags = */ H5C__NO_FLAGS_SET, + /* resize_flag = */ FALSE, + /* new_size = */ 0, + /* num_pins = */ 0, + /* pin_type = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 0, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + spec[4] = (struct fo_flush_cache_test_spec){ + /* entry_num = */ 4, + /* entry_type = */ VARIABLE_ENTRY_TYPE, + /* entry_index = */ 500, + /* insert_flag = */ FALSE, + /* flags = */ H5C__DIRTIED_FLAG, + /* resize_flag = */ TRUE, + /* new_size = */ VARIABLE_ENTRY_SIZE / 4, + /* num_pins = */ 1, + /* pin_type = */ {VARIABLE_ENTRY_TYPE, 0, 0, 0, 0, 0, 0, 0}, + /* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0}, + /* num_flush_ops = */ 3, + /* flush_ops = */ + /* op_code: type: idx: flag: size: order_ptr: */ + {{FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0, NULL}, + {FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 500, FALSE, VARIABLE_ENTRY_SIZE / 2, NULL}, + {FLUSH_OP__MOVE, VARIABLE_ENTRY_TYPE, 500, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}, + {FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL}}, + /* expected_deserialized = */ TRUE, + /* expected_serialized = */ TRUE, + /* expected_destroyed = */ TRUE}; + + checks[0] = (struct fo_flush_entry_check){/* entry_num = */ 0, /* entry_type = */ 0, /* entry_index = */ 0, /* expected_size = */ 0, /* in_cache = */ FALSE, /* at_main_addr = */ FALSE, - /* is_dirty = */ FALSE, + /* is_dirty = */ FALSE, /* is_protected = */ FALSE, /* is_pinned = */ FALSE, /* expected_deserialized = */ FALSE, /* expected_serialized = */ FALSE, - /* expected_destroyed = */ FALSE}}; + /* expected_destroyed = */ FALSE}; check_flush_cache__flush_op_test(file_ptr, test_num, flush_flags, spec_size, spec, init_expected_index_len, init_expected_index_size, @@ -7980,6 +8169,9 @@ check_flush_cache__flush_ops(H5F_t *file_ptr) reset_entries(); } + HDfree(checks); + HDfree(spec); + /* finally finish up with the flush ops eviction test */ check_flush_cache__flush_op_eviction_test(file_ptr); @@ -8418,1013 +8610,125 @@ check_flush_cache__flush_op_test(H5F_t *file_ptr, int test_num, unsigned int flu static void check_flush_cache__flush_op_eviction_test(H5F_t *file_ptr) { - H5C_t * cache_ptr = file_ptr->shared->cache; - int i; - int num_variable_entries = 10; - int num_monster_entries = 31; - int num_large_entries = 0; - test_entry_t * entry_ptr; - test_entry_t * base_addr; - struct expected_entry_status expected[10 + 31 + 14] = { + struct expected_entry_status *expected = NULL; + H5C_t * cache_ptr = file_ptr->shared->cache; + int i; + const int num_variable_entries = 10; + const int num_monster_entries = 31; + int num_large_entries = 14; + const int num_total_entries = num_variable_entries + num_monster_entries + num_large_entries; + test_entry_t *entry_ptr; + test_entry_t *base_addr; + + expected = HDmalloc((size_t)num_total_entries * sizeof(struct expected_entry_status)); + if (expected == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocate expected entry status array\n"; + } + + if (expected) { /* the expected array is used to maintain a table of the expected status of every * entry used in this test. Note that since the function that processes this * array only processes as much of it as it is told to, we don't have to * worry about maintaining the status of entries that we haven't used yet. */ - /* entry entry in at main flush dep flush dep child flush flush - flush */ - /* type: index: size: cache: addr: dirty: prot: pinned: dsrlzd: - srlzd: dest: par type[]: par idx[]: dep npart: dep nchd: dep ndirty chd: order: corked: */ - {VARIABLE_ENTRY_TYPE, - 0, - VARIABLE_ENTRY_SIZE / 4, - TRUE, - TRUE, - TRUE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 1, - VARIABLE_ENTRY_SIZE / 4, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 2, - VARIABLE_ENTRY_SIZE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 3, - VARIABLE_ENTRY_SIZE / 4, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 4, - VARIABLE_ENTRY_SIZE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 5, - VARIABLE_ENTRY_SIZE / 4, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 6, - VARIABLE_ENTRY_SIZE / 2, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 7, - VARIABLE_ENTRY_SIZE / 2, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 8, - VARIABLE_ENTRY_SIZE, - TRUE, - TRUE, - FALSE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {VARIABLE_ENTRY_TYPE, - 9, - VARIABLE_ENTRY_SIZE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 0, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 1, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 2, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 3, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 4, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 5, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 6, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 7, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 8, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 9, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 10, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 11, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 12, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 13, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 14, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 15, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 16, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 17, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 18, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 19, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 20, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 21, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 22, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 23, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 24, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 25, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 26, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 27, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 28, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 29, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {MONSTER_ENTRY_TYPE, - 30, - MONSTER_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 0, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 1, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 2, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 3, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 4, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 5, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 6, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 7, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 8, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 9, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 10, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 11, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 12, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}, - {LARGE_ENTRY_TYPE, - 13, - LARGE_ENTRY_SIZE, - TRUE, - TRUE, - TRUE, - FALSE, - FALSE, - TRUE, - FALSE, - FALSE, - {0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0}, - 0, - 0, - 0, - -1, - FALSE}}; + for (i = 0; i < num_variable_entries; i++) { + expected[i].entry_type = VARIABLE_ENTRY_TYPE; + expected[i].entry_index = (int)(i); + expected[i].size = VARIABLE_ENTRY_SIZE; + expected[i].in_cache = TRUE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = TRUE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = TRUE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + HDmemset(expected[i].flush_dep_par_type, 0, sizeof(expected[i].flush_dep_par_type)); + HDmemset(expected[i].flush_dep_par_idx, 0, sizeof(expected[i].flush_dep_par_idx)); + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + /* NOTE: special cases for particular variable entries */ + expected[0].size = VARIABLE_ENTRY_SIZE / 4; + expected[0].is_pinned = TRUE; + + expected[1].size = VARIABLE_ENTRY_SIZE / 4; + + expected[2].is_dirty = FALSE; + + expected[3].size = VARIABLE_ENTRY_SIZE / 4; + + expected[4].is_dirty = FALSE; + + expected[5].size = VARIABLE_ENTRY_SIZE / 4; + + expected[6].size = VARIABLE_ENTRY_SIZE / 2; + + expected[7].size = VARIABLE_ENTRY_SIZE / 2; + + expected[8].is_dirty = FALSE; + + expected[9].is_dirty = FALSE; + expected[9].is_pinned = TRUE; + + for (; i < num_variable_entries + num_monster_entries; i++) { + expected[i].entry_type = MONSTER_ENTRY_TYPE; + expected[i].entry_index = (int)(i - num_variable_entries); + expected[i].size = MONSTER_ENTRY_SIZE; + expected[i].in_cache = TRUE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = TRUE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = TRUE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + HDmemset(expected[i].flush_dep_par_type, 0, sizeof(expected[i].flush_dep_par_type)); + HDmemset(expected[i].flush_dep_par_idx, 0, sizeof(expected[i].flush_dep_par_idx)); + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + for (; i < num_total_entries; i++) { + expected[i].entry_type = LARGE_ENTRY_TYPE; + expected[i].entry_index = (int)(i - num_monster_entries - num_variable_entries); + expected[i].size = LARGE_ENTRY_SIZE; + expected[i].in_cache = TRUE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = TRUE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = TRUE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + HDmemset(expected[i].flush_dep_par_type, 0, sizeof(expected[i].flush_dep_par_type)); + HDmemset(expected[i].flush_dep_par_idx, 0, sizeof(expected[i].flush_dep_par_idx)); + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + HDassert(i == num_total_entries); + + pass = TRUE; + } if (pass) { @@ -10534,6 +9838,8 @@ check_flush_cache__flush_op_eviction_test(H5F_t *file_ptr) reset_entries(); } + HDfree(expected); + } /* check_flush_cache__flush_op_eviction_test() */ /*------------------------------------------------------------------------- @@ -11604,8 +10910,17 @@ check_flush_cache__single_entry(H5F_t *file_ptr) if (pass) { - int i; - struct pinned_single_entry_test_spec { + struct pinned_single_entry_test_spec *spec = NULL; + size_t i; + + spec = HDmalloc(256 * sizeof(struct pinned_single_entry_test_spec)); + if (spec == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocated pinned single entry test spec array"; + } + + for (i = 0; i < 256; i++) { int test_num; int entry_type; int entry_idx; @@ -11618,529 +10933,89 @@ check_flush_cache__single_entry(H5F_t *file_ptr) unsigned int flush_flags; hbool_t expected_serialized; hbool_t expected_destroyed; - } spec[256] = - /* pop pop - * ent unprot mark mark - * test entry -ry dirty mark dirty dirty unprot flush expect expect num type - * idx flag dirty prot pinned unpin flags flags srlzd destroy + + test_num = (int)(i + 1); + entry_type = PICO_ENTRY_TYPE; + entry_idx = 0; + + /* Generate alternating sequences of TRUE/FALSE */ + dirty_flag = (i / 16) % 2; + mark_dirty = (i / 8) % 2; + pop_mark_dirty_prot = (i / 4) % 2; + pop_mark_dirty_pinned = (i / 2) % 2; + unprotect_unpin = i % 2; + + /* Generate alternating sequences of H5C__NO_FLAGS_SET + * and H5C__SET_FLUSH_MARKER_FLAG + */ + if ((i / 32) % 2) + flags = H5C__SET_FLUSH_MARKER_FLAG; + else + flags = H5C__NO_FLAGS_SET; + + /* + * Generate sequences of H5C__NO_FLAGS_SET, + * H5C__FLUSH_MARKED_ENTRIES_FLAG, H5C__FLUSH_CLEAR_ONLY_FLAG + * and H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG */ - {{1, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - FALSE, FALSE}, - {2, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - FALSE, FALSE}, - {3, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {4, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {5, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {6, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {7, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {8, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {9, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {10, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {11, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {12, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {13, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {14, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {15, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {16, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {17, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {18, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {19, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {20, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {21, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {22, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {23, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {24, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {25, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {26, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {27, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {28, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {29, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {30, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {31, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {32, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, H5C__NO_FLAGS_SET, - TRUE, FALSE}, - {33, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, FALSE, FALSE}, - {34, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, FALSE, FALSE}, - {35, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {36, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {37, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {38, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {39, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {40, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {41, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {42, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {43, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {44, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {45, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {46, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {47, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {48, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {49, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {50, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {51, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {52, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {53, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {54, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {55, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {56, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {57, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {58, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {59, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {60, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {61, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {62, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {63, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {64, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__NO_FLAGS_SET, TRUE, FALSE}, - {65, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {66, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {67, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {68, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {69, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {70, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {71, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {72, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {73, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {74, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {75, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {76, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {77, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {78, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {79, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {80, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {81, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {82, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {83, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {84, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {85, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {86, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {87, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {88, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {89, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {90, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {91, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {92, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {93, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {94, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {95, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {96, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {97, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {98, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {99, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {100, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {101, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {102, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {103, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {104, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {105, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {106, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {107, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {108, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, FALSE, FALSE}, - {109, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {110, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {111, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {112, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {113, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {114, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {115, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {116, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {117, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {118, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {119, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {120, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {121, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {122, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {123, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {124, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {125, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {126, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {127, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {128, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG, TRUE, FALSE}, - {129, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {130, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {131, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {132, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {133, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {134, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {135, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {136, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {137, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {138, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {139, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {140, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {141, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {142, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {143, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {144, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {145, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {146, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {147, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {148, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {149, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {150, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {151, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {152, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {153, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {154, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {155, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {156, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {157, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {158, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {159, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {160, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {161, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {162, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {163, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {164, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {165, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {166, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {167, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {168, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {169, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {170, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {171, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {172, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {173, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {174, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {175, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {176, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {177, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {178, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {179, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {180, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {181, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {182, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {183, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {184, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {185, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {186, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {187, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {188, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {189, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {190, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {191, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {192, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {193, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {194, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {195, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {196, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {197, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {198, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {199, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {200, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {201, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {202, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {203, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {204, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {205, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {206, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {207, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {208, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {209, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {210, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {211, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {212, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {213, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {214, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {215, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {216, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {217, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {218, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {219, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {220, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {221, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {222, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {223, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {224, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__NO_FLAGS_SET, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {225, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {226, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {227, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {228, PICO_ENTRY_TYPE, 0, FALSE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {229, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {230, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {231, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {232, PICO_ENTRY_TYPE, 0, FALSE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {233, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {234, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {235, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {236, PICO_ENTRY_TYPE, 0, FALSE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {237, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {238, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {239, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {240, PICO_ENTRY_TYPE, 0, FALSE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {241, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {242, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {243, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {244, PICO_ENTRY_TYPE, 0, TRUE, FALSE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {245, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {246, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {247, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {248, PICO_ENTRY_TYPE, 0, TRUE, FALSE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {249, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {250, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {251, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {252, PICO_ENTRY_TYPE, 0, TRUE, TRUE, FALSE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {253, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {254, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, FALSE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {255, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, FALSE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}, - {256, PICO_ENTRY_TYPE, 0, TRUE, TRUE, TRUE, TRUE, TRUE, H5C__SET_FLUSH_MARKER_FLAG, - H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG, FALSE, FALSE}}; + switch (i / 64) { + case 0: + flush_flags = H5C__NO_FLAGS_SET; + break; + case 1: + flush_flags = H5C__FLUSH_MARKED_ENTRIES_FLAG; + break; + case 2: + flush_flags = H5C__FLUSH_CLEAR_ONLY_FLAG; + break; + case 3: + flush_flags = H5C__FLUSH_MARKED_ENTRIES_FLAG | H5C__FLUSH_CLEAR_ONLY_FLAG; + break; + default: + flush_flags = H5C__NO_FLAGS_SET; + break; + } + + expected_serialized = FALSE; + if (0 == (flush_flags & H5C__FLUSH_CLEAR_ONLY_FLAG)) { + if (flush_flags & H5C__FLUSH_MARKED_ENTRIES_FLAG) { + if (flags & H5C__SET_FLUSH_MARKER_FLAG) { + if (mark_dirty && pop_mark_dirty_prot) { + expected_serialized = TRUE; + } + else if (dirty_flag || pop_mark_dirty_prot) { + expected_serialized = TRUE; + } + } + } + else { + if (dirty_flag || mark_dirty || pop_mark_dirty_prot || pop_mark_dirty_pinned) + expected_serialized = TRUE; + } + } + + expected_destroyed = FALSE; + + spec[i] = (struct pinned_single_entry_test_spec){ + test_num, + entry_type, + entry_idx, + dirty_flag, + mark_dirty, + pop_mark_dirty_prot, + pop_mark_dirty_pinned, + unprotect_unpin, + flags, + flush_flags, + expected_serialized, + expected_destroyed, + }; + } i = 0; while (pass && (i < 256)) { check_flush_cache__pinned_single_entry_test( - /* file_ptr */ file_ptr, + /* file_ptr */ file_ptr, /* test_num */ spec[i].test_num, /* entry_type */ spec[i].entry_type, /* entry_idx */ spec[i].entry_idx, @@ -12155,6 +11030,8 @@ check_flush_cache__single_entry(H5F_t *file_ptr) /* expected_destroyed */ spec[i].expected_destroyed); i++; } + + HDfree(spec); } } /* check_flush_cache__single_entry() */ @@ -26868,182 +25745,57 @@ check_auto_cache_resize_aux_fcns(unsigned paged) static unsigned check_metadata_blizzard_absence(hbool_t fill_via_insertion, unsigned paged) { - int entry_type = HUGE_ENTRY_TYPE; - size_t entry_size = HUGE_ENTRY_SIZE; /* 16 KB */ - H5F_t * file_ptr = NULL; - H5C_t * cache_ptr = NULL; - hbool_t show_progress = FALSE; - int32_t checkpoint = 0; - int32_t entry_idx = 0; - int32_t i; + struct expected_entry_status *expected = NULL; + int entry_type = HUGE_ENTRY_TYPE; + size_t entry_size = HUGE_ENTRY_SIZE; /* 16 KB */ + H5F_t * file_ptr = NULL; + H5C_t * cache_ptr = NULL; + hbool_t show_progress = FALSE; + int32_t checkpoint = 0; + int32_t entry_idx = 0; + int32_t i; /* Expected deserialized status of entries depends on how they get into * the cache. Insertions = not deserialized, protect/unprotect = deserialized. */ hbool_t deserialized = (hbool_t) !(fill_via_insertion); - /* Set up the expected array. This is used to maintain a table of the - * expected status of every entry used in this test. - */ - /* clang-format off */ - struct expected_entry_status expected[150] = - { - /* entry entry in at main flush dep flush dep child flush flush flush */ - /* type: index: size: cache: addr: dirty: prot: pinned: dsrlzd: srlzd: dest: par type[]: par idx[]: dep npart: dep nchd: dep ndirty chd: order: corked: */ - { HUGE_ENTRY_TYPE, 0, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 1, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 2, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 3, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 4, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 5, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 6, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 7, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 8, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 9, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 10, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 11, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 12, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 13, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 14, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 15, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 16, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 17, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 18, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 19, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 20, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 21, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 22, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 23, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 24, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 25, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 26, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 27, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 28, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 29, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 30, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 31, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 32, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 33, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 34, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 35, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 36, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 37, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 38, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 39, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 40, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 41, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 42, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 43, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 44, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 45, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 46, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 47, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 48, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 49, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 50, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 51, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 52, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 53, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 54, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 55, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 56, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 57, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 58, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 59, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 60, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 61, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 62, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 63, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 64, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 65, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 66, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 67, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 68, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 69, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 70, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 71, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 72, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 73, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 74, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 75, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 76, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 77, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 78, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 79, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 80, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 81, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 82, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 83, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 84, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 85, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 86, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 87, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 88, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 89, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 90, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 91, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 92, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 93, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 94, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 95, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 96, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 97, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 98, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 99, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 100, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 101, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 102, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 103, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 104, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 105, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 106, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 107, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 108, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 109, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 110, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 111, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 112, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 113, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 114, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 115, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 116, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 117, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 118, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 119, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 120, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 121, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 122, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 123, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 124, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 125, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 126, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 127, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 128, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 129, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 130, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 131, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 132, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 133, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 134, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 135, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 136, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 137, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 138, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 139, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 140, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 141, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 142, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 143, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 144, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 145, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 146, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 147, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 148, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 149, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE} - }; - /* clang-format on */ + expected = HDmalloc(150 * sizeof(struct expected_entry_status)); + if (expected == NULL) { - pass = TRUE; + pass = FALSE; + failure_mssg = "couldn't allocate expected entry status array\n"; + } + + if (expected) { + /* Set up the expected array. This is used to maintain a table of the + * expected status of every entry used in this test. + */ + for (i = 0; i < 150; i++) { + expected[i].entry_type = HUGE_ENTRY_TYPE; + expected[i].entry_index = (int)i; + expected[i].size = HUGE_ENTRY_SIZE; + expected[i].in_cache = FALSE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = FALSE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = FALSE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + HDmemset(expected[i].flush_dep_par_type, 0, sizeof(expected[i].flush_dep_par_type)); + HDmemset(expected[i].flush_dep_par_idx, 0, sizeof(expected[i].flush_dep_par_idx)); + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + pass = TRUE; + } reset_entries(); @@ -27684,6 +26436,8 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion, unsigned paged) if (show_progress) /* 12 */ HDfprintf(stdout, "%s: check point %d -- pass %d\n", FUNC, checkpoint++, pass); + HDfree(expected); + if (pass) { PASSED(); } @@ -32855,183 +31609,58 @@ done: static unsigned check_metadata_cork(hbool_t fill_via_insertion, unsigned paged) { - const char *fcn_name = "check_metadata_cork"; - int entry_type = HUGE_ENTRY_TYPE; - size_t entry_size = HUGE_ENTRY_SIZE; /* 16 KB */ - H5F_t * file_ptr = NULL; - H5C_t * cache_ptr = NULL; - hbool_t show_progress = FALSE; - int32_t checkpoint = 0; - int32_t entry_idx = 0; - int32_t i; + struct expected_entry_status *expected = NULL; + const char * fcn_name = "check_metadata_cork"; + int entry_type = HUGE_ENTRY_TYPE; + size_t entry_size = HUGE_ENTRY_SIZE; /* 16 KB */ + H5F_t * file_ptr = NULL; + H5C_t * cache_ptr = NULL; + hbool_t show_progress = FALSE; + int32_t checkpoint = 0; + int32_t entry_idx = 0; + int32_t i; /* Expected deserialized status of entries depends on how they get into * the cache. Insertions = not deserialized, protect/unprotect = deserialized. */ hbool_t deserialized = (hbool_t) !(fill_via_insertion); - /* Set up the expected array. This is used to maintain a table of the - * expected status of every entry used in this test. - */ - /* clang-format off */ - struct expected_entry_status expected[150] = - { - /* entry entry in at main flush dep flush dep child flush flush flush */ - /* type: index: size: cache: addr: dirty: prot: pinned: dsrlzd: srlzd: dest: par type[]: par idx[]: dep npart: dep nchd: dep ndirty chd: order: corked: */ - { HUGE_ENTRY_TYPE, 0, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 1, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 2, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 3, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 4, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 5, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 6, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 7, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 8, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 9, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 10, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 11, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 12, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 13, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 14, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 15, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 16, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 17, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 18, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 19, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 20, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 21, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 22, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 23, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 24, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 25, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 26, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 27, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 28, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 29, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 30, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 31, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 32, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 33, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 34, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 35, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 36, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 37, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 38, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 39, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 40, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 41, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 42, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 43, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 44, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 45, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 46, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 47, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 48, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 49, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 50, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 51, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 52, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 53, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 54, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 55, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 56, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 57, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 58, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 59, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 60, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 61, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 62, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 63, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 64, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 65, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 66, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 67, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 68, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 69, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 70, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 71, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 72, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 73, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 74, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 75, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 76, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 77, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 78, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 79, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 80, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 81, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 82, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 83, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 84, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 85, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 86, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 87, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 88, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 89, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 90, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 91, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 92, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 93, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 94, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 95, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 96, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 97, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 98, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 99, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 100, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 101, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 102, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 103, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 104, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 105, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 106, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 107, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 108, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 109, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 110, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 111, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 112, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 113, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 114, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 115, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 116, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 117, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 118, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 119, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 120, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 121, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 122, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 123, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 124, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 125, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 126, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 127, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 128, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 129, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 130, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 131, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 132, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 133, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 134, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 135, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 136, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 137, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 138, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 139, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 140, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 141, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 142, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 143, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 144, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 145, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 146, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 147, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 148, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 149, HUGE_ENTRY_SIZE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, 0, 0, 0, -1, FALSE} - } ; - /* clang-format on */ + expected = HDmalloc(150 * sizeof(struct expected_entry_status)); + if (expected == NULL) { - pass = TRUE; + pass = FALSE; + failure_mssg = "couldn't allocate expected entry status array\n"; + } + + if (expected) { + /* Set up the expected array. This is used to maintain a table of the + * expected status of every entry used in this test. + */ + for (i = 0; i < 150; i++) { + expected[i].entry_type = HUGE_ENTRY_TYPE; + expected[i].entry_index = (int)i; + expected[i].size = HUGE_ENTRY_SIZE; + expected[i].in_cache = FALSE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = FALSE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = FALSE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + HDmemset(expected[i].flush_dep_par_type, 0, sizeof(expected[i].flush_dep_par_type)); + HDmemset(expected[i].flush_dep_par_idx, 0, sizeof(expected[i].flush_dep_par_idx)); + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + pass = TRUE; + } reset_entries(); @@ -33540,6 +32169,8 @@ check_metadata_cork(hbool_t fill_via_insertion, unsigned paged) if (show_progress) /* 13 */ HDfprintf(stdout, "%s: check point %d -- pass %d\n", fcn_name, checkpoint++, pass); + HDfree(expected); + if (pass) { PASSED(); } @@ -33686,24 +32317,50 @@ check_entry_deletions_during_scans(unsigned paged) static void cedds__expunge_dirty_entry_in_flush_test(H5F_t *file_ptr) { - H5C_t *cache_ptr = file_ptr->shared->cache; - int i; - /* clang-format off */ - struct expected_entry_status expected[36] = - { - /* the expected array is used to maintain a table of the expected status of every - * entry used in this test. Note that since the function that processes this - * array only processes as much of it as it is told to, we don't have to - * worry about maintaining the status of entries that we haven't used yet. - */ - /* entry entry in at main flush dep flush dep child flush flush flush */ - /* type: index: size: cache: addr: dirty: prot: pinned: dsrlzd: srlzd: dest: par type[]: par idx[]: dep npart: dep nchd: dep ndirty chd: order: corked: */ - { HUGE_ENTRY_TYPE, 0, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 1, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 2, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 3, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE} - }; - /* clang-format on */ + struct expected_entry_status *expected = NULL; + H5C_t * cache_ptr = file_ptr->shared->cache; + int i; + + expected = HDmalloc(36 * sizeof(struct expected_entry_status)); + if (expected == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocate expected entry status array\n"; + } + + if (expected) { + /* the expected array is used to maintain a table of the expected status of every + * entry used in this test. Note that since the function that processes this + * array only processes as much of it as it is told to, we don't have to + * worry about maintaining the status of entries that we haven't used yet. + */ + for (i = 0; i < 36; i++) { + expected[i].entry_type = HUGE_ENTRY_TYPE; + expected[i].entry_index = (int)i; + expected[i].size = HUGE_ENTRY_SIZE; + expected[i].in_cache = TRUE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = TRUE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = TRUE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + for (size_t j = 0; j < MAX_FLUSH_DEP_PARS; j++) { + expected[i].flush_dep_par_type[j] = -1; + expected[i].flush_dep_par_idx[j] = -1; + } + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + pass = TRUE; + } if (pass) { @@ -33858,6 +32515,8 @@ cedds__expunge_dirty_entry_in_flush_test(H5F_t *file_ptr) /* reset cache min clean size to its expected value */ cache_ptr->min_clean_size = (1 * 1024 * 1024); + HDfree(expected); + } /* cedds__expunge_dirty_entry_in_flush_test() */ /*------------------------------------------------------------------------- @@ -33898,58 +32557,60 @@ cedds__expunge_dirty_entry_in_flush_test(H5F_t *file_ptr) static void cedds__H5C_make_space_in_cache(H5F_t *file_ptr) { - H5C_t * cache_ptr = file_ptr->shared->cache; - int i; - const int num_huge_entries = 4; - const int num_monster_entries = 32; - /* clang-format off */ - struct expected_entry_status expected[36] = - { - /* the expected array is used to maintain a table of the expected status of every - * entry used in this test. Note that since the function that processes this - * array only processes as much of it as it is told to, we don't have to - * worry about maintaining the status of entries that we haven't used yet. - */ - /* entry entry in at main flush dep flush dep child flush flush flush */ - /* type: index: size: cache: addr: dirty: prot: pinned: dsrlzd: srlzd: dest: par type[]: par idx[]: dep npart: dep nchd: dep ndirty chd: order: corked: */ - { HUGE_ENTRY_TYPE, 0, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 1, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 2, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { HUGE_ENTRY_TYPE, 3, HUGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 0, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 1, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 2, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 3, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 4, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 5, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 6, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 7, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 8, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 9, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 10, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 11, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 12, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 13, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 14, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 15, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 16, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 17, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 18, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 19, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 20, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 21, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 22, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 23, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 24, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 25, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 26, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 27, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 28, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 29, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 30, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 31, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - }; - /* clang-format on */ + struct expected_entry_status *expected = NULL; + H5C_t * cache_ptr = file_ptr->shared->cache; + int i; + const int num_huge_entries = 4; + const int num_monster_entries = 32; + + expected = HDmalloc(36 * sizeof(struct expected_entry_status)); + if (expected == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocate expected entry status array\n"; + } + + if (expected) { + /* the expected array is used to maintain a table of the expected status of every + * entry used in this test. Note that since the function that processes this + * array only processes as much of it as it is told to, we don't have to + * worry about maintaining the status of entries that we haven't used yet. + */ + for (i = 0; i < 36; i++) { + if (i < num_huge_entries) { + expected[i].entry_type = HUGE_ENTRY_TYPE; + expected[i].entry_index = (int)i; + expected[i].size = HUGE_ENTRY_SIZE; + } + else { + expected[i].entry_type = MONSTER_ENTRY_TYPE; + expected[i].entry_index = (int)(i - num_huge_entries); + expected[i].size = MONSTER_ENTRY_SIZE; + } + + expected[i].in_cache = TRUE; + expected[i].at_main_addr = TRUE; + expected[i].is_dirty = TRUE; + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = TRUE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + for (size_t j = 0; j < MAX_FLUSH_DEP_PARS; j++) { + expected[i].flush_dep_par_type[j] = -1; + expected[i].flush_dep_par_idx[j] = -1; + } + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + pass = TRUE; + } if (pass) { @@ -34216,6 +32877,8 @@ cedds__H5C_make_space_in_cache(H5F_t *file_ptr) /* reset cache min clean size to its expected value */ cache_ptr->min_clean_size = (1 * 1024 * 1024); + HDfree(expected); + } /* cedds__H5C_make_space_in_cache() */ /*------------------------------------------------------------------------- @@ -34256,55 +32919,12 @@ cedds__H5C_make_space_in_cache(H5F_t *file_ptr) static void cedds__H5C__autoadjust__ageout__evict_aged_out_entries(H5F_t *file_ptr) { - H5C_t *cache_ptr = file_ptr->shared->cache; - int i; - herr_t result; - /* clang-format off */ - struct expected_entry_status expected[36] = - { - /* the expected array is used to maintain a table of the expected status of every - * entry used in this test. Note that since the function that processes this - * array only processes as much of it as it is told to, we don't have to - * worry about maintaining the status of entries that we haven't used yet. - */ - /* entry entry in at main flush dep flush dep child flush flush flush */ - /* type: index: size: cache: addr: dirty: prot: pinned: dsrlzd: srlzd: dest: par type[]: par idx[]: dep npart: dep nchd: dep ndirty chd: order: corked: */ - { MONSTER_ENTRY_TYPE, 0, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 1, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 2, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 3, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 4, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 5, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 6, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 7, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 8, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 9, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 10, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 11, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 12, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 13, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 14, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 15, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 16, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 17, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 18, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 19, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 20, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 21, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 22, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 23, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 24, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 25, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 26, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 27, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 28, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 29, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 30, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - { MONSTER_ENTRY_TYPE, 31, MONSTER_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, {-1,-1,-1,-1,-1,-1,-1,-1}, {-1,-1,-1,-1,-1,-1,-1,-1}, 0, 0, 0, -1, FALSE}, - }; - /* clang-format on */ - H5C_auto_size_ctl_t saved_auto_size_ctl; - H5C_auto_size_ctl_t test_auto_size_ctl = { + struct expected_entry_status *expected = NULL; + H5C_t * cache_ptr = file_ptr->shared->cache; + int i; + herr_t result; + H5C_auto_size_ctl_t saved_auto_size_ctl; + H5C_auto_size_ctl_t test_auto_size_ctl = { /* int32_t version = */ H5C__CURR_AUTO_SIZE_CTL_VER, /* H5C_auto_resize_report_fcn rpt_fcn = */ test_rpt_fcn, @@ -34346,6 +32966,50 @@ cedds__H5C__autoadjust__ageout__evict_aged_out_entries(H5F_t *file_ptr) /* hbool_t apply_empty_reserve = */ TRUE, /* double empty_reserve = */ 0.05}; + expected = HDmalloc(36 * sizeof(struct expected_entry_status)); + if (expected == NULL) { + + pass = FALSE; + failure_mssg = "couldn't allocate expected entry status array\n"; + } + + if (expected) { + /* the expected array is used to maintain a table of the expected status of every + * entry used in this test. Note that since the function that processes this + * array only processes as much of it as it is told to, we don't have to + * worry about maintaining the status of entries that we haven't used yet. + */ + for (i = 0; i < 36; i++) { + expected[i].entry_type = MONSTER_ENTRY_TYPE; + expected[i].entry_index = (int)i; + expected[i].size = MONSTER_ENTRY_SIZE; + expected[i].in_cache = TRUE; + expected[i].at_main_addr = TRUE; + + /* NOTE: special case for first entry */ + expected[i].is_dirty = (i == 0); + + expected[i].is_protected = FALSE; + expected[i].is_pinned = FALSE; + expected[i].deserialized = TRUE; + expected[i].serialized = FALSE; + expected[i].destroyed = FALSE; + + for (size_t j = 0; j < MAX_FLUSH_DEP_PARS; j++) { + expected[i].flush_dep_par_type[j] = -1; + expected[i].flush_dep_par_idx[j] = -1; + } + + expected[i].flush_dep_npar = 0; + expected[i].flush_dep_nchd = 0; + expected[i].flush_dep_ndirty_chd = 0; + expected[i].flush_order = -1; + expected[i].is_corked = FALSE; + } + + pass = TRUE; + } + if (pass) { if (cache_ptr == NULL) { @@ -34612,6 +33276,8 @@ cedds__H5C__autoadjust__ageout__evict_aged_out_entries(H5F_t *file_ptr) /* reset cache min clean size to its expected value */ cache_ptr->min_clean_size = (1 * 1024 * 1024); + HDfree(expected); + } /* cedds__H5C__autoadjust__ageout__evict_aged_out_entries() */ /*------------------------------------------------------------------------- diff --git a/test/cache_image.c b/test/cache_image.c index d2313ba..3f50ee4 100644 --- a/test/cache_image.c +++ b/test/cache_image.c @@ -7510,7 +7510,7 @@ get_free_sections_test(hbool_t single_file_vfd) *------------------------------------------------------------------------- */ static unsigned -evict_on_close_test(hbool_t single_file_vfd) +evict_on_close_test(hbool_t H5_ATTR_PARALLEL_UNUSED single_file_vfd) { #ifndef H5_HAVE_PARALLEL const char *fcn_name = "evict_on_close_test()"; diff --git a/test/dt_arith.c b/test/dt_arith.c index e6927f5..31ec8c5 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -2694,18 +2694,18 @@ my_isnan(dtype_t type, void *val) if (FLT_FLOAT == type) { float x = 0.0; HDmemcpy(&x, val, sizeof(float)); - retval = (x != x); + retval = !H5_FLT_ABS_EQUAL(x, x); } else if (FLT_DOUBLE == type) { double x = 0.0; HDmemcpy(&x, val, sizeof(double)); - retval = (x != x); + retval = !H5_DBL_ABS_EQUAL(x, x); #if H5_SIZEOF_LONG_DOUBLE != H5_SIZEOF_DOUBLE } else if (FLT_LDOUBLE == type) { long double x = 0.0; HDmemcpy(&x, val, sizeof(long double)); - retval = (x != x); + retval = !H5_LDBL_ABS_EQUAL(x, x); #endif } else { diff --git a/test/dtransform.c b/test/dtransform.c index 1f6d48b..52e8b03 100644 --- a/test/dtransform.c +++ b/test/dtransform.c @@ -120,7 +120,9 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, #define TEST_TYPE_CONTIG(XFORM, TYPE, HDF_TYPE, TEST_STR, COMPARE_DATA, SIGNED) \ { \ - TYPE array[ROWS][COLS]; \ + struct { \ + TYPE arr[ROWS][COLS]; \ + } *array = NULL; \ const char *f_to_c = "(5/9.0)*(x-32)"; \ /* utrans is a transform for char types: numbers are restricted from -128 to 127, fits into char */ \ const char *utrans = "(x/4+25)*3"; \ @@ -129,6 +131,10 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, H5T_order_t order; \ hsize_t dim[2] = {ROWS, COLS}; \ \ + /* NOTE: If this macro encounters errors, this memory will leak */ \ + if (NULL == (array = HDcalloc(1, sizeof(*array)))) \ + TEST_ERROR; \ + \ if ((dataspace = H5Screate_simple(2, dim, NULL)) < 0) \ TEST_ERROR; \ if ((dset = H5Dcreate2(file_id, "/transformtest_" TEST_STR, HDF_TYPE, dataspace, H5P_DEFAULT, \ @@ -177,25 +183,25 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, if (H5Dread(dset, HDF_TYPE, H5S_ALL, H5S_ALL, XFORM, array) < 0) \ TEST_ERROR; \ if (SIGNED) \ - COMPARE(TYPE, array, COMPARE_DATA, 2) \ + COMPARE(TYPE, array->arr, COMPARE_DATA, 2) \ else \ - UCOMPARE(TYPE, array, COMPARE_DATA, 4) \ + UCOMPARE(TYPE, array->arr, COMPARE_DATA, 4) \ \ TESTING("contiguous, byte order conversion (" TEST_STR "->" TEST_STR ")") \ \ if (H5Dread(dset_nn, HDF_TYPE, H5S_ALL, H5S_ALL, XFORM, array) < 0) \ TEST_ERROR; \ if (SIGNED) \ - COMPARE(TYPE, array, COMPARE_DATA, 2) \ + COMPARE(TYPE, array->arr, COMPARE_DATA, 2) \ else \ - UCOMPARE(TYPE, array, COMPARE_DATA, 4) \ + UCOMPARE(TYPE, array->arr, COMPARE_DATA, 4) \ \ if (SIGNED) { \ TESTING("contiguous, with type conversion (float->" TEST_STR ")") \ \ if (H5Dread(dset_id_float, HDF_TYPE, H5S_ALL, H5S_ALL, XFORM, array) < 0) \ TEST_ERROR; \ - COMPARE(TYPE, array, COMPARE_DATA, 2) \ + COMPARE(TYPE, array->arr, COMPARE_DATA, 2) \ } \ \ if (H5Dclose(dset_nn) < 0) \ @@ -204,11 +210,15 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, TEST_ERROR; \ if (H5Sclose(dataspace) < 0) \ TEST_ERROR; \ + \ + HDfree(array); \ } #define TEST_TYPE_CHUNK(XFORM, TYPE, HDF_TYPE, TEST_STR, COMPARE_DATA, SIGNED) \ { \ - TYPE array[ROWS][COLS]; \ + struct { \ + TYPE arr[ROWS][COLS]; \ + } *array = NULL; \ const char *f_to_c = "(5/9.0)*(x-32)"; \ /* utrans is a transform for char types: numbers are restricted from -128 to 127, fits into char */ \ const char *utrans = "(x/4+25)*3"; \ @@ -217,6 +227,10 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, hsize_t dim[2] = {ROWS, COLS}; \ hsize_t offset[2] = {0, 0}; \ \ + /* NOTE: If this macro encounters errors, this memory will leak */ \ + if (NULL == (array = HDcalloc(1, sizeof(*array)))) \ + TEST_ERROR; \ + \ if ((dataspace = H5Screate_simple(2, dim, NULL)) < 0) \ TEST_ERROR; \ \ @@ -263,16 +277,16 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, if (H5Dread(dset_chunk, HDF_TYPE, memspace, filespace, XFORM, array) < 0) \ TEST_ERROR; \ if (SIGNED) \ - COMPARE(TYPE, array, COMPARE_DATA, 2) \ + COMPARE(TYPE, array->arr, COMPARE_DATA, 2) \ else \ - UCOMPARE(TYPE, array, COMPARE_DATA, 4) \ + UCOMPARE(TYPE, array->arr, COMPARE_DATA, 4) \ \ if (SIGNED) { \ TESTING("chunked, with type conversion (float->" TEST_STR ")") \ \ if (H5Dread(dset_id_float_chunk, HDF_TYPE, memspace, filespace, XFORM, array) < 0) \ TEST_ERROR; \ - COMPARE(TYPE, array, COMPARE_DATA, 2) \ + COMPARE(TYPE, array->arr, COMPARE_DATA, 2) \ } \ \ if (H5Pclose(cparms) < 0) \ @@ -283,6 +297,8 @@ const int transformData[ROWS][COLS] = {{36, 31, 25, 19, 13, 7, 1, 5, 11, 16, 22, TEST_ERROR; \ if (H5Sclose(memspace) < 0) \ TEST_ERROR; \ + \ + HDfree(array); \ } #define INVALID_SET_TEST(TRANSFORM) \ diff --git a/test/h5test.h b/test/h5test.h index ac251d6..fc63e29 100644 --- a/test/h5test.h +++ b/test/h5test.h @@ -231,6 +231,15 @@ H5TEST_DLLVAR MPI_Info h5_io_info_g; /* MPI INFO object for IO */ extern "C" { #endif +/* + * Ugly hack to cast away const for freeing const-qualified pointers. + * Should only be used sparingly, where the alternative (like keeping + * an equivalent non-const pointer around) is far messier. + */ +#ifndef h5_free_const +#define h5_free_const(mem) HDfree((void *)(uintptr_t)mem) +#endif + /* Generally useful testing routines */ H5TEST_DLL void h5_clean_files(const char *base_name[], hid_t fapl); H5TEST_DLL int h5_cleanup(const char *base_name[], hid_t fapl); diff --git a/test/ntypes.c b/test/ntypes.c index 13cc72a..f40fac1 100644 --- a/test/ntypes.c +++ b/test/ntypes.c @@ -26,10 +26,6 @@ const char *FILENAME[] = {"ntypes", NULL}; #define DIM1 200 #define DIM3 20 -int ipoints2[DIM0][DIM1], icheck2[DIM0][DIM1]; -short spoints2[DIM0][DIM1], scheck2[DIM0][DIM1]; -int ipoints3[DIM0][DIM1][5], icheck3[DIM0][DIM1][5]; - #define DSET_ATOMIC_NAME_1 "atomic_type_1" #define DSET_ATOMIC_NAME_2 "atomic_type_2" #define DSET_ATOMIC_NAME_3 "atomic_type_3" @@ -80,13 +76,24 @@ test_atomic_dtype(hid_t file) int i, j, n; hsize_t dims[2]; void * tmp = NULL; + struct { + int arr[DIM0][DIM1]; + } *ipoints2 = NULL; + struct { + int arr[DIM0][DIM1]; + } *icheck2 = NULL; TESTING("atomic datatype"); + if (NULL == (ipoints2 = HDcalloc(1, sizeof(*ipoints2)))) + TEST_ERROR; + if (NULL == (icheck2 = HDcalloc(1, sizeof(*icheck2)))) + TEST_ERROR; + /* Initialize the dataset */ for (i = n = 0; i < DIM0; i++) for (j = 0; j < DIM1; j++) - ipoints2[i][j] = n++; + ipoints2->arr[i][j] = n++; /* Create the data space */ dims[0] = DIM0; @@ -146,7 +153,7 @@ test_atomic_dtype(hid_t file) /* Check that the values read are the same as the values written */ for (i = 0; i < DIM0; i++) for (j = 0; j < DIM1; j++) - if (ipoints2[i][j] != icheck2[i][j]) { + if (ipoints2->arr[i][j] != icheck2->arr[i][j]) { H5_FAILED(); HDprintf(" Read different values than written.\n"); HDprintf(" At index %d,%d\n", i, j); @@ -270,6 +277,9 @@ test_atomic_dtype(hid_t file) if (H5Sclose(space) < 0) TEST_ERROR; + HDfree(ipoints2); + HDfree(icheck2); + PASSED(); return 0; @@ -287,6 +297,9 @@ error: } H5E_END_TRY; + HDfree(ipoints2); + HDfree(icheck2); + return -1; } @@ -1328,13 +1341,24 @@ test_enum_dtype(hid_t file) short colors[8]; unsigned char sub_colors[16]; const char * mname[] = {"RED", "GREEN", "BLUE", "YELLOW", "PINK", "PURPLE", "ORANGE", "WHITE"}; + struct { + short arr[DIM0][DIM1]; + } *spoints2 = NULL; + struct { + short arr[DIM0][DIM1]; + } *scheck2 = NULL; TESTING("enum datatype"); + if (NULL == (spoints2 = HDcalloc(1, sizeof(*spoints2)))) + TEST_ERROR; + if (NULL == (scheck2 = HDcalloc(1, sizeof(*scheck2)))) + TEST_ERROR; + /* Initialize the dataset */ for (i = 0; i < DIM0; i++) for (j = 0, n = 0; j < DIM1; j++, n++) - spoints2[i][j] = (short)((i * 10 + j * 100 + n) % 8); + spoints2->arr[i][j] = (short)((i * 10 + j * 100 + n) % 8); /* Create the data space */ dims[0] = DIM0; @@ -1402,8 +1426,6 @@ test_enum_dtype(hid_t file) TEST_ERROR; HDmemcpy(scheck2, tmp, DIM0 * DIM1 * H5Tget_size(native_type)); - HDfree(tmp); - tmp = NULL; if (H5Tconvert(native_type, tid_m, (DIM0 * DIM1), scheck2, NULL, H5P_DEFAULT) < 0) TEST_ERROR; @@ -1411,11 +1433,11 @@ test_enum_dtype(hid_t file) /* Check that the values read are the same as the values written */ for (i = 0; i < DIM0; i++) for (j = 0; j < DIM1; j++) - if (spoints2[i][j] != scheck2[i][j]) { + if (spoints2->arr[i][j] != scheck2->arr[i][j]) { H5_FAILED(); HDprintf(" Read different values than written.\n"); HDprintf(" At index %d,%d\n", i, j); - HDprintf(" spoints2[i][j]=%hd, scheck2[i][j]=%hd\n", spoints2[i][j], scheck2[i][j]); + HDprintf(" spoints2[i][j]=%hd, scheck2[i][j]=%hd\n", spoints2->arr[i][j], scheck2->arr[i][j]); goto error; } /* end if */ @@ -1423,13 +1445,19 @@ test_enum_dtype(hid_t file) H5Tclose(dtype); H5Tclose(native_type); H5Tclose(tid_m); + + HDfree(tmp); + HDfree(spoints2); + HDfree(scheck2); + PASSED(); return 0; error: /* Free memory for test data */ - if (tmp) - HDfree(tmp); + HDfree(tmp); + HDfree(spoints2); + HDfree(scheck2); H5E_BEGIN_TRY { @@ -1657,14 +1685,25 @@ test_array_dtype2(hid_t file) int i, j, k, n; hsize_t space_dims[2], array_dims[1] = {5}; void * tmp = NULL; + struct { + int arr[DIM0][DIM1][5]; + } *ipoints3 = NULL; + struct { + int arr[DIM0][DIM1][5]; + } *icheck3 = NULL; TESTING("array of atomic datatype"); + if (NULL == (ipoints3 = HDcalloc(1, sizeof(*ipoints3)))) + goto error; + if (NULL == (icheck3 = HDcalloc(1, sizeof(*icheck3)))) + goto error; + /* Initialize the dataset */ for (i = n = 0; i < DIM0; i++) for (j = 0; j < DIM1; j++) for (k = 0; k < 5; k++) - ipoints3[i][j][k] = n++; + ipoints3->arr[i][j][k] = n++; /* Create the data space */ space_dims[0] = DIM0; @@ -1729,7 +1768,7 @@ test_array_dtype2(hid_t file) for (i = 0; i < DIM0; i++) for (j = 0; j < DIM1; j++) for (k = 0; k < 5; k++) - if (icheck3[i][j][k] != ipoints3[i][j][k]) { + if (icheck3->arr[i][j][k] != ipoints3->arr[i][j][k]) { H5_FAILED(); HDprintf(" Read different values than written.\n"); HDprintf(" At index %d,%d\n", i, j); @@ -1746,6 +1785,9 @@ test_array_dtype2(hid_t file) if (H5Tclose(tid_m) < 0) TEST_ERROR; + HDfree(ipoints3); + HDfree(icheck3); + PASSED(); return 0; @@ -1765,6 +1807,9 @@ error: } H5E_END_TRY; + HDfree(ipoints3); + HDfree(icheck3); + return -1; } diff --git a/test/set_extent.c b/test/set_extent.c index 44bf8cb..31a66d2 100644 --- a/test/set_extent.c +++ b/test/set_extent.c @@ -69,7 +69,7 @@ const char *FILENAME[] = {"set_extent1", "set_extent2", "set_extent3", "set_exte { \ H5_FAILED(); \ AT(); \ - test_random_rank4_dump(NDIM_SETS, dim_log, cdims, J, K, L, M); \ + test_random_rank4_dump(NDIM_SETS, dim_log->arr, cdims, J, K, L, M); \ goto error; \ } /* end RAND4_FAIL_DUMP */ #define RAND4_VL_NITER 40 @@ -2233,29 +2233,43 @@ static int test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_edge_filters, hbool_t do_sparse, rank4_index_t index_type) { - hid_t file = -1; - hid_t dset = -1; - hid_t fspace = -1; - hid_t mspace = -1; - hid_t my_dcpl = -1; - hsize_t dims[4] = {10, 10, 10, 10}; /* Dataset's dimensions */ - hsize_t max_dims[4] = {10, 10, 10, 10}; /* Maximum dimensions */ - hsize_t old_dims[4]; /* Old dataset dimensions */ - hsize_t min_unwritten_dims[4]; /* Minimum dimensions since last write */ - hsize_t * valid_dims = old_dims; /* Dimensions of region still containing written data */ - hsize_t cdims[4]; /* Chunk dimensions */ - const hsize_t mdims[4] = {10, 10, 10, 10}; /* Memory buffer dimensions */ - const hsize_t start[4] = {0, 0, 0, 0}; /* Start for hyperslabe operations on memory */ - static int rbuf[10][10][10][10]; /* Read buffer */ - static int wbuf[10][10][10][10]; /* Write buffer */ - static hsize_t dim_log[RAND4_NITER + 1][4]; /* Log of dataset dimensions */ - hbool_t zero_dim = FALSE; /* Whether a dimension is 0 */ - hbool_t writing = TRUE; /* Whether we're writing to the dset */ - unsigned scalar_iter; /* Iteration to shrink dset to 1x1x1x1 */ - volatile unsigned i, j, k, l, m; /* Local indices */ - char filename[NAME_BUF_SIZE]; - - /* create a new file */ + hid_t file = -1; + hid_t dset = -1; + hid_t fspace = -1; + hid_t mspace = -1; + hid_t my_dcpl = -1; + hsize_t dims[4] = {10, 10, 10, 10}; /* Dataset's dimensions */ + hsize_t max_dims[4] = {10, 10, 10, 10}; /* Maximum dimensions */ + hsize_t old_dims[4]; /* Old dataset dimensions */ + hsize_t min_unwritten_dims[4]; /* Minimum dimensions since last write */ + hsize_t * valid_dims = old_dims; /* Dimensions of region still containing written data */ + hsize_t cdims[4]; /* Chunk dimensions */ + const hsize_t mdims[4] = {10, 10, 10, 10}; /* Memory buffer dimensions */ + const hsize_t start[4] = {0, 0, 0, 0}; /* Start for hyperslabe operations on memory */ + struct { + int arr[10][10][10][10]; + } *rbuf = NULL; /* Read buffer */ + struct { + int arr[10][10][10][10]; + } *wbuf = NULL; /* Write buffer */ + struct { + hsize_t arr[RAND4_NITER + 1][4]; + } *dim_log = NULL; /* Log of dataset dimensions */ + hbool_t zero_dim = FALSE; /* Whether a dimension is 0 */ + hbool_t writing = TRUE; /* Whether we're writing to the dset */ + unsigned scalar_iter; /* Iteration to shrink dset to 1x1x1x1 */ + unsigned i, j, k, l, m; /* Local indices */ + char filename[NAME_BUF_SIZE]; + + /* Initialize large arrays */ + if (NULL == (rbuf = HDcalloc(1, sizeof(*rbuf)))) + TEST_ERROR + if (NULL == (wbuf = HDcalloc(1, sizeof(*wbuf)))) + TEST_ERROR + if (NULL == (dim_log = HDcalloc(1, sizeof(*dim_log)))) + TEST_ERROR + + /* Create a new file */ h5_fixname(FILENAME[4], fapl, filename, sizeof filename); if ((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR @@ -2279,7 +2293,7 @@ test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_ for (i = 0; i < 4; i++) { dims[i] = (hsize_t)( index_type != RANK4_INDEX_FARRAY ? (0 == scalar_iter ? 1 : ((HDrandom() % 10) + 1)) : 10); - dim_log[0][i] = dims[i]; + dim_log->arr[0][i] = dims[i]; } /* end for */ /* Create dataset */ @@ -2312,7 +2326,7 @@ test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_ for (k = 0; k < dims[1]; k++) for (l = 0; l < dims[2]; l++) for (m = 0; m < dims[3]; m++) - wbuf[j][k][l][m] = HDrandom(); + wbuf->arr[j][k][l][m] = HDrandom(); /* Write data */ if (H5Dwrite(dset, H5T_NATIVE_INT, mspace, H5S_ALL, H5P_DEFAULT, wbuf) < 0) @@ -2327,7 +2341,7 @@ test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_ if ((dims[j] = (hsize_t)(i == scalar_iter ? 1 : (HDrandom() % 11))) == 0) if ((dims[j] = (hsize_t)(HDrandom() % 11)) == 0) zero_dim = TRUE; - dim_log[i + 1][j] = dims[j]; + dim_log->arr[i + 1][j] = dims[j]; } /* end for */ /* If writing is disabled, update min_unwritten_dims */ @@ -2355,10 +2369,10 @@ test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_ for (m = 0; m < dims[3]; m++) if (j >= valid_dims[0] || k >= valid_dims[1] || l >= valid_dims[2] || m >= valid_dims[3]) { - if (FILL_VALUE != rbuf[j][k][l][m]) + if (FILL_VALUE != rbuf->arr[j][k][l][m]) RAND4_FAIL_DUMP(i + 2, (int)j, (int)k, (int)l, (int)m) } /* end if */ - else if (wbuf[j][k][l][m] != rbuf[j][k][l][m]) + else if (wbuf->arr[j][k][l][m] != rbuf->arr[j][k][l][m]) RAND4_FAIL_DUMP(i + 2, (int)j, (int)k, (int)l, (int)m) } /* end if */ else { @@ -2366,7 +2380,7 @@ test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_ for (k = 0; k < MIN(dims[1], valid_dims[1]); k++) for (l = 0; l < MIN(dims[2], valid_dims[2]); l++) for (m = 0; m < MIN(dims[3], valid_dims[3]); m++) - if (wbuf[j][k][l][m] != rbuf[j][k][l][m]) + if (wbuf->arr[j][k][l][m] != rbuf->arr[j][k][l][m]) RAND4_FAIL_DUMP(i + 2, (int)j, (int)k, (int)l, (int)m) } /* end else */ } /* end if */ @@ -2394,6 +2408,10 @@ test_random_rank4(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_ if (H5Fclose(file) < 0) TEST_ERROR + HDfree(rbuf); + HDfree(wbuf); + HDfree(dim_log); + return 0; error: @@ -2405,7 +2423,12 @@ error: H5Dclose(dset); H5Fclose(file); } - H5E_END_TRY + H5E_END_TRY; + + HDfree(rbuf); + HDfree(wbuf); + HDfree(dim_log); + return -1; } /* end test_random_rank4 */ @@ -2429,29 +2452,43 @@ static int test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disable_edge_filters, hbool_t do_sparse, rank4_index_t index_type) { - hid_t file = -1; - hid_t dset = -1; - hid_t type = -1; - hid_t fspace = -1; - hid_t mspace = -1; - hid_t my_dcpl = -1; - hsize_t dims[4] = {10, 10, 10, 10}; /* Dataset's dimensions */ - hsize_t max_dims[4] = {10, 10, 10, 10}; /* Maximum dimensions */ - hsize_t old_dims[4]; /* Old dataset dimensions */ - hsize_t min_unwritten_dims[4]; /* Minimum dimensions since last write */ - hsize_t * valid_dims = old_dims; /* Dimensions of region still containing written data */ - hsize_t cdims[4]; /* Chunk dimensions */ - const hsize_t mdims[4] = {10, 10, 10, 10}; /* Memory buffer dimensions */ - const hsize_t start[4] = {0, 0, 0, 0}; /* Start for hyperslab operations on memory */ - static hvl_t rbuf[10][10][10][10]; /* Read buffer */ - static hvl_t wbuf[10][10][10][10]; /* Write buffer */ - static hsize_t dim_log[RAND4_NITER + 1][4]; /* Log of dataset dimensions */ - hbool_t zero_dim = FALSE; /* Whether a dimension is 0 */ - hbool_t writing = TRUE; /* Whether we're writing to the dset */ - hvl_t fill_value; /* Fill value */ - unsigned scalar_iter; /* Iteration to shrink dset to 1x1x1x1 */ - volatile unsigned i, j, k, l, m; /* Local indices */ - char filename[NAME_BUF_SIZE]; + hid_t file = -1; + hid_t dset = -1; + hid_t type = -1; + hid_t fspace = -1; + hid_t mspace = -1; + hid_t my_dcpl = -1; + hsize_t dims[4] = {10, 10, 10, 10}; /* Dataset's dimensions */ + hsize_t max_dims[4] = {10, 10, 10, 10}; /* Maximum dimensions */ + hsize_t old_dims[4]; /* Old dataset dimensions */ + hsize_t min_unwritten_dims[4]; /* Minimum dimensions since last write */ + hsize_t * valid_dims = old_dims; /* Dimensions of region still containing written data */ + hsize_t cdims[4]; /* Chunk dimensions */ + const hsize_t mdims[4] = {10, 10, 10, 10}; /* Memory buffer dimensions */ + const hsize_t start[4] = {0, 0, 0, 0}; /* Start for hyperslab operations on memory */ + struct { + hvl_t arr[10][10][10][10]; + } *rbuf = NULL; /* Read buffer */ + struct { + hvl_t arr[10][10][10][10]; + } *wbuf = NULL; /* Write buffer */ + struct { + hsize_t arr[RAND4_NITER + 1][4]; + } *dim_log = NULL; /* Log of dataset dimensions */ + hbool_t zero_dim = FALSE; /* Whether a dimension is 0 */ + hbool_t writing = TRUE; /* Whether we're writing to the dset */ + hvl_t fill_value; /* Fill value */ + unsigned scalar_iter; /* Iteration to shrink dset to 1x1x1x1 */ + unsigned i, j, k, l, m; /* Local indices */ + char filename[NAME_BUF_SIZE]; + + /* Initialize large arrays */ + if (NULL == (rbuf = HDcalloc(1, sizeof(*rbuf)))) + TEST_ERROR + if (NULL == (wbuf = HDcalloc(1, sizeof(*wbuf)))) + TEST_ERROR + if (NULL == (dim_log = HDcalloc(1, sizeof(*dim_log)))) + TEST_ERROR /* Initialize fill value buffers so they aren't freed in case of an error */ fill_value.len = 0; @@ -2460,10 +2497,10 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab for (j = 0; j < dims[1]; j++) for (k = 0; k < dims[2]; k++) for (l = 0; l < dims[3]; l++) { - rbuf[i][j][k][l].len = 0; - rbuf[i][j][k][l].p = NULL; - wbuf[i][j][k][l].len = 0; - wbuf[i][j][k][l].p = NULL; + rbuf->arr[i][j][k][l].len = 0; + rbuf->arr[i][j][k][l].p = NULL; + wbuf->arr[i][j][k][l].len = 0; + wbuf->arr[i][j][k][l].p = NULL; } /* end for */ /* Allocate space for VL write buffers, since these never need to be @@ -2472,8 +2509,8 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab for (j = 0; j < dims[1]; j++) for (k = 0; k < dims[2]; k++) for (l = 0; l < dims[3]; l++) { - wbuf[i][j][k][l].len = 2; - if (NULL == (wbuf[i][j][k][l].p = HDmalloc(2 * sizeof(int)))) + wbuf->arr[i][j][k][l].len = 2; + if (NULL == (wbuf->arr[i][j][k][l].p = HDmalloc(2 * sizeof(int)))) TEST_ERROR; } /* end for */ @@ -2505,8 +2542,8 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab for (i = 0; i < 4; i++) { dims[i] = (hsize_t)( index_type != RANK4_INDEX_FARRAY ? (0 == scalar_iter ? 1 : ((HDrandom() % 10) + 1)) : 10); - dim_log[0][i] = dims[i]; - } /* end for */ + dim_log->arr[0][i] = dims[i]; + } /* Make a copy of the dcpl */ if ((my_dcpl = H5Pcopy(dcpl)) < 0) @@ -2550,8 +2587,8 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab for (k = 0; k < dims[1]; k++) for (l = 0; l < dims[2]; l++) for (m = 0; m < dims[3]; m++) { - ((int *)wbuf[j][k][l][m].p)[0] = HDrandom(); - ((int *)wbuf[j][k][l][m].p)[1] = HDrandom(); + ((int *)wbuf->arr[j][k][l][m].p)[0] = HDrandom(); + ((int *)wbuf->arr[j][k][l][m].p)[1] = HDrandom(); } /* end for */ /* Write data */ @@ -2567,8 +2604,8 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab if ((dims[j] = (hsize_t)(i == scalar_iter ? 1 : (HDrandom() % 11))) == 0) if ((dims[j] = (hsize_t)(HDrandom() % 11)) == 0) zero_dim = TRUE; - dim_log[i + 1][j] = dims[j]; - } /* end for */ + dim_log->arr[i + 1][j] = dims[j]; + } /* If writing is disabled, update min_unwritten_dims */ if (!writing) @@ -2595,12 +2632,14 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab for (m = 0; m < dims[3]; m++) if (j >= valid_dims[0] || k >= valid_dims[1] || l >= valid_dims[2] || m >= valid_dims[3]) { - if (((int *)fill_value.p)[0] != ((int *)rbuf[j][k][l][m].p)[0] || - ((int *)fill_value.p)[1] != ((int *)rbuf[j][k][l][m].p)[1]) + if (((int *)fill_value.p)[0] != ((int *)rbuf->arr[j][k][l][m].p)[0] || + ((int *)fill_value.p)[1] != ((int *)rbuf->arr[j][k][l][m].p)[1]) RAND4_FAIL_DUMP(i + 2, (int)j, (int)k, (int)l, (int)m) } /* end if */ - else if (((int *)wbuf[j][k][l][m].p)[0] != ((int *)rbuf[j][k][l][m].p)[0] || - ((int *)wbuf[j][k][l][m].p)[1] != ((int *)rbuf[j][k][l][m].p)[1]) + else if (((int *)wbuf->arr[j][k][l][m].p)[0] != + ((int *)rbuf->arr[j][k][l][m].p)[0] || + ((int *)wbuf->arr[j][k][l][m].p)[1] != + ((int *)rbuf->arr[j][k][l][m].p)[1]) RAND4_FAIL_DUMP(i + 2, (int)j, (int)k, (int)l, (int)m) } /* end if */ else { @@ -2608,8 +2647,10 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab for (k = 0; k < MIN(dims[1], valid_dims[1]); k++) for (l = 0; l < MIN(dims[2], valid_dims[2]); l++) for (m = 0; m < MIN(dims[3], valid_dims[3]); m++) - if (((int *)wbuf[j][k][l][m].p)[0] != ((int *)rbuf[j][k][l][m].p)[0] || - ((int *)wbuf[j][k][l][m].p)[1] != ((int *)rbuf[j][k][l][m].p)[1]) + if (((int *)wbuf->arr[j][k][l][m].p)[0] != + ((int *)rbuf->arr[j][k][l][m].p)[0] || + ((int *)wbuf->arr[j][k][l][m].p)[1] != + ((int *)rbuf->arr[j][k][l][m].p)[1]) RAND4_FAIL_DUMP(i + 2, (int)j, (int)k, (int)l, (int)m) } /* end else */ @@ -2648,6 +2689,10 @@ test_random_rank4_vl(hid_t fapl, hid_t dcpl, hbool_t do_fillvalue, hbool_t disab if (H5Fclose(file) < 0) TEST_ERROR + HDfree(rbuf); + HDfree(wbuf); + HDfree(dim_log); + return 0; error: @@ -2657,10 +2702,10 @@ error: for (j = 0; j < dims[1]; j++) for (k = 0; k < dims[2]; k++) for (l = 0; l < dims[3]; l++) { - if (rbuf[i][j][k][l].p) - HDfree(rbuf[i][j][k][l].p); - if (wbuf[i][j][k][l].p) - HDfree(wbuf[i][j][k][l].p); + if (rbuf->arr[i][j][k][l].p) + HDfree(rbuf->arr[i][j][k][l].p); + if (wbuf->arr[i][j][k][l].p) + HDfree(wbuf->arr[i][j][k][l].p); } /* end for */ if (fill_value.p) HDfree(fill_value.p); @@ -2671,7 +2716,12 @@ error: H5Tclose(type); H5Fclose(file); } - H5E_END_TRY + H5E_END_TRY; + + HDfree(rbuf); + HDfree(wbuf); + HDfree(dim_log); + return -1; } /* end test_random_rank4_vl */ diff --git a/test/tcoords.c b/test/tcoords.c index b2d68d3..37c1c1a 100644 --- a/test/tcoords.c +++ b/test/tcoords.c @@ -380,10 +380,14 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) int i, j, k, l, m, n, p; hsize_t da_dims[8] = {4, 5, 3, 4, 2, 3, 6, 2}; hsize_t da_chunksize[8] = {1, 5, 3, 2, 2, 3, 3, 2}; - int data_buf[4][5][3][4][2][3][6][2]; + struct { + int arr[4][5][3][4][2][3][6][2]; + } *data_buf = NULL; /* For testing the full selections in the fastest-growing end and in the middle dimensions */ - int mem1_buffer[1][1][1][4][2][1][6][2]; + struct { + int arr[1][1][1][4][2][1][6][2]; + } *mem1_buffer = NULL; hsize_t mem1_dims[8] = {1, 1, 1, 4, 2, 1, 6, 2}; hsize_t mem1_start[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t mem1_count[8] = {1, 1, 1, 1, 1, 1, 1, 1}; @@ -391,7 +395,9 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) hsize_t mem1_block[8] = {1, 1, 1, 4, 2, 1, 6, 2}; /* For testing the full selections in the slowest-growing end and in the middle dimensions */ - int mem2_buffer[4][5][1][4][2][1][1][1]; + struct { + int arr[4][5][1][4][2][1][1][1]; + } *mem2_buffer = NULL; hsize_t mem2_dims[8] = {4, 5, 1, 4, 2, 1, 1, 1}; hsize_t mem2_start[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t mem2_count[8] = {1, 1, 1, 1, 1, 1, 1, 1}; @@ -399,7 +405,9 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) hsize_t mem2_block[8] = {4, 5, 1, 4, 2, 1, 1, 1}; /* For testing two unadjacent full selections in the middle dimensions */ - int mem3_buffer[1][5][3][1][1][3][6][1]; + struct { + int arr[1][5][3][1][1][3][6][1]; + } *mem3_buffer = NULL; hsize_t mem3_dims[8] = {1, 5, 3, 1, 1, 3, 6, 1}; hsize_t mem3_start[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t mem3_count[8] = {1, 1, 1, 1, 1, 1, 1, 1}; @@ -407,7 +415,9 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) hsize_t mem3_block[8] = {1, 5, 3, 1, 1, 3, 6, 1}; /* For testing the full selections in the fastest-growing end and the slowest-growing end */ - int mem4_buffer[4][5][1][1][1][1][6][2]; + struct { + int arr[4][5][1][1][1][1][6][2]; + } *mem4_buffer = NULL; hsize_t mem4_dims[8] = {4, 5, 1, 1, 1, 1, 6, 2}; hsize_t mem4_start[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t mem4_count[8] = {1, 1, 1, 1, 1, 1, 1, 1}; @@ -416,13 +426,29 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) /* For testing the full selections in the fastest-growing end and slowest-growing end, * also in the middle dimensions */ - int mem5_buffer[4][5][1][4][2][1][6][2]; + struct { + int arr[4][5][1][4][2][1][6][2]; + } *mem5_buffer = NULL; hsize_t mem5_dims[8] = {4, 5, 1, 4, 2, 1, 6, 2}; hsize_t mem5_start[8] = {0, 0, 0, 0, 0, 0, 0, 0}; hsize_t mem5_count[8] = {1, 1, 1, 1, 1, 1, 1, 1}; hsize_t mem5_stride[8] = {1, 1, 1, 1, 1, 1, 1, 1}; hsize_t mem5_block[8] = {4, 5, 1, 4, 2, 1, 6, 2}; + /* Initialize dynamic arrays */ + data_buf = HDcalloc(1, sizeof(*data_buf)); + CHECK_PTR(data_buf, "HDcalloc"); + mem1_buffer = HDcalloc(1, sizeof(*mem1_buffer)); + CHECK_PTR(data_buf, "HDcalloc"); + mem2_buffer = HDcalloc(1, sizeof(*mem2_buffer)); + CHECK_PTR(data_buf, "HDcalloc"); + mem3_buffer = HDcalloc(1, sizeof(*mem3_buffer)); + CHECK_PTR(data_buf, "HDcalloc"); + mem4_buffer = HDcalloc(1, sizeof(*mem4_buffer)); + CHECK_PTR(data_buf, "HDcalloc"); + mem5_buffer = HDcalloc(1, sizeof(*mem5_buffer)); + CHECK_PTR(data_buf, "HDcalloc"); + /* Create and write the dataset */ sid = H5Screate_simple(8, da_dims, da_dims); CHECK(sid, FAIL, "H5Screate_simple"); @@ -451,10 +477,10 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) for (m = 0; m < 2; m++) for (n = 0; n < 3; n++) for (p = 0; p < 6; p++) { - data_buf[i][j][k][l][m][n][p][0] = + data_buf->arr[i][j][k][l][m][n][p][0] = i * 1000000 + j * 100000 + k * 10000 + l * 1000 + m * 100 + n * 10 + p; - data_buf[i][j][k][l][m][n][p][1] = i * 1000000 + j * 100000 + k * 10000 + - l * 1000 + m * 100 + n * 10 + p + 1; + data_buf->arr[i][j][k][l][m][n][p][1] = i * 1000000 + j * 100000 + k * 10000 + + l * 1000 + m * 100 + n * 10 + p + 1; } ret = H5Dwrite(did, H5T_NATIVE_INT, sid, sid, H5P_DEFAULT, data_buf); @@ -491,7 +517,7 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) for (j = 0; j < 2; j++) for (k = 0; k < 6; k++) for (l = 0; l < 2; l++) - if (data_buf[0][0][0][i][j][0][k][l] != mem1_buffer[0][0][0][i][j][0][k][l]) { + if (data_buf->arr[0][0][0][i][j][0][k][l] != mem1_buffer->arr[0][0][0][i][j][0][k][l]) { TestErrPrintf("%u: Read different values than written at index 0,0,0,%d,%d,0,%d,%d\n", __LINE__, i, j, k, l); } @@ -524,7 +550,7 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) for (j = 0; j < 5; j++) for (k = 0; k < 4; k++) for (l = 0; l < 2; l++) - if (data_buf[i][j][0][k][l][0][0][0] != mem2_buffer[i][j][0][k][l][0][0][0]) { + if (data_buf->arr[i][j][0][k][l][0][0][0] != mem2_buffer->arr[i][j][0][k][l][0][0][0]) { TestErrPrintf("%u: Read different values than written at index %d,%d,0,%d,%d,0,0,0\n", __LINE__, i, j, k, l); } @@ -557,7 +583,7 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) for (j = 0; j < 3; j++) for (k = 0; k < 3; k++) for (l = 0; l < 6; l++) - if (data_buf[0][i][j][0][0][k][l][0] != mem3_buffer[0][i][j][0][0][k][l][0]) { + if (data_buf->arr[0][i][j][0][0][k][l][0] != mem3_buffer->arr[0][i][j][0][0][k][l][0]) { TestErrPrintf("%u: Read different values than written at index 0,%d,%d,0,0,%d,%d,0\n", __LINE__, i, j, k, l); } @@ -590,7 +616,7 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) for (j = 0; j < 5; j++) for (k = 0; k < 6; k++) for (l = 0; l < 2; l++) - if (data_buf[i][j][0][0][0][0][k][l] != mem4_buffer[i][j][0][0][0][0][k][l]) { + if (data_buf->arr[i][j][0][0][0][0][k][l] != mem4_buffer->arr[i][j][0][0][0][0][k][l]) { TestErrPrintf("%u: Read different values than written at index %d,%d,0,0,0,0,%d,%d\n", __LINE__, i, j, k, l); } @@ -626,7 +652,8 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) for (l = 0; l < 2; l++) for (m = 0; m < 6; m++) for (n = 0; n < 2; n++) - if (data_buf[i][j][0][k][l][0][m][n] != mem5_buffer[i][j][0][k][l][0][m][n]) { + if (data_buf->arr[i][j][0][k][l][0][m][n] != + mem5_buffer->arr[i][j][0][k][l][0][m][n]) { TestErrPrintf( "%u: Read different values than written at index %d,%d,0,%d,%d,0,%d,%d\n", __LINE__, i, j, k, l, m, n); @@ -637,6 +664,13 @@ test_multiple_ends(hid_t file, hbool_t is_chunked) ret = H5Pclose(plid); CHECK(ret, FAIL, "H5Pclose"); + + HDfree(data_buf); + HDfree(mem1_buffer); + HDfree(mem2_buffer); + HDfree(mem3_buffer); + HDfree(mem4_buffer); + HDfree(mem5_buffer); } /**************************************************************** diff --git a/test/vds_env.c b/test/vds_env.c index db54ea0..3e08b69 100644 --- a/test/vds_env.c +++ b/test/vds_env.c @@ -44,13 +44,13 @@ const char *FILENAME[] = {"vds_env_virt_0", "vds_env_virt_3", "vds_env_src_2", " static int test_vds_prefix_second(unsigned config, hid_t fapl) { - char srcfilename[FILENAME_BUF_SIZE]; - char srcfilename_map[FILENAME_BUF_SIZE]; - char vfilename[FILENAME_BUF_SIZE]; - char vfilename2[FILENAME_BUF_SIZE]; - char srcfilenamepct[FILENAME_BUF_SIZE]; - char srcfilenamepct_map[FILENAME_BUF_SIZE]; const char *srcfilenamepct_map_orig = "vds%%%%_src"; + char * srcfilename = NULL; + char * srcfilename_map = NULL; + char * vfilename = NULL; + char * vfilename2 = NULL; + char * srcfilenamepct = NULL; + char * srcfilenamepct_map = NULL; hid_t srcfile[4] = {-1, -1, -1, -1}; /* Files with source dsets */ hid_t vfile = -1; /* File with virtual dset */ hid_t dcpl = -1; /* Dataset creation property list */ @@ -69,12 +69,25 @@ test_vds_prefix_second(unsigned config, hid_t fapl) TESTING("basic virtual dataset I/O via H5Pset_vds_prefix(): all selection with ENV prefix") - h5_fixname(FILENAME[0], fapl, vfilename, sizeof vfilename); - h5_fixname(FILENAME[1], fapl, vfilename2, sizeof vfilename2); - h5_fixname(FILENAME[2], fapl, srcfilename, sizeof srcfilename); - h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, sizeof srcfilename_map); - h5_fixname(FILENAME[3], fapl, srcfilenamepct, sizeof srcfilenamepct); - h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, sizeof srcfilenamepct_map); + if (NULL == (srcfilename = HDmalloc(FILENAME_BUF_SIZE))) + TEST_ERROR + if (NULL == (srcfilename_map = HDmalloc(FILENAME_BUF_SIZE))) + TEST_ERROR + if (NULL == (vfilename = HDmalloc(FILENAME_BUF_SIZE))) + TEST_ERROR + if (NULL == (vfilename2 = HDmalloc(FILENAME_BUF_SIZE))) + TEST_ERROR + if (NULL == (srcfilenamepct = HDmalloc(FILENAME_BUF_SIZE))) + TEST_ERROR + if (NULL == (srcfilenamepct_map = HDmalloc(FILENAME_BUF_SIZE))) + TEST_ERROR + + h5_fixname(FILENAME[0], fapl, vfilename, FILENAME_BUF_SIZE); + h5_fixname(FILENAME[1], fapl, vfilename2, FILENAME_BUF_SIZE); + h5_fixname(FILENAME[2], fapl, srcfilename, FILENAME_BUF_SIZE); + h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, FILENAME_BUF_SIZE); + h5_fixname(FILENAME[3], fapl, srcfilenamepct, FILENAME_BUF_SIZE); + h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, FILENAME_BUF_SIZE); /* create tmp directory and get current working directory path */ if (HDmkdir(TMPDIR, (mode_t)0755) < 0 && errno != EEXIST) @@ -260,10 +273,24 @@ test_vds_prefix_second(unsigned config, hid_t fapl) TEST_ERROR dcpl = -1; + HDfree(srcfilenamepct_map); + HDfree(srcfilenamepct); + HDfree(vfilename2); + HDfree(vfilename); + HDfree(srcfilename_map); + HDfree(srcfilename); + PASSED(); return 0; error: + HDfree(srcfilenamepct_map); + HDfree(srcfilenamepct); + HDfree(vfilename2); + HDfree(vfilename); + HDfree(srcfilename_map); + HDfree(srcfilename); + H5E_BEGIN_TRY { for (i = 0; i < (int)(sizeof(srcdset) / sizeof(srcdset[0])); i++) |