mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
[svn-r20529] Purpose: Add testing for bug 1864
Description: Added internal tesitng routines to traverse a file and verify that symbol table information is *always* cached, whenever possible. Added this check to the end of many tests to check all the test files, right before the call to h5_cleanup. Tested: jam, amani, heiwa (h5committest)
This commit is contained in:
parent
e1ed6bb771
commit
7610dd20af
@ -608,6 +608,7 @@ H5_DLL herr_t H5G_new_dense_info_test(hid_t gid, hsize_t *name_count, hsize_t *c
|
||||
H5_DLL herr_t H5G_lheap_size_test(hid_t gid, size_t *lheap_size);
|
||||
H5_DLL herr_t H5G_user_path_test(hid_t obj_id, char *user_path, size_t *user_path_len, unsigned *user_path_hidden);
|
||||
H5_DLL herr_t H5G_verify_cached_stab_test(H5O_loc_t *grp_oloc, H5G_entry_t *ent);
|
||||
H5_DLL herr_t H5G_verify_cached_stabs_test(hid_t gid);
|
||||
#endif /* H5G_TESTING */
|
||||
|
||||
#endif /* _H5Gpkg_H */
|
||||
|
164
src/H5Gtest.c
164
src/H5Gtest.c
@ -641,3 +641,167 @@ done:
|
||||
FUNC_LEAVE_NOAPI_TAG(ret_value, FAIL)
|
||||
} /* end H5G_verify_cached_stab_test() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5G_verify_cached_stabs_test_cb
|
||||
*
|
||||
* Purpose: Verify that all entries in this node contain cached symbol
|
||||
* table information if and only if the entry refers to a
|
||||
* group with a symbol table, and that that information is
|
||||
* correct.
|
||||
*
|
||||
* Return: Non-negative on success/Negative on failure
|
||||
*
|
||||
* Programmer: Neil Fortner
|
||||
* Apr 8, 2011
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static int
|
||||
H5G_verify_cached_stabs_test_cb(H5F_t *f, hid_t dxpl_id,
|
||||
const void UNUSED *_lt_key, haddr_t addr, const void UNUSED *_rt_key,
|
||||
void UNUSED *udata)
|
||||
{
|
||||
H5G_node_t *sn = NULL;
|
||||
H5O_loc_t targ_oloc;
|
||||
H5O_t *targ_oh = NULL;
|
||||
htri_t stab_exists;
|
||||
H5O_stab_t stab;
|
||||
unsigned i;
|
||||
int ret_value = H5_ITER_CONT;
|
||||
|
||||
FUNC_ENTER_NOAPI(H5G_verify_cached_stabs_test_cb, H5_ITER_ERROR)
|
||||
|
||||
/*
|
||||
* Check arguments.
|
||||
*/
|
||||
HDassert(f);
|
||||
HDassert(H5F_addr_defined(addr));
|
||||
|
||||
/* Load the node */
|
||||
if(NULL == (sn = (H5G_node_t *)H5AC_protect(f, dxpl_id, H5AC_SNODE, addr, f, H5AC_READ)))
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTLOAD, H5_ITER_ERROR, "unable to load symbol table node")
|
||||
|
||||
/* Check each target object to see if its stab message (if present) matches
|
||||
* the cached stab (if present). If one exists, both must exist. */
|
||||
/* Initialize constant fields in target oloc */
|
||||
targ_oloc.file = f;
|
||||
targ_oloc.holding_file = FALSE;
|
||||
|
||||
/* Iterate over entries */
|
||||
for(i=0; i<sn->nsyms; i++) {
|
||||
/* Update oloc address */
|
||||
targ_oloc.addr = sn->entry[i].header;
|
||||
|
||||
/* Load target object header */
|
||||
if(NULL == (targ_oh = H5O_protect(&targ_oloc, dxpl_id, H5AC_READ)))
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTPROTECT, H5_ITER_ERROR, "unable to protect target object header")
|
||||
|
||||
/* Check if a symbol table message exists */
|
||||
if((stab_exists = H5O_msg_exists_oh(targ_oh, H5O_STAB_ID)) < 0)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_NOTFOUND, H5_ITER_ERROR, "unable to check for STAB message")
|
||||
|
||||
if(stab_exists) {
|
||||
/* Read symbol table message */
|
||||
if(NULL == H5O_msg_read_oh(f, dxpl_id, targ_oh, H5O_STAB_ID, &stab))
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTGET, H5_ITER_ERROR, "unable to read STAB message")
|
||||
|
||||
/* Check if the stab matches the cached stab info */
|
||||
if(sn->entry[i].type != H5G_CACHED_STAB)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, H5_ITER_ERROR, "STAB message is not cached in group node")
|
||||
|
||||
if((sn->entry[i].cache.stab.btree_addr != stab.btree_addr)
|
||||
|| (sn->entry[i].cache.stab.heap_addr != stab.heap_addr))
|
||||
HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, H5_ITER_ERROR, "cached symbol table information is incorrect")
|
||||
} /* end if */
|
||||
else if(sn->entry[i].type == H5G_CACHED_STAB)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_BADVALUE, H5_ITER_ERROR, "nonexistent STAB message is cached")
|
||||
|
||||
/* Unprotect target object */
|
||||
if(H5O_unprotect(&targ_oloc, dxpl_id, targ_oh, H5AC__NO_FLAGS_SET) < 0)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release object header");
|
||||
targ_oh = NULL;
|
||||
} /* end for */
|
||||
|
||||
done:
|
||||
if(sn && H5AC_unprotect(f, dxpl_id, H5AC_SNODE, addr, sn, H5AC__NO_FLAGS_SET) < 0)
|
||||
HDONE_ERROR(H5E_SYM, H5E_PROTECT, H5_ITER_ERROR, "unable to release object header")
|
||||
|
||||
if(targ_oh) {
|
||||
HDassert(ret_value == H5_ITER_ERROR);
|
||||
if(H5O_unprotect(&targ_oloc, dxpl_id, targ_oh, H5AC__NO_FLAGS_SET) < 0)
|
||||
HDONE_ERROR(H5E_SYM, H5E_CANTUNPROTECT, H5_ITER_ERROR, "unable to release object header");
|
||||
} /* end if */
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5G_verify_cached_stabs_test_cb() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: H5G_verify_cached_stabs_test
|
||||
*
|
||||
* Purpose: If the provided group contains a symbol table, verifies
|
||||
* that all links in the group contain cached symbol table
|
||||
* information if and only if the link points to a group
|
||||
* with a symbol table, and that that information is correct.
|
||||
* If the provided group does not contain a symbol table,
|
||||
* does nothing.
|
||||
*
|
||||
* Return: Non-negative on success/Negative on failure
|
||||
*
|
||||
* Programmer: Neil Fortner
|
||||
* nfortne2@hdfgroup.org
|
||||
* April 6 2011
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
H5G_verify_cached_stabs_test(hid_t gid)
|
||||
{
|
||||
H5G_t *grp = NULL; /* Group */
|
||||
htri_t stab_exists;
|
||||
H5O_stab_t stab; /* Symbol table message */
|
||||
H5G_bt_common_t udata = {NULL, NULL}; /* Dummy udata so H5B_iterate doesn't freak out */
|
||||
haddr_t prev_tag = HADDR_UNDEF; /* Previous metadata tag */
|
||||
herr_t ret_value = SUCCEED; /* Return value */
|
||||
|
||||
FUNC_ENTER_NOAPI(H5G_verify_cached_stabs_test, FAIL)
|
||||
|
||||
/* check args */
|
||||
HDassert(gid >= 0);
|
||||
|
||||
/* Check args */
|
||||
if(NULL == (grp = (H5G_t *)H5I_object_verify(gid, H5I_GROUP)))
|
||||
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a group")
|
||||
|
||||
/* Set up metadata tagging */
|
||||
if(H5AC_tag(H5AC_ind_dxpl_id, grp->oloc.addr, &prev_tag) < 0)
|
||||
HGOTO_ERROR(H5E_CACHE, H5E_CANTTAG, FAIL, "unable to apply metadata tag")
|
||||
|
||||
/* Check for group having a symbol table message */
|
||||
/* Check for the group having a group info message */
|
||||
if((stab_exists = H5O_msg_exists(&(grp->oloc), H5O_STAB_ID,
|
||||
H5AC_ind_dxpl_id)) < 0)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTINIT, FAIL, "unable to read object header")
|
||||
|
||||
/* No need to check anything if the symbol table doesn't exist */
|
||||
if(!stab_exists)
|
||||
HGOTO_DONE(SUCCEED);
|
||||
|
||||
/* Read the stab */
|
||||
if(NULL == H5O_msg_read(&(grp->oloc), H5O_STAB_ID, &stab, H5AC_ind_dxpl_id))
|
||||
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "can't get symbol table info")
|
||||
|
||||
/* Iterate over the b-tree, checking validity of cached information */
|
||||
if((ret_value = H5B_iterate(grp->oloc.file, H5AC_ind_dxpl_id, H5B_SNODE,
|
||||
stab.btree_addr, H5G_verify_cached_stabs_test_cb, &udata)) < 0)
|
||||
HGOTO_ERROR(H5E_SYM, H5E_CANTNEXT, FAIL, "iteration operator failed");
|
||||
|
||||
/* Reset metadata tagging */
|
||||
if(H5AC_tag(H5AC_ind_dxpl_id, prev_tag, NULL) < 0)
|
||||
HDONE_ERROR(H5E_CACHE, H5E_CANTTAG, FAIL, "unable to apply metadata tag")
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5G_verify_cached_stabs_test() */
|
||||
|
||||
|
@ -7712,6 +7712,9 @@ main(void)
|
||||
nerrors += test_modify(fapl, &cparam, &tparam);
|
||||
} /* end for */
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
|
||||
|
@ -2208,6 +2208,9 @@ main (int argc, char *argv[])
|
||||
puts("Testing compound member ordering:");
|
||||
nerrors += test_ooo_order(fname);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl_id) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors) {
|
||||
printf("***** %u FAILURE%s! *****\n",
|
||||
nerrors, 1==nerrors?"":"S");
|
||||
|
@ -8190,6 +8190,9 @@ main(void)
|
||||
/* Close 2nd FAPL */
|
||||
if(H5Pclose(fapl2) < 0) TEST_ERROR
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
printf("All dataset tests passed.\n");
|
||||
|
@ -2944,6 +2944,9 @@ main(void)
|
||||
finish_tparam(&tparam);
|
||||
} /* end for */
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All extensible array tests passed.");
|
||||
|
@ -3192,6 +3192,9 @@ main(void)
|
||||
if(H5Pclose(fcpl_id) < 0)
|
||||
TEST_ERROR
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl_id) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
|
||||
|
@ -583,6 +583,9 @@ main(void)
|
||||
|
||||
H5Fclose(file);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors) goto error;
|
||||
puts("All enum tests passed.");
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
@ -287,6 +287,9 @@ main (void)
|
||||
if(H5Sclose(mem_space) < 0) TEST_ERROR;
|
||||
if(H5Fclose(file) < 0) TEST_ERROR;
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors) {
|
||||
printf("***** %d FAILURE%s! *****\n", nerrors, (1 == nerrors) ? "" : "S");
|
||||
exit(1);
|
||||
|
@ -957,6 +957,10 @@ main (void)
|
||||
nerrors += test_2(fapl);
|
||||
nerrors += test_3(fapl);
|
||||
nerrors += test_4(fapl);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors>0) goto error;
|
||||
|
||||
if (H5Fclose(file) < 0) goto error;
|
||||
|
@ -1648,6 +1648,9 @@ main(void)
|
||||
nerrors += test_skip_elmts(fapl, &cparam, &tparam, (hsize_t)(tparam.nelmts - 1), FALSE, "skipping to last element");
|
||||
} /* end for */
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All fixed array tests passed.");
|
||||
|
@ -16691,6 +16691,9 @@ HDfprintf(stderr, "Uncomment tests!\n");
|
||||
HDfprintf(stderr, "Uncomment tests!\n");
|
||||
#endif /* QAK */
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All fractal heap tests passed.");
|
||||
|
@ -2177,6 +2177,9 @@ main(int argc, char *argv[])
|
||||
/* Close 2nd FAPL */
|
||||
H5Pclose(fapl2);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All fill value tests passed.");
|
||||
|
@ -391,6 +391,9 @@ int main(void)
|
||||
nerrors += (test_filter_write(filename, fapl, FALSE) < 0 ? 1 : 0);
|
||||
nerrors += (test_filter_read(filename, fapl) < 0 ? 1 : 0);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
/* Make sure we can close the library */
|
||||
|
@ -2854,6 +2854,9 @@ main(void)
|
||||
nerrors += test_fs_sect_extend(fapl);
|
||||
nerrors += test_fs_sect_iterate(fapl);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All free-space tests passed.");
|
||||
|
@ -2934,6 +2934,9 @@ main(void)
|
||||
/* Close file */
|
||||
H5Fclose(file_id);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
puts("All getname tests passed.");
|
||||
|
@ -545,6 +545,10 @@ main (void)
|
||||
nerrors += test_3(fapl);
|
||||
nerrors += test_4(fapl);
|
||||
nerrors += test_ooo_indices(fapl);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors) goto error;
|
||||
|
||||
puts("All global heap tests passed.");
|
||||
|
@ -27,6 +27,11 @@
|
||||
#include "h5test.h"
|
||||
#include "H5srcdir.h"
|
||||
|
||||
/* Necessary for h5_verify_cached_stabs() */
|
||||
#define H5G_PACKAGE
|
||||
#define H5G_TESTING
|
||||
#include "H5Gpkg.h"
|
||||
|
||||
#ifdef H5_HAVE_WINSOCK_H
|
||||
#include <process.h>
|
||||
#include <direct.h>
|
||||
@ -1147,3 +1152,92 @@ h5_make_local_copy(char *origfilename, char *local_copy_name)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5_verify_cached_stabs_cb
|
||||
*
|
||||
* Purpose: Callback function for h5_verify_cached_stabs.
|
||||
*
|
||||
* Return: Success: 0
|
||||
*
|
||||
* Failure: -1
|
||||
*
|
||||
* Programmer: Neil Fortner
|
||||
* Tuesday, April 12, 2011
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static herr_t
|
||||
h5_verify_cached_stabs_cb(hid_t oid, const char UNUSED *name,
|
||||
const H5O_info_t *oinfo, void UNUSED *udata)
|
||||
{
|
||||
if(oinfo->type == H5O_TYPE_GROUP)
|
||||
return(H5G_verify_cached_stabs_test(oid));
|
||||
else
|
||||
return(0);
|
||||
} /* end h5_verify_cached_stabs_cb() */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: h5_verify_cached_stabs
|
||||
*
|
||||
* Purpose: Verify that all groups in every file in base_name have
|
||||
* their symbol table information cached (if present, and if
|
||||
* the parent group also uses a symbol table). Does not
|
||||
* check that the root group's symbol table information is
|
||||
* cached in the superblock.
|
||||
*
|
||||
* Return: Success: 0
|
||||
*
|
||||
* Failure: -1
|
||||
*
|
||||
* Programmer: Neil Fortner
|
||||
* Tuesday, April 12, 2011
|
||||
*
|
||||
* Modifications:
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
herr_t
|
||||
h5_verify_cached_stabs(const char *base_name[], hid_t fapl)
|
||||
{
|
||||
hid_t file = -1;
|
||||
char filename[1024];
|
||||
int i = 0;
|
||||
|
||||
while(base_name[i]) {
|
||||
if (h5_fixname(base_name[i], fapl, filename, sizeof(filename)) == NULL)
|
||||
continue;
|
||||
|
||||
H5E_BEGIN_TRY {
|
||||
file = H5Fopen(filename, H5F_ACC_RDONLY, fapl);
|
||||
} H5E_END_TRY
|
||||
if(file < 0) {
|
||||
i++;
|
||||
continue;
|
||||
} /* end if */
|
||||
|
||||
if(H5Ovisit(file, H5_INDEX_NAME, H5_ITER_NATIVE,
|
||||
h5_verify_cached_stabs_cb, NULL) < 0)
|
||||
goto error;
|
||||
|
||||
if(H5Fclose(file) < 0)
|
||||
goto error;
|
||||
file = -1;
|
||||
|
||||
i++;
|
||||
} /* end while */
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
H5E_BEGIN_TRY {
|
||||
H5Fclose(file);
|
||||
} H5E_END_TRY;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -151,6 +151,7 @@ H5TEST_DLL void h5_show_hostname(void);
|
||||
H5TEST_DLL h5_stat_size_t h5_get_file_size(const char *filename, hid_t fapl);
|
||||
H5TEST_DLL int print_func(const char *format, ...);
|
||||
H5TEST_DLL int h5_make_local_copy(char *origfilename, char *local_copy_name);
|
||||
H5TEST_DLL herr_t h5_verify_cached_stabs(const char *base_name[], hid_t fapl);
|
||||
|
||||
/* Routines for operating on the list of tests (for the "all in one" tests) */
|
||||
H5TEST_DLL void TestUsage(void);
|
||||
|
@ -665,6 +665,9 @@ main(int argc, char *argv[])
|
||||
H5Pclose(fcpl);
|
||||
H5Fclose(file);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors) {
|
||||
printf("***** %d I-STORE TEST%s FAILED! *****\n",
|
||||
nerrors, 1 == nerrors ? "" : "S");
|
||||
|
@ -199,6 +199,9 @@ main(void)
|
||||
}
|
||||
PASSED();
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
if(h5_verify_cached_stabs(FILENAME, fapl) < 0) TEST_ERROR
|
||||
|
||||
puts("All local heap tests passed.");
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
|
@ -14460,6 +14460,9 @@ main(void)
|
||||
/* Close 2nd FAPL */
|
||||
H5Pclose(fapl2);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
/* Test that external links can be used after a library reset. MUST be
|
||||
|
@ -171,6 +171,9 @@ main(void)
|
||||
|
||||
nerrors += external_link_env(fapl, TRUE) < 0 ? 1 : 0;
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
/* Results */
|
||||
|
@ -4383,6 +4383,9 @@ main(void)
|
||||
nerrors += test_sharedclose(fapl);
|
||||
nerrors += test_multisharedclose(fapl);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors) goto error;
|
||||
|
||||
puts("All mount tests passed.");
|
||||
|
@ -184,6 +184,9 @@ main(void)
|
||||
}
|
||||
PASSED();
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
if(h5_verify_cached_stabs(FILENAME, fapl) < 0) TEST_ERROR
|
||||
|
||||
/* All looks good */
|
||||
puts("All modification time tests passed.");
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
@ -2892,6 +2892,10 @@ main(void)
|
||||
|
||||
if(H5Fclose(file) < 0)
|
||||
goto error;
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if(nerrors)
|
||||
goto error;
|
||||
|
||||
|
@ -8431,6 +8431,9 @@ main(void)
|
||||
/* Reset file address checking info */
|
||||
addr_reset();
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
/* Results */
|
||||
if(nerrors) {
|
||||
printf("***** %d OBJECT COPY TEST%s FAILED! *****\n",
|
||||
|
@ -795,6 +795,9 @@ main(void)
|
||||
TEST_ERROR
|
||||
} /* end for */
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
if(h5_verify_cached_stabs(FILENAME, fapl) < 0) TEST_ERROR
|
||||
|
||||
puts("All object header tests passed.");
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
return(0);
|
||||
|
@ -185,6 +185,9 @@ int main( void )
|
||||
/* Close 2nd FAPL */
|
||||
if(H5Pclose(fapl2) < 0) TEST_ERROR
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
h5_cleanup(FILENAME, fapl);
|
||||
|
||||
HDremove(EXT_FILE_NAME1);
|
||||
|
@ -1198,6 +1198,9 @@ main(void)
|
||||
/* Close 2nd FAPL */
|
||||
H5Pclose(fapl2);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
/* Check for test errors */
|
||||
if(nerrors)
|
||||
goto error;
|
||||
|
@ -2549,6 +2549,9 @@ main(void)
|
||||
/* Close 2nd FAPL */
|
||||
H5Pclose(fapl2);
|
||||
|
||||
/* Verify symbol table messages are cached */
|
||||
nerrors += (h5_verify_cached_stabs(FILENAME, fapl) < 0 ? 1 : 0);
|
||||
|
||||
if (nerrors) {
|
||||
printf("***** %d FAILURE%s! *****\n", nerrors, 1==nerrors?"":"S");
|
||||
exit(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user