diff options
author | Vailin Choi <vchoi@hdfgroup.org> | 2015-09-06 19:55:20 (GMT) |
---|---|---|
committer | Vailin Choi <vchoi@hdfgroup.org> | 2015-09-06 19:55:20 (GMT) |
commit | b6f4eee12f80f32833b8b1b4891a821578626941 (patch) | |
tree | 4e69790f1468a3fb680af8faf1f9564094e94304 /test/cache_common.h | |
parent | c102869b66899956c1658b3d99955f23402c1276 (diff) | |
download | hdf5-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.h | 91 |
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 */ |