summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.in6
-rw-r--r--test/cache.c6524
-rw-r--r--test/cache_common.c656
-rw-r--r--test/cache_common.h61
-rwxr-xr-xtest/corrupt_stab_msg.h5bin0 -> 2928 bytes
-rw-r--r--test/dsets.c76
-rw-r--r--test/dt_arith.c20
-rw-r--r--test/dtransform.c30
-rw-r--r--test/dtypes.c27
-rw-r--r--test/enum.c25
-rw-r--r--test/error_test.c4
-rw-r--r--test/fillval.c4
-rw-r--r--test/freespace.c13
-rw-r--r--test/getname.c35
-rw-r--r--test/h5test.c27
-rw-r--r--test/links.c69
-rw-r--r--test/mf.c122
-rw-r--r--test/mount.c11
-rw-r--r--test/stab.c123
-rw-r--r--test/tarray.c16
-rw-r--r--test/tmisc.c2
-rw-r--r--test/trefstr.c1
-rw-r--r--test/tselect.c28
-rw-r--r--test/tsohm.c29
24 files changed, 6253 insertions, 1656 deletions
diff --git a/test/Makefile.in b/test/Makefile.in
index 29f30d0..49674dc 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -546,6 +546,8 @@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
+
+# Install directories that automake doesn't know about
docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
@@ -557,9 +559,7 @@ host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
-
-# Install directories that automake doesn't know about
-includedir = $(exec_prefix)/include
+includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
diff --git a/test/cache.c b/test/cache.c
index 8c1e328..65a6719 100644
--- a/test/cache.c
+++ b/test/cache.c
@@ -27,19 +27,19 @@
/* private function declarations: */
-static void smoke_check_1(void);
-static void smoke_check_2(void);
-static void smoke_check_3(void);
-static void smoke_check_4(void);
-static void smoke_check_5(void);
-static void smoke_check_6(void);
-static void smoke_check_7(void);
-static void smoke_check_8(void);
-static void smoke_check_9(void);
-static void smoke_check_10(void);
-static void write_permitted_check(void);
-static void check_insert_entry(void);
-static void check_flush_cache(void);
+static unsigned smoke_check_1(void);
+static unsigned smoke_check_2(void);
+static unsigned smoke_check_3(void);
+static unsigned smoke_check_4(void);
+static unsigned smoke_check_5(void);
+static unsigned smoke_check_6(void);
+static unsigned smoke_check_7(void);
+static unsigned smoke_check_8(void);
+static unsigned smoke_check_9(void);
+static unsigned smoke_check_10(void);
+static unsigned write_permitted_check(void);
+static unsigned check_insert_entry(void);
+static unsigned check_flush_cache(void);
static void check_flush_cache__empty_cache(H5C_t * cache_ptr);
static void check_flush_cache__multi_entry(H5C_t * cache_ptr);
static void check_flush_cache__multi_entry_test(H5C_t * cache_ptr,
@@ -92,36 +92,40 @@ static void check_flush_cache__flush_op_test(H5C_t * cache_ptr,
int check_size,
struct fo_flush_entry_check check[]);
static void check_flush_cache__flush_op_eviction_test(H5C_t * cache_ptr);
-static void check_flush_protected_err(void);
-static void check_get_entry_status(void);
-static void check_expunge_entry(void);
-static void check_multiple_read_protect(void);
-static void check_rename_entry(void);
+static unsigned check_flush_protected_err(void);
+static unsigned check_get_entry_status(void);
+static unsigned check_expunge_entry(void);
+static unsigned check_multiple_read_protect(void);
+static unsigned check_rename_entry(void);
static void check_rename_entry__run_test(H5C_t * cache_ptr, int test_num,
struct rename_entry_test_spec * spec_ptr);
-static void check_pin_protected_entry(void);
-static void check_resize_entry(void);
-static void check_evictions_enabled(void);
-static void check_destroy_pinned_err(void);
-static void check_destroy_protected_err(void);
-static void check_duplicate_insert_err(void);
-static void check_rename_err(void);
-static void check_double_pin_err(void);
-static void check_double_unpin_err(void);
-static void check_pin_entry_errs(void);
-static void check_double_protect_err(void);
-static void check_double_unprotect_err(void);
-static void check_mark_entry_dirty_errs(void);
-static void check_expunge_entry_errs(void);
-static void check_resize_entry_errs(void);
-static void check_unprotect_ro_dirty_err(void);
-static void check_protect_ro_rw_err(void);
-static void check_check_evictions_enabled_err(void);
-static void check_auto_cache_resize(void);
-static void check_auto_cache_resize_disable(void);
-static void check_auto_cache_resize_epoch_markers(void);
-static void check_auto_cache_resize_input_errs(void);
-static void check_auto_cache_resize_aux_fcns(void);
+static unsigned check_pin_protected_entry(void);
+static unsigned check_resize_entry(void);
+static unsigned check_evictions_enabled(void);
+static unsigned check_destroy_pinned_err(void);
+static unsigned check_destroy_protected_err(void);
+static unsigned check_duplicate_insert_err(void);
+static unsigned check_rename_err(void);
+static unsigned check_double_pin_err(void);
+static unsigned check_double_unpin_err(void);
+static unsigned check_pin_entry_errs(void);
+static unsigned check_double_protect_err(void);
+static unsigned check_double_unprotect_err(void);
+static unsigned check_mark_entry_dirty_errs(void);
+static unsigned check_expunge_entry_errs(void);
+static unsigned check_resize_entry_errs(void);
+static unsigned check_unprotect_ro_dirty_err(void);
+static unsigned check_protect_ro_rw_err(void);
+static unsigned check_check_evictions_enabled_err(void);
+static unsigned check_auto_cache_resize(void);
+static unsigned check_auto_cache_resize_disable(void);
+static unsigned check_auto_cache_resize_epoch_markers(void);
+static unsigned check_auto_cache_resize_input_errs(void);
+static unsigned check_auto_cache_resize_aux_fcns(void);
+static unsigned check_metadata_blizzard_absence(hbool_t fill_via_insertion);
+static unsigned check_flush_deps(void);
+static unsigned check_flush_deps_err(void);
+static unsigned check_flush_deps_order(void);
/**************************************************************************/
@@ -151,7 +155,7 @@ static void check_auto_cache_resize_aux_fcns(void);
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_1(void)
{
const char * fcn_name = "smoke_check_1";
@@ -167,12 +171,9 @@ smoke_check_1(void)
TESTING("smoke check #1 -- all clean, ins, dest, ren, 4/2 MB cache");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
pass = TRUE;
@@ -318,7 +319,7 @@ smoke_check_1(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_1() */
@@ -345,7 +346,7 @@ smoke_check_1(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_2(void)
{
const char * fcn_name = "smoke_check_2";
@@ -361,12 +362,9 @@ smoke_check_2(void)
TESTING("smoke check #2 -- ~1/2 dirty, ins, dest, ren, 4/2 MB cache");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
pass = TRUE;
@@ -512,7 +510,7 @@ smoke_check_2(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_2() */
@@ -538,7 +536,7 @@ smoke_check_2(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_3(void)
{
const char * fcn_name = "smoke_check_3";
@@ -554,12 +552,9 @@ smoke_check_3(void)
TESTING("smoke check #3 -- all clean, ins, dest, ren, 2/1 KB cache");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
pass = TRUE;
@@ -705,7 +700,7 @@ smoke_check_3(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_3() */
@@ -732,7 +727,7 @@ smoke_check_3(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_4(void)
{
const char * fcn_name = "smoke_check_4";
@@ -748,12 +743,9 @@ smoke_check_4(void)
TESTING("smoke check #4 -- ~1/2 dirty, ins, dest, ren, 2/1 KB cache");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
pass = TRUE;
@@ -899,7 +891,7 @@ smoke_check_4(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_4() */
@@ -926,7 +918,7 @@ smoke_check_4(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_5(void)
{
const char * fcn_name = "smoke_check_5";
@@ -995,7 +987,7 @@ smoke_check_5(void)
HDfprintf(stdout, " Long tests disabled.\n");
- return;
+ return 0; /* <========== note return */
}
if ( run_full_test ) {
@@ -1139,7 +1131,7 @@ smoke_check_5(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_5() */
@@ -1166,7 +1158,7 @@ smoke_check_5(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_6(void)
{
const char * fcn_name = "smoke_check_6";
@@ -1232,12 +1224,9 @@ smoke_check_6(void)
pass = TRUE;
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
if ( run_full_test ) {
@@ -1379,7 +1368,7 @@ smoke_check_6(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_6() */
@@ -1406,7 +1395,7 @@ smoke_check_6(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_7(void)
{
const char * fcn_name = "smoke_check_7";
@@ -1471,12 +1460,9 @@ smoke_check_7(void)
TESTING("smoke check #7 -- all clean, ins, prot, unprot, AR cache 2");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
if ( run_full_test ) {
@@ -1620,7 +1606,7 @@ smoke_check_7(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_7() */
@@ -1647,7 +1633,7 @@ smoke_check_7(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_8(void)
{
const char * fcn_name = "smoke_check_8";
@@ -1712,12 +1698,9 @@ smoke_check_8(void)
TESTING("smoke check #8 -- ~1/2 dirty, ins, prot, unprot, AR cache 2");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
if ( run_full_test ) {
@@ -1861,7 +1844,7 @@ smoke_check_8(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_8() */
@@ -1889,7 +1872,7 @@ smoke_check_8(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_9(void)
{
const char * fcn_name = "smoke_check_9";
@@ -1907,12 +1890,9 @@ smoke_check_9(void)
TESTING("smoke check #9 -- all clean, ins, dest, ren, 4/2 MB, corked");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
pass = TRUE;
@@ -2168,7 +2148,7 @@ smoke_check_9(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_9() */
@@ -2196,7 +2176,7 @@ smoke_check_9(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
smoke_check_10(void)
{
const char * fcn_name = "smoke_check_10";
@@ -2214,12 +2194,9 @@ smoke_check_10(void)
TESTING("smoke check #10 -- ~1/2 dirty, ins, dest, ren, 4/2 MB, corked");
if ( skip_long_tests ) {
-
SKIPPED();
-
HDfprintf(stdout, " Long tests disabled.\n");
-
- return;
+ return 0; /* <========== note return */
}
pass = TRUE;
@@ -2470,7 +2447,7 @@ smoke_check_10(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* smoke_check_10() */
@@ -2494,7 +2471,7 @@ smoke_check_10(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
write_permitted_check(void)
{
@@ -2661,7 +2638,7 @@ write_permitted_check(void)
#endif /* H5C_MAINTAIN_CLEAN_AND_DIRTY_LRU_LISTS */
- return;
+ return (unsigned)!pass;
} /* write_permitted_check() */
@@ -2687,7 +2664,7 @@ write_permitted_check(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_insert_entry(void)
{
const char * fcn_name = "check_insert_entry";
@@ -2963,7 +2940,7 @@ check_insert_entry(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_insert_entry() */
@@ -2984,7 +2961,7 @@ check_insert_entry(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_flush_cache(void)
{
const char * fcn_name = "check_flush_cache";
@@ -3084,7 +3061,7 @@ check_flush_cache(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_flush_cache() */
@@ -5482,17 +5459,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5510,17 +5487,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5590,17 +5567,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5618,17 +5595,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE,0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5695,17 +5672,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5774,17 +5751,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5854,17 +5831,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* op_code: type: idx: flag: size: order_ptr: */
+ { { FLUSH_OP__RENAME, 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 },
+ { FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL } },
/* expected_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -5966,17 +5943,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* op_code: type: idx: flag: size: order_ptr: */
+ { { FLUSH_OP__RENAME, 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 },
+ { FLUSH_OP__NO_OP, 0, 0, FALSE, 0, NULL } },
/* expected_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6080,17 +6057,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 2,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* op_code: type: idx: flag: size: order_ptr: */
+ { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL },
+ { FLUSH_OP__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6192,17 +6169,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 2,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* op_code: type: idx: flag: size: order_ptr: */
+ { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4, NULL },
+ { FLUSH_OP__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6307,17 +6284,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 2,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, 0, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, 0, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6405,17 +6382,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 2,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, 0, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, 0, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6502,17 +6479,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 4,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6599,17 +6576,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 4,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6696,17 +6673,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6825,17 +6802,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6966,17 +6943,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -6994,17 +6971,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 10, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 12, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ FALSE,
@@ -7022,17 +6999,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7050,17 +7027,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ FALSE,
@@ -7181,17 +7158,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7209,17 +7186,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 10, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 12, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7237,17 +7214,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7265,17 +7242,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ FALSE,
@@ -7293,17 +7270,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7321,17 +7298,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7451,17 +7428,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7479,17 +7456,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 6,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 10, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 10, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 10, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 12, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 12, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 12, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7507,17 +7484,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7535,17 +7512,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7563,17 +7540,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7591,17 +7568,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7717,17 +7694,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7745,17 +7722,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7773,17 +7750,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__DIRTY, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7851,17 +7828,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7879,17 +7856,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -7907,17 +7884,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 1,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, PICO_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__DIRTY, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8055,17 +8032,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8083,17 +8060,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8111,17 +8088,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8139,17 +8116,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 4,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 300, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 300, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8167,17 +8144,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2200, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2300, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8195,17 +8172,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 350, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8223,17 +8200,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 450, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8251,17 +8228,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 650, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8279,17 +8256,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 750, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8307,17 +8284,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 4,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 350, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 450, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 650, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 750, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8492,17 +8469,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8520,17 +8497,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8548,17 +8525,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8576,17 +8553,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 4,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 300, FALSE, 0 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 300, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8604,17 +8581,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 2200, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 2300, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8632,17 +8609,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 350, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8660,17 +8637,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 450, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8688,17 +8665,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 650, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ FALSE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8716,17 +8693,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {1000, 2000, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 1000, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 2000, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 750, FALSE, VARIABLE_ENTRY_SIZE / 4 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8744,17 +8721,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 4,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 350, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 450, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 650, FALSE, 0 },
- { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 750, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8854,17 +8831,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8882,17 +8859,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 200, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8910,17 +8887,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {400, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 400, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 300, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 300, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8938,17 +8915,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -8966,17 +8943,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 500, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 500, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -9047,17 +9024,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -9075,17 +9052,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 200, FALSE, VARIABLE_ENTRY_SIZE },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 200, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -9103,17 +9080,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {400, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 400, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 300, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 300, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -9131,17 +9108,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {0, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 0,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -9159,17 +9136,17 @@ check_flush_cache__flush_ops(H5C_t * cache_ptr)
/* pin_idx = */ {100, 0, 0, 0, 0, 0, 0, 0},
/* num_flush_ops = */ 3,
/* flush_ops = */
- /* op_code: type: idx: flag: size: */
- { { FLUSH_OP__DIRTY, VARIABLE_ENTRY_TYPE, 100, FALSE, 0 },
- { FLUSH_OP__RESIZE, VARIABLE_ENTRY_TYPE, 500, FALSE, VARIABLE_ENTRY_SIZE / 2 },
- { FLUSH_OP__RENAME, VARIABLE_ENTRY_TYPE, 500, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 },
- { FLUSH_OP__NO_OP, 0, 0, FALSE, 0 } },
+ /* 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__RENAME, 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_loaded = */ TRUE,
/* expected_cleared = */ FALSE,
/* expected_flushed = */ TRUE,
@@ -9443,7 +9420,8 @@ check_flush_cache__flush_op_test(H5C_t * cache_ptr,
spec[i].flush_ops[j].type,
spec[i].flush_ops[j].idx,
spec[i].flush_ops[j].flag,
- spec[i].flush_ops[j].size);
+ spec[i].flush_ops[j].size,
+ spec[i].flush_ops[j].order_ptr);
}
i++;
@@ -9817,61 +9795,61 @@ check_flush_cache__flush_op_eviction_test(H5C_t * cache_ptr)
* 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 */
- /* type: index: size: cache: addr: dirty: prot: pinned: loaded: clrd: flshd: dest: */
- { VARIABLE_ENTRY_TYPE, 0, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 1, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 2, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 3, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 4, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 5, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 6, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { VARIABLE_ENTRY_TYPE, 7, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 0, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 1, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 2, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 3, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 4, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 5, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 6, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 7, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 8, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 9, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 10, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 11, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 12, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 13, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 14, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 15, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 16, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 17, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 18, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 19, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 20, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 21, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 22, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 23, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 24, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 25, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 26, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 27, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 28, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 29, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { MONSTER_ENTRY_TYPE, 30, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 0, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 1, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 2, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 3, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 4, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 5, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 6, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 7, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 8, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 9, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 10, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 11, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 12, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE },
- { LARGE_ENTRY_TYPE, 13, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE }
+ /* entry entry in at main flush dep flush dep child flush flush flush */
+ /* type: index: size: cache: addr: dirty: prot: pinned: loaded: clrd: flshd: dest: par type: par idx: dep ref.count: dep height: order: */
+ { VARIABLE_ENTRY_TYPE, 0, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 1, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 2, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 3, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 4, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 5, VARIABLE_ENTRY_SIZE/2, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 6, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { VARIABLE_ENTRY_TYPE, 7, VARIABLE_ENTRY_SIZE, TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 0, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 1, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 2, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 3, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 4, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 5, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 6, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 7, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 8, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 9, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 10, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 11, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 12, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 13, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 14, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 15, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 16, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 17, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 18, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 19, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 20, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 21, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 22, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 23, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 24, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 25, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 26, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 27, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 28, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 29, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { MONSTER_ENTRY_TYPE, 30, MONSTER_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 0, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 1, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 2, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 3, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 4, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 5, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 6, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 7, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 8, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 9, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 10, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 11, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 12, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { LARGE_ENTRY_TYPE, 13, LARGE_ENTRY_SIZE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 }
};
if ( pass ) {
@@ -10004,25 +9982,25 @@ check_flush_cache__flush_op_eviction_test(H5C_t * cache_ptr)
* (VET, 7) dirties (VET, 6)
*/
add_flush_op(VARIABLE_ENTRY_TYPE, 1, FLUSH_OP__DIRTY,
- VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0);
+ VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 1, FLUSH_OP__RESIZE,
VARIABLE_ENTRY_TYPE, 0, FALSE,
- 3 * VARIABLE_ENTRY_SIZE / 4);
+ 3 * VARIABLE_ENTRY_SIZE / 4, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 2, FLUSH_OP__DIRTY,
- VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0);
+ VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 2, FLUSH_OP__RESIZE,
- VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE);
+ VARIABLE_ENTRY_TYPE, 0, FALSE, VARIABLE_ENTRY_SIZE, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 2, FLUSH_OP__RENAME,
- VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0);
+ VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 3, FLUSH_OP__DIRTY,
- VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0);
+ VARIABLE_ENTRY_TYPE, 0, FALSE, (size_t)0, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 3, FLUSH_OP__RESIZE,
- VARIABLE_ENTRY_TYPE, 3, FALSE, VARIABLE_ENTRY_SIZE);
+ VARIABLE_ENTRY_TYPE, 3, FALSE, VARIABLE_ENTRY_SIZE, NULL);
add_flush_op(VARIABLE_ENTRY_TYPE, 7, FLUSH_OP__DIRTY,
- VARIABLE_ENTRY_TYPE, 6, FALSE, (size_t)0);
+ VARIABLE_ENTRY_TYPE, 6, FALSE, (size_t)0, NULL);
}
if ( pass ) {
@@ -13526,7 +13504,7 @@ check_flush_cache__pinned_single_entry_test(H5C_t * cache_ptr,
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_get_entry_status(void)
{
const char * fcn_name = "check_get_entry_status";
@@ -13705,7 +13683,7 @@ check_get_entry_status(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_get_entry_status() */
@@ -13727,7 +13705,7 @@ check_get_entry_status(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_expunge_entry(void)
{
const char * fcn_name = "check_expunge_entry";
@@ -14005,7 +13983,7 @@ check_expunge_entry(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_expunge_entry() */
@@ -14029,7 +14007,7 @@ check_expunge_entry(void)
*/
-static void
+static unsigned
check_multiple_read_protect(void)
{
const char * fcn_name = "check_multiple_read_protect()";
@@ -14426,7 +14404,7 @@ check_multiple_read_protect(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_multiple_read_protect() */
@@ -14448,7 +14426,7 @@ check_multiple_read_protect(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_rename_entry(void)
{
const char * fcn_name = "check_rename_entry";
@@ -14539,7 +14517,7 @@ check_rename_entry(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_rename_entry() */
@@ -14709,7 +14687,7 @@ check_rename_entry__run_test(H5C_t * cache_ptr,
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_pin_protected_entry(void)
{
const char * fcn_name = "check_pin_protected_entry";
@@ -14779,7 +14757,7 @@ check_pin_protected_entry(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_pin_protected_entry() */
@@ -14802,7 +14780,7 @@ check_pin_protected_entry(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_resize_entry(void)
{
const char * fcn_name = "check_resize_entry";
@@ -15700,7 +15678,7 @@ check_resize_entry(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_resize_entry() */
@@ -15723,7 +15701,7 @@ check_resize_entry(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_evictions_enabled(void)
{
const char * fcn_name = "check_evictions_enabled";
@@ -15734,7 +15712,6 @@ check_evictions_enabled(void)
hbool_t in_cache;
int i;
int mile_stone = 1;
- size_t entry_size;
H5C_t * cache_ptr = NULL;
test_entry_t * base_addr;
test_entry_t * entry_ptr;
@@ -15791,7 +15768,6 @@ check_evictions_enabled(void)
(size_t)( 512 * 1024));
base_addr = entries[MONSTER_ENTRY_TYPE];
- entry_size = MONSTER_ENTRY_SIZE;
}
if ( show_progress ) /* 2 */
@@ -16402,7 +16378,7 @@ check_evictions_enabled(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_evictions_enabled() */
@@ -16423,7 +16399,7 @@ check_evictions_enabled(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_flush_protected_err(void)
{
const char * fcn_name = "check_flush_protected_err";
@@ -16478,7 +16454,7 @@ check_flush_protected_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_flush_protected_err() */
@@ -16500,7 +16476,7 @@ check_flush_protected_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_destroy_pinned_err(void)
{
const char * fcn_name = "check_destroy_pinned_err()";
@@ -16551,7 +16527,7 @@ check_destroy_pinned_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_destroy_pinned_err() */
@@ -16572,7 +16548,7 @@ check_destroy_pinned_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_destroy_protected_err(void)
{
const char * fcn_name = "check_destroy_protected_err";
@@ -16622,7 +16598,7 @@ check_destroy_protected_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_destroy_protected_err() */
@@ -16643,7 +16619,7 @@ check_destroy_protected_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_duplicate_insert_err(void)
{
const char * fcn_name = "check_duplicate_insert_err";
@@ -16701,7 +16677,7 @@ check_duplicate_insert_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_duplicate_insert_err() */
@@ -16722,7 +16698,7 @@ check_duplicate_insert_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_rename_err(void)
{
const char * fcn_name = "check_rename_err()";
@@ -16794,7 +16770,7 @@ check_rename_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_rename_err() */
@@ -16817,7 +16793,7 @@ check_rename_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_double_pin_err(void)
{
const char * fcn_name = "check_double_pin_err()";
@@ -16882,7 +16858,7 @@ check_double_pin_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_double_pin_err() */
@@ -16905,7 +16881,7 @@ check_double_pin_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_double_unpin_err(void)
{
const char * fcn_name = "check_double_unpin_err()";
@@ -16981,7 +16957,7 @@ check_double_unpin_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_double_unpin_err() */
@@ -17004,7 +16980,7 @@ check_double_unpin_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_pin_entry_errs(void)
{
const char * fcn_name = "check_pin_entry_errs()";
@@ -17092,7 +17068,7 @@ check_pin_entry_errs(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_pin_entry_errs() */
@@ -17118,7 +17094,7 @@ check_pin_entry_errs(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_double_protect_err(void)
{
const char * fcn_name = "check_double_protect_err()";
@@ -17149,7 +17125,7 @@ check_double_protect_err(void)
if ( pass ) {
- cache_entry_ptr = H5C_protect(NULL, -1, -1, cache_ptr, &(types[0]),
+ cache_entry_ptr = (H5C_cache_entry_t *)H5C_protect(NULL, -1, -1, cache_ptr, &(types[0]),
entry_ptr->addr, NULL, NULL,
H5C__NO_FLAGS_SET);
@@ -17178,7 +17154,7 @@ check_double_protect_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_double_protect_err() */
@@ -17207,7 +17183,7 @@ check_double_protect_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_double_unprotect_err(void)
{
const char * fcn_name = "check_double_unprotect_err()";
@@ -17265,7 +17241,7 @@ check_double_unprotect_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_double_unprotect_err() */
@@ -17297,7 +17273,7 @@ check_double_unprotect_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_mark_entry_dirty_errs(void)
{
const char * fcn_name = "check_mark_entry_dirty_errs()";
@@ -17395,7 +17371,7 @@ check_mark_entry_dirty_errs(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_mark_entry_dirty_errs() */
@@ -17418,7 +17394,7 @@ check_mark_entry_dirty_errs(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_expunge_entry_errs(void)
{
const char * fcn_name = "check_expunge_entry_errs()";
@@ -17519,7 +17495,7 @@ check_expunge_entry_errs(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_expunge_entry_errs() */
@@ -17542,7 +17518,7 @@ check_expunge_entry_errs(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_resize_entry_errs(void)
{
const char * fcn_name = "check_resize_entry_errs()";
@@ -17625,7 +17601,7 @@ check_resize_entry_errs(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_resize_entry_errs() */
@@ -17648,7 +17624,7 @@ check_resize_entry_errs(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_unprotect_ro_dirty_err(void)
{
const char * fcn_name = "check_unprotect_ro_dirty_err()";
@@ -17755,7 +17731,7 @@ check_unprotect_ro_dirty_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_unprotect_ro_dirty_err() */
@@ -17778,7 +17754,7 @@ check_unprotect_ro_dirty_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_protect_ro_rw_err(void)
{
const char * fcn_name = "check_protect_ro_rw_err()";
@@ -17838,7 +17814,7 @@ check_protect_ro_rw_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_protect_ro_rw_err() */
@@ -17861,7 +17837,7 @@ check_protect_ro_rw_err(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_check_evictions_enabled_err(void)
{
const char * fcn_name = "check_evictions_enabled_err()";
@@ -17975,7 +17951,7 @@ check_check_evictions_enabled_err(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_evictions_enabled_err() */
@@ -18018,7 +17994,7 @@ static void test_rpt_fcn(UNUSED H5C_t * cache_ptr,
rpt_status = status;
}
-static void
+static unsigned
check_auto_cache_resize(void)
{
const char * fcn_name = "check_auto_cache_resize()";
@@ -22316,7 +22292,7 @@ check_auto_cache_resize(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_auto_cache_resize() */
@@ -22341,7 +22317,7 @@ check_auto_cache_resize(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_auto_cache_resize_disable(void)
{
const char * fcn_name = "check_auto_cache_resize_disable()";
@@ -25070,7 +25046,7 @@ check_auto_cache_resize_disable(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_auto_cache_resize_disable() */
@@ -25091,7 +25067,7 @@ check_auto_cache_resize_disable(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_auto_cache_resize_epoch_markers(void)
{
const char * fcn_name = "check_auto_cache_resize_epoch_markers()";
@@ -25778,7 +25754,7 @@ check_auto_cache_resize_epoch_markers(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_auto_cache_resize_epoch_markers() */
@@ -25804,38 +25780,66 @@ check_auto_cache_resize_epoch_markers(void)
*-------------------------------------------------------------------------
*/
-#define RESIZE_CONFIGS_ARE_EQUAL(a, b, compare_init) \
-( ( (a).version == (b).version ) && \
- ( (a).rpt_fcn == (b).rpt_fcn ) && \
- ( ( ! compare_init ) || \
- ( (a).set_initial_size == (b).set_initial_size ) ) && \
- ( ( ! compare_init ) || \
- ( (a).initial_size == (b).initial_size ) ) && \
- ( (a).min_clean_fraction == (b).min_clean_fraction ) && \
- ( (a).max_size == (b).max_size ) && \
- ( (a).min_size == (b).min_size ) && \
- ( (a).epoch_length == (b).epoch_length ) && \
- ( (a).incr_mode == (b).incr_mode ) && \
- ( (a).lower_hr_threshold == (b).lower_hr_threshold ) && \
- ( (a).increment == (b).increment ) && \
- ( (a).apply_max_increment == (b).apply_max_increment ) && \
- ( (a).max_increment == (b).max_increment ) && \
- ( (a).flash_incr_mode == (b).flash_incr_mode ) && \
- ( (a).flash_multiple == (b).flash_multiple ) && \
- ( (a).flash_threshold == (b).flash_threshold ) && \
- ( (a).decr_mode == (b).decr_mode ) && \
- ( (a).upper_hr_threshold == (b).upper_hr_threshold ) && \
- ( (a).flash_incr_mode == (b).flash_incr_mode ) && \
- ( (a).flash_multiple == (b).flash_multiple ) && \
- ( (a).flash_threshold == (b).flash_threshold ) && \
- ( (a).decrement == (b).decrement ) && \
- ( (a).apply_max_decrement == (b).apply_max_decrement ) && \
- ( (a).max_decrement == (b).max_decrement ) && \
- ( (a).epochs_before_eviction == (b).epochs_before_eviction ) && \
- ( (a).apply_empty_reserve == (b).apply_empty_reserve ) && \
- ( (a).empty_reserve == (b).empty_reserve ) )
+/* Epsilon for floating-point comparisons */
+#define FP_EPSILON 0.000001
-static void
+static hbool_t
+resize_configs_are_equal(const H5C_auto_size_ctl_t *a,
+ const H5C_auto_size_ctl_t *b,
+ hbool_t compare_init)
+{
+ if(a->version != b->version)
+ return(FALSE);
+ else if(a->rpt_fcn != b->rpt_fcn)
+ return(FALSE);
+ else if(compare_init && (a->set_initial_size != b->set_initial_size))
+ return(FALSE);
+ else if(compare_init && (a->initial_size != b->initial_size))
+ return(FALSE);
+ else if(HDfabs(a->min_clean_fraction - b->min_clean_fraction) > FP_EPSILON)
+ return(FALSE);
+ else if(a->max_size != b->max_size)
+ return(FALSE);
+ else if(a->min_size != b->min_size)
+ return(FALSE);
+ else if(a->epoch_length != b->epoch_length)
+ return(FALSE);
+ else if(a->incr_mode != b->incr_mode)
+ return(FALSE);
+ else if(HDfabs(a->lower_hr_threshold - b->lower_hr_threshold) > FP_EPSILON)
+ return(FALSE);
+ else if(HDfabs(a->increment - b->increment) > FP_EPSILON)
+ return(FALSE);
+ else if(a->apply_max_increment != b->apply_max_increment)
+ return(FALSE);
+ else if(a->max_increment != b->max_increment)
+ return(FALSE);
+ else if(a->flash_incr_mode != b->flash_incr_mode)
+ return(FALSE);
+ else if(HDfabs(a->flash_multiple - b->flash_multiple) > FP_EPSILON)
+ return(FALSE);
+ else if(HDfabs(a->flash_threshold - b->flash_threshold) > FP_EPSILON)
+ return(FALSE);
+ else if(a->decr_mode != b->decr_mode)
+ return(FALSE);
+ else if(HDfabs(a->upper_hr_threshold - b->upper_hr_threshold) > FP_EPSILON)
+ return(FALSE);
+ else if(HDfabs(a->decrement - b->decrement) > FP_EPSILON)
+ return(FALSE);
+ else if(a->apply_max_decrement != b->apply_max_decrement)
+ return(FALSE);
+ else if(a->max_decrement != b->max_decrement)
+ return(FALSE);
+ else if(a->epochs_before_eviction != b->epochs_before_eviction)
+ return(FALSE);
+ else if(a->apply_empty_reserve != b->apply_empty_reserve)
+ return(FALSE);
+ else if(HDfabs(a->empty_reserve - b->empty_reserve) > FP_EPSILON)
+ return(FALSE);
+ return(TRUE);
+}
+
+static unsigned
check_auto_cache_resize_input_errs(void)
{
const char * fcn_name = "check_auto_cache_resize_input_errs()";
@@ -25940,8 +25944,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 1.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 1.";
@@ -26013,8 +26017,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 2.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 2.";
@@ -26089,8 +26093,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 3.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 3.";
@@ -26166,8 +26170,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 4.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 4.";
@@ -26240,8 +26244,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 5.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 5.";
@@ -26316,8 +26320,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 6.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 6.";
@@ -26389,8 +26393,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 7.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 7.";
@@ -26466,8 +26470,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 8.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 8.";
@@ -26539,8 +26543,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 9.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 9.";
@@ -26612,8 +26616,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 10.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 10.";
@@ -26688,8 +26692,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 11.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 11.";
@@ -26761,8 +26765,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 12.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 12.";
@@ -26838,8 +26842,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 13.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 13.";
@@ -26912,8 +26916,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 14.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 14.";
@@ -26988,8 +26992,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 15.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 15.";
@@ -27061,8 +27065,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 16.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 16.";
@@ -27134,8 +27138,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 17.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 17.";
@@ -27211,8 +27215,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 18.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 18.";
@@ -27288,8 +27292,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 19.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 19.";
@@ -27364,8 +27368,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 20.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 20.";
@@ -27438,8 +27442,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 21.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 21.";
@@ -27514,8 +27518,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 22.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 22.";
@@ -27588,8 +27592,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 23.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 23.";
@@ -27664,8 +27668,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 24.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 24.";
@@ -27738,8 +27742,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 25.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 25.";
@@ -27814,8 +27818,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 26.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 26.";
@@ -27887,8 +27891,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 27.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 27.";
@@ -27962,8 +27966,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 28.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 28.";
@@ -28035,8 +28039,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 29.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 29.";
@@ -28110,8 +28114,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 30.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 30.";
@@ -28183,8 +28187,8 @@ check_auto_cache_resize_input_errs(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_auto_resize_config failed 31.";
- } else if ( ! RESIZE_CONFIGS_ARE_EQUAL(test_auto_size_ctl, \
- ref_auto_size_ctl, FALSE) ) {
+ } else if ( ! resize_configs_are_equal(&test_auto_size_ctl, \
+ &ref_auto_size_ctl, FALSE) ) {
pass = FALSE;
failure_mssg = "Unexpected auto resize config 31.";
@@ -28246,7 +28250,7 @@ check_auto_cache_resize_input_errs(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_auto_cache_resize_input_errs() */
@@ -28272,7 +28276,7 @@ check_auto_cache_resize_input_errs(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_auto_cache_resize_aux_fcns(void)
{
const char * fcn_name = "check_auto_cache_resize_aux_fcns()";
@@ -28394,7 +28398,7 @@ check_auto_cache_resize_aux_fcns(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_hit_rate failed.\n";
- } else if ( hit_rate != 0.0 ) {
+ } else if ( hit_rate > FP_EPSILON ) { /* i.e. hit_rate != 0.0 */
pass = FALSE;
failure_mssg =
@@ -28428,7 +28432,7 @@ check_auto_cache_resize_aux_fcns(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_hit_rate failed.\n";
- } else if ( hit_rate != 0.0 ) {
+ } else if ( hit_rate > FP_EPSILON ) { /* i.e. hit_rate != 0.0 */
pass = FALSE;
failure_mssg =
@@ -28474,7 +28478,7 @@ check_auto_cache_resize_aux_fcns(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_hit_rate failed.\n";
- } else if ( hit_rate != 0.5 ) {
+ } else if ( HDfabs(hit_rate - 0.5) > FP_EPSILON ) { /* i.e. hit_rate != 0.5 */
pass = FALSE;
failure_mssg =
@@ -28558,7 +28562,7 @@ check_auto_cache_resize_aux_fcns(void)
pass = FALSE;
failure_mssg = "H5C_get_cache_hit_rate failed.\n";
- } else if ( hit_rate != 0.5 ) {
+ } else if ( HDfabs(hit_rate - 0.5) > FP_EPSILON ) { /* i.e. hit_rate != 0.5 */
pass = FALSE;
failure_mssg =
@@ -28828,7 +28832,7 @@ check_auto_cache_resize_aux_fcns(void)
fcn_name, failure_mssg);
}
- return;
+ return (unsigned)!pass;
} /* check_auto_cache_resize_aux_fcns() */
@@ -28861,7 +28865,7 @@ check_auto_cache_resize_aux_fcns(void)
*-------------------------------------------------------------------------
*/
-static void
+static unsigned
check_metadata_blizzard_absence(hbool_t fill_via_insertion)
{
const char * fcn_name = "check_metadata_blizzard_absence";
@@ -28876,165 +28880,165 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
/* Expected loaded status of entries depends on how they get into
* the cache. Insertions = not loaded, protect/unprotect = loaded.
*/
- hbool_t loaded = !(fill_via_insertion);
+ hbool_t loaded = (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.
*/
struct expected_entry_status expected[150] =
{
- /* entry entry in at main */
- /* type: index: size: cache: addr: dirty: prot: pinned: loaded: clrd: flshd: dest: */
- { entry_type, 0, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 1, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 2, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 3, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 4, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 5, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 6, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 7, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 8, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 9, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 10, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 11, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 12, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 13, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 14, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 15, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 16, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 17, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 18, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 19, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 20, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 21, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 22, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 23, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 24, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 25, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 26, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 27, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 28, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 29, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 30, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 31, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 32, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 33, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 34, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 35, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 36, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 37, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 38, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 39, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 40, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 41, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 42, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 43, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 44, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 45, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 46, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 47, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 48, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 49, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 50, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 51, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 52, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 53, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 54, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 55, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 56, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 57, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 58, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 59, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 60, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 61, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 62, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 63, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 64, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 65, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 66, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 67, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 68, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 69, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 70, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 71, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 72, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 73, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 74, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 75, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 76, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 77, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 78, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 79, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 80, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 81, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 82, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 83, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 84, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 85, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 86, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 87, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 88, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 89, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 90, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 91, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 92, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 93, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 94, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 95, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 96, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 97, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 98, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 99, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 100, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 101, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 102, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 103, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 104, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 105, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 106, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 107, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 108, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 109, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 110, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 111, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 112, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 113, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 114, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 115, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 116, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 117, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 118, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 119, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 120, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 121, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 122, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 123, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 124, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 125, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 126, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 127, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 128, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 129, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 130, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 131, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 132, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 133, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 134, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 135, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 136, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 137, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 138, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 139, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 140, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 141, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 142, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 143, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 144, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 145, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 146, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 147, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 148, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
- { entry_type, 149, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE }
+ /* entry entry in at main flush dep flush dep child flush flush flush */
+ /* type: index: size: cache: addr: dirty: prot: pinned: loaded: clrd: flshd: dest: par type: par idx: dep ref.count: dep height: order: */
+ { entry_type, 0, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 1, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 2, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 3, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 4, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 5, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 6, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 7, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 8, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 9, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 10, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 11, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 12, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 13, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 14, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 15, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 16, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 17, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 18, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 19, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 20, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 21, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 22, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 23, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 24, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 25, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 26, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 27, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 28, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 29, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 30, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 31, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 32, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 33, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 34, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 35, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 36, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 37, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 38, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 39, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 40, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 41, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 42, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 43, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 44, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 45, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 46, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 47, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 48, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 49, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 50, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 51, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 52, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 53, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 54, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 55, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 56, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 57, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 58, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 59, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 60, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 61, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 62, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 63, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 64, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 65, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 66, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 67, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 68, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 69, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 70, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 71, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 72, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 73, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 74, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 75, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 76, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 77, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 78, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 79, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 80, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 81, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 82, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 83, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 84, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 85, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 86, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 87, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 88, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 89, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 90, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 91, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 92, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 93, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 94, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 95, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 96, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 97, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 98, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 99, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 100, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 101, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 102, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 103, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 104, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 105, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 106, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 107, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 108, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 109, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 110, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 111, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 112, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 113, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 114, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 115, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 116, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 117, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 118, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 119, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 120, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 121, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 122, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 123, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 124, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 125, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 126, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 127, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 128, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 129, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 130, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 131, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 132, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 133, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 134, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 135, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 136, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 137, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 138, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 139, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 140, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 141, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 142, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 143, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 144, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 145, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 146, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 147, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 148, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 149, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 }
};
pass = TRUE;
@@ -29117,7 +29121,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29177,7 +29181,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx++, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29233,7 +29237,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx++, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29287,7 +29291,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29361,7 +29365,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx++, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29426,7 +29430,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29559,7 +29563,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29601,7 +29605,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx++, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29657,7 +29661,7 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
entry_type, /* int32_t type */
entry_idx, /* int32_t idx */
- TRUE, /* int321_t dirty */
+ TRUE, /* int32_t dirty */
H5C__NO_FLAGS_SET); /* unsigned int flags */
}
@@ -29700,12 +29704,3959 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
if ( pass ) { PASSED(); } else { H5_FAILED(); }
- return;
+ return (unsigned)!pass;
} /* check_metadata_blizzard_absence() */
/*-------------------------------------------------------------------------
+ * Function: check_flush_deps()
+ *
+ * Purpose: Exercise the flush dependency routines.
+ *
+ * Return: 0 on success, non-zero on failure
+ *
+ * Programmer: Quincey Koziol
+ * 3/12/09
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static unsigned
+check_flush_deps(void)
+{
+ H5C_t * cache_ptr = NULL; /* Metadata cache for this test */
+ int entry_type = PICO_ENTRY_TYPE; /* Use very small entry size (size of entries doesn't matter) */
+ size_t entry_size = PICO_ENTRY_SIZE; /* 1 byte */
+ unsigned u; /* Local index variable */
+ struct expected_entry_status expected[5] =
+ {
+ /* entry entry in at main flush dep flush dep child flush flush flush */
+ /* type: index: size: cache: addr: dirty: prot: pinned: loaded: clrd: flshd: dest: par type: par idx: dep ref.count: dep height: order: */
+ { entry_type, 0, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 1, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 2, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 3, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 4, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 }
+ };
+
+ TESTING("flush dependencies");
+
+ pass = TRUE;
+
+ /* allocate a cache, build up flush dependency hierarchy and tear it down.
+ * Verify that all performs as expected.
+ */
+
+ reset_entries();
+ cache_ptr = setup_cache((size_t)(2 * 1024), (size_t)(1 * 1024));
+
+ if ( !pass ) CACHE_ERROR("setup_cache failed")
+
+ /* Insert entries to work with into the cache */
+ for(u = 0; u < 5; u++) {
+ insert_entry(cache_ptr, entry_type, (int32_t)u, TRUE, H5C__NO_FLAGS_SET);
+ if ( !pass ) CACHE_ERROR("insert_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after each insertion
+ */
+ expected[u].in_cache = TRUE;
+ expected[u].is_dirty = TRUE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)u, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+
+/* Test Case #1 - Single flush dependency relationship */
+
+ /* Create flush dependency between entries 0 (child) & 1 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries 0 (child) & 1 (parent) */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #2 - Multiple children for one parent flush dependency relationship */
+
+ /* Create flush dependency between entries 0, 1 (children) & 2 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 2;
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[0] = 2;
+ expected[2].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries 0, 1 (children) & 2 (parent) */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #3a1 - Single chain of flush dependencies, 4 entries tall
+ * created from the "bottom up" and destroyed from the "top down"
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2->3 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 3;
+ expected[3].is_protected = TRUE;
+ expected[3].is_pinned = TRUE;
+ expected[3].child_flush_dep_height_rc[2] = 1;
+ expected[3].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, from the "top down" */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+ expected[3].is_protected = FALSE;
+ expected[3].is_pinned = FALSE;
+ expected[3].child_flush_dep_height_rc[2] = 0;
+ expected[3].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #3a2 - Single chain of flush dependencies, 4 entries tall
+ * created from the "bottom up" and destroyed from the "top down"
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2->3 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 3;
+ expected[3].is_protected = TRUE;
+ expected[3].is_pinned = TRUE;
+ expected[3].child_flush_dep_height_rc[2] = 1;
+ expected[3].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, from the "bottom up" */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+ expected[2].child_flush_dep_height_rc[0] = 1;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 1;
+ expected[3].child_flush_dep_height_rc[1] = 1;
+ expected[3].child_flush_dep_height_rc[2] = 0;
+ expected[3].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].flush_dep_height = 0;
+ expected[3].child_flush_dep_height_rc[0] = 1;
+ expected[3].child_flush_dep_height_rc[1] = 0;
+ expected[3].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+ expected[3].is_protected = FALSE;
+ expected[3].is_pinned = FALSE;
+ expected[3].child_flush_dep_height_rc[0] = 0;
+ expected[3].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #3b1 - Single chain of flush dependencies, 4 entries tall
+ * created from the "top down" and destroyed from the "top down"
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2->3 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 3;
+ expected[3].is_protected = TRUE;
+ expected[3].is_pinned = TRUE;
+ expected[3].child_flush_dep_height_rc[0] = 1;
+ expected[3].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[0] = 1;
+ expected[2].flush_dep_height = 1;
+ expected[3].child_flush_dep_height_rc[0] = 0;
+ expected[3].child_flush_dep_height_rc[1] = 1;
+ expected[3].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+ expected[3].child_flush_dep_height_rc[1] = 0;
+ expected[3].child_flush_dep_height_rc[2] = 1;
+ expected[3].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, from the "top down" */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+ expected[3].is_protected = FALSE;
+ expected[3].is_pinned = FALSE;
+ expected[3].child_flush_dep_height_rc[2] = 0;
+ expected[3].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #3b2 - Single chain of flush dependencies, 4 entries tall
+ * created from the "top down" and destroyed from the "bottom up"
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2->3 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 3;
+ expected[3].is_protected = TRUE;
+ expected[3].is_pinned = TRUE;
+ expected[3].child_flush_dep_height_rc[0] = 1;
+ expected[3].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[0] = 1;
+ expected[2].flush_dep_height = 1;
+ expected[3].child_flush_dep_height_rc[0] = 0;
+ expected[3].child_flush_dep_height_rc[1] = 1;
+ expected[3].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+ expected[3].child_flush_dep_height_rc[1] = 0;
+ expected[3].child_flush_dep_height_rc[2] = 1;
+ expected[3].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, from the "bottom up" */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+ expected[2].child_flush_dep_height_rc[0] = 1;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 1;
+ expected[3].child_flush_dep_height_rc[1] = 1;
+ expected[3].child_flush_dep_height_rc[2] = 0;
+ expected[3].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].flush_dep_height = 0;
+ expected[3].child_flush_dep_height_rc[0] = 1;
+ expected[3].child_flush_dep_height_rc[1] = 0;
+ expected[3].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+ expected[3].is_protected = FALSE;
+ expected[3].is_pinned = FALSE;
+ expected[3].child_flush_dep_height_rc[0] = 0;
+ expected[3].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #4 - Multiple children for a single parent */
+
+ /* Create flush dependency between entries (child) 0,1,2,3->4 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ for(u = 0; u < 4; u++) {
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, (int32_t)u);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[u].flush_dep_par_type = entry_type;
+ expected[u].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = u + 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+ }
+
+ /* Destroy flush dependency between entries */
+ {
+ for(u = 0; u < 4; u++) {
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, (int32_t)u);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[u].flush_dep_par_type = -1;
+ expected[u].flush_dep_par_idx = -1;
+ expected[4].child_flush_dep_height_rc[0] = 3 - u;
+
+ /* Check for destroying flush dependency on last entry */
+ if(3 == u) {
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].is_protected = FALSE;
+ expected[4].is_pinned = FALSE;
+ expected[4].flush_dep_height = 0;
+ } /* end if */
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+ }
+
+/* Test Case #5a - Join two flush dependency chains together, creating a single
+ * un-forked dependency chain
+ */
+
+ /* Create flush dependency between entries (child) 0->1 and 3->4 (parent)
+ * then add entry 4 as a child of 0
+ */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[4].flush_dep_par_type = entry_type;
+ expected[4].flush_dep_par_idx = 0;
+ expected[0].is_protected = TRUE;
+ expected[0].is_pinned = TRUE;
+ expected[0].child_flush_dep_height_rc[1] = 1;
+ expected[0].flush_dep_height = 2;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].child_flush_dep_height_rc[2] = 1;
+ expected[1].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ }
+
+ /* Destroy flush dependency between entries, detaching 3->4 from 0 first */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].flush_dep_par_type = -1;
+ expected[4].flush_dep_par_idx = -1;
+ expected[0].is_protected = FALSE;
+ expected[0].is_pinned = FALSE;
+ expected[0].child_flush_dep_height_rc[1] = 0;
+ expected[0].flush_dep_height = 0;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].child_flush_dep_height_rc[2] = 0;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+ expected[4].is_protected = FALSE;
+ expected[4].is_pinned = FALSE;
+ expected[4].child_flush_dep_height_rc[0] = 0;
+ expected[4].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #5b - Join two flush dependency chains together, creating a
+ * forked dependency chain
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2 and 3->4 (parent)
+ * then add entry 4 as a child of 1
+ */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[4].flush_dep_par_type = entry_type;
+ expected[4].flush_dep_par_idx = 1;
+ expected[1].child_flush_dep_height_rc[1] = 1;
+ expected[1].flush_dep_height = 2;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].child_flush_dep_height_rc[2] = 1;
+ expected[2].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ }
+
+ /* Destroy flush dependency between entries, detaching 3->4 from 1 first */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].flush_dep_par_type = -1;
+ expected[4].flush_dep_par_idx = -1;
+ expected[1].child_flush_dep_height_rc[1] = 0;
+ expected[1].flush_dep_height = 1;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].child_flush_dep_height_rc[2] = 0;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+ expected[4].is_protected = FALSE;
+ expected[4].is_pinned = FALSE;
+ expected[4].child_flush_dep_height_rc[0] = 0;
+ expected[4].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #5c - Join two flush dependency chains together, creating a
+ * forked dependency chain
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2 and 3->4 (parent)
+ * then add entry 4 as a child of 2
+ */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[4].flush_dep_par_type = entry_type;
+ expected[4].flush_dep_par_idx = 2;
+ expected[2].child_flush_dep_height_rc[1] = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ }
+
+ /* Destroy flush dependency between entries, detaching 3->4 from 2 first */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].flush_dep_par_type = -1;
+ expected[4].flush_dep_par_idx = -1;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+ expected[4].is_protected = FALSE;
+ expected[4].is_pinned = FALSE;
+ expected[4].child_flush_dep_height_rc[0] = 0;
+ expected[4].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_protected = FALSE;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_protected = FALSE;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+
+done:
+ if(cache_ptr)
+ takedown_cache(cache_ptr, FALSE, FALSE);
+
+ if ( pass )
+ PASSED()
+ else {
+ H5_FAILED();
+ HDfprintf(stdout, "%s.\n", failure_mssg);
+ } /* end else */
+
+ return (unsigned)!pass;
+} /* check_flush_deps() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: check_flush_deps_err()
+ *
+ * Purpose: Check the flush dependency routines for error conditions.
+ *
+ * Return: 0 on success, non-zero on failure
+ *
+ * Programmer: Quincey Koziol
+ * 3/16/09
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static unsigned
+check_flush_deps_err(void)
+{
+ H5C_t * cache_ptr = NULL; /* Metadata cache for this test */
+ int entry_type = PICO_ENTRY_TYPE; /* Use very small entry size (size of entries doesn't matter) */
+ unsigned test_count; /* Test iteration variable */
+
+ TESTING("flush dependency errors");
+
+ pass = TRUE;
+
+ /* Loop over test cases, check for various errors in configuring flush
+ * dependencies. Verify that all performs as expected.
+ */
+ for(test_count = 0; test_count < 11; test_count++) {
+ unsigned u; /* Local index variable */
+ herr_t result; /* Generic return value */
+
+ /* Allocate a cache */
+ reset_entries();
+ cache_ptr = setup_cache((size_t)(2 * 1024), (size_t)(1 * 1024));
+ if ( !pass ) CACHE_ERROR("setup_cache failed")
+
+ /* Insert entries to work with into the cache */
+ for(u = 0; u < 10; u++) {
+ insert_entry(cache_ptr, entry_type, (int32_t)u, TRUE, H5C__NO_FLAGS_SET);
+ if ( !pass ) CACHE_ERROR("insert_entry failed")
+ } /* end for */
+
+ /* Various test cases */
+ switch(test_count) {
+ /* Verify that parent entry in flush dependency must be protected */
+ case 0:
+ result = H5C_create_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[1]));
+ if( result != FAIL ) CACHE_ERROR("Creating flush dependency with unprotected entry succeeded")
+ break;
+
+ /* Verify that entry can't have flush dependency on itself */
+ case 1:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ result = H5C_create_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[0]));
+ if( result != FAIL ) CACHE_ERROR("Creating flush dependency with parent == child")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that a child entry can only have one flush dependency parent */
+ case 2:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ result = H5C_create_flush_dependency(cache_ptr, &((entries[entry_type])[1]), &((entries[entry_type])[2]));
+ if( result != FAIL ) CACHE_ERROR("Creating second flush dependency for child")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that a flush dependency chain can't be higher than (H5C__NUM_FLUSH_DEP_HEIGHTS - 1) */
+ case 3:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ result = H5C_create_flush_dependency(cache_ptr, &((entries[entry_type])[4]), &((entries[entry_type])[5]));
+ if( result != FAIL ) CACHE_ERROR("Creating second flush dependency for child")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ protect_entry(cache_ptr, entry_type, 5);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ result = H5C_create_flush_dependency(cache_ptr, &((entries[entry_type])[5]), &((entries[entry_type])[0]));
+ if( result != FAIL ) CACHE_ERROR("Creating second flush dependency for child")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 5, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that parent entry isn't already pinned */
+ case 4:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ pin_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("pin_entry failed")
+
+ result = H5C_create_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[1]));
+ if( result != FAIL ) CACHE_ERROR("Creating dependency when parent is pinned")
+
+ unpin_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("unpin_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that parent entry must be protected */
+ case 5:
+ result = H5C_destroy_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[1]));
+ if( result != FAIL ) CACHE_ERROR("Destroying [non-existant] dependency when parent isn't protected")
+ break;
+
+ /* Verify that parent entry has flush dependency */
+ case 6:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ result = H5C_destroy_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[1]));
+ if( result != FAIL ) CACHE_ERROR("Destroying dependency when parent isn't in relationship")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that parent entry is still pinned */
+ case 7:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ unpin_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("unpin_entry failed")
+
+ result = H5C_destroy_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[1]));
+ if( result != FAIL ) CACHE_ERROR("Destroying dependency when parent isn't in relationship")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that child entry is in flush dependency relationship */
+ case 8:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ result = H5C_destroy_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[2]));
+ if( result != FAIL ) CACHE_ERROR("Destroying dependency when child isn't in relationship")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ /* Verify that parent has child entries at this height */
+ case 9:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ result = H5C_destroy_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[4]));
+ if( result != FAIL ) CACHE_ERROR("Destroying dependency when parent has no children at child's height")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+
+ /* Verify that child entry is child of parent */
+ case 10:
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ result = H5C_destroy_flush_dependency(cache_ptr, &((entries[entry_type])[0]), &((entries[entry_type])[3]));
+ if( result != FAIL ) CACHE_ERROR("Destroying dependency when child isn't in relationship")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+ break;
+
+ default:
+ CACHE_ERROR("Unknown test case!")
+ } /* end switch */
+
+ takedown_cache(cache_ptr, FALSE, FALSE);
+ if ( !pass ) CACHE_ERROR("takedown_cache failed")
+ cache_ptr = NULL;
+ } /* end for */
+
+
+done:
+ if(cache_ptr)
+ takedown_cache(cache_ptr, FALSE, FALSE);
+
+ if ( pass )
+ PASSED()
+ else {
+ H5_FAILED();
+ HDfprintf(stdout, "%s.\n", failure_mssg);
+ } /* end else */
+
+ return (unsigned)!pass;
+} /* check_flush_deps_err() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: check_flush_deps_order()
+ *
+ * Purpose: Verify that the order that entries with flush dependencies
+ * is correct
+ *
+ * Return: 0 on success, non-zero on failure
+ *
+ * Programmer: Quincey Koziol
+ * 3/17/09
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static unsigned
+check_flush_deps_order(void)
+{
+ H5C_t * cache_ptr = NULL; /* Metadata cache for this test */
+ int entry_type = PICO_ENTRY_TYPE; /* Use very small entry size (size of entries doesn't matter) */
+ size_t entry_size = PICO_ENTRY_SIZE; /* 1 byte */
+ unsigned u; /* Local index variable */
+ struct expected_entry_status expected[5] =
+ {
+ /* entry entry in at main flush dep flush dep child flush flush flush */
+ /* type: index: size: cache: addr: dirty: prot: pinned: loaded: clrd: flshd: dest: par type: par idx: dep ref.count: dep height: order: */
+ { entry_type, 0, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 1, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 2, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 3, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 },
+ { entry_type, 4, entry_size, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, -1, -1, {0,0,0,0}, 0, -1 }
+ };
+ unsigned flush_order; /* Index for tracking flush order */
+
+ TESTING("flush dependencies flush order");
+
+ pass = TRUE;
+
+ /* allocate a cache, build up flush dependency hierarchy and tear it down.
+ * Verify that all performs as expected.
+ */
+
+ reset_entries();
+ cache_ptr = setup_cache((size_t)(2 * 1024), (size_t)(1 * 1024));
+
+ if ( !pass ) CACHE_ERROR("setup_cache failed")
+
+ /* Insert entries to work with into the cache */
+ for(u = 0; u < 5; u++) {
+ insert_entry(cache_ptr, entry_type, (int32_t)u, TRUE, H5C__NO_FLAGS_SET);
+ if ( !pass ) CACHE_ERROR("insert_entry failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after each insertion
+ */
+ expected[u].in_cache = TRUE;
+ expected[u].is_dirty = TRUE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)u, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+
+/* Test Case #1a - Single flush dependency relationship, increasing addr order */
+
+ /* Create flush dependency between entries 0 (child) & 1 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 0;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 1;
+ expected[1].is_protected = FALSE;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[4].is_dirty = FALSE;
+ expected[4].flushed = TRUE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries 0 (child) & 1 (parent) */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #1b - Single flush dependency relationship, decreasing addr order */
+
+ /* Create flush dependency between entries 0 (child) & 1 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].is_protected = TRUE;
+ expected[0].is_pinned = TRUE;
+ expected[0].child_flush_dep_height_rc[0] = 1;
+ expected[0].flush_dep_height = 1;
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0 & 1 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, TRUE);
+ dirty_entry(cache_ptr, entry_type, 1, FALSE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 1;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries 0 (child) & 1 (parent) */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_pinned = FALSE;
+ expected[0].child_flush_dep_height_rc[0] = 0;
+ expected[0].flush_dep_height = 0;
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #2a - Multiple children for one parent flush dependency relationship
+ * increasing addr order
+ */
+
+ /* Create flush dependency between entries 0, 1 (children) & 2 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 2;
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[0] = 2;
+ expected[2].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0, 1 & 2 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, FALSE);
+ dirty_entry(cache_ptr, entry_type, 1, FALSE);
+ dirty_entry(cache_ptr, entry_type, 2, TRUE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 0;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 1;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 2;
+ expected[2].is_protected = FALSE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries 0, 1 (children) & 2 (parent) */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #2b - Multiple children for one parent flush dependency relationship
+ * decreasing addr order
+ */
+
+ /* Create flush dependency between entries 1, 2 (children) & 0 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].is_protected = TRUE;
+ expected[0].is_pinned = TRUE;
+ expected[0].child_flush_dep_height_rc[0] = 2;
+ expected[0].flush_dep_height = 1;
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 0;
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0, 1 & 2 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, TRUE);
+ dirty_entry(cache_ptr, entry_type, 1, FALSE);
+ dirty_entry(cache_ptr, entry_type, 2, FALSE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 2;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 0;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries 1, 2 (children) & 0 (parent) */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_pinned = FALSE;
+ expected[0].child_flush_dep_height_rc[0] = 0;
+ expected[0].flush_dep_height = 0;
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #3a - Single chain of flush dependencies, 4 entries tall,
+ * increasing addr order
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2->3 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 3;
+ expected[3].is_protected = TRUE;
+ expected[3].is_pinned = TRUE;
+ expected[3].child_flush_dep_height_rc[2] = 1;
+ expected[3].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 3, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0-3 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, FALSE);
+ dirty_entry(cache_ptr, entry_type, 1, TRUE);
+ dirty_entry(cache_ptr, entry_type, 2, TRUE);
+ dirty_entry(cache_ptr, entry_type, 3, TRUE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 0;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 1;
+ expected[1].is_protected = FALSE;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 2;
+ expected[2].is_protected = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 3;
+ expected[3].is_protected = FALSE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, from the "top down" */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 3, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+ expected[3].is_pinned = FALSE;
+ expected[3].child_flush_dep_height_rc[2] = 0;
+ expected[3].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #3b - Single chain of flush dependencies, 4 entries tall
+ * decreasing addr order
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2->3 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].is_protected = TRUE;
+ expected[0].is_pinned = TRUE;
+ expected[0].child_flush_dep_height_rc[0] = 1;
+ expected[0].flush_dep_height = 1;
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].child_flush_dep_height_rc[0] = 0;
+ expected[0].child_flush_dep_height_rc[1] = 1;
+ expected[0].flush_dep_height = 2;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+ expected[2].flush_dep_par_type = entry_type;
+ expected[2].flush_dep_par_idx = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].child_flush_dep_height_rc[1] = 0;
+ expected[0].child_flush_dep_height_rc[2] = 1;
+ expected[0].flush_dep_height = 3;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].child_flush_dep_height_rc[1] = 1;
+ expected[1].flush_dep_height = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[0] = 1;
+ expected[2].flush_dep_height = 1;
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0-3 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, TRUE);
+ dirty_entry(cache_ptr, entry_type, 1, TRUE);
+ dirty_entry(cache_ptr, entry_type, 2, TRUE);
+ dirty_entry(cache_ptr, entry_type, 3, FALSE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 3;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 2;
+ expected[1].is_protected = FALSE;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 1;
+ expected[2].is_protected = FALSE;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, from the "bottom up" */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].child_flush_dep_height_rc[2] = 0;
+ expected[0].child_flush_dep_height_rc[1] = 1;
+ expected[0].flush_dep_height = 2;
+ expected[1].child_flush_dep_height_rc[1] = 0;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[0] = 0;
+ expected[2].flush_dep_height = 0;
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].child_flush_dep_height_rc[1] = 0;
+ expected[0].child_flush_dep_height_rc[0] = 1;
+ expected[0].flush_dep_height = 1;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+ expected[2].flush_dep_par_type = -1;
+ expected[2].flush_dep_par_idx = -1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].is_pinned = FALSE;
+ expected[0].child_flush_dep_height_rc[0] = 0;
+ expected[0].flush_dep_height = 0;
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #4a - Multiple children for a single parent, increasing addr order */
+
+ /* Create flush dependency between entries (child) 0,1,2,3->4 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ for(u = 0; u < 4; u++) {
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, (int32_t)u);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[u].flush_dep_par_type = entry_type;
+ expected[u].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = u + 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 4, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0-4 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, FALSE);
+ dirty_entry(cache_ptr, entry_type, 1, FALSE);
+ dirty_entry(cache_ptr, entry_type, 2, FALSE);
+ dirty_entry(cache_ptr, entry_type, 3, FALSE);
+ dirty_entry(cache_ptr, entry_type, 4, TRUE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+ expected[4].flushed = FALSE;
+ expected[4].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 0;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 1;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 2;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 3;
+ expected[4].is_dirty = FALSE;
+ expected[4].flushed = TRUE;
+ expected[4].flush_order = 4;
+ expected[4].is_protected = FALSE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries */
+ {
+ for(u = 0; u < 4; u++) {
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, (int32_t)u);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[u].flush_dep_par_type = -1;
+ expected[u].flush_dep_par_idx = -1;
+ expected[4].child_flush_dep_height_rc[0] = 3 - u;
+
+ /* Check for destroying flush dependency on last entry */
+ if(3 == u) {
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].is_pinned = FALSE;
+ expected[4].flush_dep_height = 0;
+ } /* end if */
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+ }
+
+/* Test Case #4b - Multiple children for a single parent, decreasing addr order */
+
+ /* Create flush dependency between entries (child) 0,1,2,3->4 (parent) */
+ {
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ for(u = 1; u < 5; u++) {
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, (int32_t)u);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[u].flush_dep_par_type = entry_type;
+ expected[u].flush_dep_par_idx = 0;
+ expected[0].is_protected = TRUE;
+ expected[0].is_pinned = TRUE;
+ expected[0].child_flush_dep_height_rc[0] = u;
+ expected[0].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 4, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0-4 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, TRUE);
+ dirty_entry(cache_ptr, entry_type, 1, FALSE);
+ dirty_entry(cache_ptr, entry_type, 2, FALSE);
+ dirty_entry(cache_ptr, entry_type, 3, FALSE);
+ dirty_entry(cache_ptr, entry_type, 4, FALSE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+ expected[4].flushed = FALSE;
+ expected[4].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 4;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 0;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 1;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 2;
+ expected[4].is_dirty = FALSE;
+ expected[4].flushed = TRUE;
+ expected[4].flush_order = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries */
+ {
+ for(u = 1; u < 5; u++) {
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, (int32_t)u);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[u].flush_dep_par_type = -1;
+ expected[u].flush_dep_par_idx = -1;
+ expected[0].child_flush_dep_height_rc[0] = 4 - u;
+
+ /* Check for destroying flush dependency on last entry */
+ if(4 == u) {
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].is_pinned = FALSE;
+ expected[0].flush_dep_height = 0;
+ } /* end if */
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ } /* end for */
+ }
+
+/* Test Case #5a - Join two flush dependency chains together, creating a single
+ * un-forked dependency chain
+ */
+
+ /* Create flush dependency between entries (child) 0->1 and 3->4 (parent)
+ * then add entry 4 as a child of 0
+ */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 0, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[4].flush_dep_par_type = entry_type;
+ expected[4].flush_dep_par_idx = 0;
+ expected[0].is_protected = TRUE;
+ expected[0].is_pinned = TRUE;
+ expected[0].child_flush_dep_height_rc[1] = 1;
+ expected[0].flush_dep_height = 2;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].child_flush_dep_height_rc[2] = 1;
+ expected[1].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 4, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 0, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0 & 1, 3 & 4 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, TRUE);
+ dirty_entry(cache_ptr, entry_type, 1, TRUE);
+ dirty_entry(cache_ptr, entry_type, 3, FALSE);
+ dirty_entry(cache_ptr, entry_type, 4, TRUE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+ expected[4].flushed = FALSE;
+ expected[4].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 2;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 3;
+ expected[1].is_protected = FALSE;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 0;
+ expected[4].is_dirty = FALSE;
+ expected[4].flushed = TRUE;
+ expected[4].flush_order = 1;
+ expected[4].is_protected = FALSE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, detaching 3->4 from 0 first */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 0, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].flush_dep_par_type = -1;
+ expected[4].flush_dep_par_idx = -1;
+ expected[0].is_pinned = FALSE;
+ expected[0].child_flush_dep_height_rc[1] = 0;
+ expected[0].flush_dep_height = 0;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].child_flush_dep_height_rc[2] = 0;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+ expected[4].is_pinned = FALSE;
+ expected[4].child_flush_dep_height_rc[0] = 0;
+ expected[4].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #5b - Join two flush dependency chains together, creating a
+ * forked dependency chain
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2 and 3->4 (parent)
+ * then add entry 4 as a child of 1
+ */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[4].flush_dep_par_type = entry_type;
+ expected[4].flush_dep_par_idx = 1;
+ expected[1].child_flush_dep_height_rc[1] = 1;
+ expected[1].flush_dep_height = 2;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].child_flush_dep_height_rc[2] = 1;
+ expected[2].flush_dep_height = 3;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 4, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0-4 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, FALSE);
+ dirty_entry(cache_ptr, entry_type, 1, TRUE);
+ dirty_entry(cache_ptr, entry_type, 2, TRUE);
+ dirty_entry(cache_ptr, entry_type, 3, FALSE);
+ dirty_entry(cache_ptr, entry_type, 4, TRUE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+ expected[4].flushed = FALSE;
+ expected[4].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 0;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 3;
+ expected[1].is_protected = FALSE;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 4;
+ expected[2].is_protected = FALSE;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 1;
+ expected[4].is_dirty = FALSE;
+ expected[4].flushed = TRUE;
+ expected[4].flush_order = 2;
+ expected[4].is_protected = FALSE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, detaching 3->4 from 1 first */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].flush_dep_par_type = -1;
+ expected[4].flush_dep_par_idx = -1;
+ expected[1].child_flush_dep_height_rc[1] = 0;
+ expected[1].flush_dep_height = 1;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].child_flush_dep_height_rc[2] = 0;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+ expected[4].is_pinned = FALSE;
+ expected[4].child_flush_dep_height_rc[0] = 0;
+ expected[4].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+/* Test Case #5c - Join two flush dependency chains together, creating a
+ * forked dependency chain
+ */
+
+ /* Create flush dependency between entries (child) 0->1->2 and 3->4 (parent)
+ * then add entry 4 as a child of 2
+ */
+ {
+ protect_entry(cache_ptr, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[0].flush_dep_par_type = entry_type;
+ expected[0].flush_dep_par_idx = 1;
+ expected[1].is_protected = TRUE;
+ expected[1].is_pinned = TRUE;
+ expected[1].child_flush_dep_height_rc[0] = 1;
+ expected[1].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 2);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[1].flush_dep_par_type = entry_type;
+ expected[1].flush_dep_par_idx = 2;
+ expected[2].is_protected = TRUE;
+ expected[2].is_pinned = TRUE;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+ expected[2].flush_dep_height = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ protect_entry(cache_ptr, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("protect_entry failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[3].flush_dep_par_type = entry_type;
+ expected[3].flush_dep_par_idx = 4;
+ expected[4].is_protected = TRUE;
+ expected[4].is_pinned = TRUE;
+ expected[4].child_flush_dep_height_rc[0] = 1;
+ expected[4].flush_dep_height = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ create_flush_dependency(cache_ptr, entry_type, 2, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("create_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after creating flush dependency
+ */
+ expected[4].flush_dep_par_type = entry_type;
+ expected[4].flush_dep_par_idx = 2;
+ expected[2].child_flush_dep_height_rc[1] = 2;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ }
+
+ /* Flush the cache and verify that the entries were flushed in correct order */
+ {
+ herr_t result; /* Generic return value */
+
+ add_flush_op(entry_type, 0, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 1, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 2, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 3, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+ add_flush_op(entry_type, 4, FLUSH_OP__ORDER,
+ entry_type, 0, FALSE, (size_t)0, &flush_order);
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 1, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 2, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ unprotect_entry(cache_ptr, /* H5C_t * cache_ptr */
+ entry_type, /* int32_t type */
+ 4, /* int32_t idx */
+ FALSE, /* int32_t dirty */
+ H5C__NO_FLAGS_SET); /* unsigned int flags */
+ if ( !pass ) CACHE_ERROR("unprotect_entry failed")
+
+ /* Mark entries 0-4 dirty, so they are flushed */
+ dirty_entry(cache_ptr, entry_type, 0, FALSE);
+ dirty_entry(cache_ptr, entry_type, 1, TRUE);
+ dirty_entry(cache_ptr, entry_type, 2, TRUE);
+ dirty_entry(cache_ptr, entry_type, 3, FALSE);
+ dirty_entry(cache_ptr, entry_type, 4, TRUE);
+ if ( !pass ) CACHE_ERROR("dirty_entry failed")
+
+ /* Reset 'flushed' flag & 'flush_order' value in expected array */
+ expected[0].flushed = FALSE;
+ expected[0].flush_order = -1;
+ expected[1].flushed = FALSE;
+ expected[1].flush_order = -1;
+ expected[2].flushed = FALSE;
+ expected[2].flush_order = -1;
+ expected[3].flushed = FALSE;
+ expected[3].flush_order = -1;
+ expected[4].flushed = FALSE;
+ expected[4].flush_order = -1;
+
+ /* Reset index for tracking flush order */
+ flush_order = 0;
+
+ result = H5C_flush_cache(NULL, -1, -1, cache_ptr, H5C__NO_FLAGS_SET);
+ if( result < 0 ) CACHE_ERROR("flushing entries with flush dependendices")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroy flush dependency
+ */
+ expected[0].is_dirty = FALSE;
+ expected[0].flushed = TRUE;
+ expected[0].flush_order = 0;
+ expected[0].is_protected = FALSE;
+ expected[1].is_dirty = FALSE;
+ expected[1].flushed = TRUE;
+ expected[1].flush_order = 2;
+ expected[1].is_protected = FALSE;
+ expected[2].is_dirty = FALSE;
+ expected[2].flushed = TRUE;
+ expected[2].flush_order = 4;
+ expected[2].is_protected = FALSE;
+ expected[3].is_dirty = FALSE;
+ expected[3].flushed = TRUE;
+ expected[3].flush_order = 1;
+ expected[4].is_dirty = FALSE;
+ expected[4].flushed = TRUE;
+ expected[4].flush_order = 3;
+ expected[4].is_protected = FALSE;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+ /* Destroy flush dependency between entries, detaching 3->4 from 2 first */
+ {
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 4);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[4].flush_dep_par_type = -1;
+ expected[4].flush_dep_par_idx = -1;
+ expected[2].child_flush_dep_height_rc[1] = 1;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 4, entry_type, 3);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[3].flush_dep_par_type = -1;
+ expected[3].flush_dep_par_idx = -1;
+ expected[4].is_pinned = FALSE;
+ expected[4].child_flush_dep_height_rc[0] = 0;
+ expected[4].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 2, entry_type, 1);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[1].flush_dep_par_type = -1;
+ expected[1].flush_dep_par_idx = -1;
+ expected[2].is_pinned = FALSE;
+ expected[2].child_flush_dep_height_rc[1] = 0;
+ expected[2].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+
+ destroy_flush_dependency(cache_ptr, entry_type, 1, entry_type, 0);
+ if ( !pass ) CACHE_ERROR("destroy_flush_dependency failed")
+
+ /* Change expected values, and verify the status of the entries
+ * after destroying flush dependency
+ */
+ expected[0].flush_dep_par_type = -1;
+ expected[0].flush_dep_par_idx = -1;
+ expected[1].is_pinned = FALSE;
+ expected[1].child_flush_dep_height_rc[0] = 0;
+ expected[1].flush_dep_height = 0;
+
+ /* Verify the status */
+ verify_entry_status(cache_ptr, /* H5C_t * cache_ptr */
+ (int)0, /* int tag */
+ (int)5, /* int num_entries */
+ expected); /* struct expected_entry_staus[] */
+ if ( !pass ) CACHE_ERROR("verify_entry_status failed")
+ }
+
+
+done:
+ if(cache_ptr)
+ takedown_cache(cache_ptr, FALSE, FALSE);
+
+ if ( pass )
+ PASSED()
+ else {
+ H5_FAILED();
+ HDfprintf(stdout, "%s.\n", failure_mssg);
+ } /* end else */
+
+ return (unsigned)!pass;
+} /* check_flush_deps_order() */
+
+
+/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: Run tests on the cache code contained in H5C.c
@@ -29725,6 +33676,8 @@ check_metadata_blizzard_absence(hbool_t fill_via_insertion)
int
main(void)
{
+ unsigned nerrs = 0;
+
H5open();
skip_long_tests = FALSE;
@@ -29735,55 +33688,54 @@ main(void)
run_full_test = FALSE;
#endif /* NDEBUG */
-#if 0
- run_full_test = TRUE;
-#endif
-
-#if 1
- smoke_check_1();
- smoke_check_2();
- smoke_check_3();
- smoke_check_4();
- smoke_check_5();
- smoke_check_6();
- smoke_check_7();
- smoke_check_8();
- smoke_check_9();
- smoke_check_10();
-#endif
-
- write_permitted_check();
- check_insert_entry();
- check_flush_cache();
- check_get_entry_status();
- check_expunge_entry();
- check_multiple_read_protect();
- check_rename_entry();
- check_pin_protected_entry();
- check_resize_entry();
- check_evictions_enabled();
- check_flush_protected_err();
- check_destroy_pinned_err();
- check_destroy_protected_err();
- check_duplicate_insert_err();
- check_rename_err();
- check_double_pin_err();
- check_double_unpin_err();
- check_pin_entry_errs();
- check_double_protect_err();
- check_double_unprotect_err();
- check_mark_entry_dirty_errs();
- check_expunge_entry_errs();
- check_resize_entry_errs();
- check_unprotect_ro_dirty_err();
- check_protect_ro_rw_err();
- check_check_evictions_enabled_err();
- check_auto_cache_resize();
- check_auto_cache_resize_disable();
- check_auto_cache_resize_epoch_markers();
- check_auto_cache_resize_input_errs();
- check_auto_cache_resize_aux_fcns();
- check_metadata_blizzard_absence(TRUE);
- check_metadata_blizzard_absence(FALSE);
- return(0);
+ nerrs += smoke_check_1();
+ nerrs += smoke_check_2();
+ nerrs += smoke_check_3();
+ nerrs += smoke_check_4();
+ nerrs += smoke_check_5();
+ nerrs += smoke_check_6();
+ nerrs += smoke_check_7();
+ nerrs += smoke_check_8();
+ nerrs += smoke_check_9();
+ nerrs += smoke_check_10();
+
+ nerrs += write_permitted_check();
+ nerrs += check_insert_entry();
+ nerrs += check_flush_cache();
+ nerrs += check_get_entry_status();
+ nerrs += check_expunge_entry();
+ nerrs += check_multiple_read_protect();
+ nerrs += check_rename_entry();
+ nerrs += check_pin_protected_entry();
+ nerrs += check_resize_entry();
+ nerrs += check_evictions_enabled();
+ nerrs += check_flush_protected_err();
+ nerrs += check_destroy_pinned_err();
+ nerrs += check_destroy_protected_err();
+ nerrs += check_duplicate_insert_err();
+ nerrs += check_rename_err();
+ nerrs += check_double_pin_err();
+ nerrs += check_double_unpin_err();
+ nerrs += check_pin_entry_errs();
+ nerrs += check_double_protect_err();
+ nerrs += check_double_unprotect_err();
+ nerrs += check_mark_entry_dirty_errs();
+ nerrs += check_expunge_entry_errs();
+ nerrs += check_resize_entry_errs();
+ nerrs += check_unprotect_ro_dirty_err();
+ nerrs += check_protect_ro_rw_err();
+ nerrs += check_check_evictions_enabled_err();
+ nerrs += check_auto_cache_resize();
+ nerrs += check_auto_cache_resize_disable();
+ nerrs += check_auto_cache_resize_epoch_markers();
+ nerrs += check_auto_cache_resize_input_errs();
+ nerrs += check_auto_cache_resize_aux_fcns();
+ nerrs += check_metadata_blizzard_absence(TRUE);
+ nerrs += check_metadata_blizzard_absence(FALSE);
+ nerrs += check_flush_deps();
+ nerrs += check_flush_deps_err();
+ nerrs += check_flush_deps_order();
+
+ return(nerrs > 0);
}
+
diff --git a/test/cache_common.c b/test/cache_common.c
index 39131bf..7f8a458 100644
--- a/test/cache_common.c
+++ b/test/cache_common.c
@@ -33,16 +33,18 @@ hbool_t skip_long_tests = TRUE;
hbool_t run_full_test = TRUE;
const char *failure_mssg = NULL;
-test_entry_t pico_entries[NUM_PICO_ENTRIES];
-test_entry_t nano_entries[NUM_NANO_ENTRIES];
-test_entry_t micro_entries[NUM_MICRO_ENTRIES];
-test_entry_t tiny_entries[NUM_TINY_ENTRIES];
-test_entry_t small_entries[NUM_SMALL_ENTRIES];
-test_entry_t medium_entries[NUM_MEDIUM_ENTRIES];
-test_entry_t large_entries[NUM_LARGE_ENTRIES];
-test_entry_t huge_entries[NUM_HUGE_ENTRIES];
-test_entry_t monster_entries[NUM_MONSTER_ENTRIES];
-test_entry_t variable_entries[NUM_VARIABLE_ENTRIES];
+test_entry_t pico_entries[NUM_PICO_ENTRIES], orig_pico_entries[NUM_PICO_ENTRIES];
+test_entry_t nano_entries[NUM_NANO_ENTRIES], orig_nano_entries[NUM_NANO_ENTRIES];
+test_entry_t micro_entries[NUM_MICRO_ENTRIES], orig_micro_entries[NUM_MICRO_ENTRIES];
+test_entry_t tiny_entries[NUM_TINY_ENTRIES], orig_tiny_entries[NUM_TINY_ENTRIES];
+test_entry_t small_entries[NUM_SMALL_ENTRIES], orig_small_entries[NUM_SMALL_ENTRIES];
+test_entry_t medium_entries[NUM_MEDIUM_ENTRIES], orig_medium_entries[NUM_MEDIUM_ENTRIES];
+test_entry_t large_entries[NUM_LARGE_ENTRIES], orig_large_entries[NUM_LARGE_ENTRIES];
+test_entry_t huge_entries[NUM_HUGE_ENTRIES], orig_huge_entries[NUM_HUGE_ENTRIES];
+test_entry_t monster_entries[NUM_MONSTER_ENTRIES], orig_monster_entries[NUM_MONSTER_ENTRIES];
+test_entry_t variable_entries[NUM_VARIABLE_ENTRIES], orig_variable_entries[NUM_VARIABLE_ENTRIES];
+
+hbool_t orig_entry_arrays_init = FALSE;
test_entry_t * entries[NUMBER_OF_ENTRY_TYPES] =
{
@@ -58,6 +60,20 @@ test_entry_t * entries[NUMBER_OF_ENTRY_TYPES] =
variable_entries
};
+test_entry_t * orig_entries[NUMBER_OF_ENTRY_TYPES] =
+{
+ orig_pico_entries,
+ orig_nano_entries,
+ orig_micro_entries,
+ orig_tiny_entries,
+ orig_small_entries,
+ orig_medium_entries,
+ orig_large_entries,
+ orig_huge_entries,
+ orig_monster_entries,
+ orig_variable_entries
+};
+
const int32_t max_indices[NUMBER_OF_ENTRY_TYPES] =
{
NUM_PICO_ENTRIES - 1,
@@ -1155,7 +1171,8 @@ add_flush_op(int target_type,
int type,
int idx,
hbool_t flag,
- size_t new_size)
+ size_t new_size,
+ unsigned * order_ptr)
{
int i;
test_entry_t * target_base_addr;
@@ -1188,6 +1205,7 @@ add_flush_op(int target_type,
(target_entry_ptr->flush_ops)[i].idx = idx;
(target_entry_ptr->flush_ops)[i].flag = flag;
(target_entry_ptr->flush_ops)[i].size = new_size;
+ (target_entry_ptr->flush_ops)[i].order_ptr = order_ptr;
}
@@ -1454,6 +1472,12 @@ execute_flush_op(H5C_t * cache_ptr,
op_ptr->flag);
break;
+ case FLUSH_OP__ORDER:
+ HDassert( op_ptr->order_ptr );
+ entry_ptr->flush_order = *op_ptr->order_ptr;
+ (*op_ptr->order_ptr)++;
+ break;
+
default:
pass = FALSE;
failure_mssg = "Undefined flush op code.";
@@ -1524,7 +1548,7 @@ entry_in_cache(H5C_t * cache_ptr,
/*-------------------------------------------------------------------------
* Function: reset_entries
*
- * Purpose: reset the contents of the entries arrays to know values.
+ * Purpose: reset the contents of the entries arrays to known values.
*
* Return: void
*
@@ -1549,87 +1573,121 @@ reset_entries(void)
{
int i;
- int j;
- int k;
- int32_t max_index;
- haddr_t addr = 0;
- haddr_t alt_addr = PICO_ALT_BASE_ADDR;
- size_t entry_size;
- test_entry_t * base_addr;
- for ( i = 0; i < NUMBER_OF_ENTRY_TYPES; i++ )
+ if( !orig_entry_arrays_init)
{
- entry_size = entry_sizes[i];
- max_index = max_indices[i];
- base_addr = entries[i];
+ haddr_t addr = 0;
+ haddr_t alt_addr = PICO_ALT_BASE_ADDR;
- HDassert( base_addr );
-
- for ( j = 0; j <= max_index; j++ )
+ for ( i = 0; i < NUMBER_OF_ENTRY_TYPES; i++ )
{
- /* one can argue that we should fill the header with garbage.
- * If this is desired, we can simply comment out the header
- * initialization - the headers will be full of garbage soon
- * enough.
- */
+ int32_t max_index;
+ size_t entry_size;
+ test_entry_t * base_addr;
+ test_entry_t * orig_base_addr;
+ int j;
+
+ entry_size = entry_sizes[i];
+ max_index = max_indices[i];
+ base_addr = entries[i];
+ orig_base_addr = orig_entries[i];
+
+ HDassert( base_addr );
+ HDassert( orig_base_addr );
- base_addr[j].header.addr = (haddr_t)0;
- base_addr[j].header.size = (size_t)0;
- base_addr[j].header.type = NULL;
- base_addr[j].header.is_dirty = FALSE;
- base_addr[j].header.is_protected = FALSE;
- base_addr[j].header.is_read_only = FALSE;
- base_addr[j].header.ro_ref_count = FALSE;
- base_addr[j].header.next = NULL;
- base_addr[j].header.prev = NULL;
- base_addr[j].header.aux_next = NULL;
- base_addr[j].header.aux_prev = NULL;
-
- base_addr[j].self = &(base_addr[j]);
- base_addr[j].cache_ptr = NULL;
- base_addr[j].addr = addr;
- base_addr[j].at_main_addr = TRUE;
- base_addr[j].main_addr = addr;
- base_addr[j].alt_addr = alt_addr;
- base_addr[j].size = entry_size;
- base_addr[j].type = i;
- base_addr[j].index = j;
- base_addr[j].reads = 0;
- base_addr[j].writes = 0;
- base_addr[j].is_dirty = FALSE;
- base_addr[j].is_protected = FALSE;
- base_addr[j].is_read_only = FALSE;
- base_addr[j].ro_ref_count = FALSE;
-
- base_addr[j].is_pinned = FALSE;
- base_addr[j].pinning_ref_count = 0;
- base_addr[j].num_pins = 0;
- for ( k = 0; k < MAX_PINS; k++ )
+ for ( j = 0; j <= max_index; j++ )
{
- base_addr[j].pin_type[k] = -1;
- base_addr[j].pin_idx[k] = -1;
- }
+ int k;
+
+ /* one can argue that we should fill the header with garbage.
+ * If this is desired, we can simply comment out the header
+ * initialization - the headers will be full of garbage soon
+ * enough.
+ */
+
+ base_addr[j].header.addr = (haddr_t)0;
+ base_addr[j].header.size = (size_t)0;
+ base_addr[j].header.type = NULL;
+ base_addr[j].header.is_dirty = FALSE;
+ base_addr[j].header.is_protected = FALSE;
+ base_addr[j].header.is_read_only = FALSE;
+ base_addr[j].header.ro_ref_count = FALSE;
+ base_addr[j].header.next = NULL;
+ base_addr[j].header.prev = NULL;
+ base_addr[j].header.aux_next = NULL;
+ base_addr[j].header.aux_prev = NULL;
+
+ base_addr[j].self = &(base_addr[j]);
+ base_addr[j].cache_ptr = NULL;
+ base_addr[j].addr = addr;
+ base_addr[j].at_main_addr = TRUE;
+ base_addr[j].main_addr = addr;
+ base_addr[j].alt_addr = alt_addr;
+ base_addr[j].size = entry_size;
+ base_addr[j].type = i;
+ base_addr[j].index = j;
+ base_addr[j].reads = 0;
+ base_addr[j].writes = 0;
+ base_addr[j].is_dirty = FALSE;
+ base_addr[j].is_protected = FALSE;
+ base_addr[j].is_read_only = FALSE;
+ base_addr[j].ro_ref_count = FALSE;
+
+ base_addr[j].is_pinned = FALSE;
+ base_addr[j].pinning_ref_count = 0;
+ base_addr[j].num_pins = 0;
+ for ( k = 0; k < MAX_PINS; k++ )
+ {
+ base_addr[j].pin_type[k] = -1;
+ base_addr[j].pin_idx[k] = -1;
+ }
- base_addr[j].num_flush_ops = 0;
- for ( k = 0; k < MAX_FLUSH_OPS; k++ )
- {
- base_addr[j].flush_ops[k].op_code = FLUSH_OP__NO_OP;
- base_addr[j].flush_ops[k].type = -1;
- base_addr[j].flush_ops[k].idx = -1;
- base_addr[j].flush_ops[k].flag = FALSE;
- base_addr[j].flush_ops[k].size = 0;
- }
- base_addr[j].flush_op_self_resize_in_progress = FALSE;
+ base_addr[j].num_flush_ops = 0;
+ for ( k = 0; k < MAX_FLUSH_OPS; k++ )
+ {
+ base_addr[j].flush_ops[k].op_code = FLUSH_OP__NO_OP;
+ base_addr[j].flush_ops[k].type = -1;
+ base_addr[j].flush_ops[k].idx = -1;
+ base_addr[j].flush_ops[k].flag = FALSE;
+ base_addr[j].flush_ops[k].size = 0;
+ }
+ base_addr[j].flush_op_self_resize_in_progress = FALSE;
- base_addr[j].loaded = FALSE;
- base_addr[j].cleared = FALSE;
- base_addr[j].flushed = FALSE;
- base_addr[j].destroyed = FALSE;
+ base_addr[j].loaded = FALSE;
+ base_addr[j].cleared = FALSE;
+ base_addr[j].flushed = FALSE;
+ base_addr[j].destroyed = FALSE;
- addr += (haddr_t)entry_size;
- alt_addr += (haddr_t)entry_size;
- }
- }
+ base_addr[j].flush_dep_par_type = -1;
+ base_addr[j].flush_dep_par_idx = -1;
+ for ( k = 0; k < H5C__NUM_FLUSH_DEP_HEIGHTS; k++ )
+ base_addr[j].child_flush_dep_height_rc[k] = 0;
+ base_addr[j].flush_dep_height = 0;
+
+ base_addr[j].flush_order = 0;
+
+ addr += (haddr_t)entry_size;
+ alt_addr += (haddr_t)entry_size;
+ } /* end for */
+
+ /* Make copy of entries in base_addr for later */
+ HDmemcpy(orig_base_addr, base_addr, (size_t)(max_index + 1) * sizeof( *base_addr ));
+ } /* end for */
+
+ /* Indicate that we've made a copy for later */
+ orig_entry_arrays_init = TRUE;
+ } /* end if */
+ else {
+ for ( i = 0; i < NUMBER_OF_ENTRY_TYPES; i++ )
+ {
+ int32_t max_index = max_indices[i];
+ test_entry_t * base_addr = entries[i];
+ test_entry_t * orig_base_addr = orig_entries[i];
+
+ /* Make copy of entries in base_addr for later */
+ HDmemcpy(base_addr, orig_base_addr, (size_t)(max_index + 1) * sizeof( *base_addr ));
+ } /* end for */
+ } /* end else */
return;
@@ -1755,7 +1813,7 @@ resize_pinned_entry(H5C_t * cache_ptr,
HDassert( cache_ptr );
HDassert( ( 0 <= type ) && ( type < NUMBER_OF_ENTRY_TYPES ) );
HDassert( ( 0 <= idx ) && ( idx <= max_indices[type] ) );
- HDassert( type = VARIABLE_ENTRY_TYPE ) ;
+ HDassert( type == VARIABLE_ENTRY_TYPE ) ;
HDassert( ( 0 < new_size ) && ( new_size <= entry_sizes[type] ) );
if ( pass ) {
@@ -1891,16 +1949,15 @@ verify_entry_status(H5C_t * cache_ptr,
struct expected_entry_status expected[])
{
static char msg[128];
- hbool_t in_cache = FALSE; /* will set to TRUE if necessary */
int i;
- test_entry_t * entry_ptr;
- test_entry_t * base_addr;
i = 0;
while ( ( pass ) && ( i < num_entries ) )
{
- base_addr = entries[expected[i].entry_type];
- entry_ptr = &(base_addr[expected[i].entry_index]);
+ test_entry_t * base_addr = entries[expected[i].entry_type];
+ test_entry_t * entry_ptr = &(base_addr[expected[i].entry_index]);
+ hbool_t in_cache = FALSE; /* will set to TRUE if necessary */
+ unsigned u; /* Local index variable */
if ( ( ! expected[i].in_cache ) &&
( ( expected[i].is_dirty ) ||
@@ -1937,7 +1994,7 @@ verify_entry_status(H5C_t * cache_ptr,
pass = FALSE;
sprintf(msg,
- "%d entry (%d, %d) size actualexpected = %ld/%ld.\n",
+ "%d entry (%d, %d) size actual/expected = %ld/%ld.\n",
tag,
(int)expected[i].entry_type,
(int)expected[i].entry_index,
@@ -2099,8 +2156,131 @@ verify_entry_status(H5C_t * cache_ptr,
failure_mssg = msg;
}
}
+
+ /* Check flush dependency fields */
+
+ /* Flush dependency parent type & index */
+ if ( pass ) {
+ if ( entry_ptr->flush_dep_par_type != expected[i].flush_dep_par_type ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) flush_dep_par_type actual/expected = %d/%d.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ entry_ptr->flush_dep_par_type,
+ expected[i].flush_dep_par_type);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+ if ( pass ) {
+ if ( entry_ptr->flush_dep_par_idx != expected[i].flush_dep_par_idx ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) flush_dep_par_idx actual/expected = %d/%d.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ entry_ptr->flush_dep_par_idx,
+ expected[i].flush_dep_par_idx);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+ if ( ( pass ) && ( in_cache ) && expected[i].flush_dep_par_idx >= 0 ) {
+ test_entry_t * par_base_addr = entries[expected[i].flush_dep_par_type];
+
+ if ( entry_ptr->header.flush_dep_parent != (H5C_cache_entry_t *)&(par_base_addr[expected[i].flush_dep_par_idx]) ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) header flush_dep_parent actual/expected = %p/%p.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ (void *)entry_ptr->header.flush_dep_parent,
+ (void *)&(par_base_addr[expected[i].flush_dep_par_idx]));
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+
+ /* Flush dependency child ref. counts */
+ for(u = 0; u < H5C__NUM_FLUSH_DEP_HEIGHTS; u++) {
+ if ( pass ) {
+ if ( entry_ptr->child_flush_dep_height_rc[u] != expected[i].child_flush_dep_height_rc[u] ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) child_flush_dep_height_rc[%u] actual/expected = %llu/%llu.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ u,
+ (unsigned long long)(entry_ptr->child_flush_dep_height_rc[u]),
+ (unsigned long long)expected[i].child_flush_dep_height_rc[u]);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+ if ( ( pass ) && ( in_cache ) ) {
+ if ( entry_ptr->header.child_flush_dep_height_rc[u] != expected[i].child_flush_dep_height_rc[u] ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) header child_flush_dep_height_rc[%u] actual/expected = %llu/%llu.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ u,
+ (unsigned long long)entry_ptr->header.child_flush_dep_height_rc[u],
+ (unsigned long long)expected[i].child_flush_dep_height_rc[u]);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+ } /* end for */
+
+ /* Flush dependency height */
+ if ( pass ) {
+ if ( entry_ptr->flush_dep_height != expected[i].flush_dep_height ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) flush_dep_height actual/expected = %u/%u.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ entry_ptr->flush_dep_height,
+ expected[i].flush_dep_height);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+ if ( ( pass ) && ( in_cache ) ) {
+ if ( entry_ptr->header.flush_dep_height != expected[i].flush_dep_height ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) header flush_dep_height actual/expected = %u/%u.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ entry_ptr->header.flush_dep_height,
+ expected[i].flush_dep_height);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+
+ /* Flush dependency flush order */
+ if ( pass ) {
+ if ( expected[i].flush_order >= 0 && entry_ptr->flush_order != (unsigned)expected[i].flush_order ) {
+ pass = FALSE;
+ sprintf(msg,
+ "%d entry (%d, %d) flush_order actual/expected = %u/%d.\n",
+ tag,
+ expected[i].entry_type,
+ expected[i].entry_index,
+ entry_ptr->flush_order,
+ expected[i].flush_order);
+ failure_mssg = msg;
+ } /* end if */
+ } /* end if */
+
i++;
} /* while */
+if(!pass)
+ HDfprintf(stderr, "failure_mssg = '%s'\n", failure_mssg);
return;
@@ -2461,7 +2641,7 @@ insert_entry(H5C_t * cache_ptr,
HDassert( entry_ptr == entry_ptr->self );
HDassert( !(entry_ptr->is_protected) );
- insert_pinned = ((flags & H5C__PIN_ENTRY_FLAG) != 0 );
+ insert_pinned = (hbool_t)((flags & H5C__PIN_ENTRY_FLAG) != 0 );
entry_ptr->is_dirty = TRUE;
@@ -2852,7 +3032,7 @@ protect_entry(H5C_t * cache_ptr,
HDassert( entry_ptr == entry_ptr->self );
HDassert( !(entry_ptr->is_protected) );
- cache_entry_ptr = H5C_protect(NULL, -1, -1, cache_ptr, &(types[type]),
+ cache_entry_ptr = (H5C_cache_entry_t *)H5C_protect(NULL, -1, -1, cache_ptr, &(types[type]),
entry_ptr->addr, NULL, NULL,
H5C__NO_FLAGS_SET);
@@ -2951,7 +3131,7 @@ protect_entry_ro(H5C_t * cache_ptr,
( ( entry_ptr->is_read_only ) &&
( entry_ptr->ro_ref_count > 0 ) ) );
- cache_entry_ptr = H5C_protect(NULL, -1, -1, cache_ptr, &(types[type]),
+ cache_entry_ptr = (H5C_cache_entry_t *)H5C_protect(NULL, -1, -1, cache_ptr, &(types[type]),
entry_ptr->addr, NULL, NULL,
H5C__READ_ONLY_FLAG);
@@ -2986,6 +3166,67 @@ protect_entry_ro(H5C_t * cache_ptr,
/*-------------------------------------------------------------------------
+ * Function: pin_entry()
+ *
+ * Purpose: Pin the entry indicated by the type and index.
+ *
+ * Do nothing if pass is FALSE on entry.
+ *
+ * Return: void
+ *
+ * Programmer: Quincey Koziol
+ * 3/17/09
+ *
+ *-------------------------------------------------------------------------
+ */
+
+void
+pin_entry(H5C_t * cache_ptr,
+ int32_t type,
+ int32_t idx)
+{
+ HDassert( cache_ptr );
+ HDassert( ( 0 <= type ) && ( type < NUMBER_OF_ENTRY_TYPES ) );
+ HDassert( ( 0 <= idx ) && ( idx <= max_indices[type] ) );
+
+ if ( pass ) {
+ test_entry_t * base_addr;
+ test_entry_t * entry_ptr;
+ herr_t result;
+
+ base_addr = entries[type];
+ entry_ptr = &(base_addr[idx]);
+
+ HDassert( entry_ptr->index == idx );
+ HDassert( entry_ptr->type == type );
+ HDassert( entry_ptr == entry_ptr->self );
+ HDassert( entry_ptr->is_protected );
+ HDassert( !(entry_ptr->is_pinned) );
+
+ result = H5C_pin_protected_entry(cache_ptr, (void *)entry_ptr);
+
+ if ( result < 0 ) {
+
+ pass = FALSE;
+ failure_mssg = "H5C_pin_protected_entry() reports failure.";
+
+ } else if ( ! ( entry_ptr->header.is_pinned ) ) {
+
+ pass = FALSE;
+ failure_mssg = "entry not pinned when it should be.";
+
+ } else {
+
+ entry_ptr->is_pinned = TRUE;
+ }
+ } /* end if */
+
+ return;
+
+} /* pin_entry() */
+
+
+/*-------------------------------------------------------------------------
* Function: unpin_entry()
*
* Purpose: Unpin the entry indicated by the type and index.
@@ -3027,7 +3268,6 @@ unpin_entry(H5C_t * cache_ptr,
HDassert( entry_ptr->type == type );
HDassert( entry_ptr == entry_ptr->self );
HDassert( entry_ptr->cache_ptr == cache_ptr );
- HDassert( ! (entry_ptr->header.is_protected) );
HDassert( entry_ptr->header.is_pinned );
HDassert( entry_ptr->is_pinned );
@@ -3120,8 +3360,8 @@ unprotect_entry(H5C_t * cache_ptr,
HDassert( entry_ptr->header.is_protected );
HDassert( entry_ptr->is_protected );
- pin_flag_set = ((flags & H5C__PIN_ENTRY_FLAG) != 0 );
- unpin_flag_set = ((flags & H5C__UNPIN_ENTRY_FLAG) != 0 );
+ pin_flag_set = (hbool_t)((flags & H5C__PIN_ENTRY_FLAG) != 0 );
+ unpin_flag_set = (hbool_t)((flags & H5C__UNPIN_ENTRY_FLAG) != 0 );
HDassert ( ! ( pin_flag_set && unpin_flag_set ) );
HDassert ( ( ! pin_flag_set ) || ( ! (entry_ptr->is_pinned) ) );
@@ -3130,7 +3370,7 @@ unprotect_entry(H5C_t * cache_ptr,
if ( ( dirty == TRUE ) || ( dirty == FALSE ) ) {
flags |= (dirty ? H5C__DIRTIED_FLAG : H5C__NO_FLAGS_SET);
- entry_ptr->is_dirty = (entry_ptr->is_dirty || dirty);
+ entry_ptr->is_dirty = (hbool_t)(entry_ptr->is_dirty || dirty);
}
result = H5C_unprotect(NULL, -1, -1, cache_ptr, &(types[type]),
@@ -3278,10 +3518,10 @@ unprotect_entry_with_size_change(H5C_t * cache_ptr,
HDassert( entry_ptr->header.is_protected );
HDassert( entry_ptr->is_protected );
- dirty_flag_set = ((flags & H5C__DIRTIED_FLAG) != 0 );
- pin_flag_set = ((flags & H5C__PIN_ENTRY_FLAG) != 0 );
- unpin_flag_set = ((flags & H5C__UNPIN_ENTRY_FLAG) != 0 );
- size_changed_flag_set = ((flags & H5C__SIZE_CHANGED_FLAG) != 0 );
+ dirty_flag_set = (hbool_t)((flags & H5C__DIRTIED_FLAG) != 0 );
+ pin_flag_set = (hbool_t)((flags & H5C__PIN_ENTRY_FLAG) != 0 );
+ unpin_flag_set = (hbool_t)((flags & H5C__UNPIN_ENTRY_FLAG) != 0 );
+ size_changed_flag_set = (hbool_t)((flags & H5C__SIZE_CHANGED_FLAG) != 0 );
HDassert ( ! ( pin_flag_set && unpin_flag_set ) );
HDassert ( ( ! pin_flag_set ) || ( ! (entry_ptr->is_pinned) ) );
@@ -3290,7 +3530,7 @@ unprotect_entry_with_size_change(H5C_t * cache_ptr,
HDassert ( ( ! size_changed_flag_set ) ||
( type == VARIABLE_ENTRY_TYPE ) );
- entry_ptr->is_dirty = (entry_ptr->is_dirty || dirty_flag_set);
+ entry_ptr->is_dirty = (hbool_t)(entry_ptr->is_dirty || dirty_flag_set);
if ( size_changed_flag_set ) {
@@ -4667,3 +4907,213 @@ hl_col_major_scan_backward(H5C_t * cache_ptr,
} /* hl_col_major_scan_backward() */
+
+/*-------------------------------------------------------------------------
+ * Function: create_flush_dependency()
+ *
+ * Purpose: Create a 'flush dependency' between two entries.
+ *
+ * Do nothing if pass is false.
+ *
+ * Return: void
+ *
+ * Programmer: Quincey Koziol
+ * 3/16/09
+ *
+ *-------------------------------------------------------------------------
+ */
+
+void
+create_flush_dependency(H5C_t * cache_ptr,
+ int32_t par_type,
+ int32_t par_idx,
+ int32_t chd_type,
+ int32_t chd_idx)
+{
+ HDassert( cache_ptr );
+ HDassert( ( 0 <= par_type ) && ( par_type < NUMBER_OF_ENTRY_TYPES ) );
+ HDassert( ( 0 <= par_idx ) && ( par_idx <= max_indices[par_type] ) );
+ HDassert( ( 0 <= chd_type ) && ( chd_type < NUMBER_OF_ENTRY_TYPES ) );
+ HDassert( ( 0 <= chd_idx ) && ( chd_idx <= max_indices[chd_type] ) );
+
+ if ( pass ) {
+ test_entry_t * par_base_addr; /* Base entry of parent's entry array */
+ test_entry_t * par_entry_ptr; /* Parent entry */
+ test_entry_t * chd_base_addr; /* Base entry of child's entry array */
+ test_entry_t * chd_entry_ptr; /* Child entry */
+ hbool_t par_is_pinned; /* Whether parent is already pinned */
+ herr_t result; /* API routine status */
+
+ /* Get parent entry */
+ par_base_addr = entries[par_type];
+ par_entry_ptr = &(par_base_addr[par_idx]);
+ par_is_pinned = par_entry_ptr->header.is_pinned;
+
+ /* Sanity check parent entry */
+ HDassert( par_entry_ptr->index == par_idx );
+ HDassert( par_entry_ptr->type == par_type );
+ HDassert( par_entry_ptr->header.is_protected );
+ HDassert( par_entry_ptr == par_entry_ptr->self );
+
+ /* Get parent entry */
+ chd_base_addr = entries[chd_type];
+ chd_entry_ptr = &(chd_base_addr[chd_idx]);
+
+ /* Sanity check child entry */
+ HDassert( chd_entry_ptr->index == chd_idx );
+ HDassert( chd_entry_ptr->type == chd_type );
+ HDassert( chd_entry_ptr == chd_entry_ptr->self );
+
+ result = H5C_create_flush_dependency(cache_ptr, par_entry_ptr,
+ chd_entry_ptr);
+
+ if ( ( result < 0 ) ||
+ ( !par_entry_ptr->header.is_pinned ) ||
+ ( !(par_entry_ptr->header.flush_dep_height > 0) ) ) {
+
+ pass = FALSE;
+ failure_mssg = "error in H5C_create_flush_dependency().";
+ } /* end if */
+
+ /* Update information about entries */
+ chd_entry_ptr->flush_dep_par_type = par_type;
+ chd_entry_ptr->flush_dep_par_idx = par_idx;
+ par_entry_ptr->child_flush_dep_height_rc[chd_entry_ptr->flush_dep_height]++;
+ if( !par_is_pinned )
+ par_entry_ptr->is_pinned = TRUE;
+
+ /* Check flush dependency heights */
+ while(chd_entry_ptr->flush_dep_height >= par_entry_ptr->flush_dep_height) {
+ unsigned prev_par_flush_dep_height = par_entry_ptr->flush_dep_height; /* Save the previous height */
+
+ par_entry_ptr->flush_dep_height = chd_entry_ptr->flush_dep_height + 1;
+
+ /* Check for parent entry being in flush dependency relationship */
+ if(par_entry_ptr->flush_dep_par_idx >= 0) {
+ /* Move parent & child entries up the flushd dependency 'chain' */
+ chd_entry_ptr = par_entry_ptr;
+ par_base_addr = entries[chd_entry_ptr->flush_dep_par_type];
+ par_entry_ptr = &(par_base_addr[chd_entry_ptr->flush_dep_par_idx]);
+
+ /* Adjust the ref. counts in new parent */
+ HDassert(par_entry_ptr->child_flush_dep_height_rc[prev_par_flush_dep_height] > 0);
+ par_entry_ptr->child_flush_dep_height_rc[prev_par_flush_dep_height]--;
+ par_entry_ptr->child_flush_dep_height_rc[chd_entry_ptr->flush_dep_height]++;
+ } /* end if */
+ } /* end if */
+ } /* end if */
+
+ return;
+
+} /* create_flush_dependency() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: destroy_flush_dependency()
+ *
+ * Purpose: Destroy a 'flush dependency' between two entries.
+ *
+ * Do nothing if pass is false.
+ *
+ * Return: void
+ *
+ * Programmer: Quincey Koziol
+ * 3/16/09
+ *
+ *-------------------------------------------------------------------------
+ */
+
+void
+destroy_flush_dependency(H5C_t * cache_ptr,
+ int32_t par_type,
+ int32_t par_idx,
+ int32_t chd_type,
+ int32_t chd_idx)
+{
+ HDassert( cache_ptr );
+ HDassert( ( 0 <= par_type ) && ( par_type < NUMBER_OF_ENTRY_TYPES ) );
+ HDassert( ( 0 <= par_idx ) && ( par_idx <= max_indices[par_type] ) );
+ HDassert( ( 0 <= chd_type ) && ( chd_type < NUMBER_OF_ENTRY_TYPES ) );
+ HDassert( ( 0 <= chd_idx ) && ( chd_idx <= max_indices[chd_type] ) );
+
+ if ( pass ) {
+ test_entry_t * par_base_addr; /* Base entry of parent's entry array */
+ test_entry_t * par_entry_ptr; /* Parent entry */
+ test_entry_t * chd_base_addr; /* Base entry of child's entry array */
+ test_entry_t * chd_entry_ptr; /* Child entry */
+ unsigned chd_flush_dep_height; /* Child flush dep. height */
+
+ /* Get parent entry */
+ par_base_addr = entries[par_type];
+ par_entry_ptr = &(par_base_addr[par_idx]);
+
+ /* Sanity check parent entry */
+ HDassert( par_entry_ptr->index == par_idx );
+ HDassert( par_entry_ptr->type == par_type );
+ HDassert( par_entry_ptr->is_pinned );
+ HDassert( par_entry_ptr->flush_dep_height > 0 );
+ HDassert( par_entry_ptr == par_entry_ptr->self );
+
+ /* Get parent entry */
+ chd_base_addr = entries[chd_type];
+ chd_entry_ptr = &(chd_base_addr[chd_idx]);
+
+ /* Sanity check child entry */
+ HDassert( chd_entry_ptr->index == chd_idx );
+ HDassert( chd_entry_ptr->type == chd_type );
+ HDassert( chd_entry_ptr->flush_dep_height < par_entry_ptr->flush_dep_height );
+ HDassert( chd_entry_ptr == chd_entry_ptr->self );
+
+ if ( H5C_destroy_flush_dependency(cache_ptr, par_entry_ptr, chd_entry_ptr) < 0 ) {
+ pass = FALSE;
+ failure_mssg = "error in H5C_destroy_flush_dependency().";
+ } /* end if */
+
+ /* Update information about entries */
+ chd_entry_ptr->flush_dep_par_type = -1;
+ chd_entry_ptr->flush_dep_par_idx = -1;
+ par_entry_ptr->child_flush_dep_height_rc[chd_entry_ptr->flush_dep_height]--;
+
+ /* Check flush dependency heights */
+ chd_flush_dep_height = chd_entry_ptr->flush_dep_height;
+ while( 0 == par_entry_ptr->child_flush_dep_height_rc[chd_flush_dep_height] ) {
+ unsigned prev_par_flush_dep_height = par_entry_ptr->flush_dep_height; /* Save the previous height */
+ int i; /* Local index variable */
+
+ /* Check for new flush dependency height of parent */
+ for(i = (H5C__NUM_FLUSH_DEP_HEIGHTS - 1); i >= 0; i--)
+ if(par_entry_ptr->child_flush_dep_height_rc[i] > 0)
+ break;
+
+ HDassert((i + 1) <= (int)prev_par_flush_dep_height);
+
+ if((unsigned)(i + 1) < prev_par_flush_dep_height) {
+ par_entry_ptr->flush_dep_height = (unsigned)(i + 1);
+ if(i < 0)
+ par_entry_ptr->is_pinned = FALSE;
+
+ /* Check for parent entry being in flush dependency relationship */
+ if(par_entry_ptr->flush_dep_par_idx >= 0) {
+ /* Move parent & child entries up the flushd dependency 'chain' */
+ chd_entry_ptr = par_entry_ptr;
+ par_base_addr = entries[chd_entry_ptr->flush_dep_par_type];
+ par_entry_ptr = &(par_base_addr[chd_entry_ptr->flush_dep_par_idx]);
+
+ /* Adjust the ref. counts in new parent */
+ HDassert(par_entry_ptr->child_flush_dep_height_rc[prev_par_flush_dep_height] > 0);
+ par_entry_ptr->child_flush_dep_height_rc[prev_par_flush_dep_height]--;
+ par_entry_ptr->child_flush_dep_height_rc[chd_entry_ptr->flush_dep_height]++;
+ chd_flush_dep_height = prev_par_flush_dep_height;
+ } /* end if */
+ else
+ break;
+ } /* end if */
+ else
+ break;
+ } /* end while */
+ } /* end if */
+
+ return;
+
+} /* destroy_flush_dependency() */
+
diff --git a/test/cache_common.h b/test/cache_common.h
index f76f47c..1284ea3 100644
--- a/test/cache_common.h
+++ b/test/cache_common.h
@@ -19,17 +19,23 @@
* This file contains common #defines, type definitions, and
* externs for tests of the cache implemented in H5C.c
*/
-#include "h5test.h"
-#include "H5Iprivate.h"
-#include "H5ACprivate.h"
+#ifndef _CACHE_COMMON_H
+#define _CACHE_COMMON_H
#define H5C_PACKAGE /*suppress error about including H5Cpkg */
+#define H5F_PACKAGE /*suppress error about including H5Fpkg */
+/* Include library header files */
+#include "H5ACprivate.h"
#include "H5Cpkg.h"
+#include "H5Fpkg.h"
+#include "H5Iprivate.h"
-#define H5F_PACKAGE /*suppress error about including H5Fpkg */
+/* Include test header files */
+#include "h5test.h"
-#include "H5Fpkg.h"
+/* Macro to make error reporting easier */
+#define CACHE_ERROR(s) {failure_mssg = "Line #" H5_TOSTRING(__LINE__) ": " s ; goto done;}
#define NO_CHANGE -1
@@ -121,7 +127,8 @@
#define FLUSH_OP__DIRTY 1
#define FLUSH_OP__RESIZE 2
#define FLUSH_OP__RENAME 3
-#define FLUSH_OP__MAX_OP 3
+#define FLUSH_OP__ORDER 4
+#define FLUSH_OP__MAX_OP 4
#define MAX_FLUSH_OPS 10 /* Maximum number of flush operations
* that can be associated with a
@@ -138,6 +145,7 @@ typedef struct flush_op
* FLUSH_OP__DIRTY
* FLUSH_OP__RESIZE
* FLUSH_OP__RENAME
+ * FLUSH_OP__ORDER
*/
int type; /* type code of the cache entry that
* is the target of the operation.
@@ -177,6 +185,10 @@ typedef struct flush_op
* FLUSH_OP__RENAME operation.
* Unused elsewhere.
*/
+ unsigned * order_ptr; /* Pointer to outside counter for
+ * recording the order of entries
+ * flushed.
+ */
} flush_op;
typedef struct test_entry_t
@@ -287,6 +299,14 @@ typedef struct test_entry_t
hbool_t destroyed; /* entry has been destroyed since the
* last time it was reset.
*/
+ int flush_dep_par_type; /* Entry type of flush dependency parent */
+ int flush_dep_par_idx; /* Index of flush dependency parent */
+ uint64_t child_flush_dep_height_rc[H5C__NUM_FLUSH_DEP_HEIGHTS];
+ /* flush dependency heights of flush
+ * dependency children
+ */
+ unsigned flush_dep_height; /* flush dependency height of entry */
+ unsigned flush_order; /* Order that entry was flushed in */
} test_entry_t;
/* The following is a cut down copy of the hash table manipulation
@@ -451,6 +471,14 @@ struct expected_entry_status
hbool_t cleared;
hbool_t flushed;
hbool_t destroyed;
+ int flush_dep_par_type; /* Entry type of flush dependency parent */
+ int flush_dep_par_idx; /* Index of flush dependency parent */
+ uint64_t child_flush_dep_height_rc[H5C__NUM_FLUSH_DEP_HEIGHTS];
+ /* flush dependency heights of flush
+ * dependency children
+ */
+ unsigned flush_dep_height; /* flush dependency height of entry */
+ int flush_order; /* flush order of entry */
};
@@ -582,7 +610,8 @@ void add_flush_op(int target_type,
int type,
int idx,
hbool_t flag,
- size_t size);
+ size_t size,
+ unsigned * order);
void addr_to_type_and_index(haddr_t addr,
@@ -632,6 +661,10 @@ void protect_entry_ro(H5C_t * cache_ptr,
int32_t type,
int32_t idx);
+void pin_entry(H5C_t * cache_ptr,
+ int32_t type,
+ int32_t idx);
+
hbool_t entry_in_cache(H5C_t * cache_ptr,
int32_t type,
int32_t idx);
@@ -784,3 +817,17 @@ void verify_entry_status(H5C_t * cache_ptr,
void verify_unprotected(void);
+void create_flush_dependency(H5C_t * cache_ptr,
+ int32_t parent_type,
+ int32_t parent_idx,
+ int32_t child_type,
+ int32_t child_idx);
+
+void destroy_flush_dependency(H5C_t * cache_ptr,
+ int32_t parent_type,
+ int32_t parent_idx,
+ int32_t child_type,
+ int32_t child_idx);
+
+#endif /* _CACHE_COMMON_H */
+
diff --git a/test/corrupt_stab_msg.h5 b/test/corrupt_stab_msg.h5
new file mode 100755
index 0000000..4fa287c
--- /dev/null
+++ b/test/corrupt_stab_msg.h5
Binary files differ
diff --git a/test/dsets.c b/test/dsets.c
index 2df76cd..912098f 100644
--- a/test/dsets.c
+++ b/test/dsets.c
@@ -175,7 +175,8 @@ const char *FILENAME[] = {
#define TOO_HUGE_CHUNK_DIM2_2 ((hsize_t)1024)
/* Parameters for testing bypassing chunk cache */
-#define BYPASS_DATASET "Dset"
+#define BYPASS_DATASET1 "Dset1"
+#define BYPASS_DATASET2 "Dset2"
#define BYPASS_DIM 1000
#define BYPASS_CHUNK_DIM 500
#define BYPASS_FILL_VALUE 7
@@ -5741,21 +5742,16 @@ error:
*-------------------------------------------------------------------------
*/
static herr_t
-test_filters_endianess(hid_t fapl)
+test_filters_endianess(void)
{
hid_t fid=-1; /* file ID */
hid_t dsid=-1; /* dataset ID */
hid_t sid=-1; /* dataspace ID */
hid_t dcpl=-1; /* dataset creation property list ID */
- int buf[2];
int i;
char *srcdir = getenv("srcdir"); /* the source directory */
char data_file[512]=""; /* buffer to hold name of existing file */
- for(i=0; i<2; i++){
- buf[i]=1;
- }
-
TESTING("filters with big-endian/little-endian data");
#if defined H5_HAVE_FILTER_FLETCHER32
@@ -6704,7 +6700,7 @@ error:
* bypasses the cache.
*
* Note: This test is not very conclusive - it doesn't actually check
- * is the chunks bypass the cache... :-( -QAK
+ * if the chunks bypass the cache... :-( -QAK
*
* Return: Success: 0
* Failure: -1
@@ -6727,9 +6723,9 @@ test_big_chunks_bypass_cache(hid_t fapl)
size_t rdcc_nelmts, rdcc_nbytes;
int fvalue = BYPASS_FILL_VALUE;
hsize_t count, stride, offset, block;
- static int wdata[BYPASS_CHUNK_DIM], rdata[BYPASS_DIM];
+ static int wdata[BYPASS_CHUNK_DIM/2], rdata1[BYPASS_DIM],
+ rdata2[BYPASS_CHUNK_DIM/2];
int i, j;
- herr_t ret; /* Generic return value */
TESTING("big chunks bypassing the cache");
@@ -6762,51 +6758,81 @@ test_big_chunks_bypass_cache(hid_t fapl)
if(H5Pset_fill_time(dcpl, H5D_FILL_TIME_IFSET) < 0) FAIL_STACK_ERROR
if(H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_INCR) < 0) FAIL_STACK_ERROR
- /* Try to create dataset */
- if((dsid = H5Dcreate2(fid, BYPASS_DATASET, H5T_NATIVE_INT, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
+ /* Create a first dataset */
+ if((dsid = H5Dcreate2(fid, BYPASS_DATASET1, H5T_NATIVE_INT, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
FAIL_STACK_ERROR
/* Select first chunk to write the data */
offset = 0;
count = 1;
stride = 1;
- block = BYPASS_CHUNK_DIM;
+ block = BYPASS_CHUNK_DIM / 2;
if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, &offset, &stride, &count, &block) < 0)
FAIL_STACK_ERROR
/* Initialize data to write */
- for(i = 0; i < BYPASS_CHUNK_DIM; i++)
+ for(i = 0; i < BYPASS_CHUNK_DIM / 2; i++)
wdata[i] = i;
- /* This write should bypass the cache because the chunk is bigger than the cache size
- * and it's not allocated on disk. */
+ /* This write should go through the cache because fill value is used. */
if(H5Dwrite(dsid, H5T_NATIVE_INT, H5S_ALL, sid, H5P_DEFAULT, wdata) < 0)
FAIL_STACK_ERROR
if(H5Dclose(dsid) < 0) FAIL_STACK_ERROR
/* Reopen the dataset */
- if((dsid = H5Dopen2(fid, BYPASS_DATASET, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
+ if((dsid = H5Dopen2(fid, BYPASS_DATASET1, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Reads both 2 chunks. Reading the second chunk should bypass the cache because the
* chunk is bigger than the cache size and it isn't allocated on disk. */
- if(H5Dread(dsid, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata) < 0)
+ if(H5Dread(dsid, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata1) < 0)
FAIL_STACK_ERROR
- for(i = 0; i < BYPASS_CHUNK_DIM; i++)
- if(rdata[i] != i) {
+ for(i = 0; i < BYPASS_CHUNK_DIM / 2; i++)
+ if(rdata1[i] != i) {
printf(" Read different values than written in the 1st chunk.\n");
- printf(" At line %d and index %d, rdata = %d. It should be %d.\n", __LINE__, i, rdata[i], i);
+ printf(" At line %d and index %d, rdata1 = %d. It should be %d.\n", __LINE__, i, rdata1[i], i);
TEST_ERROR
} /* end if */
- for(j = BYPASS_CHUNK_DIM; j < BYPASS_DIM; j++)
- if(rdata[j] != fvalue) {
+ for(j = BYPASS_CHUNK_DIM / 2; j < BYPASS_DIM; j++)
+ if(rdata1[j] != fvalue) {
printf(" Read different values than written in the 2nd chunk.\n");
- printf(" At line %d and index %d, rdata = %d. It should be %d.\n", __LINE__, i, rdata[i], fvalue);
+ printf(" At line %d and index %d, rdata1 = %d. It should be %d.\n", __LINE__, i, rdata1[i], fvalue);
TEST_ERROR
} /* end if */
+
+ /* Close the first dataset */
+ if(H5Dclose(dsid) < 0) FAIL_STACK_ERROR
+ /* Create a second dataset without fill value. This time, both write
+ * and read should bypass the cache because the chunk is bigger than the
+ * cache size and it's not allocated on disk. */
+ if(H5Pset_fill_time(dcpl, H5D_FILL_TIME_NEVER) < 0) FAIL_STACK_ERROR
+
+ if((dsid = H5Dcreate2(fid, BYPASS_DATASET2, H5T_NATIVE_INT, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
+ FAIL_STACK_ERROR
+
+ if(H5Dwrite(dsid, H5T_NATIVE_INT, H5S_ALL, sid, H5P_DEFAULT, wdata) < 0)
+ FAIL_STACK_ERROR
+
+ if(H5Dclose(dsid) < 0) FAIL_STACK_ERROR
+
+ /* Reopen the dataset */
+ if((dsid = H5Dopen2(fid, BYPASS_DATASET2, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
+
+ /* Read back only the part that was written to the file. Reading the
+ * half chunk should bypass the cache because the chunk is bigger than
+ * the cache size. */
+ if(H5Dread(dsid, H5T_NATIVE_INT, H5S_ALL, sid, H5P_DEFAULT, rdata2) < 0)
+
+ for(i = 0; i < BYPASS_CHUNK_DIM / 2; i++)
+ if(rdata2[i] != i) {
+ printf(" Read different values than written in the chunk.\n");
+ printf(" At line %d and index %d, rdata2 = %d. It should be %d.\n", __LINE__, i, rdata2[i], i);
+ TEST_ERROR
+ } /* end if */
+
/* Close IDs */
if(H5Sclose(sid) < 0) FAIL_STACK_ERROR
if(H5Dclose(dsid) < 0) FAIL_STACK_ERROR
@@ -7181,7 +7207,7 @@ main(void)
nerrors += (test_can_apply_szip(file) < 0 ? 1 : 0);
nerrors += (test_compare_dcpl(file) < 0 ? 1 : 0);
nerrors += (test_filter_delete(file) < 0 ? 1 : 0);
- nerrors += (test_filters_endianess(my_fapl) < 0 ? 1 : 0);
+ nerrors += (test_filters_endianess() < 0 ? 1 : 0);
nerrors += (test_zero_dims(file) < 0 ? 1 : 0);
nerrors += (test_missing_chunk(file) < 0 ? 1 : 0);
nerrors += (test_random_chunks(my_fapl) < 0 ? 1 : 0);
diff --git a/test/dt_arith.c b/test/dt_arith.c
index e507fd0..6c59555 100644
--- a/test/dt_arith.c
+++ b/test/dt_arith.c
@@ -617,12 +617,10 @@ generates_sigfpe(void)
static int
test_hard_query(void)
{
- htri_t ret;
-
TESTING("query functions of compiler conversion");
/* Verify the conversion from int to float is a hard conversion. */
- if((ret = H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT))!=TRUE) {
+ if(H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT) != TRUE) {
H5_FAILED();
printf("Can't query conversion function\n");
goto error;
@@ -631,7 +629,7 @@ test_hard_query(void)
/* Unregister the hard conversion from int to float. Verify the conversion
* is a soft conversion. */
H5Tunregister(H5T_PERS_HARD, NULL, H5T_NATIVE_INT, H5T_NATIVE_FLOAT, H5T_conv_int_float);
- if((ret = H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT))!=FALSE) {
+ if(H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT) != FALSE) {
H5_FAILED();
printf("Can't query conversion function\n");
goto error;
@@ -640,7 +638,7 @@ test_hard_query(void)
/* Register the hard conversion from int to float. Verify the conversion
* is a hard conversion. */
H5Tregister(H5T_PERS_HARD, "int_flt", H5T_NATIVE_INT, H5T_NATIVE_FLOAT, H5T_conv_int_float);
- if((ret = H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT))!=TRUE) {
+ if(H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT) != TRUE) {
H5_FAILED();
printf("Can't query conversion function\n");
goto error;
@@ -676,19 +674,18 @@ static H5T_conv_ret_t
expt_handle(H5T_conv_except_t except_type, hid_t UNUSED src_id, hid_t UNUSED dst_id, void UNUSED *src_buf,
void *dst_buf, void *user_data)
{
- H5T_conv_ret_t ret = H5T_CONV_HANDLED;
signed char fill_value1 = 7;
int fill_value2 = 13;
if(except_type == H5T_CONV_EXCEPT_RANGE_HI || except_type == H5T_CONV_EXCEPT_RANGE_LOW ||
- except_type == H5T_CONV_EXCEPT_TRUNCATE) {
+ except_type == H5T_CONV_EXCEPT_TRUNCATE) {
if(*(hbool_t*)user_data)
*(signed char*)dst_buf = fill_value1;
else
*(int*)dst_buf = fill_value2;
- }
+ } /* end if */
- return ret;
+ return H5T_CONV_HANDLED;
}
@@ -2710,7 +2707,6 @@ my_isinf(int endian, unsigned char *val, size_t size,
unsigned char *bits;
int retval = 0;
size_t i;
- ssize_t ret1=0, ret2=0;
bits = (unsigned char*)calloc(1, size);
@@ -2732,8 +2728,8 @@ my_isinf(int endian, unsigned char *val, size_t size,
bits[size-(i+1)] = *(val + ENDIAN(size, i, endian));
#endif /*H5_VMS*/
- if((ret1=H5T_bit_find(bits, mpos, msize, H5T_BIT_LSB, 1))<0 &&
- (ret2=H5T_bit_find(bits, epos, esize, H5T_BIT_LSB, 0))<0)
+ if(H5T_bit_find(bits, mpos, msize, H5T_BIT_LSB, 1) < 0 &&
+ H5T_bit_find(bits, epos, esize, H5T_BIT_LSB, 0) < 0)
retval = 1;
free(bits);
diff --git a/test/dtransform.c b/test/dtransform.c
index 3297fe6..8b5dce0 100644
--- a/test/dtransform.c
+++ b/test/dtransform.c
@@ -19,12 +19,12 @@
#define COLS 18
#define FLOAT_TOL 0.0001
-int init_test(hid_t file_id);
-int test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy);
-int test_trivial(const hid_t dxpl_id_simple);
-int test_poly(const hid_t dxpl_id_polynomial);
-int test_set(void);
-int test_getset(const hid_t dxpl_id_simple);
+static int init_test(hid_t file_id);
+static int test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy);
+static int test_trivial(const hid_t dxpl_id_simple);
+static int test_poly(const hid_t dxpl_id_polynomial);
+static int test_set(void);
+static int test_getset(const hid_t dxpl_id_simple);
/* These are needed for multiple tests, so are declared here globally and are init'ed in init_test */
hid_t dset_id_int;
@@ -336,7 +336,8 @@ error:
return -1;
}
-int init_test(hid_t file_id)
+static int
+init_test(hid_t file_id)
{
const char* f_to_c = "(5/9.0)*(x-32)";
/* utrans is a transform for unsigned types: no negative numbers involved and results are < 255 to fit into uchar */
@@ -389,7 +390,8 @@ error:
return -1;
}
-int test_poly(const hid_t dxpl_id_polynomial)
+static int
+test_poly(const hid_t dxpl_id_polynomial)
{
float polyflres[ROWS][COLS];
int polyintread[ROWS][COLS];
@@ -430,7 +432,8 @@ error:
return -1;
}
-int test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy)
+static int
+test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy)
{
int windchillC;
float polyflres[ROWS][COLS];
@@ -462,7 +465,8 @@ error:
return -1;
}
-int test_trivial(const hid_t dxpl_id_simple)
+static int
+test_trivial(const hid_t dxpl_id_simple)
{
float windchillFfloatread[ROWS][COLS];
int windchillFintread[ROWS][COLS];
@@ -505,7 +509,8 @@ error:
return -1;
}
-int test_getset(const hid_t dxpl_id_c_to_f)
+static int
+test_getset(const hid_t dxpl_id_c_to_f)
{
int row, col;
float windchillFfloatread[ROWS][COLS];
@@ -566,7 +571,8 @@ error:
return -1;
}
-int test_set(void)
+static int
+test_set(void)
{
hid_t dxpl_id;
H5E_auto2_t func;
diff --git a/test/dtypes.c b/test/dtypes.c
index 991b2c9..548cc59 100644
--- a/test/dtypes.c
+++ b/test/dtypes.c
@@ -64,15 +64,11 @@
* the soft conversion list. One must call reset_hdf5() after this.
*/
#define CHECK_NMEMBS(NMEMBS,SRC_ID,DST_ID) \
- if (H5Tunregister(H5T_PERS_SOFT, NULL, SRC_ID, DST_ID, NULL) < 0) { \
+ if(H5Tunregister(H5T_PERS_SOFT, NULL, SRC_ID, DST_ID, NULL) < 0) \
FAIL_STACK_ERROR \
- goto error; \
- } \
- if (H5Tclose(SRC_ID) < 0 || ((SRC_ID) != (DST_ID) && H5Tclose(DST_ID) < 0)) { \
+ if(H5Tclose(SRC_ID) < 0 || ((SRC_ID) != (DST_ID) && H5Tclose(DST_ID) < 0)) \
FAIL_STACK_ERROR \
- goto error; \
- } \
- if ((NMEMBS) != H5I_nmembers(H5I_DATATYPE)) { \
+ if((NMEMBS) != H5I_nmembers(H5I_DATATYPE)) { \
H5_FAILED(); \
printf(" #dtype ids expected: %d; found: %d\n", NMEMBS, \
H5I_nmembers(H5I_DATATYPE)); \
@@ -4096,7 +4092,6 @@ test_conv_str_3(void)
int ret_value = 1;
int size;
H5T_pad_t inpad;
- H5T_cset_t cset;
H5T_sign_t sign;
char* tag;
herr_t ret;
@@ -4116,13 +4111,13 @@ test_conv_str_3(void)
buf[i*8+j++] = '\0';
}
- if ((size=H5Tget_precision(type))==0) goto error;
- if ((size=H5Tget_size(type))==0) goto error;
- if (H5Tset_pad(type, H5T_PAD_ZERO, H5T_PAD_ONE) < 0) goto error;
- if ((cset=H5Tget_cset(type)) < 0) goto error;
- if (H5Tget_strpad(type) < 0) goto error;
- if (H5Tset_offset(type, 0) < 0) goto error;
- if (H5Tget_order(type) < 0) goto error;
+ if(H5Tget_precision(type) == 0) FAIL_STACK_ERROR
+ if(H5Tget_size(type) == 0) FAIL_STACK_ERROR
+ if(H5Tset_pad(type, H5T_PAD_ZERO, H5T_PAD_ONE) < 0) FAIL_STACK_ERROR
+ if(H5Tget_cset(type) < 0) FAIL_STACK_ERROR
+ if(H5Tget_strpad(type) < 0) FAIL_STACK_ERROR
+ if(H5Tset_offset(type, 0) < 0) FAIL_STACK_ERROR
+ if(H5Tget_order(type) < 0) FAIL_STACK_ERROR
H5E_BEGIN_TRY {
ret=H5Tset_precision(type, nelmts);
@@ -4134,7 +4129,7 @@ test_conv_str_3(void)
} /* end if */
H5E_BEGIN_TRY {
- size=H5Tget_ebias(type);
+ size = H5Tget_ebias(type);
} H5E_END_TRY;
if (size>0) {
H5_FAILED();
diff --git a/test/enum.c b/test/enum.c
index 91a3790..4599a7c 100644
--- a/test/enum.c
+++ b/test/enum.c
@@ -455,7 +455,6 @@ test_funcs(void)
hid_t type=-1;
c_e1 val;
size_t size;
- int offset;
H5T_pad_t inpad;
H5T_cset_t cset;
herr_t ret;
@@ -463,18 +462,18 @@ test_funcs(void)
TESTING("some functions with enumeration types");
/* A native integer */
- if ((type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
- if (H5Tenum_insert(type, "RED", CPTR(val, E1_RED ))<0) goto error;
- if (H5Tenum_insert(type, "GREEN", CPTR(val, E1_GREEN))<0) goto error;
- if (H5Tenum_insert(type, "BLUE", CPTR(val, E1_BLUE ))<0) goto error;
- if (H5Tenum_insert(type, "WHITE", CPTR(val, E1_WHITE))<0) goto error;
- if (H5Tenum_insert(type, "BLACK", CPTR(val, E1_BLACK))<0) goto error;
-
- if ((size=H5Tget_precision(type))==0) goto error;
- if ((size=H5Tget_size(type))==0) goto error;
- if ((offset=H5Tget_offset(type))<0) goto error;
- if (H5Tget_sign(type)<0) goto error;
- if (H5Tget_super(type)<0) goto error;
+ if((type = H5Tcreate(H5T_ENUM, sizeof(c_e1))) < 0) FAIL_STACK_ERROR
+ if(H5Tenum_insert(type, "RED", CPTR(val, E1_RED )) < 0) FAIL_STACK_ERROR
+ if(H5Tenum_insert(type, "GREEN", CPTR(val, E1_GREEN)) < 0) FAIL_STACK_ERROR
+ if(H5Tenum_insert(type, "BLUE", CPTR(val, E1_BLUE )) < 0) FAIL_STACK_ERROR
+ if(H5Tenum_insert(type, "WHITE", CPTR(val, E1_WHITE)) < 0) FAIL_STACK_ERROR
+ if(H5Tenum_insert(type, "BLACK", CPTR(val, E1_BLACK)) < 0) FAIL_STACK_ERROR
+
+ if(H5Tget_precision(type) == 0) FAIL_STACK_ERROR
+ if(H5Tget_size(type) == 0) FAIL_STACK_ERROR
+ if(H5Tget_offset(type) < 0) FAIL_STACK_ERROR
+ if(H5Tget_sign(type) < 0) FAIL_STACK_ERROR
+ if(H5Tget_super(type) < 0) FAIL_STACK_ERROR
H5E_BEGIN_TRY {
ret=H5Tset_pad(type, H5T_PAD_ZERO, H5T_PAD_ONE);
diff --git a/test/error_test.c b/test/error_test.c
index 027f31b..a5afcfc 100644
--- a/test/error_test.c
+++ b/test/error_test.c
@@ -77,7 +77,7 @@ hid_t ERR_MIN_GETNUM;
#define LONG_DESC_SIZE 8192
-herr_t custom_print_cb(unsigned n, const H5E_error2_t *err_desc,
+static herr_t custom_print_cb(unsigned n, const H5E_error2_t *err_desc,
void *client_data);
@@ -420,7 +420,7 @@ error:
*
*-------------------------------------------------------------------------
*/
-herr_t
+static herr_t
custom_print_cb(unsigned n, const H5E_error2_t *err_desc, void* client_data)
{
FILE *stream = (FILE *)client_data;
diff --git a/test/fillval.c b/test/fillval.c
index 5bf5c03..2f58380 100644
--- a/test/fillval.c
+++ b/test/fillval.c
@@ -1966,7 +1966,7 @@ skip:
*-------------------------------------------------------------------------
*/
static int
-test_compatible(hid_t fapl)
+test_compatible(void)
{
hid_t file=-1, dset1=-1, dset2=-1;
hid_t dcpl1=-1, dcpl2=-1, fspace=-1, mspace=-1;
@@ -2170,7 +2170,7 @@ main(int argc, char *argv[])
nerrors += test_create(my_fapl, FILENAME[1], H5D_CONTIGUOUS);
nerrors += test_rdwr (my_fapl, FILENAME[3], H5D_CONTIGUOUS);
nerrors += test_extend(my_fapl, FILENAME[5], H5D_CONTIGUOUS);
- nerrors += test_compatible(my_fapl);
+ nerrors += test_compatible();
} /* end if */
/* Compact dataset storage tests */
diff --git a/test/freespace.c b/test/freespace.c
index 52a5deb..79a0864 100644
--- a/test/freespace.c
+++ b/test/freespace.c
@@ -2056,7 +2056,6 @@ test_fs_sect_change_class(hid_t fapl)
TEST_free_section_t *sect_node1=NULL, *sect_node2=NULL, *sect_node3=NULL;
unsigned init_flags=0;
TEST_free_section_t *node;
- htri_t node_found = FALSE;
TESTING("the change of section class via H5FS_sect_change_class() in free-space: Test 1");
@@ -2130,8 +2129,8 @@ test_fs_sect_change_class(hid_t fapl)
if(check_stats(frsp, &state))
TEST_ERROR
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp,
- (hsize_t)TEST_SECT_SIZE30, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp,
+ (hsize_t)TEST_SECT_SIZE30, (H5FS_section_info_t **)&node) < 0)
FAIL_STACK_ERROR
if (node->sect_info.type != TEST_FSPACE_SECT_TYPE_NONE)
@@ -2235,8 +2234,8 @@ test_fs_sect_change_class(hid_t fapl)
TEST_ERROR
/* verify that section B has changed class */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp,
- (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp,
+ (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node) < 0)
FAIL_STACK_ERROR
if (node->sect_info.type != TEST_FSPACE_SECT_TYPE)
@@ -2246,8 +2245,8 @@ test_fs_sect_change_class(hid_t fapl)
TEST_ERROR
/* verify that section C has changed class */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp,
- (hsize_t)TEST_SECT_SIZE80, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp,
+ (hsize_t)TEST_SECT_SIZE80, (H5FS_section_info_t **)&node) < 0)
FAIL_STACK_ERROR
if (node->sect_info.type != TEST_FSPACE_SECT_TYPE)
diff --git a/test/getname.c b/test/getname.c
index 4084f9e..0dc623e 100644
--- a/test/getname.c
+++ b/test/getname.c
@@ -2672,7 +2672,6 @@ test_reg_ref(hid_t fapl)
hsize_t dimsr[1] = {2};
int rank = 2;
int rankr = 1;
- herr_t status;
hdset_reg_ref_t ref[2];
hdset_reg_ref_t ref_out[2];
int data[2][9] = {{1,1,2,3,3,4,5,5,6},{1,2,2,3,4,4,5,6,6}};
@@ -2701,9 +2700,9 @@ test_reg_ref(hid_t fapl)
TEST_ERROR
/* Write data to the dataset */
- if((status = H5Dwrite(dsetv_id, H5T_NATIVE_INT, H5S_ALL , H5S_ALL, H5P_DEFAULT,data)) < 0)
+ if(H5Dwrite(dsetv_id, H5T_NATIVE_INT, H5S_ALL , H5S_ALL, H5P_DEFAULT, data) < 0)
TEST_ERROR
- if((status = H5Dclose(dsetv_id)) < 0)
+ if(H5Dclose(dsetv_id) < 0)
TEST_ERROR
/* Dataset with references */
@@ -2717,31 +2716,31 @@ test_reg_ref(hid_t fapl)
start[1] = 3;
count[0] = 2;
count[1] = 3;
- if((status = H5Sselect_hyperslab(space_id,H5S_SELECT_SET,start,NULL,count,NULL)) < 0)
+ if(H5Sselect_hyperslab(space_id, H5S_SELECT_SET, start, NULL, count, NULL) < 0)
TEST_ERROR
- if((status = H5Rcreate(&ref[0], file_id, REFREG_DSETNAMEV, H5R_DATASET_REGION, space_id)) < 0)
+ if(H5Rcreate(&ref[0], file_id, REFREG_DSETNAMEV, H5R_DATASET_REGION, space_id) < 0)
TEST_ERROR
/* Create a reference to elements selection */
- if((status = H5Sselect_none(space_id)) < 0)
+ if(H5Sselect_none(space_id) < 0)
TEST_ERROR
- if((status = H5Sselect_elements(space_id, H5S_SELECT_SET, num_points, (const hsize_t *)coord)) < 0)
+ if(H5Sselect_elements(space_id, H5S_SELECT_SET, num_points, (const hsize_t *)coord) < 0)
TEST_ERROR
- if((status = H5Rcreate(&ref[1], file_id, REFREG_DSETNAMEV, H5R_DATASET_REGION, space_id)) < 0)
+ if(H5Rcreate(&ref[1], file_id, REFREG_DSETNAMEV, H5R_DATASET_REGION, space_id) < 0)
TEST_ERROR
/* Write dataset with the references */
- if((status = H5Dwrite(dsetr_id, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT,ref)) < 0)
+ if(H5Dwrite(dsetr_id, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref) < 0)
TEST_ERROR
/* Close all objects */
- if((status = H5Sclose(space_id)) < 0)
+ if(H5Sclose(space_id) < 0)
TEST_ERROR
- if((status = H5Sclose(spacer_id)) < 0)
+ if(H5Sclose(spacer_id) < 0)
TEST_ERROR
- if((status = H5Dclose(dsetr_id)) < 0)
+ if(H5Dclose(dsetr_id) < 0)
TEST_ERROR
- if((status = H5Fclose(file_id)) < 0)
+ if(H5Fclose(file_id) < 0)
TEST_ERROR
@@ -2753,7 +2752,7 @@ test_reg_ref(hid_t fapl)
if((dsetr_id = H5Dopen2(file_id, REFREG_DSETNAMER, H5P_DEFAULT)) < 0)
TEST_ERROR
- if((status = H5Dread(dsetr_id, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_out)) < 0)
+ if(H5Dread(dsetr_id, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, ref_out) < 0)
TEST_ERROR
/* Get name of the dataset the first region reference points to using H5Rget_name */
@@ -2773,7 +2772,7 @@ test_reg_ref(hid_t fapl)
name_size2 = H5Iget_name(dsetv_id, (char*)buf2, NAME_BUF_SIZE);
if(!((HDstrcmp(buf2, "/MATRIX") == 0) &&(name_size2 == 7))) TEST_ERROR
- if((status = H5Dclose(dsetv_id)) < 0) TEST_ERROR
+ if(H5Dclose(dsetv_id) < 0) TEST_ERROR
PASSED()
@@ -2794,13 +2793,13 @@ test_reg_ref(hid_t fapl)
name_size2 = H5Iget_name(dsetv_id, (char*)buf2, NAME_BUF_SIZE);
if(!((HDstrcmp(buf2, "/MATRIX") == 0) &&(name_size2 == 7))) TEST_ERROR
- if((status = H5Dclose(dsetv_id)) < 0) TEST_ERROR
+ if(H5Dclose(dsetv_id) < 0) TEST_ERROR
PASSED()
- if((status = H5Dclose(dsetr_id)) < 0)
+ if(H5Dclose(dsetr_id) < 0)
TEST_ERROR
- if((status = H5Fclose(file_id)) < 0)
+ if(H5Fclose(file_id) < 0)
TEST_ERROR
return 0;
diff --git a/test/h5test.c b/test/h5test.c
index 029ca3e..f5bf180 100644
--- a/test/h5test.c
+++ b/test/h5test.c
@@ -1031,49 +1031,45 @@ int h5_szip_can_encode(void )
*
*-------------------------------------------------------------------------
*/
-
-char* getenv_all(MPI_Comm comm, int root, const char* name)
+char *
+getenv_all(MPI_Comm comm, int root, const char* name)
{
int mpi_size, mpi_rank, mpi_initialized;
int len;
static char* env = NULL;
- MPI_Status Status;
assert(name);
MPI_Initialized(&mpi_initialized);
- if (!mpi_initialized){
+ if(!mpi_initialized) {
/* use original getenv */
if(env)
HDfree(env);
env = HDgetenv(name);
- }else{
+ } /* end if */
+ else {
MPI_Comm_rank(comm, &mpi_rank);
MPI_Comm_size(comm, &mpi_size);
assert(root < mpi_size);
/* The root task does the getenv call
* and sends the result to the other tasks */
- if(mpi_rank == root)
- {
+ if(mpi_rank == root) {
env = HDgetenv(name);
- if(env)
- {
+ if(env) {
len = HDstrlen(env);
MPI_Bcast(&len, 1, MPI_INT, root, comm);
MPI_Bcast(env, len, MPI_CHAR, root, comm);
}
- else{
+ else {
/* len -1 indicates that the variable was not in the environment */
len = -1;
MPI_Bcast(&len, 1, MPI_INT, root, comm);
}
}
- else
- {
+ else {
MPI_Bcast(&len, 1, MPI_INT, root, comm);
- if(len >= 0)
- {
+ if(len >= 0) {
if(env == NULL)
env = (char*) HDmalloc(len+1);
else if(strlen(env) < len)
@@ -1082,8 +1078,7 @@ char* getenv_all(MPI_Comm comm, int root, const char* name)
MPI_Bcast(env, len, MPI_CHAR, root, comm);
env[len] = '\0';
}
- else
- {
+ else {
if(env)
HDfree(env);
env = NULL;
diff --git a/test/links.c b/test/links.c
index ec0d21b..c169670 100644
--- a/test/links.c
+++ b/test/links.c
@@ -814,7 +814,6 @@ toomany(hid_t fapl, hbool_t new_format)
hid_t fid = (-1); /* File ID */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename[NAME_BUF_SIZE];
if(new_format)
@@ -888,7 +887,7 @@ toomany(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "hard21", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/hard21")) TEST_ERROR
/* Create object in hard-linked group */
@@ -914,7 +913,7 @@ toomany(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "soft16", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/soft16")) TEST_ERROR
/* Create object using soft links */
@@ -1742,7 +1741,6 @@ external_link_root(hid_t fapl, hbool_t new_format)
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
H5L_info_t linfo; /* Link information */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE];
char filename2[NAME_BUF_SIZE];
const char *file; /* File from external link */
@@ -1801,7 +1799,7 @@ external_link_root(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/")) TEST_ERROR
/* Create object in external file */
@@ -1834,9 +1832,9 @@ external_link_root(hid_t fapl, hbool_t new_format)
if((gid2 = H5Gopen2(fid, "newer_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check names */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/new_group")) TEST_ERROR
- if((name_len = H5Iget_name( gid2, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid2, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/newer_group")) TEST_ERROR
/* Close opened objects */
@@ -1903,7 +1901,6 @@ external_link_path(hid_t fapl, hbool_t new_format)
hid_t fid = (-1); /* File ID */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE];
char filename2[NAME_BUF_SIZE];
@@ -1943,7 +1940,7 @@ external_link_path(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/A/B/C")) TEST_ERROR
/* Create object in external file */
@@ -1966,7 +1963,7 @@ external_link_path(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "/A/B/C/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/A/B/C/new_group")) TEST_ERROR
/* Close opened object */
@@ -2012,7 +2009,6 @@ external_link_mult(hid_t fapl, hbool_t new_format)
hid_t fid = (-1), fid2 = (-1); /* File IDs */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE],
filename2[NAME_BUF_SIZE],
filename3[NAME_BUF_SIZE],
@@ -2090,7 +2086,7 @@ external_link_mult(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/A/B/C")) TEST_ERROR
/* Create object in external file */
@@ -2113,7 +2109,7 @@ external_link_mult(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "/A/B/C/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/A/B/C/new_group")) TEST_ERROR
/* Close opened object */
@@ -2177,7 +2173,6 @@ external_link_self(const char *env_h5_drvr, hid_t fapl, hbool_t new_format)
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
hid_t lcpl_id = (-1); /* Link Creation Property List ID */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE];
char filename2[NAME_BUF_SIZE];
char filename3[NAME_BUF_SIZE];
@@ -2218,7 +2213,7 @@ external_link_self(const char *env_h5_drvr, hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "A/B/C/", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/X")) TEST_ERROR
/* Create object through external link */
@@ -2234,7 +2229,7 @@ external_link_self(const char *env_h5_drvr, hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "X/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/X/new_group")) TEST_ERROR
/* Close opened object */
@@ -2343,7 +2338,6 @@ external_link_pingpong(const char *env_h5_drvr, hid_t fapl, hbool_t new_format)
hid_t fid = (-1); /* File ID */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE],
filename2[NAME_BUF_SIZE]; /* Names of files to externally link across */
@@ -2394,7 +2388,7 @@ external_link_pingpong(const char *env_h5_drvr, hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "link1", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/final")) TEST_ERROR
/* Create object in external file */
@@ -2417,7 +2411,7 @@ external_link_pingpong(const char *env_h5_drvr, hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "/final/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/final/new_group")) TEST_ERROR
/* Close opened object */
@@ -2488,7 +2482,6 @@ external_link_toomany(hid_t fapl, hbool_t new_format)
hid_t fid = (-1); /* File ID */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE],
filename2[NAME_BUF_SIZE]; /* Names of files to externally link across */
@@ -2562,7 +2555,7 @@ external_link_toomany(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "link3", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/final")) TEST_ERROR
/* Create object in external file */
@@ -5315,7 +5308,6 @@ external_link_move(hid_t fapl, hbool_t new_format)
hid_t fid = (-1); /* File ID */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE],
filename2[NAME_BUF_SIZE]; /* Names of files to externally link across */
@@ -5360,7 +5352,7 @@ external_link_move(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "src2", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE )) < 0) FAIL_STACK_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) FAIL_STACK_ERROR
if(HDstrcmp(objname, "/dst")) TEST_ERROR
/* Create object in external file */
@@ -5405,7 +5397,7 @@ external_link_move(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "/group2/src3", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE )) < 0) FAIL_STACK_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) FAIL_STACK_ERROR
if(HDstrcmp(objname, "/dst")) TEST_ERROR
/* Create object in external file */
@@ -5441,14 +5433,14 @@ external_link_move(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "/group2/src3", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE )) < 0) FAIL_STACK_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) FAIL_STACK_ERROR
if(HDstrcmp(objname, "/dst")) TEST_ERROR
/* Move external link back to original location */
if(H5Lmove(fid, "/group2/src3", H5L_SAME_LOC, "/src", H5P_DEFAULT, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE )) < 0) FAIL_STACK_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) FAIL_STACK_ERROR
if(HDstrcmp(objname, "/dst")) TEST_ERROR
/* Create object in external file */
@@ -5509,7 +5501,6 @@ external_link_ride(hid_t fapl, hbool_t new_format)
hid_t gcpl = (-1); /* Group creation property list ID */
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE],
filename2[NAME_BUF_SIZE]; /* Names of files to externally link across */
unsigned nmsgs; /* Number of messages in group's header */
@@ -5593,7 +5584,7 @@ external_link_ride(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "src", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/dst")) TEST_ERROR
/* Create object in external file */
@@ -5628,7 +5619,7 @@ external_link_ride(hid_t fapl, hbool_t new_format)
if((gid = H5Gopen2(fid, "src", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/dst")) TEST_ERROR
/* Create object in external file */
@@ -6030,7 +6021,6 @@ external_link_strong(hid_t fapl, hbool_t new_format)
hid_t fid1 = (-1), fid2 = (-1); /* File ID */
hid_t gid1 = (-1), gid2 = (-1); /* Group IDs */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename1[NAME_BUF_SIZE],
filename2[NAME_BUF_SIZE];
@@ -6071,7 +6061,7 @@ external_link_strong(hid_t fapl, hbool_t new_format)
/* Access external link from file #1 */
if((fid2 = H5Fopen(filename2, H5F_ACC_RDONLY, fapl)) < 0) TEST_ERROR
if((gid2 = H5Gopen2(fid2, "/W/X/DLINK", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
- if((name_len = H5Iget_name(gid2, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid2, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/A/B/C")) TEST_ERROR
if(H5Gclose(gid2) < 0) TEST_ERROR
if(H5Fclose(fid2) < 0) TEST_ERROR
@@ -6250,7 +6240,6 @@ ud_hard_links(hid_t fapl)
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
H5L_info_t li; /* Link information */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
h5_stat_size_t empty_size; /* Size of an empty file */
char filename[NAME_BUF_SIZE];
@@ -6299,7 +6288,7 @@ ud_hard_links(hid_t fapl)
if((gid = H5Gopen2(fid, "ud_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/group")) TEST_ERROR
/* Create object in group */
@@ -6313,7 +6302,7 @@ ud_hard_links(hid_t fapl)
if((gid = H5Gopen2(fid, "group/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/group/new_group")) TEST_ERROR
/* Close opened object */
@@ -6417,7 +6406,6 @@ ud_link_reregister(hid_t fapl)
hid_t gid = (-1), gid2 = (-1); /* Group IDs */
H5L_info_t li; /* Link information */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename[NAME_BUF_SIZE];
h5_stat_size_t empty_size; /* Size of an empty file */
@@ -6486,7 +6474,7 @@ ud_link_reregister(hid_t fapl)
if((gid = H5Gopen2(fid, "ud_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/" REREG_TARGET_NAME)) TEST_ERROR
/* Create object in group */
@@ -6500,7 +6488,7 @@ ud_link_reregister(hid_t fapl)
if((gid = H5Gopen2(fid, "rereg_target/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/rereg_target/new_group")) TEST_ERROR
/* Close opened object */
@@ -7291,7 +7279,6 @@ lapl_nlinks(hid_t fapl, hbool_t new_format)
hid_t tid = (-1), sid = (-1), did = (-1); /* Other IDs */
hid_t gapl = (-1), dapl = (-1), tapl = (-1); /* Other property lists */
char objname[NAME_BUF_SIZE]; /* Object name */
- ssize_t name_len; /* Length of object name */
char filename[NAME_BUF_SIZE];
size_t nlinks; /* nlinks for H5Pset_nlinks */
hsize_t dims[2];
@@ -7356,7 +7343,7 @@ lapl_nlinks(hid_t fapl, hbool_t new_format)
if((gid = H5Oopen(fid, "soft17", plist)) < 0) TEST_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/soft17")) TEST_ERROR
/* Create group using soft link */
@@ -7389,7 +7376,7 @@ lapl_nlinks(hid_t fapl, hbool_t new_format)
if((gid = H5Oopen(fid, "soft4", plist)) < 0) TEST_ERROR
/* Check name */
- if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
+ if(H5Iget_name(gid, objname, (size_t)NAME_BUF_SIZE) < 0) TEST_ERROR
if(HDstrcmp(objname, "/soft4")) TEST_ERROR
@@ -8756,7 +8743,7 @@ corder_transition(hid_t fapl)
sprintf(objname, "filler %u", u);
if(H5Ldelete(group_id, objname, H5P_DEFAULT) < 0) TEST_ERROR
} /* end for */
- sprintf(objname, "filler %u", 0);
+ sprintf(objname, "filler %u", (unsigned)0);
if(H5Ldelete(group_id, objname, H5P_DEFAULT) < 0) TEST_ERROR
/* Close the group */
diff --git a/test/mf.c b/test/mf.c
index 527fa4a..ff54751 100644
--- a/test/mf.c
+++ b/test/mf.c
@@ -277,7 +277,6 @@ test_mf_eoa_shrink(const char *env_h5_drvr, hid_t fapl)
char filename[FILENAME_LEN]; /* Filename to use */
H5F_t *f = NULL; /* Internal file object pointer */
h5_stat_size_t file_size, new_file_size; /* file size */
- htri_t status;
H5FD_mem_t type;
haddr_t addr;
haddr_t ma_addr=HADDR_UNDEF, new_ma_addr=HADDR_UNDEF;
@@ -355,8 +354,7 @@ test_mf_eoa_shrink(const char *env_h5_drvr, hid_t fapl)
H5MF_aggr_query(f, &(f->shared->meta_aggr), &ma_addr, &ma_size);
/* should succeed */
- status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE30);
- if (status <= 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE30) <= 0)
TEST_ERROR
/* nothing should be changed in meta_aggr */
@@ -404,8 +402,7 @@ test_mf_eoa_shrink(const char *env_h5_drvr, hid_t fapl)
TEST_ERROR
/* should not succeed in shrinking */
- status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE30-10);
- if (status > 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE30 - 10) > 0)
TEST_ERROR
/* nothing should be changed in meta_aggr */
@@ -449,8 +446,7 @@ test_mf_eoa_shrink(const char *env_h5_drvr, hid_t fapl)
H5MF_aggr_query(f, &(f->shared->meta_aggr), &ma_addr, &ma_size);
/* should not succeed in shrinking */
- status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE30+10);
- if (status > 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr, (hsize_t)TEST_BLOCK_SIZE30 + 10) > 0)
TEST_ERROR
/* nothing should be changed in meta_aggr */
@@ -493,8 +489,7 @@ test_mf_eoa_shrink(const char *env_h5_drvr, hid_t fapl)
H5MF_aggr_query(f, &(f->shared->meta_aggr), &ma_addr, &ma_size);
/* should succeed in shrinking */
- status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr+10, (hsize_t)(TEST_BLOCK_SIZE30-10));
- if (status <= 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr+10, (hsize_t)(TEST_BLOCK_SIZE30 - 10)) <= 0)
TEST_ERROR
/* nothing should be changed in meta_aggr */
@@ -847,7 +842,6 @@ test_mf_fs_alloc_free(hid_t fapl)
frspace_state_t state;
H5MF_sect_ud_t udata;
H5FS_section_info_t *node;
- htri_t node_found = FALSE;
TESTING("H5MF_alloc()/H5MF_xfree() of free-space manager:test 1");
@@ -933,8 +927,8 @@ test_mf_fs_alloc_free(hid_t fapl)
TEST_ERROR
/* Remove section A from free-space */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)TEST_BLOCK_SIZE30, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)TEST_BLOCK_SIZE30, (H5FS_section_info_t **)&node) < 0)
/* Free the free-space section node */
if(H5MF_sect_simple_free((H5FS_section_info_t *)node) < 0)
@@ -1014,8 +1008,8 @@ test_mf_fs_alloc_free(hid_t fapl)
TEST_ERROR
/* Remove section A from free-space manager */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)TEST_BLOCK_SIZE30, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)TEST_BLOCK_SIZE30, (H5FS_section_info_t **)&node) < 0)
FAIL_STACK_ERROR
/* Free the free-space section node */
@@ -1090,8 +1084,8 @@ test_mf_fs_alloc_free(hid_t fapl)
TEST_ERROR
/* Remove section A from free-space */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)TEST_BLOCK_SIZE30, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)TEST_BLOCK_SIZE30, (H5FS_section_info_t **)&node) < 0)
FAIL_STACK_ERROR
/* Free the free-space section node */
@@ -1187,7 +1181,6 @@ test_mf_fs_extend(hid_t fapl)
frspace_state_t state; /* State of free space*/
H5MF_sect_ud_t udata;
H5FS_section_info_t *node;
- htri_t node_found = FALSE;
htri_t extended;
TESTING("H5MF_try_extend() of free-space manager:test 1");
@@ -1305,8 +1298,8 @@ test_mf_fs_extend(hid_t fapl)
TEST_ERROR
/* Remove the extended block */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)(TEST_BLOCK_SIZE30+TEST_BLOCK_SIZE50), (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)(TEST_BLOCK_SIZE30+TEST_BLOCK_SIZE50), (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
/* Remove the free-space section node */
@@ -1415,8 +1408,8 @@ test_mf_fs_extend(hid_t fapl)
TEST_ERROR
/* Remove the merged sections A & B from free-space */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)(TEST_BLOCK_SIZE30+TEST_BLOCK_SIZE50), (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)(TEST_BLOCK_SIZE30+TEST_BLOCK_SIZE50), (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
/* Remove the free-space section node */
@@ -1525,8 +1518,8 @@ test_mf_fs_extend(hid_t fapl)
TEST_ERROR
/* Remove the merged sections A & B from free-space */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)(TEST_BLOCK_SIZE30+TEST_BLOCK_SIZE50), (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)(TEST_BLOCK_SIZE30+TEST_BLOCK_SIZE50), (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
/* Remove the free-space section node */
@@ -1635,8 +1628,8 @@ test_mf_fs_extend(hid_t fapl)
TEST_ERROR
/* Remove section A from free-space manger */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)(TEST_BLOCK_SIZE30-10), (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)(TEST_BLOCK_SIZE30-10), (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
/* Remove the free-space section node */
@@ -1644,8 +1637,8 @@ test_mf_fs_extend(hid_t fapl)
TEST_ERROR
/* Remove section B from free-space manager */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)TEST_BLOCK_SIZE50, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)TEST_BLOCK_SIZE50, (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
/* Remove the free-space section node */
@@ -1710,7 +1703,6 @@ test_mf_fs_absorb(const char *env_h5_drvr, hid_t fapl)
hsize_t ma_size=0;
H5MF_free_section_t *sect_node=NULL;
H5MF_sect_ud_t udata;
- htri_t node_found=FALSE;
H5FS_section_info_t *node;
hbool_t contig_addr_vfd; /* Whether VFD used has a contigous address space */
@@ -1765,8 +1757,8 @@ test_mf_fs_absorb(const char *env_h5_drvr, hid_t fapl)
FAIL_STACK_ERROR
/* Verify that the section did absorb the aggregator */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)TEST_BLOCK_SIZE2048, (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)TEST_BLOCK_SIZE2048, (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
if (node->addr != ma_addr) TEST_ERROR
@@ -1835,8 +1827,8 @@ test_mf_fs_absorb(const char *env_h5_drvr, hid_t fapl)
FAIL_STACK_ERROR
/* Verify that the section did absorb the aggregator */
- if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
- (hsize_t)(ma_size+TEST_BLOCK_SIZE30), (H5FS_section_info_t **)&node)) < 0)
+ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, f->shared->fs_man[type],
+ (hsize_t)(ma_size+TEST_BLOCK_SIZE30), (H5FS_section_info_t **)&node) < 0)
TEST_ERROR
if ((node->addr + TEST_BLOCK_SIZE30) != ma_addr) TEST_ERROR
@@ -2939,7 +2931,7 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
hid_t file = -1; /* File ID */
char filename[FILENAME_LEN]; /* Filename to use */
H5F_t *f = NULL; /* Internal file object pointer */
- h5_stat_size_t empty_size;
+ h5_stat_size_t empty_size, file_size;
H5FD_mem_t type, stype;
haddr_t new_addr, addr, saddr;
haddr_t ma_addr=HADDR_UNDEF, new_ma_addr=HADDR_UNDEF, sdata_addr=HADDR_UNDEF;
@@ -3012,6 +3004,14 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
if(H5Fclose(file) < 0)
FAIL_STACK_ERROR
+ /* Get the size of the file */
+ if((file_size = h5_get_file_size(filename, fapl)) < 0)
+ TEST_ERROR
+
+ /* Verify the file is the correct size */
+ if (file_size != empty_size)
+ TEST_ERROR
+
PASSED()
} /* end if */
else {
@@ -3074,6 +3074,14 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
if(H5Fclose(file) < 0)
FAIL_STACK_ERROR
+ /* Get the size of the file */
+ if((file_size = h5_get_file_size(filename, fapl)) < 0)
+ TEST_ERROR
+
+ /* Verify the file is the correct size */
+ if (file_size != empty_size)
+ TEST_ERROR
+
PASSED()
} /* end if */
else {
@@ -3134,6 +3142,14 @@ test_mf_aggr_extend(const char *env_h5_drvr, hid_t fapl)
if(H5Fclose(file) < 0)
FAIL_STACK_ERROR
+ /* Get the size of the file */
+ if((file_size = h5_get_file_size(filename, fapl)) < 0)
+ TEST_ERROR
+
+ /* Verify the file is the correct size */
+ if (file_size != empty_size)
+ TEST_ERROR
+
PASSED()
} /* end if */
else {
@@ -3177,14 +3193,13 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
hid_t file = -1; /* File ID */
char filename[FILENAME_LEN]; /* Filename to use */
H5F_t *f = NULL; /* Internal file object pointer */
- h5_stat_size_t empty_size;
+ h5_stat_size_t empty_size, file_size;
H5FD_mem_t type, stype;
haddr_t addr1, addr2, addr3, saddr1;
haddr_t ma_addr=HADDR_UNDEF, new_ma_addr=HADDR_UNDEF;
haddr_t sdata_addr=HADDR_UNDEF, new_sdata_addr=HADDR_UNDEF;
hsize_t ma_size=0, new_ma_size=0;
hsize_t sdata_size=0, new_sdata_size=0;
- htri_t status;
hbool_t contig_addr_vfd; /* Whether VFD used has a contigous address space */
TESTING("H5MF_try_shrink() of meta/sdata aggregator: test 1");
@@ -3221,11 +3236,11 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
ma_addr = new_ma_addr - TEST_BLOCK_SIZE30;
- if ((addr1+TEST_BLOCK_SIZE30) != new_ma_addr)
+ if((addr1 + TEST_BLOCK_SIZE30) != new_ma_addr)
TEST_ERROR
/* should succeed */
- if ((status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr1, (hsize_t)TEST_BLOCK_SIZE30)) <= 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr1, (hsize_t)TEST_BLOCK_SIZE30) <= 0)
TEST_ERROR
H5MF_aggr_query(f, &(f->shared->meta_aggr), &new_ma_addr, &new_ma_size);
@@ -3235,6 +3250,14 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
if(H5Fclose(file) < 0)
FAIL_STACK_ERROR
+ /* Get the size of the file */
+ if((file_size = h5_get_file_size(filename, fapl)) < 0)
+ TEST_ERROR
+
+ /* Verify the file is the correct size */
+ if (file_size != empty_size)
+ TEST_ERROR
+
PASSED()
} /* end if */
else {
@@ -3269,7 +3292,7 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
H5MF_aggr_query(f, &(f->shared->sdata_aggr), &sdata_addr, &sdata_size);
/* should succeed */
- if ((status = H5MF_try_shrink(f, stype, H5P_DATASET_XFER_DEFAULT, saddr1, (hsize_t)TEST_BLOCK_SIZE50)) <= 0)
+ if(H5MF_try_shrink(f, stype, H5P_DATASET_XFER_DEFAULT, saddr1, (hsize_t)TEST_BLOCK_SIZE50) <= 0)
TEST_ERROR
H5MF_aggr_query(f, &(f->shared->sdata_aggr), &new_sdata_addr, &new_sdata_size);
@@ -3286,6 +3309,14 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
if(H5Fclose(file) < 0)
FAIL_STACK_ERROR
+ /* Get the size of the file */
+ if((file_size = h5_get_file_size(filename, fapl)) < 0)
+ TEST_ERROR
+
+ /* Verify the file is the correct size */
+ if (file_size != empty_size)
+ TEST_ERROR
+
PASSED()
} /* end if */
else {
@@ -3326,7 +3357,7 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
TEST_ERROR
/* should not succeed */
- if ((status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr2, (hsize_t)TEST_BLOCK_SIZE50)) > 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr2, (hsize_t)TEST_BLOCK_SIZE50) > 0)
TEST_ERROR
/* aggregator info should be the same as before */
@@ -3340,6 +3371,14 @@ test_mf_aggr_absorb(const char *env_h5_drvr, hid_t fapl)
if(H5Fclose(file) < 0)
FAIL_STACK_ERROR
+ /* Get the size of the file */
+ if((file_size = h5_get_file_size(filename, fapl)) < 0)
+ TEST_ERROR
+
+ /* Verify the file is the correct size */
+ if (file_size != empty_size)
+ TEST_ERROR
+
PASSED()
} /* end if */
else {
@@ -3398,7 +3437,7 @@ test_mf_align_eoa(const char *env_h5_drvr, hid_t fapl, hid_t new_fapl)
haddr_t addr1, addr2;
haddr_t ma_addr=HADDR_UNDEF;
hsize_t ma_size=0;
- htri_t status, extended;
+ htri_t extended;
frspace_state_t state;
hsize_t alignment=0, mis_align=0, tmp=0, accum=0;
hbool_t have_alloc_vfd; /* Whether VFD used has an 'alloc' callback */
@@ -3545,8 +3584,7 @@ test_mf_align_eoa(const char *env_h5_drvr, hid_t fapl, hid_t new_fapl)
FAIL_STACK_ERROR
/* shrink the block */
- status = H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr1, (hsize_t)TEST_BLOCK_SIZE50);
- if (status <= 0)
+ if(H5MF_try_shrink(f, type, H5P_DATASET_XFER_DEFAULT, addr1, (hsize_t)TEST_BLOCK_SIZE50) <= 0)
TEST_ERROR
if(H5Fclose(file) < 0)
diff --git a/test/mount.c b/test/mount.c
index 492f490..14ab346 100644
--- a/test/mount.c
+++ b/test/mount.c
@@ -2558,7 +2558,6 @@ test_acc_perm(hid_t fapl)
hid_t gidA = -1, gidB = -1, gidC = -1, gidM = -1, gidAM = -1, gidAMZ = -1; /* Group IDs */
hid_t bad_id = -1; /* Bad ID from object create */
char name[NAME_BUF_SIZE]; /* Buffer for filename retrieved */
- ssize_t name_len; /* Filename length */
char filename1[1024],
filename2[1024],
filename3[1024]; /* Name of files to mount */
@@ -2605,7 +2604,7 @@ test_acc_perm(hid_t fapl)
TEST_ERROR
/* Get and verify file name */
- if((name_len = H5Fget_name(gidA, name, NAME_BUF_SIZE)) < 0)
+ if(H5Fget_name(gidA, name, NAME_BUF_SIZE) < 0)
TEST_ERROR
if(HDstrcmp(name, filename1) != 0)
TEST_ERROR
@@ -2614,7 +2613,7 @@ test_acc_perm(hid_t fapl)
TEST_ERROR
/* Get and verify file name */
- if((name_len = H5Fget_name(fid2, name, NAME_BUF_SIZE)) < 0)
+ if(H5Fget_name(fid2, name, NAME_BUF_SIZE) < 0)
TEST_ERROR
if(HDstrcmp(name, filename2) != 0)
TEST_ERROR
@@ -2624,7 +2623,7 @@ test_acc_perm(hid_t fapl)
TEST_ERROR
/* Get and verify file name */
- if((name_len = H5Fget_name(fid2, name, NAME_BUF_SIZE)) < 0)
+ if(H5Fget_name(fid2, name, NAME_BUF_SIZE) < 0)
TEST_ERROR
if(HDstrcmp(name, filename2) != 0)
TEST_ERROR
@@ -2634,7 +2633,7 @@ test_acc_perm(hid_t fapl)
TEST_ERROR
/* Get and verify file name */
- if((name_len = H5Fget_name(gidAM, name, NAME_BUF_SIZE)) < 0)
+ if(H5Fget_name(gidAM, name, NAME_BUF_SIZE) < 0)
TEST_ERROR
if(HDstrcmp(name, filename2) != 0)
TEST_ERROR
@@ -2676,7 +2675,7 @@ test_acc_perm(hid_t fapl)
TEST_ERROR
/* Get and verify file name */
- if((name_len = H5Fget_name(gidAMZ, name, NAME_BUF_SIZE)) < 0)
+ if(H5Fget_name(gidAMZ, name, NAME_BUF_SIZE) < 0)
TEST_ERROR
if(HDstrcmp(name, filename3) != 0)
TEST_ERROR
diff --git a/test/stab.c b/test/stab.c
index b57b542..319046e 100644
--- a/test/stab.c
+++ b/test/stab.c
@@ -75,6 +75,12 @@ const char *FILENAME[] = {
/* Definitions for 'old_api' test */
#define OLD_API_GROUP "/old_api"
+/* Definitions for 'corrupt_stab_msg' test */
+#define CORRUPT_STAB_FILE "corrupt_stab_msg.h5"
+#define CORRUPT_STAB_TMP_FILE "corrupt_stab_msg_tmp.h5"
+#define CORRUPT_STAB_COPY_BUF_SIZE 4096
+#define CORRUPT_STAB_DSET "DS1"
+
/*-------------------------------------------------------------------------
* Function: test_misc
@@ -1084,6 +1090,121 @@ error:
/*-------------------------------------------------------------------------
+ * Function: corrupt_stab_msg
+ *
+ * Purpose: Test that a corrupt symbol table message can be fixed
+ * using the cached symbol table information.
+ *
+ * Return: Success: 0
+ * Failure: -1
+ *
+ * Programmer: Neil Fortner
+ * Wednesday, March 18, 2009
+ *
+ *-------------------------------------------------------------------------
+ */
+static int
+corrupt_stab_msg(void)
+{
+ char testfile[512]=""; /* Character buffer for corrected test file name */
+ char *srcdir = HDgetenv("srcdir"); /* Pointer to the directory the source code is located within */
+ FILE *tmp_fp, *old_fp; /* Pointers to temp & old files */
+ void *copy_buf; /* Pointer to buffer for copying data */
+ size_t written; /* Amount of data written to new file */
+ size_t read_in; /* Amount of data read in from old file */
+ hid_t fid = (-1); /* File ID */
+ hid_t did = (-1); /* Dataset ID */
+
+ TESTING("corrupt symbol table message");
+
+ /* Generate the correct name for the test file, by prepending the source path */
+ if(srcdir && ((HDstrlen(srcdir) + HDstrlen(CORRUPT_STAB_FILE) + 1) < sizeof(testfile))) {
+ HDstrcpy(testfile, srcdir);
+ HDstrcat(testfile, "/");
+ }
+ HDstrcat(testfile, CORRUPT_STAB_FILE);
+
+ /* Open the temporary file */
+ if(NULL == (tmp_fp = HDfopen(CORRUPT_STAB_TMP_FILE,"wb"))) TEST_ERROR
+
+ /* Open the old file */
+ if(NULL == (old_fp = fopen(testfile,"rb"))) TEST_ERROR
+
+ /* Allocate space for the copy buffer */
+ if(NULL == (copy_buf = HDmalloc((size_t)CORRUPT_STAB_COPY_BUF_SIZE))) TEST_ERROR
+
+ /* Copy data from the old file to the new file */
+ while((read_in = HDfread(copy_buf, (size_t)1, (size_t)CORRUPT_STAB_COPY_BUF_SIZE, old_fp)) > 0)
+ /* Write the data to the new file */
+ if(read_in != (written = HDfwrite(copy_buf, (size_t)1, read_in, tmp_fp))) TEST_ERROR
+
+ /* Close the old file */
+ if(HDfclose(old_fp)) TEST_ERROR
+
+ /* Close the new file */
+ if(HDfclose(tmp_fp)) TEST_ERROR
+
+ /* Free the copy buffer */
+ free(copy_buf);
+
+#ifndef H5_STRICT_FORMAT_CHECKS
+ /* Open temp file through HDF5 library */
+ if((fid = H5Fopen(CORRUPT_STAB_TMP_FILE, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) TEST_ERROR
+
+ /* Open dataset */
+ if((did = H5Dopen2(fid, CORRUPT_STAB_DSET, H5P_DEFAULT)) < 0) TEST_ERROR
+
+ /* Close dataset and file */
+ if(H5Dclose(did) < 0) TEST_ERROR
+ if(H5Fclose(fid) < 0) TEST_ERROR
+
+ /* Now reopen with read only access. This verifies that the issue has been
+ * corrected, as the symbol table message is not patched in read only mode.
+ */
+
+ /* Open file */
+ if((fid = H5Fopen(CORRUPT_STAB_TMP_FILE, H5F_ACC_RDONLY, H5P_DEFAULT)) < 0) TEST_ERROR
+
+ /* Open dataset */
+ if((did = H5Dopen2(fid, CORRUPT_STAB_DSET, H5P_DEFAULT)) < 0) TEST_ERROR
+
+ /* Close dataset and file */
+ if(H5Dclose(did) < 0) TEST_ERROR
+ if(H5Fclose(fid) < 0) TEST_ERROR
+
+#else /* H5_STRICT_FORMAT_CHECKS */
+ /* Open file */
+ if((fid = H5Fopen(CORRUPT_STAB_TMP_FILE, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) TEST_ERROR
+
+ /* Verify that an error is thrown when we try to access the dataset */
+ H5E_BEGIN_TRY {
+ did = H5Dopen2(fid, CORRUPT_STAB_DSET, H5P_DEFAULT);
+ } H5E_END_TRY
+ if(did >= 0) TEST_ERROR
+
+ /* Close file */
+ if(H5Fclose(fid) < 0) TEST_ERROR
+
+#endif /* H5_STRICT_FORMAT_CHECKS */
+ /* Remove temporary file */
+ if(HDremove(CORRUPT_STAB_TMP_FILE)) TEST_ERROR
+
+ PASSED();
+
+ return 0;
+
+error:
+ H5E_BEGIN_TRY {
+ H5Dclose(did);
+ H5Fclose(fid);
+ } H5E_END_TRY;
+ HDremove(CORRUPT_STAB_TMP_FILE);
+
+ return 1;
+} /* end old_api() */
+
+
+/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: Test groups
@@ -1133,6 +1254,7 @@ main(void)
/* Old group API specific tests */
nerrors += old_api(fapl);
+ nerrors += corrupt_stab_msg();
/* Close 2nd FAPL */
H5Pclose(fapl2);
@@ -1152,3 +1274,4 @@ error:
puts("*** TESTS FAILED ***");
return 1;
}
+
diff --git a/test/tarray.c b/test/tarray.c
index 8d739b9..cc0a0ca 100644
--- a/test/tarray.c
+++ b/test/tarray.c
@@ -1952,9 +1952,9 @@ test_compat(void)
/* Check the 1st field's name */
mname=H5Tget_member_name(tid1,0);
CHECK(mname, NULL, "H5Tget_member_name");
- if(HDstrcmp(mname,"i")!=0)
+ if(mname && HDstrcmp(mname,"i")!=0)
TestErrPrintf("Compound field name doesn't match!, mname=%s\n",mname);
- free(mname);
+ if(mname) free(mname);
/* Check the 1st field's offset */
off=H5Tget_member_offset(tid1,0);
@@ -1971,9 +1971,9 @@ test_compat(void)
/* Check the 2nd field's name */
mname=H5Tget_member_name(tid1,1);
CHECK(mname, NULL, "H5Tget_member_name");
- if(HDstrcmp(mname,"f")!=0)
+ if(mname && HDstrcmp(mname,"f")!=0)
TestErrPrintf("Compound field name doesn't match!, mname=%s\n",mname);
- free(mname);
+ if(mname) free(mname);
/* Check the 2nd field's offset */
off=H5Tget_member_offset(tid1,1);
@@ -2016,9 +2016,9 @@ test_compat(void)
/* Check the 3rd field's name */
mname=H5Tget_member_name(tid1,2);
CHECK(mname, NULL, "H5Tget_member_name");
- if(HDstrcmp(mname,"l")!=0)
+ if(mname && HDstrcmp(mname,"l")!=0)
TestErrPrintf("Compound field name doesn't match!, mname=%s\n",mname);
- free(mname);
+ if(mname) free(mname);
/* Check the 3rd field's offset */
off=H5Tget_member_offset(tid1,2);
@@ -2061,9 +2061,9 @@ test_compat(void)
/* Check the 4th field's name */
mname=H5Tget_member_name(tid1,3);
CHECK(mname, NULL, "H5Tget_member_name");
- if(HDstrcmp(mname,"d")!=0)
+ if(mname && HDstrcmp(mname,"d")!=0)
TestErrPrintf("Compound field name doesn't match!, mname=%s\n",mname);
- free(mname);
+ if(mname) free(mname);
/* Check the 4th field's offset */
off=H5Tget_member_offset(tid1,3);
diff --git a/test/tmisc.c b/test/tmisc.c
index 9ac2bc4..4db800c 100644
--- a/test/tmisc.c
+++ b/test/tmisc.c
@@ -2273,7 +2273,7 @@ insert_user_block(const char *old_name, const char *new_name,const char *str,siz
VERIFY(ret, 0, "HDfclose");
/* Close the new file */
- ret=fclose(new_fp);
+ ret=HDfclose(new_fp);
VERIFY(ret, 0, "HDfclose");
/* Free the copy buffer */
diff --git a/test/trefstr.c b/test/trefstr.c
index 81394f2..c39a6eb 100644
--- a/test/trefstr.c
+++ b/test/trefstr.c
@@ -290,7 +290,6 @@ test_refstr_wrap(void)
static void
test_refstr_own(void)
{
- static const char *FUNC = "test_refstr_own";
H5RS_str_t *rs; /* Ref-counted string created */
char *s; /* Pointer to string to transfer */
const char *t; /* Temporary pointers to string */
diff --git a/test/tselect.c b/test/tselect.c
index 6d8f1bd..5845a9b 100644
--- a/test/tselect.c
+++ b/test/tselect.c
@@ -164,21 +164,21 @@
/* Location comparison function */
-int compare_size_t(const void *s1, const void *s2);
+static int compare_size_t(const void *s1, const void *s2);
-herr_t test_select_hyper_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
-herr_t test_select_point_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
-herr_t test_select_all_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
-herr_t test_select_none_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
-herr_t test_select_hyper_iter2(void *_elem, hid_t type_id, unsigned ndim, const hsize_t *point, void *_operator_data);
-herr_t test_select_hyper_iter3(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
+static herr_t test_select_hyper_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
+static herr_t test_select_point_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
+static herr_t test_select_all_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
+static herr_t test_select_none_iter1(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
+static herr_t test_select_hyper_iter2(void *_elem, hid_t type_id, unsigned ndim, const hsize_t *point, void *_operator_data);
+static herr_t test_select_hyper_iter3(void *elem,hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data);
/****************************************************************
**
** test_select_hyper_iter1(): Iterator for checking hyperslab iteration
**
****************************************************************/
-herr_t
+static herr_t
test_select_hyper_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *_operator_data)
{
uint8_t *tbuf=(uint8_t *)_elem, /* temporary buffer pointer */
@@ -367,7 +367,7 @@ struct pnt_iter {
** (This is really ugly code, not a very good example of correct usage - QAK)
**
****************************************************************/
-herr_t
+static herr_t
test_select_point_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *_operator_data)
{
uint8_t *elem=(uint8_t *)_elem; /* Pointer to the element to examine */
@@ -641,7 +641,7 @@ test_select_point(hid_t xfer_plist)
**
**
****************************************************************/
-herr_t
+static herr_t
test_select_all_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void *_operator_data)
{
uint8_t *tbuf=(uint8_t *)_elem, /* temporary buffer pointer */
@@ -661,7 +661,7 @@ test_select_all_iter1(void *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, c
** (This is never supposed to be called, so it always returns -1)
**
****************************************************************/
-herr_t
+static herr_t
test_select_none_iter1(void UNUSED *_elem, hid_t UNUSED type_id, unsigned UNUSED ndim, const hsize_t UNUSED *point, void UNUSED *_operator_data)
{
return(-1);
@@ -1012,7 +1012,7 @@ test_select_combo(void)
HDfree(rbuf);
} /* test_select_combo() */
-int
+static int
compare_size_t(const void *s1, const void *s2)
{
if(*(const size_t *)s1<*(const size_t *)s2)
@@ -3714,7 +3714,7 @@ test_select_hyper_nota_2d(void)
** test_select_hyper_iter2(): Iterator for checking hyperslab iteration
**
****************************************************************/
-herr_t
+static herr_t
test_select_hyper_iter2(void *_elem, hid_t UNUSED type_id, unsigned ndim, const hsize_t *point, void *_operator_data)
{
int *tbuf=(int *)_elem, /* temporary buffer pointer */
@@ -4900,7 +4900,7 @@ typedef struct {
** test_select_hyper_iter3(): Iterator for checking hyperslab iteration
**
****************************************************************/
-herr_t
+static herr_t
test_select_hyper_iter3(void *_elem, hid_t UNUSED type_id, unsigned ndim, const hsize_t *point, void *_operator_data)
{
unsigned short *tbuf=(unsigned short *)_elem; /* temporary buffer pointer */
diff --git a/test/tsohm.c b/test/tsohm.c
index 0516590..348677d 100644
--- a/test/tsohm.c
+++ b/test/tsohm.c
@@ -731,7 +731,6 @@ static void test_sohm_size1(void)
hid_t file = -1;
hid_t fcpl_id = -1;
hid_t fapl_id = -1;
- hsize_t norm_oh_size;
hsize_t sohm_oh_size;
hsize_t sohm_btree_oh_size;
h5_stat_size_t norm_empty_filesize;
@@ -782,13 +781,8 @@ static void test_sohm_size1(void)
CHECK_I(file, "H5Fopen");
file = size1_helper(file, FILENAME, fapl_id, 0);
CHECK_I(file, "size1_helper");
-
- /* Get the size of a dataset object header */
- ret = H5Oget_info_by_name(file, DSETNAME[0], &oinfo, H5P_DEFAULT);
- CHECK_I(ret, "H5Oget_info_by_name");
ret = H5Fclose(file);
CHECK_I(ret, "H5Fclose");
- norm_oh_size = oinfo.hdr.space.total;
/* Get the new file size */
norm_final_filesize = h5_get_file_size(FILENAME, fapl_id);
@@ -927,13 +921,6 @@ static void test_sohm_size1(void)
* headers. How the SOHM messages are stored shouldn't affect the
* size of the object header.
*/
- /* JAMES: this fails because while the headers are the same size, the
- * SOHM header is broken up by the SOHM table, so has to have a
- * continuation message and a NULL message.
-
- if(sohm_oh_size >= norm_oh_size)
- VERIFY(sohm_oh_size, 1, "H5Oget_info_by_name");
- */
if(sohm_oh_size != sohm_btree_oh_size)
VERIFY(sohm_btree_oh_size, 1, "H5Oget_info_by_name");
@@ -1378,14 +1365,14 @@ static void
size2_dump_struct(const char *name, size2_helper_struct *sizes)
{
puts(name);
- printf(" empty size: %llu\n", sizes->empty_size);
- printf(" first dataset: %llu \tdelta: %llu\n", sizes->first_dset, sizes->first_dset - sizes->empty_size);
- printf("second dataset: %llu \tdelta: %llu\n", sizes->second_dset, sizes->second_dset - sizes->first_dset);
- printf(" dsets 1: %llu \tdelta: %llu\n", sizes->dsets1, sizes->dsets1 - sizes->second_dset);
- printf(" dsets 2: %llu \tdelta: %llu\n", sizes->dsets2, sizes->dsets2 - sizes->dsets1);
- printf(" interleaved: %llu \tdelta: %llu\n", sizes->interleaved, sizes->interleaved - sizes->dsets2);
- printf(" attributes: %llu \tdelta: %llu\n", sizes->attrs1, sizes->attrs1 - sizes->interleaved);
- printf(" attributes 2: %llu \tdelta: %llu\n", sizes->attrs2, sizes->attrs2 - sizes->attrs1);
+ printf(" empty size: %llu\n", (unsigned long long)sizes->empty_size);
+ printf(" first dataset: %llu \tdelta: %llu\n", (unsigned long long)sizes->first_dset, (unsigned long long)(sizes->first_dset - sizes->empty_size));
+ printf("second dataset: %llu \tdelta: %llu\n", (unsigned long long)sizes->second_dset, (unsigned long long)(sizes->second_dset - sizes->first_dset));
+ printf(" dsets 1: %llu \tdelta: %llu\n", (unsigned long long)sizes->dsets1, (unsigned long long)(sizes->dsets1 - sizes->second_dset));
+ printf(" dsets 2: %llu \tdelta: %llu\n", (unsigned long long)sizes->dsets2, (unsigned long long)(sizes->dsets2 - sizes->dsets1));
+ printf(" interleaved: %llu \tdelta: %llu\n", (unsigned long long)sizes->interleaved, (unsigned long long)(sizes->interleaved - sizes->dsets2));
+ printf(" attributes: %llu \tdelta: %llu\n", (unsigned long long)sizes->attrs1, (unsigned long long)(sizes->attrs1 - sizes->interleaved));
+ printf(" attributes 2: %llu \tdelta: %llu\n", (unsigned long long)sizes->attrs2, (unsigned long long)(sizes->attrs2 - sizes->attrs1));
}