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/cache.c | |
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/cache.c')
-rw-r--r-- | test/cache.c | 6768 |
1 files changed, 2717 insertions, 4051 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() */ /*------------------------------------------------------------------------- |