summaryrefslogtreecommitdiffstats
path: root/test/cache_common.h
diff options
context:
space:
mode:
authorVailin Choi <vchoi@hdfgroup.org>2015-09-06 19:55:20 (GMT)
committerVailin Choi <vchoi@hdfgroup.org>2015-09-06 19:55:20 (GMT)
commitb6f4eee12f80f32833b8b1b4891a821578626941 (patch)
tree4e69790f1468a3fb680af8faf1f9564094e94304 /test/cache_common.h
parentc102869b66899956c1658b3d99955f23402c1276 (diff)
downloadhdf5-b6f4eee12f80f32833b8b1b4891a821578626941.zip
hdf5-b6f4eee12f80f32833b8b1b4891a821578626941.tar.gz
hdf5-b6f4eee12f80f32833b8b1b4891a821578626941.tar.bz2
[svn-r27688] Bring version 3 metadata cache from trunk + adding retries.
Tested on jam, kite, platypus, quail, moohan, ostrich, osx1010test, emu.
Diffstat (limited to 'test/cache_common.h')
-rw-r--r--test/cache_common.h91
1 files changed, 60 insertions, 31 deletions
diff --git a/test/cache_common.h b/test/cache_common.h
index ed3bc9f..3778818 100644
--- a/test/cache_common.h
+++ b/test/cache_common.h
@@ -138,12 +138,14 @@
* directly pinned by a single entry.
*/
-#define FLUSH_OP__NO_OP 0
-#define FLUSH_OP__DIRTY 1
-#define FLUSH_OP__RESIZE 2
-#define FLUSH_OP__MOVE 3
-#define FLUSH_OP__ORDER 4
-#define FLUSH_OP__MAX_OP 4
+#define FLUSH_OP__NO_OP 0
+#define FLUSH_OP__DIRTY 1
+#define FLUSH_OP__RESIZE 2
+#define FLUSH_OP__MOVE 3
+#define FLUSH_OP__ORDER 4
+#define FLUSH_OP__EXPUNGE 5
+#define FLUSH_OP__DEST_FLUSH_DEP 6
+#define FLUSH_OP__MAX_OP 6
#define MAX_FLUSH_OPS 10 /* Maximum number of flush operations
* that can be associated with a
@@ -217,10 +219,32 @@ typedef struct test_entry_t
struct test_entry_t * self; /* pointer to this entry -- used for
* sanity checking.
*/
+ H5F_t * file_ptr; /* pointer to the file in which the
+ * entry resides, or NULL if the entry
+ * is not in a file.
+ */
H5C_t * cache_ptr; /* pointer to the cache in which
* the entry resides, or NULL if the
* entry is not in cache.
*/
+ hbool_t written_to_main_addr;
+ /* Flag indicating whether an image
+ * of the entry has been written to
+ * its main address. Since we no
+ * longer have a flush callback, we
+ * set this field to true whenever the
+ * entry is serialized while at its
+ * main address.
+ */
+ hbool_t written_to_alt_addr;
+ /* Flag indicating whether an image
+ * of the entry has been written to
+ * its alternate address. Since we no
+ * longer have a flush callback, we
+ * set this field to true whenever the
+ * entry is serialized while at its
+ * alternate address.
+ */
haddr_t addr; /* where the cache thinks this entry
* is located
*/
@@ -242,11 +266,11 @@ typedef struct test_entry_t
*/
int32_t index; /* index in its entry array
*/
- int32_t reads; /* number of times this entry has
- * been loaded.
+ int32_t serializes; /* number of times this entry has
+ * been serialized.
*/
- int32_t writes; /* number of times this entry has
- * been written
+ int32_t deserializes; /* number of times this entry has
+ * been deserialized
*/
hbool_t is_dirty; /* entry has been modified since
* last write
@@ -307,16 +331,16 @@ typedef struct test_entry_t
* checking code that would otherwise
* cause a false test failure.
*/
- hbool_t loaded; /* entry has been loaded since the
- * last time it was reset.
+ hbool_t deserialized; /* entry has been deserialized since
+ * the last time it was reset.
*/
- hbool_t cleared; /* entry has been cleared since the
+ hbool_t serialized; /* entry has been serialized since the
* last time it was reset.
*/
- hbool_t flushed; /* entry has been flushed since the
+ hbool_t destroyed; /* entry has been destroyed since the
* last time it was reset.
*/
- hbool_t destroyed; /* entry has been destroyed since the
+ hbool_t expunged; /* entry has been expunged since the
* last time it was reset.
*/
int flush_dep_par_type[MAX_FLUSH_DEP_PARS]; /* Entry types of flush dependency parents */
@@ -330,6 +354,9 @@ typedef struct test_entry_t
unsigned notify_after_insert_count; /* Count of times that entry was inserted in cache */
unsigned notify_before_evict_count; /* Count of times that entry was removed in cache */
+ unsigned actual_len; /* Simulate the entry's actual size for a speculative load */
+ unsigned max_verify_ct; /* Maximum # of times to verify an entry's checksum */
+ unsigned verify_ct; /* Count the # of checksum verification for an entry */
} test_entry_t;
/* The following are cut down test versions of the hash table manipulation
@@ -474,9 +501,6 @@ if ( ( (cache_ptr) == NULL ) || \
(i).flash_threshold = (e).flash_threshold; \
(i).decr_mode = (e).decr_mode; \
(i).upper_hr_threshold = (e).upper_hr_threshold; \
- (i).flash_incr_mode = (e).flash_incr_mode; \
- (i).flash_multiple = (e).flash_multiple; \
- (i).flash_threshold = (e).flash_threshold; \
(i).decrement = (e).decrement; \
(i).apply_max_decrement = (e).apply_max_decrement; \
(i).max_decrement = (e).max_decrement; \
@@ -493,15 +517,14 @@ struct expected_entry_status
int entry_type;
int entry_index;
size_t size;
- unsigned char in_cache;
- unsigned char at_main_addr;
- unsigned char is_dirty;
- unsigned char is_protected;
- unsigned char is_pinned;
- unsigned char loaded;
- unsigned char cleared;
- unsigned char flushed;
- unsigned char destroyed;
+ hbool_t in_cache;
+ hbool_t at_main_addr;
+ hbool_t is_dirty;
+ hbool_t is_protected;
+ hbool_t is_pinned;
+ hbool_t deserialized;
+ hbool_t serialized;
+ hbool_t destroyed;
int flush_dep_par_type[MAX_FLUSH_DEP_PARS]; /* Entry types of flush dependency parents */
int flush_dep_par_idx[MAX_FLUSH_DEP_PARS]; /* Indices of flush dependency parents */
unsigned flush_dep_npar; /* Number of flush dependency parents */
@@ -516,12 +539,9 @@ struct expected_entry_status
/* global variable externs: */
-extern const char *FILENAME[3];
-
+extern haddr_t saved_actual_base_addr;
extern hbool_t write_permitted;
extern hbool_t pass; /* set to false on error */
-extern hbool_t skip_long_tests;
-extern hbool_t run_full_test;
extern const char *failure_mssg;
extern test_entry_t * entries[NUMBER_OF_ENTRY_TYPES];
@@ -616,6 +636,7 @@ void resize_entry(H5F_t * file_ptr,
H5F_t *setup_cache(size_t max_cache_size, size_t min_clean_size);
void row_major_scan_forward(H5F_t * file_ptr,
+ int32_t max_index,
int32_t lag,
hbool_t verbose,
hbool_t reset_stats,
@@ -638,6 +659,7 @@ void hl_row_major_scan_forward(H5F_t * file_ptr,
hbool_t do_inserts);
void row_major_scan_backward(H5F_t * file_ptr,
+ int32_t max_index,
int32_t lag,
hbool_t verbose,
hbool_t reset_stats,
@@ -660,6 +682,7 @@ void hl_row_major_scan_backward(H5F_t * file_ptr,
hbool_t do_inserts);
void col_major_scan_forward(H5F_t * file_ptr,
+ int32_t max_index,
int32_t lag,
hbool_t verbose,
hbool_t reset_stats,
@@ -678,6 +701,7 @@ void hl_col_major_scan_forward(H5F_t * file_ptr,
int dirty_unprotects);
void col_major_scan_backward(H5F_t * file_ptr,
+ int32_t max_index,
int32_t lag,
hbool_t verbose,
hbool_t reset_stats,
@@ -754,5 +778,10 @@ void validate_mdc_config(hid_t file_id,
hbool_t compare_init,
int test_num);
+/** Debugging functions -- normally commented out ***/
+#if 0
+void dump_LRU(H5F_t * file_ptr);
+#endif
+
#endif /* _CACHE_COMMON_H */