From d5ddf61803f30e87bdfa629339fabf6fe1eb4a3c Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Wed, 9 Mar 2022 12:07:54 -0800 Subject: Minor tweaks from VFD SWMR normalization (#1474) --- MANIFEST | 2 +- src/H5C.c | 2 + src/H5Cepoch.c | 31 +++---- src/H5Cpkg.h | 226 +++++++++++++++++++++++----------------------- src/H5ES.c | 2 +- src/H5FD.c | 5 +- src/H5Ocopy.c | 1 - src/H5Tcommit.c | 2 +- src/H5VLcallback.c | 2 +- src/H5VLnative.h | 6 +- test/swmr_common.c | 5 +- test/swmr_sparse_reader.c | 2 +- 12 files changed, 143 insertions(+), 143 deletions(-) diff --git a/MANIFEST b/MANIFEST index bc967be..4d11d7f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -3775,8 +3775,8 @@ ./tools/test/perform/CMakeTests.cmake ./utils/CMakeLists.txt -./utils/test/CMakeLists.txt ./utils/mirror_vfd/CMakeLists.txt +./utils/test/CMakeLists.txt # CMake-specific User Scripts ./config/cmake/CTestScript.cmake diff --git a/src/H5C.c b/src/H5C.c index 3868204..fa46ff2 100644 --- a/src/H5C.c +++ b/src/H5C.c @@ -1414,6 +1414,7 @@ H5C_insert_entry(H5F_t *f, const H5C_class_t *type, haddr_t addr, void *thing, u entry_ptr->serialization_count = 0; #endif /* NDEBUG */ + /* initialize tag list fields */ entry_ptr->tl_next = NULL; entry_ptr->tl_prev = NULL; entry_ptr->tag_info = NULL; @@ -7416,6 +7417,7 @@ H5C__load_entry(H5F_t *f, entry->serialization_count = 0; #endif /* NDEBUG */ + /* initialize tag list fields */ entry->tl_next = NULL; entry->tl_prev = NULL; entry->tag_info = NULL; diff --git a/src/H5Cepoch.c b/src/H5Cepoch.c index 3434fed..8655881 100644 --- a/src/H5Cepoch.c +++ b/src/H5Cepoch.c @@ -78,22 +78,21 @@ static herr_t H5C__epoch_marker_fsf_size(const void H5_ATTR_UNUSED *thing, /* Local Variables */ /*******************/ -const H5AC_class_t H5AC_EPOCH_MARKER[1] = {{ - /* id = */ H5AC_EPOCH_MARKER_ID, - /* name = */ "epoch marker", - /* mem_type = */ H5FD_MEM_DEFAULT, /* value doesn't matter */ - /* flags = */ H5AC__CLASS_NO_FLAGS_SET, - /* get_initial_load_size = */ H5C__epoch_marker_get_initial_load_size, - /* get_final_load_size = */ H5C__epoch_marker_get_final_load_size, - /* verify_chksum = */ H5C__epoch_marker_verify_chksum, - /* deserialize = */ H5C__epoch_marker_deserialize, - /* image_len = */ H5C__epoch_marker_image_len, - /* pre_serialize = */ H5C__epoch_marker_pre_serialize, - /* serialize = */ H5C__epoch_marker_serialize, - /* notify = */ H5C__epoch_marker_notify, - /* free_icr = */ H5C__epoch_marker_free_icr, - /* fsf_size = */ H5C__epoch_marker_fsf_size, -}}; +const H5AC_class_t H5AC_EPOCH_MARKER[1] = { + {/* id = */ H5AC_EPOCH_MARKER_ID, + /* name = */ "epoch marker", + /* mem_type = */ H5FD_MEM_DEFAULT, /* value doesn't matter */ + /* flags = */ H5AC__CLASS_NO_FLAGS_SET, + /* get_initial_load_size = */ H5C__epoch_marker_get_initial_load_size, + /* get_final_load_size = */ H5C__epoch_marker_get_final_load_size, + /* verify_chksum = */ H5C__epoch_marker_verify_chksum, + /* deserialize = */ H5C__epoch_marker_deserialize, + /* image_len = */ H5C__epoch_marker_image_len, + /* pre_serialize = */ H5C__epoch_marker_pre_serialize, + /* serialize = */ H5C__epoch_marker_serialize, + /* notify = */ H5C__epoch_marker_notify, + /* free_icr = */ H5C__epoch_marker_free_icr, + /* fsf_size = */ H5C__epoch_marker_fsf_size}}; /*************************************************************************** * Class functions for H5C__EPOCH_MAKER_TYPE: diff --git a/src/H5Cpkg.h b/src/H5Cpkg.h index 30b86b9..61c3afc 100644 --- a/src/H5Cpkg.h +++ b/src/H5Cpkg.h @@ -1011,7 +1011,7 @@ if ( ( (cache_ptr) == NULL ) || \ ( H5C__HASH_FCN((entry_ptr)->addr) >= H5C__HASH_TABLE_LEN ) || \ ( (cache_ptr)->index_size != \ ((cache_ptr)->clean_index_size + \ - (cache_ptr)->dirty_index_size) ) || \ + (cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->clean_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->dirty_index_size) ) || \ ( (entry_ptr)->ring <= H5C_RING_UNDEFINED ) || \ @@ -1034,7 +1034,7 @@ if ( ( (cache_ptr) == NULL ) || \ ( (cache_ptr)->magic != H5C__H5C_T_MAGIC ) || \ ( (cache_ptr)->index_size != \ ((cache_ptr)->clean_index_size + \ - (cache_ptr)->dirty_index_size) ) || \ + (cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->clean_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_ring_len[(entry_ptr)->ring] == 0 ) || \ @@ -1071,7 +1071,7 @@ if ( ( (cache_ptr) == NULL ) || \ ( (entry_ptr)->ht_prev != NULL ) ) || \ ( (cache_ptr)->index_size != \ ((cache_ptr)->clean_index_size + \ - (cache_ptr)->dirty_index_size) ) || \ + (cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->clean_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->dirty_index_size) ) || \ ( (entry_ptr)->ring <= H5C_RING_UNDEFINED ) || \ @@ -1102,7 +1102,7 @@ if ( ( (cache_ptr) == NULL ) || \ ( (entry_ptr)->ht_prev != NULL ) || \ ( (cache_ptr)->index_size != \ ((cache_ptr)->clean_index_size + \ - (cache_ptr)->dirty_index_size) ) || \ + (cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->clean_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_ring_len[(entry_ptr)->ring] > \ @@ -1161,7 +1161,7 @@ if ( ( (cache_ptr) == NULL ) || \ } #define H5C__PRE_HT_ENTRY_SIZE_CHANGE_SC(cache_ptr, old_size, new_size, \ - entry_ptr, was_clean) \ + entry_ptr, was_clean) \ if ( ( (cache_ptr) == NULL ) || \ ( (cache_ptr)->index_len <= 0 ) || \ ( (cache_ptr)->index_size <= 0 ) || \ @@ -1175,9 +1175,9 @@ if ( ( (cache_ptr) == NULL ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->clean_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->dirty_index_size) ) || \ ( ( !( was_clean ) || \ - ( (cache_ptr)->clean_index_size < (old_size) ) ) && \ - ( ( (was_clean) ) || \ - ( (cache_ptr)->dirty_index_size < (old_size) ) ) ) || \ + ( (cache_ptr)->clean_index_size < (old_size) ) ) && \ + ( ( (was_clean) ) || \ + ( (cache_ptr)->dirty_index_size < (old_size) ) ) ) || \ ( (entry_ptr) == NULL ) || \ ( (entry_ptr)->ring <= H5C_RING_UNDEFINED ) || \ ( (entry_ptr)->ring >= H5C_RING_NTYPES ) || \ @@ -1196,20 +1196,20 @@ if ( ( (cache_ptr) == NULL ) || \ } #define H5C__POST_HT_ENTRY_SIZE_CHANGE_SC(cache_ptr, old_size, new_size, \ - entry_ptr) \ + entry_ptr) \ if ( ( (cache_ptr) == NULL ) || \ ( (cache_ptr)->index_len <= 0 ) || \ ( (cache_ptr)->index_size <= 0 ) || \ ( (new_size) > (cache_ptr)->index_size ) || \ ( (cache_ptr)->index_size != \ - ((cache_ptr)->clean_index_size + \ + ((cache_ptr)->clean_index_size + \ (cache_ptr)->dirty_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->clean_index_size) ) || \ ( (cache_ptr)->index_size < ((cache_ptr)->dirty_index_size) ) || \ ( ( !((entry_ptr)->is_dirty ) || \ - ( (cache_ptr)->dirty_index_size < (new_size) ) ) && \ - ( ( ((entry_ptr)->is_dirty) ) || \ - ( (cache_ptr)->clean_index_size < (new_size) ) ) ) || \ + ( (cache_ptr)->dirty_index_size < (new_size) ) ) && \ + ( ( ((entry_ptr)->is_dirty) ) || \ + ( (cache_ptr)->clean_index_size < (new_size) ) ) ) || \ ( ( (cache_ptr)->index_len == 1 ) && \ ( (cache_ptr)->index_size != (new_size) ) ) || \ ( (cache_ptr)->index_ring_len[(entry_ptr)->ring] > \ @@ -1465,10 +1465,10 @@ if ( ( (cache_ptr)->index_size != \ H5C__PRE_HT_UPDATE_FOR_ENTRY_CLEAN_SC(cache_ptr, entry_ptr); \ (cache_ptr)->dirty_index_size -= (entry_ptr)->size; \ ((cache_ptr)->dirty_index_ring_size[entry_ptr->ring]) \ - -= (entry_ptr)->size; \ + -= (entry_ptr)->size; \ (cache_ptr)->clean_index_size += (entry_ptr)->size; \ ((cache_ptr)->clean_index_ring_size[entry_ptr->ring]) \ - += (entry_ptr)->size; \ + += (entry_ptr)->size; \ H5C__POST_HT_UPDATE_FOR_ENTRY_CLEAN_SC(cache_ptr, entry_ptr); \ } @@ -1477,18 +1477,18 @@ if ( ( (cache_ptr)->index_size != \ H5C__PRE_HT_UPDATE_FOR_ENTRY_DIRTY_SC(cache_ptr, entry_ptr); \ (cache_ptr)->clean_index_size -= (entry_ptr)->size; \ ((cache_ptr)->clean_index_ring_size[entry_ptr->ring]) \ - -= (entry_ptr)->size; \ + -= (entry_ptr)->size; \ (cache_ptr)->dirty_index_size += (entry_ptr)->size; \ ((cache_ptr)->dirty_index_ring_size[entry_ptr->ring]) \ - += (entry_ptr)->size; \ + += (entry_ptr)->size; \ H5C__POST_HT_UPDATE_FOR_ENTRY_DIRTY_SC(cache_ptr, entry_ptr); \ } #define H5C__UPDATE_INDEX_FOR_SIZE_CHANGE(cache_ptr, old_size, new_size, \ - entry_ptr, was_clean) \ + entry_ptr, was_clean) \ { \ H5C__PRE_HT_ENTRY_SIZE_CHANGE_SC(cache_ptr, old_size, new_size, \ - entry_ptr, was_clean) \ + entry_ptr, was_clean) \ (cache_ptr)->index_size -= (old_size); \ (cache_ptr)->index_size += (new_size); \ ((cache_ptr)->index_ring_size[entry_ptr->ring]) -= (old_size); \ @@ -1497,14 +1497,14 @@ if ( ( (cache_ptr)->index_size != \ (cache_ptr)->clean_index_size -= (old_size); \ ((cache_ptr)->clean_index_ring_size[entry_ptr->ring])-= (old_size); \ } else { \ - (cache_ptr)->dirty_index_size -= (old_size); \ + (cache_ptr)->dirty_index_size -= (old_size); \ ((cache_ptr)->dirty_index_ring_size[entry_ptr->ring])-= (old_size); \ } \ if((entry_ptr)->is_dirty) { \ (cache_ptr)->dirty_index_size += (new_size); \ ((cache_ptr)->dirty_index_ring_size[entry_ptr->ring])+= (new_size); \ } else { \ - (cache_ptr)->clean_index_size += (new_size); \ + (cache_ptr)->clean_index_size += (new_size); \ ((cache_ptr)->clean_index_ring_size[entry_ptr->ring])+= (new_size); \ } \ H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->il_len, \ @@ -1791,7 +1791,7 @@ if ( ( (cache_ptr)->index_size != \ } else { /* slist disabled */ \ \ HDassert( (cache_ptr)->slist_len == 0 ); \ - HDassert( (cache_ptr)->slist_size == 0 ); \ + HDassert( (cache_ptr)->slist_size == 0 ); \ } \ } /* H5C__REMOVE_ENTRY_FROM_SLIST */ @@ -2033,16 +2033,16 @@ if ( ( (cache_ptr)->index_size != \ /* modified LRU specific code */ \ \ /* remove the entry from the LRU list, and re-insert it at the head.\ - */ \ + */ \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* Use the dirty flag to infer whether the entry is on the clean or \ @@ -2096,16 +2096,16 @@ if ( ( (cache_ptr)->index_size != \ /* modified LRU specific code */ \ \ /* remove the entry from the LRU list, and re-insert it at the head \ - */ \ + */ \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* End modified LRU specific code. */ \ @@ -2288,28 +2288,28 @@ if ( ( (cache_ptr)->index_size != \ /* modified LRU specific code */ \ \ /* remove the entry from the LRU list, and re-insert it at the \ - * head. \ - */ \ + * head. \ + */ \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* since the entry is being flushed or cleared, one would think \ - * that it must be dirty -- but that need not be the case. Use the \ - * dirty flag to infer whether the entry is on the clean or dirty \ - * LRU list, and remove it. Then insert it at the head of the \ - * clean LRU list. \ + * that it must be dirty -- but that need not be the case. Use the \ + * dirty flag to infer whether the entry is on the clean or dirty \ + * LRU list, and remove it. Then insert it at the head of the \ + * clean LRU list. \ * \ * The function presumes that a dirty entry will be either cleared \ - * or flushed shortly, so it is OK if we put a dirty entry on the \ - * clean LRU list. \ + * or flushed shortly, so it is OK if we put a dirty entry on the \ + * clean LRU list. \ */ \ \ if ( (entry_ptr)->is_dirty ) { \ @@ -2350,17 +2350,17 @@ if ( ( (cache_ptr)->index_size != \ /* modified LRU specific code */ \ \ /* remove the entry from the LRU list, and re-insert it at the \ - * head. \ - */ \ + * head. \ + */ \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* End modified LRU specific code. */ \ @@ -2424,7 +2424,7 @@ if ( ( (cache_ptr)->index_size != \ \ H5C__DLL_APPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* insert the entry at the tail of the clean or dirty LRU list as \ @@ -2465,7 +2465,7 @@ if ( ( (cache_ptr)->index_size != \ (cache_ptr)->pel_tail_ptr, \ (cache_ptr)->pel_len, \ (cache_ptr)->pel_size, (fail_val)) \ - \ + \ } else { \ \ /* modified LRU specific code */ \ @@ -2474,7 +2474,7 @@ if ( ( (cache_ptr)->index_size != \ \ H5C__DLL_APPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* End modified LRU specific code. */ \ @@ -2558,7 +2558,7 @@ if ( ( (cache_ptr)->index_size != \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* insert the entry at the head of the clean or dirty LRU list as \ @@ -2599,7 +2599,7 @@ if ( ( (cache_ptr)->index_size != \ (cache_ptr)->pel_tail_ptr, \ (cache_ptr)->pel_len, \ (cache_ptr)->pel_size, (fail_val)) \ - \ + \ } else { \ \ /* modified LRU specific code */ \ @@ -2608,7 +2608,7 @@ if ( ( (cache_ptr)->index_size != \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* End modified LRU specific code. */ \ @@ -2677,12 +2677,12 @@ if ( ( (cache_ptr)->index_size != \ HDassert( !((entry_ptr)->is_read_only) ); \ HDassert( ((entry_ptr)->ro_ref_count) == 0 ); \ HDassert( (entry_ptr)->size > 0 ); \ - \ + \ if ( (entry_ptr)->is_pinned ) { \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->pel_head_ptr, \ - (cache_ptr)->pel_tail_ptr, \ - (cache_ptr)->pel_len, \ + (cache_ptr)->pel_tail_ptr, \ + (cache_ptr)->pel_len, \ (cache_ptr)->pel_size, (fail_val)) \ \ } else { \ @@ -2693,7 +2693,7 @@ if ( ( (cache_ptr)->index_size != \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* Similarly, remove the entry from the clean or dirty LRU list \ @@ -2739,12 +2739,12 @@ if ( ( (cache_ptr)->index_size != \ HDassert( !((entry_ptr)->is_read_only) ); \ HDassert( ((entry_ptr)->ro_ref_count) == 0 ); \ HDassert( (entry_ptr)->size > 0 ); \ - \ + \ if ( (entry_ptr)->is_pinned ) { \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->pel_head_ptr, \ - (cache_ptr)->pel_tail_ptr, \ - (cache_ptr)->pel_len, \ + (cache_ptr)->pel_tail_ptr, \ + (cache_ptr)->pel_len, \ (cache_ptr)->pel_size, (fail_val)) \ \ } else { \ @@ -2755,7 +2755,7 @@ if ( ( (cache_ptr)->index_size != \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* End modified LRU specific code. */ \ @@ -2804,21 +2804,21 @@ if ( ( (cache_ptr)->index_size != \ HDassert( ((entry_ptr)->ro_ref_count) == 0 ); \ HDassert( (entry_ptr)->size > 0 ); \ \ - if ( ! ( (entry_ptr)->is_pinned ) && ! ( (entry_ptr->is_protected ) ) ) { \ - \ + if ( ! ( (entry_ptr)->is_pinned ) && ! ( (entry_ptr->is_protected ) ) ) {\ + \ /* modified LRU specific code */ \ \ /* remove the entry from the LRU list, and re-insert it at the head. \ - */ \ + */ \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* remove the entry from either the clean or dirty LUR list as \ @@ -2827,7 +2827,7 @@ if ( ( (cache_ptr)->index_size != \ if ( was_dirty ) { \ \ H5C__AUX_DLL_REMOVE((entry_ptr), \ - (cache_ptr)->dLRU_head_ptr, \ + (cache_ptr)->dLRU_head_ptr, \ (cache_ptr)->dLRU_tail_ptr, \ (cache_ptr)->dLRU_list_len, \ (cache_ptr)->dLRU_list_size, \ @@ -2836,34 +2836,34 @@ if ( ( (cache_ptr)->index_size != \ } else { \ \ H5C__AUX_DLL_REMOVE((entry_ptr), \ - (cache_ptr)->cLRU_head_ptr, \ + (cache_ptr)->cLRU_head_ptr, \ (cache_ptr)->cLRU_tail_ptr, \ (cache_ptr)->cLRU_list_len, \ (cache_ptr)->cLRU_list_size, \ - (fail_val)) \ + (fail_val)) \ } \ \ /* insert the entry at the head of either the clean or dirty \ - * LRU list as appropriate. \ + * LRU list as appropriate. \ */ \ \ if ( (entry_ptr)->is_dirty ) { \ \ H5C__AUX_DLL_PREPEND((entry_ptr), \ - (cache_ptr)->dLRU_head_ptr, \ + (cache_ptr)->dLRU_head_ptr, \ (cache_ptr)->dLRU_tail_ptr, \ (cache_ptr)->dLRU_list_len, \ (cache_ptr)->dLRU_list_size, \ - (fail_val)) \ + (fail_val)) \ \ } else { \ \ H5C__AUX_DLL_PREPEND((entry_ptr), \ - (cache_ptr)->cLRU_head_ptr, \ + (cache_ptr)->cLRU_head_ptr, \ (cache_ptr)->cLRU_tail_ptr, \ (cache_ptr)->cLRU_list_len, \ (cache_ptr)->cLRU_list_size, \ - (fail_val)) \ + (fail_val)) \ } \ \ /* End modified LRU specific code. */ \ @@ -2872,7 +2872,7 @@ if ( ( (cache_ptr)->index_size != \ #else /* H5C_MAINTAIN_CLEAN_AND_DIRTY_LRU_LISTS */ -#define H5C__UPDATE_RP_FOR_MOVE(cache_ptr, entry_ptr, was_dirty, fail_val) \ +#define H5C__UPDATE_RP_FOR_MOVE(cache_ptr, entry_ptr, was_dirty, fail_val) \ { \ HDassert( (cache_ptr) ); \ HDassert( (cache_ptr)->magic == H5C__H5C_T_MAGIC ); \ @@ -2881,21 +2881,21 @@ if ( ( (cache_ptr)->index_size != \ HDassert( ((entry_ptr)->ro_ref_count) == 0 ); \ HDassert( (entry_ptr)->size > 0 ); \ \ - if ( ! ( (entry_ptr)->is_pinned ) && ! ( (entry_ptr->is_protected ) ) ) { \ - \ + if ( ! ( (entry_ptr)->is_pinned ) && ! ( (entry_ptr->is_protected ) ) ) {\ + \ /* modified LRU specific code */ \ \ /* remove the entry from the LRU list, and re-insert it at the head. \ - */ \ + */ \ \ H5C__DLL_REMOVE((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ H5C__DLL_PREPEND((entry_ptr), (cache_ptr)->LRU_head_ptr, \ (cache_ptr)->LRU_tail_ptr, \ - (cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_len, \ (cache_ptr)->LRU_list_size, (fail_val)) \ \ /* End modified LRU specific code. */ \ @@ -2952,49 +2952,49 @@ if ( ( (cache_ptr)->index_size != \ \ if ( (entry_ptr)->coll_access ) { \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->coll_list_len, \ - (cache_ptr)->coll_list_size, \ - (entry_ptr)->size, \ - (new_size)); \ - \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->coll_list_len, \ + (cache_ptr)->coll_list_size, \ + (entry_ptr)->size, \ + (new_size)); \ + \ } \ \ if ( (entry_ptr)->is_pinned ) { \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->pel_len, \ - (cache_ptr)->pel_size, \ - (entry_ptr)->size, \ - (new_size)); \ - \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->pel_len, \ + (cache_ptr)->pel_size, \ + (entry_ptr)->size, \ + (new_size)); \ + \ } else { \ \ /* modified LRU specific code */ \ \ - /* Update the size of the LRU list */ \ + /* Update the size of the LRU list */ \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->LRU_list_len, \ - (cache_ptr)->LRU_list_size, \ - (entry_ptr)->size, \ - (new_size)); \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_size, \ + (entry_ptr)->size, \ + (new_size)); \ \ /* Similarly, update the size of the clean or dirty LRU list as \ - * appropriate. At present, the entry must be clean, but that \ - * could change. \ + * appropriate. At present, the entry must be clean, but that \ + * could change. \ */ \ \ if ( (entry_ptr)->is_dirty ) { \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->dLRU_list_len, \ - (cache_ptr)->dLRU_list_size, \ - (entry_ptr)->size, \ - (new_size)); \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->dLRU_list_len, \ + (cache_ptr)->dLRU_list_size, \ + (entry_ptr)->size, \ + (new_size)); \ \ } else { \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->cLRU_list_len, \ - (cache_ptr)->cLRU_list_size, \ - (entry_ptr)->size, \ - (new_size)); \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->cLRU_list_len, \ + (cache_ptr)->cLRU_list_size, \ + (entry_ptr)->size, \ + (new_size)); \ } \ \ /* End modified LRU specific code. */ \ @@ -3017,21 +3017,21 @@ if ( ( (cache_ptr)->index_size != \ \ if ( (entry_ptr)->is_pinned ) { \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->pel_len, \ - (cache_ptr)->pel_size, \ - (entry_ptr)->size, \ - (new_size)); \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->pel_len, \ + (cache_ptr)->pel_size, \ + (entry_ptr)->size, \ + (new_size)); \ \ } else { \ \ /* modified LRU specific code */ \ \ - /* Update the size of the LRU list */ \ + /* Update the size of the LRU list */ \ \ - H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->LRU_list_len, \ - (cache_ptr)->LRU_list_size, \ - (entry_ptr)->size, \ - (new_size)); \ + H5C__DLL_UPDATE_FOR_SIZE_CHANGE((cache_ptr)->LRU_list_len, \ + (cache_ptr)->LRU_list_size, \ + (entry_ptr)->size, \ + (new_size)); \ \ /* End modified LRU specific code. */ \ } \ @@ -3318,7 +3318,7 @@ if ( ( (hd_ptr) == NULL ) || \ ( (Size) < (entry_ptr)->size ) || \ ( ( (Size) == (entry_ptr)->size ) && ( ! ( (len) == 1 ) ) ) || \ ( ( (entry_ptr)->coll_prev == NULL ) && ( (hd_ptr) != (entry_ptr) ) ) || \ - ( ( (entry_ptr)->coll_next == NULL ) && ( (tail_ptr) != (entry_ptr) ) ) || \ + ( ( (entry_ptr)->coll_next == NULL ) && ( (tail_ptr) != (entry_ptr) ) ) ||\ ( ( (len) == 1 ) && \ ( ! ( ( (hd_ptr) == (entry_ptr) ) && ( (tail_ptr) == (entry_ptr) ) && \ ( (entry_ptr)->coll_next == NULL ) && \ @@ -3350,10 +3350,10 @@ if ( ( ( ( (head_ptr) == NULL ) || ( (tail_ptr) == NULL ) ) && \ ) \ ) { \ HDassert(0 && "COLL DLL sanity check failed"); \ - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, (fv), "COLL DLL sanity check failed") \ + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, (fv), "COLL DLL sanity check failed")\ } -#define H5C__COLL_DLL_PRE_INSERT_SC(entry_ptr, hd_ptr, tail_ptr, len, Size, fv) \ +#define H5C__COLL_DLL_PRE_INSERT_SC(entry_ptr, hd_ptr, tail_ptr, len, Size, fv)\ if ( ( (entry_ptr) == NULL ) || \ ( (entry_ptr)->coll_next != NULL ) || \ ( (entry_ptr)->coll_prev != NULL ) || \ @@ -5074,7 +5074,7 @@ H5_DLL herr_t H5C__generate_cache_image(H5F_t *f, H5C_t *cache_ptr); H5_DLL herr_t H5C__load_cache_image(H5F_t *f); H5_DLL herr_t H5C__mark_flush_dep_serialized(H5C_cache_entry_t * entry_ptr); H5_DLL herr_t H5C__mark_flush_dep_unserialized(H5C_cache_entry_t * entry_ptr); -H5_DLL herr_t H5C__make_space_in_cache(H5F_t * f, size_t space_needed, +H5_DLL herr_t H5C__make_space_in_cache(H5F_t * f, size_t space_needed, hbool_t write_permitted); H5_DLL herr_t H5C__flush_marked_entries(H5F_t * f); H5_DLL herr_t H5C__serialize_cache(H5F_t *f); diff --git a/src/H5ES.c b/src/H5ES.c index 9abaa54..ad42000 100644 --- a/src/H5ES.c +++ b/src/H5ES.c @@ -269,7 +269,7 @@ H5ESget_requests(hid_t es_id, H5_iter_order_t order, hid_t *connector_ids, void herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE5("e", "iIo*i**xx", es_id, order, connector_ids, requests, count); + H5TRACE6("e", "iIo*i**xzx", es_id, order, connector_ids, requests, array_len, count); /* Check arguments */ if (NULL == (es = H5I_object_verify(es_id, H5I_EVENTSET))) diff --git a/src/H5FD.c b/src/H5FD.c index 397da34..20f69cb 100644 --- a/src/H5FD.c +++ b/src/H5FD.c @@ -928,9 +928,10 @@ H5FD_cmp(const H5FD_t *f1, const H5FD_t *f2) { int ret_value = -1; /* Return value */ - FUNC_ENTER_NOAPI_NOERR /* return value is arbitrary */ + FUNC_ENTER_NOAPI_NOERR; /* return value is arbitrary */ - if ((!f1 || !f1->cls) && (!f2 || !f2->cls)) HGOTO_DONE(0) + if ((!f1 || !f1->cls) && (!f2 || !f2->cls)) + HGOTO_DONE(0) if (!f1 || !f1->cls) HGOTO_DONE(-1) if (!f2 || !f2->cls) diff --git a/src/H5Ocopy.c b/src/H5Ocopy.c index 52b1b5c..0b0bb55 100644 --- a/src/H5Ocopy.c +++ b/src/H5Ocopy.c @@ -33,7 +33,6 @@ #include "H5Aprivate.h" /* Attributes */ #include "H5CXprivate.h" /* API Contexts */ #include "H5Eprivate.h" /* Error handling */ -#include "H5ESprivate.h" /* Event Sets */ #include "H5FLprivate.h" /* Free lists */ #include "H5Iprivate.h" /* IDs */ #include "H5HGprivate.h" /* Global Heaps */ diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c index e99494a..a3a1aa0 100644 --- a/src/H5Tcommit.c +++ b/src/H5Tcommit.c @@ -1127,7 +1127,7 @@ H5T_open(const H5G_loc_t *loc) done: if (ret_value == NULL) { if (dt) { - if (shared_fo == NULL) { /* Need to free shared of */ + if (shared_fo == NULL) { /* Need to free shared file object */ if (dt->shared->owned_vol_obj && H5VL_free_object(dt->shared->owned_vol_obj) < 0) HDONE_ERROR(H5E_DATATYPE, H5E_CANTCLOSEOBJ, NULL, "unable to close owned VOL object") dt->shared = H5FL_FREE(H5T_shared_t, dt->shared); diff --git a/src/H5VLcallback.c b/src/H5VLcallback.c index 4cf4d53..0c5c73d 100644 --- a/src/H5VLcallback.c +++ b/src/H5VLcallback.c @@ -30,7 +30,7 @@ #include "H5private.h" /* Generic Functions */ #include "H5Eprivate.h" /* Error handling */ #include "H5ESprivate.h" /* Event Sets */ -#include "H5Fprivate.h" /* File access */ +#include "H5Fprivate.h" /* File access */ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ #include "H5Pprivate.h" /* Property lists */ diff --git a/src/H5VLnative.h b/src/H5VLnative.h index fe8ede2..5e43c4e 100644 --- a/src/H5VLnative.h +++ b/src/H5VLnative.h @@ -74,7 +74,7 @@ typedef union H5VL_native_attr_optional_args_t { #define H5VL_NATIVE_DATASET_CHUNK_WRITE 7 /* H5Dchunk_write */ #define H5VL_NATIVE_DATASET_GET_VLEN_BUF_SIZE 8 /* H5Dvlen_get_buf_size */ #define H5VL_NATIVE_DATASET_GET_OFFSET 9 /* H5Dget_offset */ -#define H5VL_NATIVE_DATASET_CHUNK_ITER 10 /* H5Dget_offset */ +#define H5VL_NATIVE_DATASET_CHUNK_ITER 10 /* H5Dchunk_iter */ /* NOTE: If values over 1023 are added, the H5VL_RESERVED_NATIVE_OPTIONAL macro * must be updated. */ @@ -208,8 +208,8 @@ typedef union H5VL_native_dataset_optional_args_t { #ifdef H5_HAVE_PARALLEL #define H5VL_NATIVE_FILE_GET_MPI_ATOMICITY 26 /* H5Fget_mpi_atomicity */ #define H5VL_NATIVE_FILE_SET_MPI_ATOMICITY 27 /* H5Fset_mpi_atomicity */ -#endif /* H5_HAVE_PARALLEL */ -#define H5VL_NATIVE_FILE_POST_OPEN 28 /* Adjust file after open, with wrapping context */ +#endif +#define H5VL_NATIVE_FILE_POST_OPEN 28 /* Adjust file after open, with wrapping context */ /* NOTE: If values over 1023 are added, the H5VL_RESERVED_NATIVE_OPTIONAL macro * must be updated. */ diff --git a/test/swmr_common.c b/test/swmr_common.c index 2201427..b359bc6 100644 --- a/test/swmr_common.c +++ b/test/swmr_common.c @@ -202,13 +202,12 @@ generate_symbols(void) unsigned u, v; /* Local index variables */ for (u = 0; u < NLEVELS; u++) { - symbol_info[u] = (symbol_info_t *)HDmalloc(symbol_count[u] * sizeof(symbol_info_t)); + symbol_info[u] = HDmalloc(symbol_count[u] * sizeof(symbol_info_t)); for (v = 0; v < symbol_count[u]; v++) { char name_buf[64]; generate_name(name_buf, u, v); - symbol_info[u][v].name = (char *)HDmalloc(HDstrlen(name_buf) + 1); - HDstrcpy(symbol_info[u][v].name, name_buf); + symbol_info[u][v].name = HDstrdup(name_buf); symbol_info[u][v].dsid = -1; symbol_info[u][v].nrecords = 0; } /* end for */ diff --git a/test/swmr_sparse_reader.c b/test/swmr_sparse_reader.c index 15dcb67..8f1c781 100644 --- a/test/swmr_sparse_reader.c +++ b/test/swmr_sparse_reader.c @@ -117,7 +117,7 @@ check_dataset(hid_t fid, unsigned verbose, const symbol_info_t *symbol, symbol_t (uintmax_t)start[0], (uintmax_t)start[1]); /* Read record from dataset */ - record->rec_id = (uint64_t)ULLONG_MAX; + record->rec_id = UINT64_MAX; if (H5Dread(dsid, symbol_tid, rec_sid, file_sid, H5P_DEFAULT, record) < 0) return -1; -- cgit v0.12 From b9470be379354af209daf8418b6c571dde99e776 Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Thu, 10 Mar 2022 10:22:16 -0800 Subject: Plugin test cleanup (#1479) * Autotools plugin test cleanup * Combines filter, VFD, and VOL plugin tests * Adds VFD plugin tests to the Autotools * Implements a uniform shell script naming scheme in test/ * codespell fix * Changes after code review --- MANIFEST | 31 ++- configure.ac | 25 +- test/CMakeTests.cmake | 42 ++-- test/Makefile.am | 67 ++--- test/ShellTests.cmake | 58 ++--- test/filter_plugin.c | 10 - test/test_abort_fail.sh.in | 66 +++++ test/test_check_version.sh.in | 261 ++++++++++++++++++++ test/test_error.sh.in | 126 ++++++++++ test/test_external_env.sh.in | 42 ++++ test/test_filter_plugin.sh.in | 113 --------- test/test_flush_refresh.sh.in | 238 ++++++++++++++++++ test/test_libinfo.sh.in | 120 +++++++++ test/test_links_env.sh.in | 42 ++++ test/test_plugin.sh.in | 140 +++++++++++ test/test_swmr.pwsh.in | 519 ++++++++++++++++++++++++++++++++++++++ test/test_swmr.sh.in | 563 ++++++++++++++++++++++++++++++++++++++++++ test/test_use_cases.sh.in | 219 ++++++++++++++++ test/test_usecases.sh.in | 219 ---------------- test/test_vds_env.sh.in | 44 ++++ test/test_vds_swmr.pwsh.in | 190 ++++++++++++++ test/test_vds_swmr.sh.in | 233 +++++++++++++++++ test/test_vol_plugin.sh.in | 84 ------- test/testabort_fail.sh.in | 66 ----- test/testcheck_version.sh.in | 261 -------------------- test/testerror.sh.in | 126 ---------- test/testexternal_env.sh.in | 42 ---- test/testflushrefresh.sh.in | 238 ------------------ test/testlibinfo.sh.in | 120 --------- test/testlinks_env.sh.in | 42 ---- test/testswmr.pwsh.in | 519 -------------------------------------- test/testswmr.sh.in | 563 ------------------------------------------ test/testvds_env.sh.in | 44 ---- test/testvdsswmr.pwsh.in | 190 -------------- test/testvdsswmr.sh.in | 233 ----------------- 35 files changed, 2910 insertions(+), 2986 deletions(-) create mode 100644 test/test_abort_fail.sh.in create mode 100644 test/test_check_version.sh.in create mode 100644 test/test_error.sh.in create mode 100644 test/test_external_env.sh.in delete mode 100644 test/test_filter_plugin.sh.in create mode 100644 test/test_flush_refresh.sh.in create mode 100644 test/test_libinfo.sh.in create mode 100644 test/test_links_env.sh.in create mode 100644 test/test_plugin.sh.in create mode 100644 test/test_swmr.pwsh.in create mode 100644 test/test_swmr.sh.in create mode 100644 test/test_use_cases.sh.in delete mode 100644 test/test_usecases.sh.in create mode 100644 test/test_vds_env.sh.in create mode 100644 test/test_vds_swmr.pwsh.in create mode 100644 test/test_vds_swmr.sh.in delete mode 100644 test/test_vol_plugin.sh.in delete mode 100644 test/testabort_fail.sh.in delete mode 100644 test/testcheck_version.sh.in delete mode 100644 test/testerror.sh.in delete mode 100644 test/testexternal_env.sh.in delete mode 100644 test/testflushrefresh.sh.in delete mode 100644 test/testlibinfo.sh.in delete mode 100644 test/testlinks_env.sh.in delete mode 100644 test/testswmr.pwsh.in delete mode 100644 test/testswmr.sh.in delete mode 100644 test/testvds_env.sh.in delete mode 100644 test/testvdsswmr.pwsh.in delete mode 100644 test/testvdsswmr.sh.in diff --git a/MANIFEST b/MANIFEST index 4d11d7f..cd6d086 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1341,28 +1341,27 @@ ./test/tchecksum.c ./test/tconfig.c ./test/tcoords.c -./test/test_filter_plugin.sh.in +./test/test_abort_fail.sh.in +./test/test_check_version.sh.in +./test/test_error.sh.in +./test/test_external_env.sh.in ./test/test_filters_be.h5 ./test/test_filters_le.h5 -./test/test_usecases.sh.in -./test/test_vol_plugin.sh.in -./test/testabort_fail.sh.in -./test/testcheck_version.sh.in -./test/testerror.sh.in -./test/testexternal_env.sh.in -./test/testflushrefresh.sh.in +./test/test_flush_refresh.sh.in +./test/test_libinfo.sh.in +./test/test_links_env.sh.in +./test/test_mirror.sh.in +./test/test_plugin.sh.in +./test/test_swmr.pwsh.in +./test/test_swmr.sh.in +./test/test_use_cases.sh.in +./test/test_vds_env.sh.in +./test/test_vds_swmr.pwsh.in +./test/test_vds_swmr.sh.in ./test/testframe.c ./test/testhdf5.c ./test/testhdf5.h -./test/testlibinfo.sh.in -./test/testlinks_env.sh.in ./test/testmeta.c -./test/test_mirror.sh.in -./test/testswmr.pwsh.in -./test/testswmr.sh.in -./test/testvds_env.sh.in -./test/testvdsswmr.pwsh.in -./test/testvdsswmr.sh.in ./test/tfile.c ./test/tgenprop.c ./test/th5o.c diff --git a/configure.ac b/configure.ac index e426632..4d7be31 100644 --- a/configure.ac +++ b/configure.ac @@ -4165,20 +4165,19 @@ AC_CONFIG_FILES([src/libhdf5.settings src/Makefile test/Makefile test/H5srcdir_str.h - test/testabort_fail.sh - test/testcheck_version.sh - test/testerror.sh - test/testexternal_env.sh - test/testflushrefresh.sh - test/testlibinfo.sh - test/testlinks_env.sh - test/testswmr.sh - test/testvds_env.sh - test/testvdsswmr.sh - test/test_filter_plugin.sh + test/test_abort_fail.sh + test/test_check_version.sh + test/test_error.sh + test/test_external_env.sh + test/test_flush_refresh.sh + test/test_libinfo.sh + test/test_links_env.sh test/test_mirror.sh - test/test_usecases.sh - test/test_vol_plugin.sh + test/test_plugin.sh + test/test_swmr.sh + test/test_use_cases.sh + test/test_vds_env.sh + test/test_vds_swmr.sh testpar/Makefile testpar/testpflush.sh utils/Makefile diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake index 4e828f8..6abef3b 100644 --- a/test/CMakeTests.cmake +++ b/test/CMakeTests.cmake @@ -674,18 +674,18 @@ set_tests_properties (H5TEST-tcheck_version-release PROPERTIES # flushrefresh ############################################################################## # autotools script tests -# error_test and err_compat are built at the same time as the other tests, but executed by testerror.sh. -# NOT CONVERTED accum_swmr_reader is used by accum.c. -# NOT CONVERTED atomic_writer and atomic_reader are standalone programs. -# links_env is used by testlinks_env.sh -# filenotclosed and del_many_dense_attrs are used by testabort_fail.sh -# NOT CONVERTED flushrefresh is used by testflushrefresh.sh. -# NOT CONVERTED use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_usecases.sh -# NOT CONVERTED swmr_* files (besides swmr.c) are used by testswmr.sh. -# NOT CONVERTED vds_swmr_* files are used by testvdsswmr.sh -# NOT CONVERTED 'make check' doesn't run them directly, so they are not included in TEST_PROG. -# NOT CONVERTED Also build testmeta, which is used for timings test. It builds quickly, -# NOT CONVERTED and this lets automake keep all its test programs in one place. +# error_test and err_compat are built at the same time as the other tests, but executed by test_error.sh +# NOT CONVERTED accum_swmr_reader is used by accum.c +# NOT CONVERTED atomic_writer and atomic_reader are stand-alone programs +# links_env is used by test_links_env.sh +# filenotclosed and del_many_dense_attrs are used by test_abort_fail.sh +# NOT CONVERTED flushrefresh is used by test_flush_refresh.sh +# NOT CONVERTED use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_use_cases.sh +# NOT CONVERTED swmr_* files (besides swmr.c) are used by test_swmr.sh +# NOT CONVERTED vds_swmr_* files are used by test_vds_swmr.sh +# 'make check' doesn't run them directly, so they are not included in TEST_PROG. +# Also build testmeta, which is used for timings test. It builds quickly +# and this lets automake keep all its test programs in one place. ############################################################################## #-- Adding test for filenotclosed @@ -853,16 +853,6 @@ if (BUILD_SHARED_LIBS) ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/filter_plugin_dir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/filter_plugin_dir2;srcdir=${HDF5_TEST_BINARY_DIR}" WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR} ) - -############################################################################## -# HDFFV-9655 relative plugin test disabled -# -# add_test (NAME H5PLUGIN-pluginRelative COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $) -# set_tests_properties (H5PLUGIN-pluginRelative PROPERTIES -# ENVIRONMENT "HDF5_PLUGIN_PATH=@/${BIN_REL_PATH}testdir1${CMAKE_SEP}@/${BIN_REL_PATH}testdir2;srcdir=${HDF5_TEST_BINARY_DIR}" -# WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR} -# ) -############################################################################## endif () option (TEST_SHELL_SCRIPTS "Enable shell script tests" ON) @@ -875,10 +865,10 @@ if (ENABLE_EXTENDED_TESTS) ############################################################################## ### S W M R T E S T S ############################################################################## -# testflushrefresh.sh: flushrefresh -# test_usecases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes -# testswmr.sh: swmr* -# testvdsswmr.sh: vds_swmr* +# test_flush_refresh.sh: flushrefresh +# test_use_cases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes +# test_swmr.sh: swmr* +# test_vds_swmr.sh: vds_swmr* #-- Adding test for flushrefresh file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/flushrefresh_test") diff --git a/test/Makefile.am b/test/Makefile.am index ff09003..1d31525 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -22,21 +22,23 @@ include $(top_srcdir)/config/commence.am AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_builddir)/src # Test scripts-- -# testerror.sh: err_compat, error_test -# testlibinfo.sh: -# testcheck_version.sh: tcheck_version -# testlinks_env.sh: links_env -# testexternal_env.sh: external_env -# testflushrefresh.sh: flushrefresh -# testvds_env.sh: vds_env -# testswmr.sh: swmr* -# testvdsswmr.sh: vds_swmr* -# testabort_fail.sh: filenotclosed.c and del_many_dense_attrs.c -# test_filter_plugin.sh: filter_plugin.c +# test_abort_fail.sh: filenotclosed.c and del_many_dense_attrs.c +# test_check_version.sh: tcheck_version +# test_error.sh: err_compat, error_test +# test_external_env.sh: external_env +# test_flush_refresh.sh: flushrefresh +# test_libinfo.sh: +# test_links_env.sh: links_env # test_mirror.sh: mirror_vfd ../utils/mirror_vfd/* -# test_usecases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes -TEST_SCRIPT = testerror.sh testlibinfo.sh testcheck_version.sh testlinks_env.sh testexternal_env.sh \ - testswmr.sh testvds_env.sh testvdsswmr.sh testflushrefresh.sh test_usecases.sh testabort_fail.sh +# test_plugin.sh: filter_plugin.c vfd_plugin.c vol_plugin.c +# test_swmr.sh: swmr* +# test_vds_env.sh: vds_env +# test_vds_swmr.sh: vds_swmr* +# test_use_cases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes +TEST_SCRIPT = test_abort_fail.sh test_check_version.sh test_error.sh \ + test_flush_refresh.sh test_external_env.sh test_libinfo.sh \ + test_links_env.sh test_swmr.sh test_vds_env.sh test_vds_swmr.sh \ + test_use_cases.sh SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) links_env$(EXEEXT) \ external_env$(EXEEXT) filenotclosed$(EXEEXT) del_many_dense_attrs$(EXEEXT) \ flushrefresh$(EXEEXT) use_append_chunk$(EXEEXT) use_append_mchunks$(EXEEXT) use_disable_mdc_flushes$(EXEEXT) \ @@ -45,10 +47,9 @@ SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) links_env$(EXEEXT) \ swmr_sparse_reader$(EXEEXT) swmr_sparse_writer$(EXEEXT) swmr_start_write$(EXEEXT) \ vds_env$(EXEEXT) vds_swmr_gen$(EXEEXT) vds_swmr_reader$(EXEEXT) vds_swmr_writer$(EXEEXT) if HAVE_SHARED_CONDITIONAL - TEST_SCRIPT += test_filter_plugin.sh test_vol_plugin.sh - SCRIPT_DEPEND += filter_plugin$(EXEEXT) vol_plugin$(EXEEXT) + TEST_SCRIPT += test_plugin.sh + SCRIPT_DEPEND += filter_plugin$(EXEEXT) vfd_plugin $(EXEEXT) vol_plugin$(EXEEXT) endif - if MIRROR_VFD_CONDITIONAL TEST_SCRIPT += test_mirror.sh endif @@ -71,22 +72,25 @@ TEST_PROG= testhdf5 \ dangle dtransform reserved cross_read freespace mf vds file_image \ unregister cache_logging cork swmr thread_id vol timer event_set -# List programs to be built when testing here. -# error_test and err_compat are built at the same time as the other tests, but executed by testerror.sh. -# tcheck_version is used by testcheck_version.sh. -# accum_swmr_reader is used by accum.c. -# atomic_writer and atomic_reader are standalone programs. -# links_env is used by testlinks_env.sh -# external_env is used by testexternal_env.sh -# filenotclosed and del_many_dense_attrs are used by testabort_fail.sh -# flushrefresh is used by testflushrefresh.sh. -# use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_usecases.sh -# swmr_* files (besides swmr.c) are used by testswmr.sh. -# vds_swmr_* files are used by testvdsswmr.sh -# vds_env is used by testvds_env.sh +# List programs to be built when testing here +# +# error_test and err_compat are built at the same time as the other tests, but executed by test_error.sh +# tcheck_version is used by test_check_version.sh +# accum_swmr_reader is used by accum.c +# atomic_writer and atomic_reader are stand-alone programs +# links_env is used by test_links_env.sh +# external_env is used by test_external_env.sh +# filenotclosed and del_many_dense_attrs are used by test_abort_fail.sh +# flushrefresh is used by test_flush_refresh.sh +# use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_use_cases.sh +# swmr_* files (besides swmr.c) are used by test_swmr.sh +# vds_swmr_* files are used by test_vds_swmr.sh +# vds_env is used by test_vds_env.sh # mirror_vfd is used by test_mirror.sh +# # 'make check' doesn't run them directly, so they are not included in TEST_PROG. -# Also build testmeta, which is used for timings test. It builds quickly, +# +# Also build testmeta, which is used for the timing test. It builds quickly # and this lets automake keep all its test programs in one place. check_PROGRAMS=$(TEST_PROG) error_test err_compat tcheck_version \ testmeta accum_swmr_reader atomic_writer atomic_reader external_env \ @@ -98,7 +102,6 @@ check_PROGRAMS=$(TEST_PROG) error_test err_compat tcheck_version \ if HAVE_SHARED_CONDITIONAL check_PROGRAMS+= filter_plugin vfd_plugin vol_plugin endif - if MIRROR_VFD_CONDITIONAL check_PROGRAMS+= mirror_vfd endif diff --git a/test/ShellTests.cmake b/test/ShellTests.cmake index e7de735..140da6f 100644 --- a/test/ShellTests.cmake +++ b/test/ShellTests.cmake @@ -17,21 +17,21 @@ find_program (PWSH NAMES pwsh powershell) if (PWSH) - file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/usecases_test") + file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/use_cases_test") file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/swmr_test") file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/vds_swmr_test") set (srcdir ${HDF5_TEST_SOURCE_DIR}) set (H5_UTILS_TEST_BUILDDIR ${CMAKE_TEST_OUTPUT_DIRECTORY}) set (H5_TEST_BUILDDIR ${HDF5_TEST_BINARY_DIR}/H5TEST) - configure_file(${HDF5_TEST_SOURCE_DIR}/testswmr.pwsh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/testswmr.ps1 @ONLY) + configure_file(${HDF5_TEST_SOURCE_DIR}/test_swmr.pwsh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_swmr.ps1 @ONLY) # test commented out as currently the programs are not allowing another access to the data file #add_test (H5SHELL-testswmr ${PWSH} ${HDF5_TEST_BINARY_DIR}/H5TEST/testswmr.ps1) #set_tests_properties (H5SHELL-testswmr PROPERTIES # ENVIRONMENT "PATH=$ENV{PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" # WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST #) - configure_file(${HDF5_TEST_SOURCE_DIR}/testvdsswmr.pwsh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/testvdsswmr.ps1 @ONLY) + configure_file(${HDF5_TEST_SOURCE_DIR}/test_vds_swmr.pwsh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_vds_swmr.ps1 @ONLY) # test commented out as currently the programs are not allowing another access to the data file #add_test (H5SHELL-testvdsswmr ${PWSH} ${HDF5_TEST_BINARY_DIR}/H5TEST/testvdsswmr.ps1) #set_tests_properties (H5SHELL-testvdsswmr PROPERTIES @@ -48,11 +48,11 @@ elseif (UNIX) # configure scripts to test dir ############################################################################## if (H5_PERL_FOUND) - configure_file(${HDF5_TEST_SOURCE_DIR}/testflushrefresh.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/testflushrefresh.sh @ONLY) + configure_file(${HDF5_TEST_SOURCE_DIR}/test_flush_refresh.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_flush_refresh.sh @ONLY) endif () - configure_file(${HDF5_TEST_SOURCE_DIR}/test_usecases.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_usecases.sh @ONLY) - configure_file(${HDF5_TEST_SOURCE_DIR}/testswmr.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/testswmr.sh @ONLY) - configure_file(${HDF5_TEST_SOURCE_DIR}/testvdsswmr.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/testvdsswmr.sh @ONLY) + configure_file(${HDF5_TEST_SOURCE_DIR}/test_use_cases.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_use_cases.sh @ONLY) + configure_file(${HDF5_TEST_SOURCE_DIR}/test_swmr.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_swmr.sh @ONLY) + configure_file(${HDF5_TEST_SOURCE_DIR}/test_vds_swmr.sh.in ${HDF5_TEST_BINARY_DIR}/H5TEST/test_vds_swmr.sh @ONLY) ############################################################################## # copy test programs to test dir @@ -78,44 +78,44 @@ elseif (UNIX) # flushrefresh ############################################################################## # autotools script tests - # error_test and err_compat are built at the same time as the other tests, but executed by testerror.sh. - # NOT CONVERTED accum_swmr_reader is used by accum.c. - # NOT CONVERTED atomic_writer and atomic_reader are standalone programs. - # links_env is used by testlinks_env.sh - # filenotclosed and del_many_dense_attrs are used by testabort_fail.sh - # NOT CONVERTED flushrefresh is used by testflushrefresh.sh. - # NOT CONVERTED use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_usecases.sh - # NOT CONVERTED swmr_* files (besides swmr.c) are used by testswmr.sh. - # NOT CONVERTED vds_swmr_* files are used by testvdsswmr.sh + # error_test and err_compat are built at the same time as the other tests, but executed by test_error.sh + # NOT CONVERTED accum_swmr_reader is used by accum.c + # NOT CONVERTED atomic_writer and atomic_reader are stand-alone programs + # links_env is used by test_links_env.sh + # filenotclosed and del_many_dense_attrs are used by test_abort_fail.sh + # NOT CONVERTED flushrefresh is used by test_flush_refresh.sh. + # NOT CONVERTED use_append_chunk, use_append_mchunks and use_disable_mdc_flushes are used by test_use_cases.sh + # NOT CONVERTED swmr_* files (besides swmr.c) are used by test_swmr.sh. + # NOT CONVERTED vds_swmr_* files are used by test_vds_swmr.sh # NOT CONVERTED 'make check' doesn't run them directly, so they are not included in TEST_PROG. - # NOT CONVERTED Also build testmeta, which is used for timings test. It builds quickly, + # NOT CONVERTED Also build testmeta, which is used for timing test. It builds quickly # NOT CONVERTED and this lets automake keep all its test programs in one place. ############################################################################## ############################################################################## ### S W M R T E S T S ############################################################################## - # testflushrefresh.sh: flushrefresh - # test_usecases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes - # testswmr.sh: swmr* - # testvdsswmr.sh: vds_swmr* - add_test (H5SHELL-testflushrefresh ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/testflushrefresh.sh) - set_tests_properties (H5SHELL-testflushrefresh PROPERTIES + # test_flush_refresh.sh: flushrefresh + # test_use_cases.sh: use_append_chunk, use_append_mchunks, use_disable_mdc_flushes + # test_swmr.sh: swmr* + # test_vds_swmr.sh: vds_swmr* + add_test (H5SHELL-test_flush_refresh ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/test_flush_refresh.sh) + set_tests_properties (H5SHELL-test_flush_refresh PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST ) - add_test (H5SHELL-test_usecases ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/test_usecases.sh) - set_tests_properties (H5SHELL-test_usecases PROPERTIES + add_test (H5SHELL-test_use_cases ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/test_use_cases.sh) + set_tests_properties (H5SHELL-test_use_cases PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST ) - add_test (H5SHELL-testswmr ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/testswmr.sh) - set_tests_properties (H5SHELL-testswmr PROPERTIES + add_test (H5SHELL-test_swmr ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/test_swmr.sh) + set_tests_properties (H5SHELL-test_swmr PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST ) - add_test (H5SHELL-testvdsswmr ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/testvdsswmr.sh) - set_tests_properties (H5SHELL-testvdsswmr PROPERTIES + add_test (H5SHELL-test_vds_swmr ${SH_PROGRAM} ${HDF5_TEST_BINARY_DIR}/H5TEST/test_vds_swmr.sh) + set_tests_properties (H5SHELL-test_vds_swmr PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST ) diff --git a/test/filter_plugin.c b/test/filter_plugin.c index c373b3b..dd61a43 100644 --- a/test/filter_plugin.c +++ b/test/filter_plugin.c @@ -968,16 +968,6 @@ test_path_api_calls(void) */ n_starting_paths = 42; - /* Check that initialization is correct */ - TESTING(" initialize"); - - if (H5PLsize(&n_paths) < 0) - TEST_ERROR; - if (n_paths != 2) - TEST_ERROR; - - PASSED(); - /****************/ /* H5PLremove() */ /****************/ diff --git a/test/test_abort_fail.sh.in b/test/test_abort_fail.sh.in new file mode 100644 index 0000000..a866f9e --- /dev/null +++ b/test/test_abort_fail.sh.in @@ -0,0 +1,66 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Test to verify that the assertion/abort failure is fixed when the application +# does not close the file. (See HDFFV-10160) +# +# Test to verify that the infinite loop closing library/abort failure is fixed +# when the application creates and removes dense attributes (See HDFFV-10659) + +srcdir=@srcdir@ + +nerrors=0 + +############################################################################## +############################################################################## +### T H E T E S T S ### +############################################################################## +############################################################################## +# +# +echo "Testing file not closed assertion/abort failure" +TEST_NAME=filenotclosed # The test name +TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary +# +# Run the test +$RUNSERIAL $TEST_BIN >/dev/null 2>&1 +exitcode=$? +if [ $exitcode -eq 0 ]; then + echo "Test PASSED" +else + echo "Test FAILED" + nerrors="`expr $nerrors + 1`" +fi +# +# +echo "Testing infinite loop closing library/abort failure" +TEST_NAME=del_many_dense_attrs # The test name +TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary +# Run the test +$RUNSERIAL $TEST_BIN >/dev/null 2>&1 +exitcode=$? +if [ $exitcode -eq 0 ]; then + echo "Test PASSED" +else + echo "Test FAILED" + nerrors="`expr $nerrors + 1`" +fi +# +# +if test $nerrors -eq 0 ; then + echo "All tests for abort failure passed." + exit 0 +else + echo "Tests for abort failure failed with $nerrors errors." + exit 1 +fi diff --git a/test/test_check_version.sh.in b/test/test_check_version.sh.in new file mode 100644 index 0000000..273702e --- /dev/null +++ b/test/test_check_version.sh.in @@ -0,0 +1,261 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. + +# +# Tests for the H5check_version function. +# +# Programmer: Albert Cheng +# Sep 28, 2009 + +srcdir=@srcdir@ + +# Variables filled in by the configure process. +# Determine the configure options of the hdf5 library and executables. +Shared_Lib=@enable_shared@ +Static_Lib=@enable_static@ +Static_exec=@STATIC_EXEC@ +h5haveexitcode=yes # default is yes + +CMP='cmp -s' +DIFF='diff -c' +RM='rm -f' + +# Function definitions +# +# Show the purpose of this test script and a note about the abort messages. +PURPOSE() { + echo "Tests for the H5check_version function." + echo "Note that abort messages may appear due to the expected termination" + echo "of the program when it is tested with mis-matched version numbers." +} + +# Print a line-line message left justified in a field of 70 characters. +# +LINEMSG() { + SPACES=" " + echo "$* $SPACES" | cut -c1-70 | tr -d '\012' +} + + +# Print a "SKIP" message +SKIP() { + LINEMSG $* + echo " -SKIP-" +} + + +# Print warning message of version mismatch. +WarnMesg(){ + echo "Warning! ***HDF5 library version mismatched error***" + echo "The HDF5 header files used to compile this application do not match" + echo "the version used by the HDF5 library to which this application is linked." + echo "Data corruption or segmentation faults may occur if the application continues." + echo "This can happen when an application was compiled by one version of HDF5 but" + echo "linked with a different version of static or shared HDF5 library." + echo "You should recompile the application or check your shared library related" + echo "settings such as 'LD_LIBRARY_PATH'." + echo "You can, at your own risk, disable this warning by setting the environment" + echo "variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'." + echo "Setting it to 2 or higher will suppress the warning messages totally." + echo "Headers are $xxh5versmajor.$xxh5versminor.$xxh5versrelease, library is $h5versmajor.$h5versminor.$h5versrelease" + test -n "$H5_HAVE_EMBEDDED_LIBINFO" && cat $h5libsettings + echo "Bye..." +} + + +# Print warning message2 of version mismatch. +WarnMesg2(){ + echo "Warning! ***HDF5 library version mismatched error***" + echo "The HDF5 header files used to compile this application do not match" + echo "the version used by the HDF5 library to which this application is linked." + echo "Data corruption or segmentation faults may occur if the application continues." + echo "This can happen when an application was compiled by one version of HDF5 but" + echo "linked with a different version of static or shared HDF5 library." + echo "You should recompile the application or check your shared library related" + echo "settings such as 'LD_LIBRARY_PATH'." + echo "'HDF5_DISABLE_VERSION_CHECK' environment variable is set to 1, application will" + echo "continue at your own risk." + echo "Headers are $xxh5versmajor.$xxh5versminor.$xxh5versrelease, library is $h5versmajor.$h5versminor.$h5versrelease" + test -n "$H5_HAVE_EMBEDDED_LIBINFO" && cat $h5libsettings +} + + +# Run a test and print PASS or *FAIL*. If a test fails then increment +# the `nerrors' global variable and (if $verbose is set) display the +# difference between the actual output and the expected output. The +# expected output generated according to the parameter values and compared +# against actual output. +# The expected and actual output files are removed unless $HDF5_NOCLEANUP +# has a non-zero value. +# $1: the set value of $HDF5_DISABLE_VERSION_CHECK. (unset means not to set +# it at all. +# $2: Change the version number(s) to cause a mismatch. (none means no +# mismatch). +# +# Expected results: +# Value of $HDF5_DISABLE_VERSION_CHECK +# unset "" -1 0 1 2 3 +# Matched OK OK OK OK OK OK OK +# Mismatched W/A W/A W/A W/A W2/OK OK W2/OK +# Result codes: +# OK: No warning, exit 0. +# W/A: Warning, abort and exit non-0. +# W2/OK: Different Warning, exit 0. +# +# Implemented only exit code matching. Still need to match output. +TESTING() { + DEBUGPRINT command is $0 $* + TEST_NAME=tcheck_version # The test name + TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary + + expect=${TEST_NAME}_expect.out + actual=${TEST_NAME}_actual.out + actual_err=${TEST_NAME}_actual.err + arguments= + + h5DisableVersion="$1" + wrongversionnumbers="$2" + xxh5versmajor=$h5versmajor + xxh5versminor=$h5versminor + xxh5versrelease=$h5versrelease + + if [ "$h5DisableVersion" = unset ]; then + envcmd="" # noop + else + envcmd="env HDF5_DISABLE_VERSION_CHECK=$h5DisableVersion" + fi + + if [ "$wrongversionnumbers" = none ]; then + # OK: No warning, exit 0 + cp /dev/null $expect + expect_code=0 + else + arguments=-t"$wrongversionnumbers" + # calculate mismatched version numbers by listing. + case $wrongversionnumbers in + "M") xxh5versmajor=`expr $h5versmajor + 1` + ;; + "m") xxh5versminor=`expr $h5versminor + 1` + ;; + "r") xxh5versrelease=`expr $h5versrelease + 1` + ;; + esac + case "$h5DisableVersion" in + 1) + # W2/OK: Different Warning, exit 0. + WarnMesg2 > $expect + expect_code=0 + ;; + [2-9]|[1-9][0-9]*) + # OK: No warning, exit 0 + cp /dev/null $expect + expect_code=0 + ;; + *) # W/A: Warning, abort and exit non-0. + WarnMesg > $expect + expect_code=6 # Signal Abort exit code (128+6) + ;; + esac + fi + + # Run test. + LINEMSG $envcmd $TEST_NAME $arguments + ( + $envcmd $RUNSERIAL $TEST_BIN $arguments + ) >$actual 2>$actual_err + ret_code=$? + cat $actual_err >> $actual + + if [ $h5haveexitcode = 'yes' -a \( $expect_code -ne $ret_code \) ]; then + echo "*FAILED*" + echo " Expected exit code ($expect_code) differs from actual code ($ret_code)" + nerrors="`expr $nerrors + 1`" + elif $CMP $expect $actual; then + echo " PASSED" + else + echo "*FAILED*" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /' + fi + + # Clean up output file. + # Also clean the core file generated by H5check_version's abort. + if test -z "$HDF5_NOCLEANUP"; then + $RM $expect $actual $actual_err + $RM core + fi +} + + +# Echo parameters for debugging if verbose mode is on. +DEBUGPRINT() { + if [ -n "$debugmode" ]; then + echo $* + fi +} + + +# MAIN Body +nerrors=0 +verbose=yes # default on +debugmode= # default off +H5_HAVE_EMBEDDED_LIBINFO=`grep '#define H5_HAVE_EMBEDDED_LIBINFO ' ../src/H5pubconf.h` +h5libsettings=../src/libhdf5.settings + +PURPOSE + +# Figure out library version numbers from the header file. +h5versmajor=`grep '#define H5_VERS_MAJOR' $srcdir/../src/H5public.h | awk '{print $3}'` +h5versminor=`grep '#define H5_VERS_MINOR' $srcdir/../src/H5public.h | awk '{print $3}'` +h5versrelease=`grep '#define H5_VERS_RELEASE' $srcdir/../src/H5public.h | awk '{print $3}'` +DEBUGPRINT $h5versmajor.$h5versminor.$h5versrelease +case "$h5versmajor$h5versminor$h5versrelease" in + [0-9]*) # good. noop. + ;; + *) + echo "Illegal library version numbers($h5versmajor.$h5versminor.$h5versrelease)" + echo "Test aborted" + exit 1 + ;; +esac + +# RUNSERIAL is used. Check if it can return exit code from executalbe correctly. +if [ -n "$RUNSERIAL_NOEXITCODE" ]; then + echo "***Warning*** Serial Exit Code is not passed back to shell correctly." + echo "***Warning*** Exit code checking is skipped." + h5haveexitcode=no +fi + +# Three Categories of tests: +# Normal: where the version numbers all matched (wrong_version == none). +# Mismatched version numbers (could be Major or minor version +# or release numbers or a combination of all three.) +# Test all the above with different values of the environment variable, +# HDF5_DISABLE_VERSION_CHECK, as unset, "", -1, 0, 1, 2, 3 + +for val_disable_version_check in unset "" -1 0 1 2 3; do + for wrong_version in none M m; do + TESTING "$val_disable_version_check" "$wrong_version" + done +done + + +# Check and report results. +if [ $nerrors -gt 0 ]; then + echo "***$nerrors errors encountered***" + exit 1 +else + echo "No error encountered" + exit 0 +fi diff --git a/test/test_error.sh.in b/test/test_error.sh.in new file mode 100644 index 0000000..4fb2a81 --- /dev/null +++ b/test/test_error.sh.in @@ -0,0 +1,126 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Tests for test_error and err_compat + +srcdir=@srcdir@ + +# Determine backward compatibility options eneabled +DEPRECATED_SYMBOLS="@DEPRECATED_SYMBOLS@" + +CMP='cmp -s' +DIFF='diff -c' + +# Skip plugin module to test missing filter +# Also reset the VOL connector to only use the native connector, because of the +# error stack checking. QAK - 2019/03/09 +ENVCMD="env HDF5_PLUGIN_PRELOAD=:: HDF5_VOL_CONNECTOR=native" + +nerrors=0 +verbose=yes + +test -d ./testfiles || mkdir ./testfiles + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# Run a test and print PASS or *FAIL*. If a test fails then increment +# the `nerrors' global variable and (if $verbose is set) display the +# difference between the actual output and the expected output. The +# expected output is given as the first argument to this function and +# the actual output file is calculated by replacing the `.ddl' with +# `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a +# non-zero value. +# +TEST() { + TEST_ERR=$1 # The test name + TEST_ERR_BIN=`pwd`/$TEST_ERR # The path of the test binary + + expect1="$srcdir/testfiles/$1_1" + expect2="$srcdir/testfiles/$1_2" + actual="./`basename $1`.out" + actual_err="./`basename $1`.err" + actual_ext="./`basename $1`.ext" + shift + + # Run test. + TESTING $TEST_ERR + ( + # Skip the plugin for testing missing filter. + $ENVCMD $RUNSERIAL $TEST_ERR_BIN + ) >$actual 2>$actual_err + + # Check for core dump + if [ $? != 0 ]; then + nerrors=`expr $nerrors + 1` + fi + + # Extract file name, line number, version and thread IDs because they may be different + sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ + -e 's/line [0-9]*/line (number)/' \ + -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ + -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ + -e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \ + -e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \ + $actual_err > $actual_ext + cat $actual_ext >> $actual + + if $CMP $expect1 $actual; then + echo " PASSED" + elif $CMP $expect2 $actual; then + echo " PASSED" + else + echo "*FAILED*" + echo " Expected result differs from actual result" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF $expect1 $actual |sed 's/^/ /' + fi + + # Clean up output file + if test -z "$HDF5_NOCLEANUP"; then + rm -f $actual $actual_err $actual_ext + fi +} + +# Print a "SKIP" message +SKIP() { + TESTING $@ + echo " -SKIP-" +} + +############################################################################## +############################################################################## +### T H E T E S T S ### +############################################################################## +############################################################################## + +# test for err_compat +if test $DEPRECATED_SYMBOLS != "yes"; then +SKIP err_compat +else +TEST err_compat +fi + +# test for error_test. Skip the plugin for testing missing filter. +TEST error_test + +if test $nerrors -eq 0 ; then + echo "All Error API tests passed." +fi + +exit $nerrors diff --git a/test/test_external_env.sh.in b/test/test_external_env.sh.in new file mode 100644 index 0000000..94fbb88 --- /dev/null +++ b/test/test_external_env.sh.in @@ -0,0 +1,42 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Test for external file with environment variable: HDF5_EXTFILE_PREFIX + +srcdir=@srcdir@ + +nerrors=0 + +############################################################################## +############################################################################## +### T H E T E S T S ### +############################################################################## +############################################################################## + +# test for external file with HDF5_EXTFILE_PREFIX +echo "Testing external file with HDF5_EXTFILE_PREFIX" +TEST_NAME=external_env # The test name +TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary +ENVCMD="env HDF5_EXTFILE_PREFIX=\${ORIGIN}" # The environment variable & value +# +# Run the test +# echo "$ENVCMD $RUNSERIAL $TEST_BIN" +$ENVCMD $RUNSERIAL $TEST_BIN +exitcode=$? +if [ $exitcode -eq 0 ]; then + echo "Test prefix for HDF5_EXTFILE_PREFIX PASSED" +else + nerrors="`expr $nerrors + 1`" + echo "***Error encountered for HDF5_EXTFILE_PREFIX test***" +fi +exit $nerrors diff --git a/test/test_filter_plugin.sh.in b/test/test_filter_plugin.sh.in deleted file mode 100644 index 78cdb3a..0000000 --- a/test/test_filter_plugin.sh.in +++ /dev/null @@ -1,113 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -srcdir=@srcdir@ -TOP_BUILDDIR=@top_builddir@ - -# Determine if backward compatibility options enabled -DEPRECATED_SYMBOLS="@DEPRECATED_SYMBOLS@" - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -nerrors=0 -verbose=yes -exit_code=$EXIT_SUCCESS - -TEST_NAME=filter_plugin -TEST_BIN=`pwd`/$TEST_NAME -FROM_DIR=`pwd`/.libs -case $(uname) in - CYGWIN* ) - PLUGINS_FOR_DIR1="$FROM_DIR/cygfilter_plugin1* $FROM_DIR/cygfilter_plugin3*" - PLUGINS_FOR_DIR2="$FROM_DIR/cygfilter_plugin2* $FROM_DIR/cygfilter_plugin4*" - ;; - *) - PLUGINS_FOR_DIR1="$FROM_DIR/libfilter_plugin1* $FROM_DIR/libfilter_plugin3*" - PLUGINS_FOR_DIR2="$FROM_DIR/libfilter_plugin2* $FROM_DIR/libfilter_plugin4*" - ;; -esac -PLUGIN_DIR1=filter_plugin_dir1 -PLUGIN_DIR2=filter_plugin_dir2 -CP="cp -p" # Use -p to preserve mode,ownership,timestamps -RM="rm -rf" - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Main Body -# Create test directories if necessary. -test -d $PLUGIN_DIR1 || mkdir -p $PLUGIN_DIR1 -if [ $? != 0 ]; then - echo "Failed to create filter plugin test directory ($PLUGIN_DIR1)" - exit $EXIT_FAILURE -fi - -test -d $PLUGIN_DIR2 || mkdir -p $PLUGIN_DIR2 -if [ $? != 0 ]; then - echo "Failed to create filter plugin test directory ($PLUGIN_DIR2)" - exit $EXIT_FAILURE -fi - -# Copy plugins for the tests. -$CP $PLUGINS_FOR_DIR1 $PLUGIN_DIR1 -if [ $? != 0 ]; then - echo "Failed to copy filter plugins ($PLUGINS_FOR_DIR1) to test directory." - exit $EXIT_FAILURE -fi - -$CP $PLUGINS_FOR_DIR2 $PLUGIN_DIR2 -if [ $? != 0 ]; then - echo "Failed to copy filter plugins ($PLUGINS_FOR_DIR2) to test directory." - exit $EXIT_FAILURE -fi - -# setup plugin path -ENVCMD="env HDF5_PLUGIN_PATH=${PLUGIN_DIR1}:${PLUGIN_DIR2}" - -# Run the test -$ENVCMD $TEST_BIN -if [ $? != 0 ]; then - nerrors=`expr $nerrors + 1` -fi - -############################################ -# HDFFV-9655 test for relative path disabled -# setup filter plugin path relative to test -# actual executable is in the .libs folder -#ENVCMD="env HDF5_PLUGIN_PATH=@/../${PLUGIN_DIR1}:@/../${PLUGIN_DIR2}" -# -# Run the test -#$ENVCMD $TEST_BIN -#if [ $? != 0 ]; then -# nerrors=`expr $nerrors + 1` -#fi -############################################# - -# print results -if test $nerrors -ne 0 ; then - echo "$nerrors errors encountered" - exit_code=$EXIT_FAILURE -else - echo "All filter plugin tests passed." - exit_code=$EXIT_SUCCESS -fi - -# Clean up temporary files/directories and leave -$RM $PLUGIN_DIR1 $PLUGIN_DIR2 - -exit $exit_code diff --git a/test/test_flush_refresh.sh.in b/test/test_flush_refresh.sh.in new file mode 100644 index 0000000..209d370 --- /dev/null +++ b/test/test_flush_refresh.sh.in @@ -0,0 +1,238 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# +# Test script for the flush/evict single objects feature. +# +# This test file doesn't actually perform any tests, rather, it acts +# as a process manager for the 'flushrefresh' test file, which is where +# the tests are actually housed. The reason this script exists is because +# the verification of this feature needs to occur in separate processes +# from the one in which the file is being manipulated in. (i.e., we have +# a single writer process, and various reader processes spawning off +# and doing the verification that individual objects are being +# correctly flushed). +# +# Programmer: +# Mike McGreevy +# Tuesday, July 20, 2010 + +############################################################################### +## test variables +############################################################################### + +# Number of errors encountered during test run. +nerrors=0 + +# Set up a function to check the current time since the epoch - ideally, we'd +# like to use Perl. If it wasn't detected by configure, then use date, though +# this is less portable and might cause problems on machines that don't +# recognize the +%s option (like Solaris). +# +# Note that PERL will resolve to true or false, not a path. +PERL=@PERL@ +if test -n "$PERL"; then + TimeStamp() + { + time=`perl -e 'print int(time)'` + echo "$time" + } +else + TimeStamp() + { + time=`date +%s` + echo "$time" + } +fi + +############################################################################### +## Main +############################################################################### +srcdir=@srcdir@ +utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ +testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ + +# Check to see if the VFD specified by the HDF5_DRIVER environment variable +# supports SWMR. +$utils_testdir/swmr_check_compat_vfd +rc=$? +if [ $rc -ne 0 ] ; then + echo + echo "The VFD specified by the HDF5_DRIVER environment variable" + echo "does not support SWMR." + echo + echo "flush/refresh tests skipped" + echo + exit 0 +fi + +# HDF5 has several tests that create and delete signal files to communicate +# between processes, and it seems that even though the names of the files are +# different, occasionally the wrong file is deleted, interrupting the flow of +# the test. Running each of these tests in its own directory should eliminate +# the problem. +mkdir -p flushrefresh_test +cp $testdir/flushrefresh flushrefresh_test + +# With the --disable-shared option, flushrefresh is built in the test directory, +# otherwise it is in test/.libs with a wrapper script named flushrefresh in +# the test directory. test/flushrefresh should always be copied, +# .libs/flushrefresh should be copied only if it exists. +if [ -f .libs/flushrefresh ]; then + mkdir -p flushrefresh_test/.libs + for FILE in .libs/flushrefresh*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE flushrefresh_test/.libs + fi + done +fi +cd flushrefresh_test + +# ================================================= +# Set up/initialize some variables to be used later +# ================================================= +testfile=flushrefresh.h5 +startsignal=flushrefresh_VERIFICATION_START +endsignal=flushrefresh_VERIFICATION_DONE +timeout_length=300 +timedout=0 +verification_done=0 +if [ -e $testfile ]; then + rm $testfile +fi + +# ======================== +# Launch the Test Program. +# ======================== +$testdir/flushrefresh & +pid_main=$! + +# ======================================= +# Run flush verification on test program. +# ======================================= + +until [ $verification_done -eq 1 ]; do + + # Wait for signal from test program that verification routine can run. + before=`TimeStamp` + until [ -s $startsignal ]; do + after=`TimeStamp` + timediff=`expr $after - $before` + if [ $timediff -gt $timeout_length ]; then + nerrors=`expr $nerrors + 1` + timedout=1 + break + fi + done + + # Check to see if we timed out looking for the signal before continuing. + if [ $timedout -gt 0 ]; then + echo "timed out waiting for signal from test program (flush)." + break + fi + + # Read in test routine parameters from signal file, then delete signal file. + param1=`head -1 $startsignal` + param2=`tail -1 $startsignal` + rm $startsignal + + # Check if we're done with verifications, otherwise run the specified verification. + if [ "$param1" = "VERIFICATION_DONE" ]; then + verification_done=1 + echo "all flush verification complete" > $endsignal + else + $testdir/flushrefresh $param1 $param2 + + # Check for core dump + if [ $? -gt 0 ]; then + nerrors=`expr $nerrors + 1` + fi + + echo "verification flush process done" > $endsignal + fi + +done + +# ========================================= +# Run refresh verification on test program. +# ========================================= +if [ $timedout -eq 0 ]; then + until [ $verification_done -eq 2 ]; do + + # Wait for signal from test program that verification routine can run. + before=`TimeStamp` + until [ -s $startsignal ]; do + after=`TimeStamp` + timediff=`expr $after - $before` + if [ $timediff -gt $timeout_length ]; then + nerrors=`expr $nerrors + 1` + timedout=1 + break + fi + done + + # Check to see if we timed out looking for the signal before continuing. + if [ $timedout -gt 0 ]; then + echo "timed out waiting for signal from test program (refresh)." + break + fi + + # Read in test routine parameter from signal file, then delete signal file. + param1=`head -n 1 $startsignal` + rm $startsignal + + # Check if we're done with verifications, otherwise run the specified verification. + if [ "$param1" = "VERIFICATION_DONE" ]; then + verification_done=2 + echo "all refresh verification complete" > $endsignal + else + $testdir/flushrefresh $param1 + + # Check for core dump + if [ $? -gt 0 ]; then + nerrors=`expr $nerrors + 1` + fi + + echo "refresh verifiction process done" > $endsignal + fi + + done +fi + +# ============================================ +# Wait for main to finish up, and end testing. +# ============================================ +wait $pid_main +if test $? -ne 0; then + echo flushrefresh had error + nerrors=`expr $nerrors + 1` +fi + +############################################################################### +## Report and exit +############################################################################### + +if test $nerrors -eq 0 ; then + echo "flush/refresh objects tests passed." + if test -z "$HDF5_NOCLEANUP"; then + # delete the test directory + rm -rf flushrefresh_test + fi + exit 0 +else + echo "flush/refresh objects tests failed with $nerrors errors." + exit 1 +fi diff --git a/test/test_libinfo.sh.in b/test/test_libinfo.sh.in new file mode 100644 index 0000000..d9fee48 --- /dev/null +++ b/test/test_libinfo.sh.in @@ -0,0 +1,120 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. + + +# +# Tests for the embedded library information feature. +# Part 1: +# Verify the HDF5 library does contains an exact copy of the content of the +# libhdf5.settings file. +# Part 2: +# If executable is linked with the static hdf5 library (how to determine?), +# verify an executable indeed contains an exact copy of the content of the +# libhdf5.settings file. +# +# Programmer: Albert Cheng +# Sep 18, 2009 + +srcdir=@srcdir@ + +# Determine the configure options of the hdf5 library and executables. + +Shared_Lib=@enable_shared@ +Static_Lib=@enable_static@ +Static_exec=@STATIC_EXEC@ + + +# Print a line-line message left justified in a field of 70 characters. +# +LINEMSG() { + SPACES=" " + echo "Check file $* $SPACES" | cut -c1-70 | tr -d '\012' +} + + +# Print a "SKIP" message +SKIP() { + LINEMSG $* + echo " -SKIP-" +} + +# Function definitions +CHECK_LIBINFO(){ + LINEMSG $1 + # Some systems, like Mac, the strings command inspects library files. Older + # versions of strings may not know newer library format, resulting in + # command errors. Make it read the file as stdin to avoid the problem. + if strings < $1 | grep "SUMMARY OF THE HDF5 CONFIGURATION" > /dev/null; then + echo " PASSED" + else + echo " FAILED" + nerrors=`expr $nerrors + 1` + fi +} + + +# MAIN Body +nerrors=0 +H5_HAVE_EMBEDDED_LIBINFO=`grep '#define H5_HAVE_EMBEDDED_LIBINFO ' ../src/H5pubconf.h` + +# Skip the rest if embedded-libinfo is not enabled. +if [ -z "$H5_HAVE_EMBEDDED_LIBINFO" ]; then + echo "embedded-libinfo is not enabled. Test skipped." + exit 0 +fi + +# The location of HDF library file(s) depends on whether shared lib is +# built too. +if [ -n $Shared_Lib ]; then + h5libdir=../src/.libs + shlib=$(grep dlname ../src/libhdf5.la | sed -e "s/dlname='//" -e "s/'//") +else + h5libdir=../src +fi + +h5libsettings=../src/libhdf5.settings + +# Part 1: +# Verify the HDF5 library does contains an exact copy of the content of the +# libhdf5.settings file. +# Check dynamic library file if built. +if [ x-$Shared_Lib = x-yes ]; then + CHECK_LIBINFO ${h5libdir}/${shlib} +else + SKIP shlib +fi + +# Though rare, libhdf5.a may not have been built. +if [ x-$Static_Lib = x-yes ]; then + CHECK_LIBINFO ${h5libdir}/libhdf5.a +else + SKIP ${h5libdir}/libhdf5.a +fi + +# Check if executables has the lib information only if shared lib is not +# built or static-exec is used. (Don't care static-exec since it affects +# tools binary only.) +if [ x-$Shared_Lib != x-yes ]; then + CHECK_LIBINFO testhdf5 +else + SKIP testhdf5 +fi + + +if [ $nerrors -gt 0 ]; then + echo "***$nerrors errors encountered***" + exit 1 +else + echo "No error encountered" + exit 0 +fi diff --git a/test/test_links_env.sh.in b/test/test_links_env.sh.in new file mode 100644 index 0000000..09074c3 --- /dev/null +++ b/test/test_links_env.sh.in @@ -0,0 +1,42 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Test for external link with environment variable: HDF5_EXT_PREFIX + +srcdir=@srcdir@ + +nerrors=0 + +############################################################################## +############################################################################## +### T H E T E S T S ### +############################################################################## +############################################################################## + +# test for external links with HDF5_EXT_PREFIX +echo "Testing external link with HDF5_EXT_PREFIX" +TEST_NAME=links_env # The test name +TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary +ENVCMD="env HDF5_EXT_PREFIX=.:tmp_links_env" # The environment variable & value +# +# Run the test +echo "$ENVCMD $RUNSERIAL $TEST_BIN" +$ENVCMD $RUNSERIAL $TEST_BIN +exitcode=$? +if [ $exitcode -eq 0 ]; then + echo "Test for HDF5_EXT_PREFIX PASSED" +else + nerrors="`expr $nerrors + 1`" + echo "***Error encountered for HDF5_EXT_PREFIX test***" +fi +exit $nerrors diff --git a/test/test_plugin.sh.in b/test/test_plugin.sh.in new file mode 100644 index 0000000..d958b4b --- /dev/null +++ b/test/test_plugin.sh.in @@ -0,0 +1,140 @@ +#!/usr/bin/env bash +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# This shell script is for testing filter, VFD, and VOL plugins. +# +srcdir=@srcdir@ +TOP_BUILDDIR=@top_builddir@ + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +CP="cp -p" # Use -p to preserve mode,ownership, timestamps +RM="rm -rf" + +nerrors=0 +verbose=yes +exit_code=$EXIT_SUCCESS + +# Test binary names +FILTER_TEST_NAME=filter_plugin +FILTER_TEST_BIN=`pwd`/$FILTER_TEST_NAME + +VFD_TEST_NAME=vfd_plugin +VFD_TEST_BIN=`pwd`/$VFD_TEST_NAME + +VOL_TEST_NAME=vol_plugin +VOL_TEST_BIN=`pwd`/$VOL_TEST_NAME + +# Paths to actual plugins ("libraries" in test directory are just stubs) +FROM_DIR=`pwd`/.libs +case $(uname) in + CYGWIN* ) + NULL_VFD_PLUGIN="$FROM_DIR/cygnull_vfd_plugin*" + NULL_VOL_PLUGIN="$FROM_DIR/cygnull_vol_connector*" + PLUGINS_FOR_DIR1="$FROM_DIR/cygfilter_plugin1* $FROM_DIR/cygfilter_plugin3*" + PLUGINS_FOR_DIR2="$FROM_DIR/cygfilter_plugin2* $FROM_DIR/cygfilter_plugin4*" + ;; + *) + NULL_VFD_PLUGIN="$FROM_DIR/libnull_vfd_plugin*" + NULL_VOL_PLUGIN="$FROM_DIR/libnull_vol_connector*" + PLUGINS_FOR_DIR1="$FROM_DIR/libfilter_plugin1* $FROM_DIR/libfilter_plugin3*" + PLUGINS_FOR_DIR2="$FROM_DIR/libfilter_plugin2* $FROM_DIR/libfilter_plugin4*" + ;; +esac + +# Directories where we'll copy plugins +TEMP_PLUGIN_DIR=temp_plugins +TEMP_FILTER_DIR1=temp_filter_plugin_dir1 +TEMP_FILTER_DIR2=temp_filter_plugin_dir2 + +# Function to print a line-line message left justified in a field of +# 70 characters beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +############# +# Main Body # +############# + +# Create plugin directories +test -d $TEMP_PLUGIN_DIR || mkdir -p $TEMP_PLUGIN_DIR +if [ $? != 0 ]; then + echo "Failed to create plugin test directory ($TEMP_PLUGIN_DIR)" + exit $EXIT_FAILURE +fi +test -d $TEMP_FILTER_DIR1 || mkdir -p $TEMP_FILTER_DIR1 +if [ $? != 0 ]; then + echo "Failed to create filter plugin test directory ($TEMP_FILTER_DIR1)" + exit $EXIT_FAILURE +fi +test -d $TEMP_FILTER_DIR2 || mkdir -p $TEMP_FILTER_DIR2 +if [ $? != 0 ]; then + echo "Failed to create filter plugin test directory ($TEMP_FILTER_DIR2)" + exit $EXIT_FAILURE +fi + +# Copy plugins for the tests +$CP $NULL_VFD_PLUGIN $TEMP_PLUGIN_DIR +if [ $? != 0 ]; then + echo "Failed to copy NULL VFD plugin ($NULL_VFD_PLUGIN) to test directory." + exit $EXIT_FAILURE +fi +$CP $NULL_VOL_PLUGIN $TEMP_PLUGIN_DIR +if [ $? != 0 ]; then + echo "Failed to copy NULL VOL plugin ($NULL_VOL_PLUGIN) to test directory." + exit $EXIT_FAILURE +fi +$CP $PLUGINS_FOR_DIR1 $TEMP_FILTER_DIR1 +if [ $? != 0 ]; then + echo "Failed to copy filter plugins ($PLUGINS_FOR_DIR1) to test directory." + exit $EXIT_FAILURE +fi +$CP $PLUGINS_FOR_DIR2 $TEMP_FILTER_DIR2 +if [ $? != 0 ]; then + echo "Failed to copy filter plugins ($PLUGINS_FOR_DIR2) to test directory." + exit $EXIT_FAILURE +fi + +# Set plugin path +ENVCMD="env HDF5_PLUGIN_PATH=${TEMP_PLUGIN_DIR}:${TEMP_FILTER_DIR1}:${TEMP_FILTER_DIR2}" + +# Run the tests +$ENVCMD $FILTER_TEST_BIN +if [ $? != 0 ]; then + nerrors=`expr $nerrors + 1` +fi +$ENVCMD $VFD_TEST_BIN +if [ $? != 0 ]; then + nerrors=`expr $nerrors + 1` +fi +$ENVCMD $VOL_TEST_BIN +if [ $? != 0 ]; then + nerrors=`expr $nerrors + 1` +fi + +# Print results +if test $nerrors -ne 0 ; then + echo "$nerrors errors encountered" + exit_code=$EXIT_FAILURE +else + echo "All plugin tests passed." + exit_code=$EXIT_SUCCESS +fi + +# Clean up temporary files/directories and leave +$RM $TEMP_PLUGIN_DIR $TEMP_FILTER_DIR1 $TEMP_FILTER_DIR2 + +exit $exit_code diff --git a/test/test_swmr.pwsh.in b/test/test_swmr.pwsh.in new file mode 100644 index 0000000..de7a57a --- /dev/null +++ b/test/test_swmr.pwsh.in @@ -0,0 +1,519 @@ +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Tests for the swmr feature. + +$srcdir = '@srcdir@' +$utils_testdir=@H5_UTILS_TEST_BUILDDIR@ +$testdir=@H5_TEST_BUILDDIR@ + +############################################################################### +## test parameters +############################################################################### + +$Nreaders = 5 # number of readers to launch +$Nrdrs_spa = 3 # number of sparse readers to launch +$Nrecords = 200000 # number of records to write +$Nrecs_rem = 40000 # number of times to shrink +$Nrecs_spa = 20000 # number of records to write in the sparse test +$Nsecs_add = 5 # number of seconds per read interval +$Nsecs_rem = 3 # number of seconds per read interval +$Nsecs_addrem = 8 # number of seconds per read interval +$nerrors = 0 + +############################################################################### +## definitions for message file to coordinate test runs +############################################################################### +$WRITER_MESSAGE = 'SWMR_WRITER_MESSAGE' # The message file created by writer that the open is complete + # This should be the same as the define in "test/swmr_common.h" +$MESSAGE_TIMEOUT = 300 # Message timeout length in secs + # This should be the same as the define in "test/h5test.h" + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +function Test-WithSpaces { + $SPACES=' ' + #Write-Output "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# To wait for the writer message file or till the maximum # of seconds is reached +# $Message is the message file to wait for +# This performs similar function as the routine h5_wait_message() in test/h5test.c +function Wait-Message { + [CmdletBinding()] + param ( + [Parameter(Mandatory, ValueFromPipeline)] + [string]$TestPath, # Get the path of the message file to wait for + [Parameter(Mandatory, ValueFromPipeline)] + [string]$Message # Get the name of the message file to wait for + ) + + PROCESS { + $message = Join-Path -Path $TestPath -ChildPath $Message + $t0 = Get-Date # Get current time + $t1 = $t0 + $difft = New-Timespan -Start $t0 -End $t1 # Initialize the time difference + $mexist = 0 # Indicate whether the message file is found + while ($difft.TotalSeconds -lt $MESSAGE_TIMEOUT) { # Loop till message times out + $t1 = Get-Date # Get current time in seconds + $difft = New-Timespan -Start $t0 -End $t1 # Calculate the time difference + #Write-Output "Check for $message : time=$difft" + if ([System.IO.File]::Exists($message)) { # If message file is found: + $mexist = 1 # indicate the message file is found + Remove-Item $message # remove the message file + break # get out of the while loop + } + } + if ($mexist -eq 0) { + # Issue warning that the writer message file is not found, continue with launching the reader(s) + Write-Warning -Message "$WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds" + } + else { + Write-Output "$WRITER_MESSAGE is found" + } + } +} + +############################################################################### +## Main +## +## Modifications: +## Vailin Choi; July 2013 +## Add waiting of message file before launching the reader(s). +## Due to the implementation of file locking, coordination +## is needed in file opening for the writer/reader tests +## to proceed as expected. +## +############################################################################### + +# Check to see if the VFD specified by the HDF5_DRIVER environment variable +# supports SWMR. +$testprog = Join-Path -Path $utils_testdir -ChildPath swmr_check_compat_vfd.exe +$rp = Start-Process -FilePath $testprog -PassThru -Wait -NoNewWindow +if ($rp.ExitCode -ne 0) { + Write-Output "" + Write-Output "The VFD specified by the HDF5_DRIVER environment variable" + Write-Output "does not support SWMR." + Write-Output "" + Write-Output "SWMR acceptance tests skipped" + Write-Output "" + exit 0 +} + +Set-Location -Path swmr_test +$testdir = Join-Path -Path $testdir -ChildPath swmr_test + +# Loop over index types +$IndexTypeLoop = '-i ea', '-i b2' +foreach ($index_type in $IndexTypeLoop) { + # Try with and without compression + $CompressLoop = '', '-c 5' + foreach ($compress in $CompressLoop) { + Write-Output "" + Write-Output "*******************************************************************************" + Write-Output "** Loop testing parameters: $index_type $compress" + Write-Output "*******************************************************************************" + Write-Output "" + Write-Output "" + Write-Output "###############################################################################" + Write-Output "## Generator test" + Write-Output "###############################################################################" + # Launch the Generator without SWMR_WRITE + Write-Output "launch the swmr_generator" + $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -ArgumentList "$compress $index_type" -PassThru -Wait + if ($rp.ExitCode -ne 0) { + Write-Warning "generator had error" + $nerrors += 1 + } + + # Launch the Generator with SWMR_WRITE + Write-Output "launch the swmr_generator with SWMR_WRITE" + $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -ArgumentList "-s $compress $index_type" -PassThru -Wait + if ($rp.ExitCode -ne 0) { + Write-Warning "generator had error" + $nerrors += 1 + } + + # Check for error and exit if one occurred + #Write-Output "nerrors=$nerrors" + if ($nerrors -ne 0) { + Write-Warning "SWMR tests failed with $nerrors errors." + exit 1 + } + + Write-Output "" + Write-Output "###############################################################################" + Write-Output "## Use H5Fstart_swmr_write() to enable SWMR writing mode" + Write-Output "###############################################################################" + + # Remove any possible writer message file before launching writer + if ([System.IO.File]::Exists($WRITER_MESSAGE)) { # If message file is found + Remove-Item $WRITER_MESSAGE + } + # + # Launch the Writer + Write-Output "launch the swmr_start_writer" + $seed = "" # Put -r command here + $rp = Start-Process -FilePath $testdir/swmr_start_write.exe -NoNewWindow -PassThru -ArgumentList "$compress $index_type $Nrecords $seed" 2>&1 |tee swmr_writer.out + $pid_writer = $rp.id + #Write-Output "pid_writer=$pid_writer" + + # Wait for message from writer process before starting reader(s) + Wait-Message $testdir $WRITER_MESSAGE + + # + # Launch the Readers + #declare -a seeds = ( ... ) + Write-Output "launch $Nreaders swmr_readers" + $pid_readers = @() + $n = 0 + while ($n -lt $Nreaders) { + #seed = "-r ${seeds[$n]}" + $seed = "" + $rp = Start-Process -FilePath $testdir/swmr_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_add $seed" 2>&1 | tee swmr_reader.out.$n + $pid_readers += $rp.id + $n += 1 + } + #Write-Output "pid_readers=$pid_readers" + + # Collect exit code of the readers first because they usually finish + # before the writer. + foreach ($xpid in $pid_readers) { + #Write-Output "checked reader $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "reader had error" + $nerrors += 1 + } + } + + # Collect exit code of the writer + #Write-Output "checked writer $pid_writer" + $result = Wait-Process -Id $pid_writer + if ($result.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } + + # Check for error and exit if one occurred + #Write-Output "nerrors=$nerrors" + if ($nerrors -ne 0) { + Write-Warning "SWMR tests failed with $nerrors errors." + Write-Warning "(Writer and reader output preserved)" + exit 1 + } + + # Clean up output files + Remove-Item swmr_writer.out + Remove-Item swmr_reader.out.* + + Write-Output "" + Write-Output "###############################################################################" + Write-Output "## Writer test - test expanding the dataset" + Write-Output "###############################################################################" + + # Launch the Generator + Write-Output "launch the swmr_generator" + $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -PassThru -Wait -ArgumentList "-s $compress $index_type" + if ($rp.ExitCode -ne 0) { + Write-Warning "generator had error" + $nerrors += 1 + } + + # Remove any possible writer message file before launching writer + Remove-Item $WRITER_MESSAGE + # + # Launch the Writer + Write-Output "launch the swmr_writer" + $seed = "" # Put -r command here + $rp = Start-Process -FilePath $testdir/swmr_writer.exe -NoNewWindow -PassThru -ArgumentList "-o $Nrecords $seed" 2>&1 |tee swmr_writer.out + $pid_writer = $rp.id + #Write-Output "pid_writer=$pid_writer" + + # Wait for message from writer process before starting reader(s) + Wait-Message $testdir $WRITER_MESSAGE + # + # Launch the Readers + #declare -a seeds = ( ... ) + Write-Output "launch $Nreaders swmr_readers" + $pid_readers = @() + $n = 0 + while ($n -lt $Nreaders) { + #seed = "-r ${seeds[$n]}" + $seed = "" + $rp = Start-Process -FilePath $testdir/swmr_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_add $seed" 2>&1 |tee swmr_reader.out.$n + $pid_readers += $rp.id + $n += 1 + } + #Write-Output "pid_readers=$pid_readers" + + # Collect exit code of the readers first because they usually finish + # before the writer. + foreach ($xpid in $pid_readers) { + #Write-Output "checked reader $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "reader had error" + $nerrors += 1 + } + } + + # Collect exit code of the writer + #Write-Output "checked writer $pid_writer" + $result = Wait-Process -Id $pid_writer + if ($result.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } + + # Check for error and exit if one occurred + #Write-Output "nerrors=$nerrors" + if ($nerrors -ne 0) { + Write-Warning "SWMR tests failed with $nerrors errors." + Write-Warning "(Writer and reader output preserved)" + exit 1 + } + + # Clean up output files + Remove-Item swmr_writer.out + Remove-Item swmr_reader.out.* + + Write-Output "" + Write-Output "###############################################################################" + Write-Output "## Remove test - test shrinking the dataset" + Write-Output "###############################################################################" + + # Remove any possible writer message file before launching writer + Remove-Item $WRITER_MESSAGE + # Launch the Remove Writer + Write-Output "launch the swmr_remove_writer" + $seed = "" # Put -r command here + $rp = Start-Process -FilePath $testdir/swmr_remove_writer.exe -NoNewWindow -PassThru -ArgumentList "-o $Nrecs_rem $seed" 2>&1 |tee swmr_writer.out + $pid_writer = $rp.id + #Write-Output "pid_writer=$pid_writer" + + # Wait for message from writer process before starting reader(s) + Wait-Message $testdir $WRITER_MESSAGE + # + # Launch the Remove Readers + #declare -a seeds = ( ... ) + $n = 0 + $pid_readers = @() + Write-Output "launch $Nreaders swmr_remove_readers" + while ($n -lt $Nreaders) { + #seed = "-r ${seeds[$n]}" + $seed = "" + $rp = Start-Process -FilePath $testdir/swmr_remove_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_rem $seed" 2>&1 |tee swmr_reader.out.$n + $pid_readers += $rp.id + $n += 1 + } + #Write-Output "pid_readers=$pid_readers" + + # Collect exit code of the readers first because they usually finish + # before the writer. + foreach ($xpid in $pid_readers) { + #Write-Output "checked reader $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "reader had error" + $nerrors += 1 + } + } + + # Collect exit code of the writer + #Write-Output "checked writer $pid_writer" + $result = Wait-Process -Id $pid_writer + if ($result.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } + + # Check for error and exit if one occurred + #Write-Output "nerrors=$nerrors" + if ($nerrors -ne 0) { + Write-Warning "SWMR tests failed with $nerrors errors." + Write-Warning "(Writer and reader output preserved)" + exit 1 + } + + # Clean up output files + Remove-Item swmr_writer.out + Remove-Item swmr_reader.out.* + + Write-Output "" + Write-Output "###############################################################################" + Write-Output "## Add/remove test - randomly grow or shrink the dataset" + Write-Output "###############################################################################" + + # Launch the Generator + Write-Output "launch the swmr_generator" + $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow-PassThru -Wait -ArgumentList "$compress $index_type" + if ($rp.ExitCode -ne 0) { + Write-Warning "generator had error" + $nerrors += 1 + } + + # Launch the Writer (not in parallel - just to rebuild the datasets) + Write-Output "launch the swmr_writer" + $seed = "" # Put -r command here + $rp = Start-Process -FilePath $testdir/swmr_writer.exe -NoNewWindow -PassThru -Wait -ArgumentList "$Nrecords $seed" + if ($rp.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } + + # Remove any possible writer message file before launching writer + Remove-Item $WRITER_MESSAGE + # + # Launch the Add/Remove Writer + Write-Output "launch the swmr_addrem_writer" + $seed = "" # Put -r command here + $rp = Start-Process -FilePath $testdir/swmr_addrem_writer.exe -NoNewWindow -PassThru -ArgumentList "$Nrecords $seed" 2>&1 |tee swmr_writer.out + $pid_writer = $rp.id + #Write-Output "pid_writer=$pid_writer" + + # Wait for message from writer process before starting reader(s) + Wait-Message $testdir $WRITER_MESSAGE + # + # Launch the Add/Remove Readers + #declare -a seeds = ( ... ) + $n = 0 + $pid_readers = @() + Write-Output "launch $Nreaders swmr_remove_readers" + while ($n -lt $Nreaders) { + #seed = "-r ${seeds[$n]}" + $seed = "" + $rp = Start-Process -FilePath $testdir/swmr_remove_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_addrem $seed" 2>&1 |tee swmr_reader.out.$n + $pid_readers += $rp.id + $n += 1 + } + #Write-Output "pid_readers=$pid_readers" + + # Collect exit code of the readers first because they usually finish + # before the writer. + foreach ($xpid in $pid_readers) { + #Write-Output "checked reader $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "reader had error" + $nerrors += 1 + } + } + + # Collect exit code of the writer + #Write-Output "checked writer $pid_writer" + $result = Wait-Process -Id $pid_writer + if ($result.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } + + # Check for error and exit if one occurred + #Write-Output "nerrors=$nerrors" + if ($nerrors -ne 0) { + Write-Warning "SWMR tests failed with $nerrors errors." + Write-Warning "(Writer and reader output preserved)" + exit 1 + } + + # Clean up output files + Remove-Item swmr_writer.out + Remove-Item swmr_reader.out.* + + Write-Output "" + Write-Output "###############################################################################" + Write-Output "## Sparse writer test - test writing to random locations in the dataset" + Write-Output "###############################################################################" + + # Launch the Generator + # NOTE: Random seed is shared between readers and writers and is + # created by the generator. + Write-Output "launch the swmr_generator" + $seed = "" # Put -r command here + $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -PassThru -Wait -ArgumentList "$compress $index_type $seed" + if ($rp.ExitCode -ne 0) { + Write-Warning "generator had error" + $nerrors += 1 + } + + # Remove any possible writer message file before launching writer + Remove-Item $WRITER_MESSAGE + # Launch the Sparse writer + Write-Output "launch the swmr_sparse_writer" + $rp = Start-Process -FilePath $testdir/swmr_sparse_writer.exe -NoNewWindow -PassThru -ArgumentList "$Nrecs_spa" 2>&1 |tee swmr_writer.out + $pid_writer = $rp.Id + #Write-Output "pid_writer=$pid_writer" + + # Wait for message from writer process before starting reader(s) + Wait-Message $testdir $WRITER_MESSAGE + # + # Launch the Sparse readers + $n = 0 + $pid_readers = @() + Write-Output "launch $Nrdrs_spa swmr_sparse_readers" + while ($n -lt $Nrdrs_spa) { + # The sparse reader spits out a LOT of data so it's set to 'quiet' + $rp = Start-Process -FilePath $testdir/swmr_sparse_reader.exe -NoNewWindow -PassThru -ArgumentList "-q $Nrecs_spa" 2>&1 |tee swmr_reader.out.$n + $pid_readers += $rp.id + $n += 1 + } + #Write-Output "pid_readers=$pid_readers" + + # Collect exit code of the writer + #Write-Output "checked writer $pid_writer" + $result = Wait-Process -Id $pid_writer + if ($result.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } + + # Collect exit code of the readers + foreach ($xpid in $pid_readers) { + #Write-Output "checked reader $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "reader had error" + $nerrors += 1 + } + } + + # Check for error and exit if one occurred + #Write-Output "nerrors=$nerrors" + if ($nerrors -ne 0) { + Write-Warning "SWMR tests failed with $nerrors errors." + Write-Warning "(Writer and reader output preserved)" + exit 1 + } + + # Clean up output files + Remove-Item swmr_writer.out + Remove-Item swmr_reader.out.* + } +} + +############################################################################### +## Report and exit +############################################################################### +cd .. +#Write-Output "nerrors=$nerrors" +if ($nerrors -eq 0) { + Write-Output "SWMR tests passed." +# if test -z "$HDF5_NOCLEANUP"; then +# # delete the test directory +# Remove-Item swmr_test -Recurse +# fi + exit 0 +} +else { + Write-Warning "SWMR tests failed with $nerrors errors." + exit 1 +} + diff --git a/test/test_swmr.sh.in b/test/test_swmr.sh.in new file mode 100644 index 0000000..771fe4a --- /dev/null +++ b/test/test_swmr.sh.in @@ -0,0 +1,563 @@ +#! /bin/bash +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Tests for the swmr feature. +# +# Created: +# Albert Cheng, 2009/07/22 + +srcdir=@srcdir@ +utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ +testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ + +############################################################################### +## test parameters +############################################################################### + +Nreaders=5 # number of readers to launch +Nrdrs_spa=3 # number of sparse readers to launch +Nrecords=200000 # number of records to write +Nrecs_rem=40000 # number of times to shrink +Nrecs_spa=20000 # number of records to write in the sparse test +Nsecs_add=5 # number of seconds per read interval +Nsecs_rem=3 # number of seconds per read interval +Nsecs_addrem=8 # number of seconds per read interval +nerrors=0 + +############################################################################### +## definitions for message file to coordinate test runs +############################################################################### +WRITER_MESSAGE=SWMR_WRITER_MESSAGE # The message file created by writer that the open is complete + # This should be the same as the define in "test/swmr_common.h" +MESSAGE_TIMEOUT=300 # Message timeout length in secs + # This should be the same as the define in "test/h5test.h" + +############################################################################### +## short hands and function definitions +############################################################################### +DPRINT=: # Set to "echo Debug:" for debugging printing, + # else ":" for noop. +IFDEBUG=: # Set to null to turn on debugging, else ":" for noop. + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# To wait for the writer message file or till the maximum # of seconds is reached +# $1 is the message file to wait for +# This performs similar function as the routine h5_wait_message() in test/h5test.c +WAIT_MESSAGE() { + message=$1 # Get the name of the message file to wait for + t0=`date +%s` # Get current time in seconds + difft=0 # Initialize the time difference + mexist=0 # Indicate whether the message file is found + while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out + do + t1=`date +%s` # Get current time in seconds + difft=`expr $t1 - $t0` # Calculate the time difference + if [ -e $message ]; then # If message file is found: + mexist=1 # indicate the message file is found + rm $message # remove the message file + break # get out of the while loop + fi + done; + if test $mexist -eq 0; then + # Issue warning that the writer message file is not found, continue with launching the reader(s) + echo warning: $WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds + else + echo $WRITER_MESSAGE is found + fi +} + +############################################################################### +## Main +## +## Modifications: +## Vailin Choi; July 2013 +## Add waiting of message file before launching the reader(s). +## Due to the implementation of file locking, coordination +## is needed in file opening for the writer/reader tests +## to proceed as expected. +## +############################################################################### + +# Check to see if the VFD specified by the HDF5_DRIVER environment variable +# supports SWMR. +$utils_testdir/swmr_check_compat_vfd +rc=$? +if [ $rc -ne 0 ] ; then + echo + echo "The VFD specified by the HDF5_DRIVER environment variable" + echo "does not support SWMR." + echo + echo "SWMR acceptance tests skipped" + echo + exit 0 +fi + +# Parse options (none accepted at this time) +while [ $# -gt 0 ]; do + case "$1" in + *) # unknown option + echo "$0: Unknown option ($1)" + exit 1 + ;; + esac +done + +# HDF5 has several tests that create and delete signal files to communicate +# between processes, and it seems that even though the names of the files are +# different, occasionally the wrong file is deleted, interrupting the flow of +# the test. Running each of these tests in its own directory should eliminate +# the problem. +mkdir swmr_test +for FILE in swmr*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE swmr_test + fi +done + +# With the --disable-shared option, swmr program files are built in the test +# directory, otherwise they are in test/.libs with a corresponding wrapper +# script in the test directory. The programs or wrapper scripts in test should +# always be copied, swmr files in .libs should be copied only if they exists. +if [ -f .libs/swmr ]; then + mkdir swmr_test/.libs + for FILE in .libs/swmr*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE swmr_test/.libs + fi + done +fi + +cd swmr_test + + +# Loop over index types +for index_type in "-i ea" "-i b2" +do + # Try with and without compression + for compress in "" "-c 5" + do + echo + echo "*******************************************************************************" + echo "** Loop testing parameters: $index_type $compress" + echo "*******************************************************************************" + echo + echo + echo "###############################################################################" + echo "## Generator test" + echo "###############################################################################" + # Launch the Generator without SWMR_WRITE + echo launch the swmr_generator + $testdir/swmr_generator $compress $index_type + if test $? -ne 0; then + echo generator had error + nerrors=`expr $nerrors + 1` + fi + + # Launch the Generator with SWMR_WRITE + echo launch the swmr_generator with SWMR_WRITE + $testdir/swmr_generator -s $compress $index_type + if test $? -ne 0; then + echo generator had error + nerrors=`expr $nerrors + 1` + fi + + # Check for error and exit if one occurred + $DPRINT nerrors=$nerrors + if test $nerrors -ne 0 ; then + echo "SWMR tests failed with $nerrors errors." + exit 1 + fi + + echo + echo "###############################################################################" + echo "## Use H5Fstart_swmr_write() to enable SWMR writing mode" + echo "###############################################################################" + + # Remove any possible writer message file before launching writer + rm -f $WRITER_MESSAGE + # + # Launch the Writer + echo launch the swmr_start_writer + seed="" # Put -r command here + $testdir/swmr_start_write $compress $index_type $Nrecords $seed 2>&1 |tee swmr_writer.out & + pid_writer=$! + $DPRINT pid_writer=$pid_writer + + # Wait for message from writer process before starting reader(s) + WAIT_MESSAGE $WRITER_MESSAGE + + # + # Launch the Readers + #declare -a seeds=( ... ) + echo launch $Nreaders swmr_readers + pid_readers="" + n=0 + while [ $n -lt $Nreaders ]; do + #seed="-r ${seeds[$n]}" + seed="" + $testdir/swmr_reader $Nsecs_add $seed 2>&1 |tee swmr_reader.out.$n & + pid_readers="$pid_readers $!" + n=`expr $n + 1` + done + $DPRINT pid_readers=$pid_readers + $IFDEBUG ps + + # Collect exit code of the readers first because they usually finish + # before the writer. + for xpid in $pid_readers; do + $DPRINT checked reader $xpid + wait $xpid + if test $? -ne 0; then + echo reader had error + nerrors=`expr $nerrors + 1` + fi + done + + # Collect exit code of the writer + $DPRINT checked writer $pid_writer + wait $pid_writer + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi + + # Check for error and exit if one occurred + $DPRINT nerrors=$nerrors + if test $nerrors -ne 0 ; then + echo "SWMR tests failed with $nerrors errors." + echo "(Writer and reader output preserved)" + exit 1 + fi + + # Clean up output files + rm -f swmr_writer.out + rm -f swmr_reader.out.* + + echo + echo "###############################################################################" + echo "## Writer test - test expanding the dataset" + echo "###############################################################################" + + # Launch the Generator + echo launch the swmr_generator + $testdir/swmr_generator -s $compress $index_type + if test $? -ne 0; then + echo generator had error + nerrors=`expr $nerrors + 1` + fi + + # Remove any possible writer message file before launching writer + rm -f $WRITER_MESSAGE + # + # Launch the Writer + echo launch the swmr_writer + seed="" # Put -r command here + $testdir/swmr_writer -o $Nrecords $seed 2>&1 |tee swmr_writer.out & + pid_writer=$! + $DPRINT pid_writer=$pid_writer + + # Wait for message from writer process before starting reader(s) + WAIT_MESSAGE $WRITER_MESSAGE + # + # Launch the Readers + #declare -a seeds=( ... ) + echo launch $Nreaders swmr_readers + pid_readers="" + n=0 + while [ $n -lt $Nreaders ]; do + #seed="-r ${seeds[$n]}" + seed="" + $testdir/swmr_reader $Nsecs_add $seed 2>&1 |tee swmr_reader.out.$n & + pid_readers="$pid_readers $!" + n=`expr $n + 1` + done + $DPRINT pid_readers=$pid_readers + $IFDEBUG ps + + # Collect exit code of the readers first because they usually finish + # before the writer. + for xpid in $pid_readers; do + $DPRINT checked reader $xpid + wait $xpid + if test $? -ne 0; then + echo reader had error + nerrors=`expr $nerrors + 1` + fi + done + + # Collect exit code of the writer + $DPRINT checked writer $pid_writer + wait $pid_writer + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi + + # Check for error and exit if one occurred + $DPRINT nerrors=$nerrors + if test $nerrors -ne 0 ; then + echo "SWMR tests failed with $nerrors errors." + echo "(Writer and reader output preserved)" + exit 1 + fi + + # Clean up output files + rm -f swmr_writer.out + rm -f swmr_reader.out.* + + echo + echo "###############################################################################" + echo "## Remove test - test shrinking the dataset" + echo "###############################################################################" + + # Remove any possible writer message file before launching writer + rm -f $WRITER_MESSAGE + # Launch the Remove Writer + echo launch the swmr_remove_writer + seed="" # Put -r command here + $testdir/swmr_remove_writer -o $Nrecs_rem $seed 2>&1 |tee swmr_writer.out & + pid_writer=$! + $DPRINT pid_writer=$pid_writer + + # Wait for message from writer process before starting reader(s) + WAIT_MESSAGE $WRITER_MESSAGE + # + # Launch the Remove Readers + #declare -a seeds=( ... ) + n=0 + pid_readers="" + echo launch $Nreaders swmr_remove_readers + while [ $n -lt $Nreaders ]; do + #seed="-r ${seeds[$n]}" + seed="" + $testdir/swmr_remove_reader $Nsecs_rem $seed 2>&1 |tee swmr_reader.out.$n & + pid_readers="$pid_readers $!" + n=`expr $n + 1` + done + $DPRINT pid_readers=$pid_readers + $IFDEBUG ps + + # Collect exit code of the readers first because they usually finish + # before the writer. + for xpid in $pid_readers; do + $DPRINT checked reader $xpid + wait $xpid + if test $? -ne 0; then + echo reader had error + nerrors=`expr $nerrors + 1` + fi + done + + # Collect exit code of the writer + $DPRINT checked writer $pid_writer + wait $pid_writer + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi + + # Check for error and exit if one occurred + $DPRINT nerrors=$nerrors + if test $nerrors -ne 0 ; then + echo "SWMR tests failed with $nerrors errors." + echo "(Writer and reader output preserved)" + exit 1 + fi + + # Clean up output files + rm -f swmr_writer.out + rm -f swmr_reader.out.* + + echo + echo "###############################################################################" + echo "## Add/remove test - randomly grow or shrink the dataset" + echo "###############################################################################" + + # Launch the Generator + echo launch the swmr_generator + $testdir/swmr_generator $compress $index_type + if test $? -ne 0; then + echo generator had error + nerrors=`expr $nerrors + 1` + fi + + # Launch the Writer (not in parallel - just to rebuild the datasets) + echo launch the swmr_writer + seed="" # Put -r command here + $testdir/swmr_writer $Nrecords $seed + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi + + # Remove any possible writer message file before launching writer + rm -f $WRITER_MESSAGE + # + # Launch the Add/Remove Writer + echo launch the swmr_addrem_writer + seed="" # Put -r command here + $testdir/swmr_addrem_writer $Nrecords $seed 2>&1 |tee swmr_writer.out & + pid_writer=$! + $DPRINT pid_writer=$pid_writer + + # Wait for message from writer process before starting reader(s) + WAIT_MESSAGE $WRITER_MESSAGE + # + # Launch the Add/Remove Readers + #declare -a seeds=( ... ) + n=0 + pid_readers="" + echo launch $Nreaders swmr_remove_readers + while [ $n -lt $Nreaders ]; do + #seed="-r ${seeds[$n]}" + seed="" + $testdir/swmr_remove_reader $Nsecs_addrem $seed 2>&1 |tee swmr_reader.out.$n & + pid_readers="$pid_readers $!" + n=`expr $n + 1` + done + $DPRINT pid_readers=$pid_readers + $IFDEBUG ps + + # Collect exit code of the readers first because they usually finish + # before the writer. + for xpid in $pid_readers; do + $DPRINT checked reader $xpid + wait $xpid + if test $? -ne 0; then + echo reader had error + nerrors=`expr $nerrors + 1` + fi + done + + # Collect exit code of the writer + $DPRINT checked writer $pid_writer + wait $pid_writer + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi + + # Check for error and exit if one occurred + $DPRINT nerrors=$nerrors + if test $nerrors -ne 0 ; then + echo "SWMR tests failed with $nerrors errors." + echo "(Writer and reader output preserved)" + exit 1 + fi + + # Clean up output files + rm -f swmr_writer.out + rm -f swmr_reader.out.* + + echo + echo "###############################################################################" + echo "## Sparse writer test - test writing to random locations in the dataset" + echo "###############################################################################" + + # Launch the Generator + # NOTE: Random seed is shared between readers and writers and is + # created by the generator. + echo launch the swmr_generator + seed="" # Put -r command here + $testdir/swmr_generator $compress $index_type $seed + if test $? -ne 0; then + echo generator had error + nerrors=`expr $nerrors + 1` + fi + + # Remove any possible writer message file before launching writer + rm -f $WRITER_MESSAGE + # Launch the Sparse writer + echo launch the swmr_sparse_writer + nice -n 20 $testdir/swmr_sparse_writer $Nrecs_spa 2>&1 |tee swmr_writer.out & + pid_writer=$! + $DPRINT pid_writer=$pid_writer + + # Wait for message from writer process before starting reader(s) + WAIT_MESSAGE $WRITER_MESSAGE + # + # Launch the Sparse readers + n=0 + pid_readers="" + echo launch $Nrdrs_spa swmr_sparse_readers + while [ $n -lt $Nrdrs_spa ]; do + # The sparse reader spits out a LOT of data so it's set to 'quiet' + $testdir/swmr_sparse_reader -q $Nrecs_spa 2>&1 |tee swmr_reader.out.$n & + pid_readers="$pid_readers $!" + n=`expr $n + 1` + done + $DPRINT pid_readers=$pid_readers + $IFDEBUG ps + + # Collect exit code of the writer + $DPRINT checked writer $pid_writer + wait $pid_writer + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi + + # Collect exit code of the readers + for xpid in $pid_readers; do + $DPRINT checked reader $xpid + wait $xpid + if test $? -ne 0; then + echo reader had error + nerrors=`expr $nerrors + 1` + fi + done + + # Check for error and exit if one occurred + $DPRINT nerrors=$nerrors + if test $nerrors -ne 0 ; then + echo "SWMR tests failed with $nerrors errors." + echo "(Writer and reader output preserved)" + exit 1 + fi + + # Clean up output files + rm -f swmr_writer.out + rm -f swmr_reader.out.* + done +done + +############################################################################### +## Report and exit +############################################################################### +cd .. +$DPRINT nerrors=$nerrors +if test $nerrors -eq 0 ; then + echo "SWMR tests passed." + if test -z "$HDF5_NOCLEANUP"; then + # delete the test directory + rm -rf swmr_test + fi + exit 0 +else + echo "SWMR tests failed with $nerrors errors." + exit 1 +fi + diff --git a/test/test_use_cases.sh.in b/test/test_use_cases.sh.in new file mode 100644 index 0000000..fd30afd --- /dev/null +++ b/test/test_use_cases.sh.in @@ -0,0 +1,219 @@ +#! /bin/bash +# +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Tests the use cases of swmr features. +# +# Created: +# Albert Cheng, 2013/06/01. +# Modified: +# + +# This is work in progress. +# For now, it shows how to run the test cases programs. It only verifies the +# exit codes are okay (0). + +############################################################################### +## test variables +############################################################################### + +# Number of errors encountered during test run. +nerrors=0 + +# Define variables +verbose=yes + +############################################################################### +## Main +############################################################################### +srcdir=@srcdir@ +utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ +testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ + +# Check to see if the VFD specified by the HDF5_DRIVER environment variable +# supports SWMR. +$utils_testdir/swmr_check_compat_vfd +rc=$? +if [[ $rc != 0 ]] ; then + echo + echo "The VFD specified by the HDF5_DRIVER environment variable" + echo "does not support SWMR" + echo + echo "SWMR use case tests skipped" + echo + exit 0 +fi + +# Define symbols +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_VALUE=$EXIT_SUCCESS # Default all tests succeed +RESULT_PASSED=" PASSED" +RESULT_FAILED="*FAILED*" +RESULT_SKIP="-SKIP-" +USECASES_PROGRAMS="use_append_chunk use_append_mchunks" +TESTNAME="Use Case" + +# Source in the output filter function definitions. +. $srcdir/../bin/output_filter.sh + +# Define functions +# Print a line-line message left justified in a field of 72 characters. +# Results can be " PASSED", "*FAILED*", "-SKIP-", up to 8 characters +# wide. +# SPACES should be at least 71 spaces. ($* + ' ' + 71 + 8 >= 80) +# +TESTING() { + SPACES=" " + echo "$* $SPACES" | cut -c1-72 | tr -d '\012' +} + +# Run a test and print PASS or *FAIL*. If a test fails then increment +# the `nerrors' global variable and (if $verbose is set) display the +# difference between the actual output and the expected output. The +# expected output is given as the first argument to this function and +# the actual output file is calculated by replacing the `.ddl' with +# `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a +# non-zero value. +# ADD_H5_TEST +TOOLTEST() { + program=$1 + shift + + actual="$program.out" + actual_err="$program.err" + actual_sav=${actual}-sav + actual_err_sav=${actual_err}-sav + + # Run test. + TESTING $program $@ + ( + $RUNSERIAL $testdir/$program "$@" + ) >$actual 2>$actual_err + exit_code=$? + + # save actual and actual_err in case they are needed later. + cp $actual $actual_sav + STDOUT_FILTER $actual + cp $actual_err $actual_err_sav + STDERR_FILTER $actual_err + cat $actual_err >> $actual + + if [ $exit_code -eq 0 ];then + echo "$RESULT_PASSED" + test yes = "$verbose" && sed 's/^/ /' < $actual + else + echo "$RESULT_FAILED" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && sed 's/^/ /' < $actual + fi + + # Clean up output file + if test -z "$HDF5_NOCLEANUP"; then + rm -f $actual $actual_err $actual_sav $actual_err_sav $actual_ext + fi +} + +# HDF5 has several tests that create and delete signal files to communicate +# between processes, and it seems that even though the names of the files are +# different, occasionally the wrong file is deleted, interrupting the flow of +# the test. Running each of these tests in its own directory should eliminate +# the problem. +mkdir usecases_test +cp $testdir/twriteorder usecases_test +for FILE in use_*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE usecases_test + fi +done + +# With the --disable-shared option, swmr program files are built in the test +# directory, otherwise they are in test/.libs with a corresponding wrapper +# script in the test directory. The programs or wrapper scripts in test should +# always be copied, swmr files in .libs should be copied only if they exists. +if [ -f .libs/use_append_chunk ]; then + mkdir usecases_test/.libs + for FILE in .libs/use_*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE usecases_test/.libs + fi + done + cp .libs/twriteorder usecases_test/.libs +fi + +cd usecases_test + + +# run tests for H5Odisable_mdc_flushes/H5Oenable_mdc_flushes/H5Oare_mdc_flushes_disabled here temporary +USECORK=use_disable_mdc_flushes +for p in $USECORK; do + TOOLTEST $p + TOOLTEST $p -y 3 + TOOLTEST $p -n 3000 + TOOLTEST $p -n 5000 +done + +# run write order test here temporary +WRITEORDER=twriteorder +for p in $WRITEORDER; do + TOOLTEST $p + TOOLTEST $p -b 1000 + TOOLTEST $p -p 3000 + TOOLTEST $p -n 2000 + TOOLTEST $p -l w + TOOLTEST $p -l r +done + +# Report test results +if test $nerrors -eq 0 ; then + echo "$WRITEORDER test passed." +else + echo "$WRITEORDER test failed with $nerrors errors." + EXIT_VALUE=$EXIT_FAILURE + nerrors=0 # reset nerror for the regular tests below. +fi + +# main body +for p in $USECASES_PROGRAMS; do + TOOLTEST $p + TOOLTEST $p -z 256 + tmpfile=/tmp/datatfile.$$ + TOOLTEST $p -f $tmpfile; rm -f $tmpfile + TOOLTEST $p -l w + TOOLTEST $p -l r + # use case 1.9, testing with multi-planes chunks + TOOLTEST $p -z 256 -y 5 # 5 planes chunks + # cleanup temp datafile + if test -z "$HDF5_NOCLEANUP"; then + rm -f $p.h5 + fi +done + +cd .. +# Report test results and exit +if test $nerrors -eq 0 ; then + echo "All $TESTNAME tests passed." + if test -z "$HDF5_NOCLEANUP"; then + # delete the test directory + rm -rf usecases_test + fi +else + echo "$TESTNAME tests failed with $nerrors errors." + EXIT_VALUE=$EXIT_FAILURE +fi + +exit $EXIT_VALUE diff --git a/test/test_usecases.sh.in b/test/test_usecases.sh.in deleted file mode 100644 index fd30afd..0000000 --- a/test/test_usecases.sh.in +++ /dev/null @@ -1,219 +0,0 @@ -#! /bin/bash -# -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Tests the use cases of swmr features. -# -# Created: -# Albert Cheng, 2013/06/01. -# Modified: -# - -# This is work in progress. -# For now, it shows how to run the test cases programs. It only verifies the -# exit codes are okay (0). - -############################################################################### -## test variables -############################################################################### - -# Number of errors encountered during test run. -nerrors=0 - -# Define variables -verbose=yes - -############################################################################### -## Main -############################################################################### -srcdir=@srcdir@ -utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ -testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ - -# Check to see if the VFD specified by the HDF5_DRIVER environment variable -# supports SWMR. -$utils_testdir/swmr_check_compat_vfd -rc=$? -if [[ $rc != 0 ]] ; then - echo - echo "The VFD specified by the HDF5_DRIVER environment variable" - echo "does not support SWMR" - echo - echo "SWMR use case tests skipped" - echo - exit 0 -fi - -# Define symbols -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_VALUE=$EXIT_SUCCESS # Default all tests succeed -RESULT_PASSED=" PASSED" -RESULT_FAILED="*FAILED*" -RESULT_SKIP="-SKIP-" -USECASES_PROGRAMS="use_append_chunk use_append_mchunks" -TESTNAME="Use Case" - -# Source in the output filter function definitions. -. $srcdir/../bin/output_filter.sh - -# Define functions -# Print a line-line message left justified in a field of 72 characters. -# Results can be " PASSED", "*FAILED*", "-SKIP-", up to 8 characters -# wide. -# SPACES should be at least 71 spaces. ($* + ' ' + 71 + 8 >= 80) -# -TESTING() { - SPACES=" " - echo "$* $SPACES" | cut -c1-72 | tr -d '\012' -} - -# Run a test and print PASS or *FAIL*. If a test fails then increment -# the `nerrors' global variable and (if $verbose is set) display the -# difference between the actual output and the expected output. The -# expected output is given as the first argument to this function and -# the actual output file is calculated by replacing the `.ddl' with -# `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a -# non-zero value. -# ADD_H5_TEST -TOOLTEST() { - program=$1 - shift - - actual="$program.out" - actual_err="$program.err" - actual_sav=${actual}-sav - actual_err_sav=${actual_err}-sav - - # Run test. - TESTING $program $@ - ( - $RUNSERIAL $testdir/$program "$@" - ) >$actual 2>$actual_err - exit_code=$? - - # save actual and actual_err in case they are needed later. - cp $actual $actual_sav - STDOUT_FILTER $actual - cp $actual_err $actual_err_sav - STDERR_FILTER $actual_err - cat $actual_err >> $actual - - if [ $exit_code -eq 0 ];then - echo "$RESULT_PASSED" - test yes = "$verbose" && sed 's/^/ /' < $actual - else - echo "$RESULT_FAILED" - nerrors="`expr $nerrors + 1`" - test yes = "$verbose" && sed 's/^/ /' < $actual - fi - - # Clean up output file - if test -z "$HDF5_NOCLEANUP"; then - rm -f $actual $actual_err $actual_sav $actual_err_sav $actual_ext - fi -} - -# HDF5 has several tests that create and delete signal files to communicate -# between processes, and it seems that even though the names of the files are -# different, occasionally the wrong file is deleted, interrupting the flow of -# the test. Running each of these tests in its own directory should eliminate -# the problem. -mkdir usecases_test -cp $testdir/twriteorder usecases_test -for FILE in use_*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE usecases_test - fi -done - -# With the --disable-shared option, swmr program files are built in the test -# directory, otherwise they are in test/.libs with a corresponding wrapper -# script in the test directory. The programs or wrapper scripts in test should -# always be copied, swmr files in .libs should be copied only if they exists. -if [ -f .libs/use_append_chunk ]; then - mkdir usecases_test/.libs - for FILE in .libs/use_*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE usecases_test/.libs - fi - done - cp .libs/twriteorder usecases_test/.libs -fi - -cd usecases_test - - -# run tests for H5Odisable_mdc_flushes/H5Oenable_mdc_flushes/H5Oare_mdc_flushes_disabled here temporary -USECORK=use_disable_mdc_flushes -for p in $USECORK; do - TOOLTEST $p - TOOLTEST $p -y 3 - TOOLTEST $p -n 3000 - TOOLTEST $p -n 5000 -done - -# run write order test here temporary -WRITEORDER=twriteorder -for p in $WRITEORDER; do - TOOLTEST $p - TOOLTEST $p -b 1000 - TOOLTEST $p -p 3000 - TOOLTEST $p -n 2000 - TOOLTEST $p -l w - TOOLTEST $p -l r -done - -# Report test results -if test $nerrors -eq 0 ; then - echo "$WRITEORDER test passed." -else - echo "$WRITEORDER test failed with $nerrors errors." - EXIT_VALUE=$EXIT_FAILURE - nerrors=0 # reset nerror for the regular tests below. -fi - -# main body -for p in $USECASES_PROGRAMS; do - TOOLTEST $p - TOOLTEST $p -z 256 - tmpfile=/tmp/datatfile.$$ - TOOLTEST $p -f $tmpfile; rm -f $tmpfile - TOOLTEST $p -l w - TOOLTEST $p -l r - # use case 1.9, testing with multi-planes chunks - TOOLTEST $p -z 256 -y 5 # 5 planes chunks - # cleanup temp datafile - if test -z "$HDF5_NOCLEANUP"; then - rm -f $p.h5 - fi -done - -cd .. -# Report test results and exit -if test $nerrors -eq 0 ; then - echo "All $TESTNAME tests passed." - if test -z "$HDF5_NOCLEANUP"; then - # delete the test directory - rm -rf usecases_test - fi -else - echo "$TESTNAME tests failed with $nerrors errors." - EXIT_VALUE=$EXIT_FAILURE -fi - -exit $EXIT_VALUE diff --git a/test/test_vds_env.sh.in b/test/test_vds_env.sh.in new file mode 100644 index 0000000..39f13a5 --- /dev/null +++ b/test/test_vds_env.sh.in @@ -0,0 +1,44 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Test for external file with environment variable: HDF5_VDS_PREFIX + +srcdir=@srcdir@ + +nerrors=0 + +############################################################################## +############################################################################## +### T H E T E S T S ### +############################################################################## +############################################################################## + +# test for VDS with HDF5_VDS_PREFIX +echo "Testing basic virtual dataset I/O via H5Pset_vds_prefix(): all selection with ENV prefix" +TEST_NAME=vds_env # The test name +TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary +ENVCMD="env HDF5_VDS_PREFIX=\${ORIGIN}/tmp_vds_env" # Set the environment variable & value +UNENVCMD="unset HDF5_VDS_PREFIX" # Unset the environment variable & value +# +# Run the test +# echo "$ENVCMD $RUNSERIAL $TEST_BIN" +$ENVCMD $RUNSERIAL $TEST_BIN +exitcode=$? +if [ $exitcode -eq 0 ]; then + echo "Test prefix for HDF5_VDS_PREFIX PASSED" +else + nerrors="`expr $nerrors + 1`" + echo "***Error encountered for HDF5_VDS_PREFIX test***" +fi +$UNENVCMD +exit $nerrors diff --git a/test/test_vds_swmr.pwsh.in b/test/test_vds_swmr.pwsh.in new file mode 100644 index 0000000..bf5aabb --- /dev/null +++ b/test/test_vds_swmr.pwsh.in @@ -0,0 +1,190 @@ +# Copyright by The HDF Group. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Tests for the swmr feature using virtual datasets. + +$srcdir = '@srcdir@' +$utils_testdir=@H5_UTILS_TEST_BUILDDIR@ +$testdir=@H5_TEST_BUILDDIR@ + +############################################################################### +## test parameters +############################################################################### + +$Nwriters = 6 # number of writers (1 per source dataset) +$Nreaders = 5 # number of readers to launch +$nerrors = 0 + +############################################################################### +## definitions for message file to coordinate test runs +############################################################################### +$WRITER_MESSAGE = 'SWMR_WRITER_MESSAGE' # The message file created by writer that the open is complete + # This should be the same as the define in "test/swmr_common.h" +$MESSAGE_TIMEOUT = 300 # Message timeout length in secs + # This should be the same as the define in "test/h5test.h" + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +function Test-WithSpaces { + $SPACES=' ' + #Write-Output "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# To wait for the writer message file or till the maximum # of seconds is reached +# $Message is the message file to wait for +# This performs similar function as the routine h5_wait_message() in test/h5test.c +function Wait-Message { + [CmdletBinding()] + param ( + [Parameter(Mandatory, ValueFromPipeline)] + [string]$TestPath, # Get the path of the message file to wait for + [Parameter(Mandatory, ValueFromPipeline)] + [string]$Message # Get the name of the message file to wait for + ) + + PROCESS { + $message = Join-Path -Path $TestPath -ChildPath $Message + $t0 = Get-Date # Get current time + $t1 = $t0 + $difft = New-Timespan -Start $t0 -End $t1 # Initialize the time difference + $mexist = 0 # Indicate whether the message file is found + while ($difft.TotalSeconds -lt $MESSAGE_TIMEOUT) { # Loop till message times out + $t1 = Get-Date # Get current time in seconds + $difft = New-Timespan -Start $t0 -End $t1 # Calculate the time difference + #Write-Output "Check for $message : time=$difft" + if ([System.IO.File]::Exists($message)) { # If message file is found: + $mexist = 1 # indicate the message file is found + Remove-Item $message # remove the message file + break # get out of the while loop + } + } + if ($mexist -eq 0) { + # Issue warning that the writer message file is not found, continue with launching the reader(s) + Write-Warning -Message "$WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds" + } + else { + Write-Output "$WRITER_MESSAGE is found" + } + } +} + +############################################################################### +## Main +############################################################################### + +# Check to see if the VFD specified by the HDF5_DRIVER environment variable +# supports SWMR. +$testprog = Join-Path -Path $utils_testdir -ChildPath swmr_check_compat_vfd.exe +$rp = Start-Process -FilePath $testprog -PassThru -Wait -NoNewWindow +if ($rp.ExitCode -ne 0) { + Write-Output "" + Write-Output "The VFD specified by the HDF5_DRIVER environment variable" + Write-Output "does not support SWMR." + Write-Output "" + Write-Output "SWMR acceptance tests skipped" + Write-Output "" + exit 0 +} + +Set-Location -Path vds_swmr_test +$testdir = Join-Path -Path $testdir -ChildPath vds_swmr_test + +Write-Output "" +Write-Output "###############################################################################" +Write-Output "## Basic VDS SWMR test - writing to a tiled plane" +Write-Output "###############################################################################" + +# Launch the file generator +Write-Output "launch the swmr_generator" +$rp = Start-Process -FilePath $testdir/vds_swmr_gen.exe -NoNewWindow -PassThru -Wait +if ($rp.ExitCode -ne 0) { + Write-Warning "generator had error" + $nerrors += 1 +} + +# Check for error and exit if one occurred +#Write-Output "nerrors=$nerrors" +if ($nerrors -ne 0) { + Write-Warning "VDS SWMR tests failed with $nerrors errors." + exit 1 +} + +# Launch the writers +Write-Output "launch the $Nwriters SWMR VDS writers (1 per source)" +$pid_writers = @() +$n = 0 +while ($n -lt $Nwriters) { + $rp = Start-Process -FilePath $testdir/vds_swmr_writer.exe -NoNewWindow -PassThru -ArgumentList "$n" 2>&1 | tee swmr_writer.out.$n + $pid_writers += $rp.id + $n += 1 +} +#Write-Output "pid_writers=$pid_writers" + +# Sleep to ensure that the writers have started +Start-Sleep -Seconds 3 + +# Launch the readers +Write-Output "launch $Nreaders SWMR readers" +$pid_readers = @() +$n = 0 +while ($n -lt $Nreaders) { + $rp = Start-Process -FilePath $testdir/vds_swmr_reader.exe -NoNewWindow -PassThru 2>&1 | tee swmr_reader.out.$n + $pid_readers += $rp.id + $n += 1 +} +#Write-Output "pid_readers=$pid_readers" + +# Collect exit code of the writers +foreach ($xpid in $pid_writers) { + #Write-Output "checked writer $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "writer had error" + $nerrors += 1 + } +} + +# Collect exit code of the readers +# (they usually finish after the writers) +foreach ($xpid in $pid_readers) { + #Write-Output "checked reader $xpid" + $result = Wait-Process -Id $xpid + if ($result.ExitCode -ne 0) { + Write-Warning "reader had error" + $nerrors += 1 + } +} + +# Check for error and exit if one occurred +#Write-Output "nerrors=$nerrors" +if ($nerrors -ne 0) { + Write-Warning "VDS SWMR tests failed with $nerrors errors." + exit 1 +} + +############################################################################### +## Report and exit +############################################################################### +cd .. +#Write-Output "nerrors=$nerrors" +if ($nerrors -eq 0) { + Write-Output "VDS SWMR tests passed." +# if test -z "$HDF5_NOCLEANUP"; then +# # delete the test directory +# Remove-Item vds_swmr_test -Recurse +# fi + exit 0 +} +else { + Write-Warning "VDS SWMR tests failed with $nerrors errors." + exit 1 +} + diff --git a/test/test_vds_swmr.sh.in b/test/test_vds_swmr.sh.in new file mode 100644 index 0000000..399fdef --- /dev/null +++ b/test/test_vds_swmr.sh.in @@ -0,0 +1,233 @@ +#! /bin/bash +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the COPYING file, which can be found at the root of the source code +# distribution tree, or in https://www.hdfgroup.org/licenses. +# If you do not have access to either file, you may request a copy from +# help@hdfgroup.org. +# +# Tests for the swmr feature using virtual datasets. +# +# Created: +# Dana Robinson, November 2015 + +srcdir=@srcdir@ +utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ +testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ + +############################################################################### +## test parameters +############################################################################### + +Nwriters=6 # number of writers (1 per source dataset) +Nreaders=5 # number of readers to launch +nerrors=0 + +############################################################################### +## definitions for message file to coordinate test runs +############################################################################### +WRITER_MESSAGE=SWMR_WRITER_MESSAGE # The message file created by writer that the open is complete + # This should be the same as the define in "test/swmr_common.h" +MESSAGE_TIMEOUT=300 # Message timeout length in secs + # This should be the same as the define in "test/h5test.h" + +############################################################################### +## short hands and function definitions +############################################################################### +DPRINT=: # Set to "echo Debug:" for debugging printing, + # else ":" for noop. +IFDEBUG=: # Set to null to turn on debugging, else ":" for noop. + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# To wait for the writer message file or till the maximum # of seconds is reached +# $1 is the message file to wait for +# This performs similar function as the routine h5_wait_message() in test/h5test.c +WAIT_MESSAGE() { + message=$1 # Get the name of the message file to wait for + t0=`date +%s` # Get current time in seconds + difft=0 # Initialize the time difference + mexist=0 # Indicate whether the message file is found + while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out + do + t1=`date +%s` # Get current time in seconds + difft=`expr $t1 - $t0` # Calculate the time difference + if [ -e $message ]; then # If message file is found: + mexist=1 # indicate the message file is found + rm $message # remove the message file + break # get out of the while loop + fi + done; + if test $mexist -eq 0; then + # Issue warning that the writer message file is not found, continue with launching the reader(s) + echo warning: $WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds + else + echo $WRITER_MESSAGE is found + fi +} + +############################################################################### +## Main +############################################################################### + +# Check to see if the VFD specified by the HDF5_DRIVER environment variable +# supports SWMR. +$utils_testdir/swmr_check_compat_vfd +rc=$? +if [ $rc -ne 0 ] ; then + echo + echo "The VFD specified by the HDF5_DRIVER environment variable" + echo "does not support SWMR." + echo + echo "SWMR acceptance tests skipped" + echo + exit 0 +fi + +# Parse options (none accepted at this time) +while [ $# -gt 0 ]; do + case "$1" in + *) # unknown option + echo "$0: Unknown option ($1)" + exit 1 + ;; + esac +done + +# HDF5 has several tests that create and delete signal files to communicate +# between processes, and it seems that even though the names of the files are +# different, occasionally the wrong file is deleted, interrupting the flow of +# the test. Running each of these tests in its own directory should eliminate +# the problem. +mkdir vds_swmr_test +for FILE in vds_swmr*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE vds_swmr_test + fi +done + +# With the --disable-shared option, swmr program files are built in the test +# directory, otherwise they are in test/.libs with a corresponding wrapper +# script in the test directory. The programs or wrapper scripts in test should +# always be copied, swmr files in .libs should be copied only if they exists. +if [ -f .libs/vds_swmr_writer ]; then + mkdir vds_swmr_test/.libs + for FILE in .libs/vds_swmr*; do + case "$FILE" in + *.o) continue ;; ## don't copy the .o files + esac + if test -f "$FILE" ; then + cp $FILE vds_swmr_test/.libs + fi + done +fi + +cd vds_swmr_test + + +echo +echo "###############################################################################" +echo "## Basic VDS SWMR test - writing to a tiled plane" +echo "###############################################################################" + +# Launch the file generator +echo launch the generator +$testdir/vds_swmr_gen +if test $? -ne 0; then + echo generator had error + nerrors=`expr $nerrors + 1` +fi + +# Check for error and exit if one occurred +$DPRINT nerrors=$nerrors +if test $nerrors -ne 0 ; then + echo "VDS SWMR tests failed with $nerrors errors." + exit 1 +fi + +# Launch the writers +echo "launch the $Nwriters SWMR VDS writers (1 per source)" +pid_writers="" +n=0 +while [ $n -lt $Nwriters ]; do + $testdir/vds_swmr_writer $n & + pid_writers="$pid_writers $!" + n=`expr $n + 1` +done +$DPRINT pid_writers=$pid_writers +$IFDEBUG ps + +# Sleep to ensure that the writers have started +sleep 3 + +# Launch the readers +echo launch $Nreaders SWMR readers +pid_readers="" +n=0 +while [ $n -lt $Nreaders ]; do + $testdir/vds_swmr_reader & + pid_readers="$pid_readers $!" + n=`expr $n + 1` +done +$DPRINT pid_readers=$pid_readers +$IFDEBUG ps + +# Collect exit code of the writers +for xpid in $pid_writers; do + $DPRINT checked writer $xpid + wait $xpid + if test $? -ne 0; then + echo writer had error + nerrors=`expr $nerrors + 1` + fi +done + +# Collect exit code of the readers +# (they usually finish after the writers) +for xpid in $pid_readers; do + $DPRINT checked reader $xpid + wait $xpid + if test $? -ne 0; then + echo reader had error + nerrors=`expr $nerrors + 1` + fi +done + +# Check for error and exit if one occurred +$DPRINT nerrors=$nerrors +if test $nerrors -ne 0 ; then + echo "VDS SWMR tests failed with $nerrors errors." + exit 1 +fi + +############################################################################### +## Report and exit +############################################################################### +cd .. +$DPRINT nerrors=$nerrors +if test $nerrors -eq 0 ; then + echo "VDS SWMR tests passed." + if test -z "$HDF5_NOCLEANUP"; then + # delete the test directory + rm -rf vds_swmr_test + fi + exit 0 +else + echo "VDS SWMR tests failed with $nerrors errors." + exit 1 +fi + diff --git a/test/test_vol_plugin.sh.in b/test/test_vol_plugin.sh.in deleted file mode 100644 index d31646b..0000000 --- a/test/test_vol_plugin.sh.in +++ /dev/null @@ -1,84 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# This shell script is for testing VOL connector plugins. -# -srcdir=@srcdir@ -TOP_BUILDDIR=@top_builddir@ - -EXIT_SUCCESS=0 -EXIT_FAILURE=1 - -nerrors=0 -verbose=yes -exit_code=$EXIT_SUCCESS - -TEST_NAME=vol_plugin -TEST_BIN=`pwd`/$TEST_NAME -FROM_DIR=`pwd`/.libs -case $(uname) in - CYGWIN* ) - NULL_VOL_PLUGIN="$FROM_DIR/cygnull_vol_connector*" - ;; - *) - NULL_VOL_PLUGIN="$FROM_DIR/libnull_vol_connector*" - ;; -esac -TEMP_PLUGIN_DIR=null_vol_plugin_dir -CP="cp -p" # Use -p to preserve mode,ownership, timestamps -RM="rm -rf" - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Main Body -# Create test directory if necessary. -test -d $TEMP_PLUGIN_DIR || mkdir -p $TEMP_PLUGIN_DIR -if [ $? != 0 ]; then - echo "Failed to create VOL connector plugin test directory ($TEMP_PLUGIN_DIR)" - exit $EXIT_FAILURE -fi - -# Copy plugin for the tests. -$CP $NULL_VOL_PLUGIN $TEMP_PLUGIN_DIR -if [ $? != 0 ]; then - echo "Failed to copy NULL VOL plugin ($NULL_VOL_PLUGIN) to test directory." - exit $EXIT_FAILURE -fi - -# setup plugin path -ENVCMD="env HDF5_PLUGIN_PATH=${TEMP_PLUGIN_DIR}" - -# Run the test -$ENVCMD $TEST_BIN -if [ $? != 0 ]; then - nerrors=`expr $nerrors + 1` -fi - -# print results -if test $nerrors -ne 0 ; then - echo "$nerrors errors encountered" - exit_code=$EXIT_FAILURE -else - echo "All VOL plugin tests passed." - exit_code=$EXIT_SUCCESS -fi - -# Clean up temporary files/directories and leave -$RM $TEMP_PLUGIN_DIR - -exit $exit_code diff --git a/test/testabort_fail.sh.in b/test/testabort_fail.sh.in deleted file mode 100644 index a866f9e..0000000 --- a/test/testabort_fail.sh.in +++ /dev/null @@ -1,66 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Test to verify that the assertion/abort failure is fixed when the application -# does not close the file. (See HDFFV-10160) -# -# Test to verify that the infinite loop closing library/abort failure is fixed -# when the application creates and removes dense attributes (See HDFFV-10659) - -srcdir=@srcdir@ - -nerrors=0 - -############################################################################## -############################################################################## -### T H E T E S T S ### -############################################################################## -############################################################################## -# -# -echo "Testing file not closed assertion/abort failure" -TEST_NAME=filenotclosed # The test name -TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary -# -# Run the test -$RUNSERIAL $TEST_BIN >/dev/null 2>&1 -exitcode=$? -if [ $exitcode -eq 0 ]; then - echo "Test PASSED" -else - echo "Test FAILED" - nerrors="`expr $nerrors + 1`" -fi -# -# -echo "Testing infinite loop closing library/abort failure" -TEST_NAME=del_many_dense_attrs # The test name -TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary -# Run the test -$RUNSERIAL $TEST_BIN >/dev/null 2>&1 -exitcode=$? -if [ $exitcode -eq 0 ]; then - echo "Test PASSED" -else - echo "Test FAILED" - nerrors="`expr $nerrors + 1`" -fi -# -# -if test $nerrors -eq 0 ; then - echo "All tests for abort failure passed." - exit 0 -else - echo "Tests for abort failure failed with $nerrors errors." - exit 1 -fi diff --git a/test/testcheck_version.sh.in b/test/testcheck_version.sh.in deleted file mode 100644 index 273702e..0000000 --- a/test/testcheck_version.sh.in +++ /dev/null @@ -1,261 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. - -# -# Tests for the H5check_version function. -# -# Programmer: Albert Cheng -# Sep 28, 2009 - -srcdir=@srcdir@ - -# Variables filled in by the configure process. -# Determine the configure options of the hdf5 library and executables. -Shared_Lib=@enable_shared@ -Static_Lib=@enable_static@ -Static_exec=@STATIC_EXEC@ -h5haveexitcode=yes # default is yes - -CMP='cmp -s' -DIFF='diff -c' -RM='rm -f' - -# Function definitions -# -# Show the purpose of this test script and a note about the abort messages. -PURPOSE() { - echo "Tests for the H5check_version function." - echo "Note that abort messages may appear due to the expected termination" - echo "of the program when it is tested with mis-matched version numbers." -} - -# Print a line-line message left justified in a field of 70 characters. -# -LINEMSG() { - SPACES=" " - echo "$* $SPACES" | cut -c1-70 | tr -d '\012' -} - - -# Print a "SKIP" message -SKIP() { - LINEMSG $* - echo " -SKIP-" -} - - -# Print warning message of version mismatch. -WarnMesg(){ - echo "Warning! ***HDF5 library version mismatched error***" - echo "The HDF5 header files used to compile this application do not match" - echo "the version used by the HDF5 library to which this application is linked." - echo "Data corruption or segmentation faults may occur if the application continues." - echo "This can happen when an application was compiled by one version of HDF5 but" - echo "linked with a different version of static or shared HDF5 library." - echo "You should recompile the application or check your shared library related" - echo "settings such as 'LD_LIBRARY_PATH'." - echo "You can, at your own risk, disable this warning by setting the environment" - echo "variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'." - echo "Setting it to 2 or higher will suppress the warning messages totally." - echo "Headers are $xxh5versmajor.$xxh5versminor.$xxh5versrelease, library is $h5versmajor.$h5versminor.$h5versrelease" - test -n "$H5_HAVE_EMBEDDED_LIBINFO" && cat $h5libsettings - echo "Bye..." -} - - -# Print warning message2 of version mismatch. -WarnMesg2(){ - echo "Warning! ***HDF5 library version mismatched error***" - echo "The HDF5 header files used to compile this application do not match" - echo "the version used by the HDF5 library to which this application is linked." - echo "Data corruption or segmentation faults may occur if the application continues." - echo "This can happen when an application was compiled by one version of HDF5 but" - echo "linked with a different version of static or shared HDF5 library." - echo "You should recompile the application or check your shared library related" - echo "settings such as 'LD_LIBRARY_PATH'." - echo "'HDF5_DISABLE_VERSION_CHECK' environment variable is set to 1, application will" - echo "continue at your own risk." - echo "Headers are $xxh5versmajor.$xxh5versminor.$xxh5versrelease, library is $h5versmajor.$h5versminor.$h5versrelease" - test -n "$H5_HAVE_EMBEDDED_LIBINFO" && cat $h5libsettings -} - - -# Run a test and print PASS or *FAIL*. If a test fails then increment -# the `nerrors' global variable and (if $verbose is set) display the -# difference between the actual output and the expected output. The -# expected output generated according to the parameter values and compared -# against actual output. -# The expected and actual output files are removed unless $HDF5_NOCLEANUP -# has a non-zero value. -# $1: the set value of $HDF5_DISABLE_VERSION_CHECK. (unset means not to set -# it at all. -# $2: Change the version number(s) to cause a mismatch. (none means no -# mismatch). -# -# Expected results: -# Value of $HDF5_DISABLE_VERSION_CHECK -# unset "" -1 0 1 2 3 -# Matched OK OK OK OK OK OK OK -# Mismatched W/A W/A W/A W/A W2/OK OK W2/OK -# Result codes: -# OK: No warning, exit 0. -# W/A: Warning, abort and exit non-0. -# W2/OK: Different Warning, exit 0. -# -# Implemented only exit code matching. Still need to match output. -TESTING() { - DEBUGPRINT command is $0 $* - TEST_NAME=tcheck_version # The test name - TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary - - expect=${TEST_NAME}_expect.out - actual=${TEST_NAME}_actual.out - actual_err=${TEST_NAME}_actual.err - arguments= - - h5DisableVersion="$1" - wrongversionnumbers="$2" - xxh5versmajor=$h5versmajor - xxh5versminor=$h5versminor - xxh5versrelease=$h5versrelease - - if [ "$h5DisableVersion" = unset ]; then - envcmd="" # noop - else - envcmd="env HDF5_DISABLE_VERSION_CHECK=$h5DisableVersion" - fi - - if [ "$wrongversionnumbers" = none ]; then - # OK: No warning, exit 0 - cp /dev/null $expect - expect_code=0 - else - arguments=-t"$wrongversionnumbers" - # calculate mismatched version numbers by listing. - case $wrongversionnumbers in - "M") xxh5versmajor=`expr $h5versmajor + 1` - ;; - "m") xxh5versminor=`expr $h5versminor + 1` - ;; - "r") xxh5versrelease=`expr $h5versrelease + 1` - ;; - esac - case "$h5DisableVersion" in - 1) - # W2/OK: Different Warning, exit 0. - WarnMesg2 > $expect - expect_code=0 - ;; - [2-9]|[1-9][0-9]*) - # OK: No warning, exit 0 - cp /dev/null $expect - expect_code=0 - ;; - *) # W/A: Warning, abort and exit non-0. - WarnMesg > $expect - expect_code=6 # Signal Abort exit code (128+6) - ;; - esac - fi - - # Run test. - LINEMSG $envcmd $TEST_NAME $arguments - ( - $envcmd $RUNSERIAL $TEST_BIN $arguments - ) >$actual 2>$actual_err - ret_code=$? - cat $actual_err >> $actual - - if [ $h5haveexitcode = 'yes' -a \( $expect_code -ne $ret_code \) ]; then - echo "*FAILED*" - echo " Expected exit code ($expect_code) differs from actual code ($ret_code)" - nerrors="`expr $nerrors + 1`" - elif $CMP $expect $actual; then - echo " PASSED" - else - echo "*FAILED*" - echo " Expected result differs from actual result" - nerrors="`expr $nerrors + 1`" - test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /' - fi - - # Clean up output file. - # Also clean the core file generated by H5check_version's abort. - if test -z "$HDF5_NOCLEANUP"; then - $RM $expect $actual $actual_err - $RM core - fi -} - - -# Echo parameters for debugging if verbose mode is on. -DEBUGPRINT() { - if [ -n "$debugmode" ]; then - echo $* - fi -} - - -# MAIN Body -nerrors=0 -verbose=yes # default on -debugmode= # default off -H5_HAVE_EMBEDDED_LIBINFO=`grep '#define H5_HAVE_EMBEDDED_LIBINFO ' ../src/H5pubconf.h` -h5libsettings=../src/libhdf5.settings - -PURPOSE - -# Figure out library version numbers from the header file. -h5versmajor=`grep '#define H5_VERS_MAJOR' $srcdir/../src/H5public.h | awk '{print $3}'` -h5versminor=`grep '#define H5_VERS_MINOR' $srcdir/../src/H5public.h | awk '{print $3}'` -h5versrelease=`grep '#define H5_VERS_RELEASE' $srcdir/../src/H5public.h | awk '{print $3}'` -DEBUGPRINT $h5versmajor.$h5versminor.$h5versrelease -case "$h5versmajor$h5versminor$h5versrelease" in - [0-9]*) # good. noop. - ;; - *) - echo "Illegal library version numbers($h5versmajor.$h5versminor.$h5versrelease)" - echo "Test aborted" - exit 1 - ;; -esac - -# RUNSERIAL is used. Check if it can return exit code from executalbe correctly. -if [ -n "$RUNSERIAL_NOEXITCODE" ]; then - echo "***Warning*** Serial Exit Code is not passed back to shell correctly." - echo "***Warning*** Exit code checking is skipped." - h5haveexitcode=no -fi - -# Three Categories of tests: -# Normal: where the version numbers all matched (wrong_version == none). -# Mismatched version numbers (could be Major or minor version -# or release numbers or a combination of all three.) -# Test all the above with different values of the environment variable, -# HDF5_DISABLE_VERSION_CHECK, as unset, "", -1, 0, 1, 2, 3 - -for val_disable_version_check in unset "" -1 0 1 2 3; do - for wrong_version in none M m; do - TESTING "$val_disable_version_check" "$wrong_version" - done -done - - -# Check and report results. -if [ $nerrors -gt 0 ]; then - echo "***$nerrors errors encountered***" - exit 1 -else - echo "No error encountered" - exit 0 -fi diff --git a/test/testerror.sh.in b/test/testerror.sh.in deleted file mode 100644 index 4fb2a81..0000000 --- a/test/testerror.sh.in +++ /dev/null @@ -1,126 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Tests for test_error and err_compat - -srcdir=@srcdir@ - -# Determine backward compatibility options eneabled -DEPRECATED_SYMBOLS="@DEPRECATED_SYMBOLS@" - -CMP='cmp -s' -DIFF='diff -c' - -# Skip plugin module to test missing filter -# Also reset the VOL connector to only use the native connector, because of the -# error stack checking. QAK - 2019/03/09 -ENVCMD="env HDF5_PLUGIN_PRELOAD=:: HDF5_VOL_CONNECTOR=native" - -nerrors=0 -verbose=yes - -test -d ./testfiles || mkdir ./testfiles - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# Run a test and print PASS or *FAIL*. If a test fails then increment -# the `nerrors' global variable and (if $verbose is set) display the -# difference between the actual output and the expected output. The -# expected output is given as the first argument to this function and -# the actual output file is calculated by replacing the `.ddl' with -# `.out'. The actual output is not removed if $HDF5_NOCLEANUP has a -# non-zero value. -# -TEST() { - TEST_ERR=$1 # The test name - TEST_ERR_BIN=`pwd`/$TEST_ERR # The path of the test binary - - expect1="$srcdir/testfiles/$1_1" - expect2="$srcdir/testfiles/$1_2" - actual="./`basename $1`.out" - actual_err="./`basename $1`.err" - actual_ext="./`basename $1`.ext" - shift - - # Run test. - TESTING $TEST_ERR - ( - # Skip the plugin for testing missing filter. - $ENVCMD $RUNSERIAL $TEST_ERR_BIN - ) >$actual 2>$actual_err - - # Check for core dump - if [ $? != 0 ]; then - nerrors=`expr $nerrors + 1` - fi - - # Extract file name, line number, version and thread IDs because they may be different - sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \ - -e 's/line [0-9]*/line (number)/' \ - -e 's/v[1-9]*\.[0-9]*\./version (number)\./' \ - -e 's/[1-9]*\.[0-9]*\.[0-9]*[^)]*/version (number)/' \ - -e 's/H5Eget_auto[1-2]*/H5Eget_auto(1 or 2)/' \ - -e 's/H5Eset_auto[1-2]*/H5Eset_auto(1 or 2)/' \ - $actual_err > $actual_ext - cat $actual_ext >> $actual - - if $CMP $expect1 $actual; then - echo " PASSED" - elif $CMP $expect2 $actual; then - echo " PASSED" - else - echo "*FAILED*" - echo " Expected result differs from actual result" - nerrors="`expr $nerrors + 1`" - test yes = "$verbose" && $DIFF $expect1 $actual |sed 's/^/ /' - fi - - # Clean up output file - if test -z "$HDF5_NOCLEANUP"; then - rm -f $actual $actual_err $actual_ext - fi -} - -# Print a "SKIP" message -SKIP() { - TESTING $@ - echo " -SKIP-" -} - -############################################################################## -############################################################################## -### T H E T E S T S ### -############################################################################## -############################################################################## - -# test for err_compat -if test $DEPRECATED_SYMBOLS != "yes"; then -SKIP err_compat -else -TEST err_compat -fi - -# test for error_test. Skip the plugin for testing missing filter. -TEST error_test - -if test $nerrors -eq 0 ; then - echo "All Error API tests passed." -fi - -exit $nerrors diff --git a/test/testexternal_env.sh.in b/test/testexternal_env.sh.in deleted file mode 100644 index 94fbb88..0000000 --- a/test/testexternal_env.sh.in +++ /dev/null @@ -1,42 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Test for external file with environment variable: HDF5_EXTFILE_PREFIX - -srcdir=@srcdir@ - -nerrors=0 - -############################################################################## -############################################################################## -### T H E T E S T S ### -############################################################################## -############################################################################## - -# test for external file with HDF5_EXTFILE_PREFIX -echo "Testing external file with HDF5_EXTFILE_PREFIX" -TEST_NAME=external_env # The test name -TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary -ENVCMD="env HDF5_EXTFILE_PREFIX=\${ORIGIN}" # The environment variable & value -# -# Run the test -# echo "$ENVCMD $RUNSERIAL $TEST_BIN" -$ENVCMD $RUNSERIAL $TEST_BIN -exitcode=$? -if [ $exitcode -eq 0 ]; then - echo "Test prefix for HDF5_EXTFILE_PREFIX PASSED" -else - nerrors="`expr $nerrors + 1`" - echo "***Error encountered for HDF5_EXTFILE_PREFIX test***" -fi -exit $nerrors diff --git a/test/testflushrefresh.sh.in b/test/testflushrefresh.sh.in deleted file mode 100644 index 209d370..0000000 --- a/test/testflushrefresh.sh.in +++ /dev/null @@ -1,238 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# -# Test script for the flush/evict single objects feature. -# -# This test file doesn't actually perform any tests, rather, it acts -# as a process manager for the 'flushrefresh' test file, which is where -# the tests are actually housed. The reason this script exists is because -# the verification of this feature needs to occur in separate processes -# from the one in which the file is being manipulated in. (i.e., we have -# a single writer process, and various reader processes spawning off -# and doing the verification that individual objects are being -# correctly flushed). -# -# Programmer: -# Mike McGreevy -# Tuesday, July 20, 2010 - -############################################################################### -## test variables -############################################################################### - -# Number of errors encountered during test run. -nerrors=0 - -# Set up a function to check the current time since the epoch - ideally, we'd -# like to use Perl. If it wasn't detected by configure, then use date, though -# this is less portable and might cause problems on machines that don't -# recognize the +%s option (like Solaris). -# -# Note that PERL will resolve to true or false, not a path. -PERL=@PERL@ -if test -n "$PERL"; then - TimeStamp() - { - time=`perl -e 'print int(time)'` - echo "$time" - } -else - TimeStamp() - { - time=`date +%s` - echo "$time" - } -fi - -############################################################################### -## Main -############################################################################### -srcdir=@srcdir@ -utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ -testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ - -# Check to see if the VFD specified by the HDF5_DRIVER environment variable -# supports SWMR. -$utils_testdir/swmr_check_compat_vfd -rc=$? -if [ $rc -ne 0 ] ; then - echo - echo "The VFD specified by the HDF5_DRIVER environment variable" - echo "does not support SWMR." - echo - echo "flush/refresh tests skipped" - echo - exit 0 -fi - -# HDF5 has several tests that create and delete signal files to communicate -# between processes, and it seems that even though the names of the files are -# different, occasionally the wrong file is deleted, interrupting the flow of -# the test. Running each of these tests in its own directory should eliminate -# the problem. -mkdir -p flushrefresh_test -cp $testdir/flushrefresh flushrefresh_test - -# With the --disable-shared option, flushrefresh is built in the test directory, -# otherwise it is in test/.libs with a wrapper script named flushrefresh in -# the test directory. test/flushrefresh should always be copied, -# .libs/flushrefresh should be copied only if it exists. -if [ -f .libs/flushrefresh ]; then - mkdir -p flushrefresh_test/.libs - for FILE in .libs/flushrefresh*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE flushrefresh_test/.libs - fi - done -fi -cd flushrefresh_test - -# ================================================= -# Set up/initialize some variables to be used later -# ================================================= -testfile=flushrefresh.h5 -startsignal=flushrefresh_VERIFICATION_START -endsignal=flushrefresh_VERIFICATION_DONE -timeout_length=300 -timedout=0 -verification_done=0 -if [ -e $testfile ]; then - rm $testfile -fi - -# ======================== -# Launch the Test Program. -# ======================== -$testdir/flushrefresh & -pid_main=$! - -# ======================================= -# Run flush verification on test program. -# ======================================= - -until [ $verification_done -eq 1 ]; do - - # Wait for signal from test program that verification routine can run. - before=`TimeStamp` - until [ -s $startsignal ]; do - after=`TimeStamp` - timediff=`expr $after - $before` - if [ $timediff -gt $timeout_length ]; then - nerrors=`expr $nerrors + 1` - timedout=1 - break - fi - done - - # Check to see if we timed out looking for the signal before continuing. - if [ $timedout -gt 0 ]; then - echo "timed out waiting for signal from test program (flush)." - break - fi - - # Read in test routine parameters from signal file, then delete signal file. - param1=`head -1 $startsignal` - param2=`tail -1 $startsignal` - rm $startsignal - - # Check if we're done with verifications, otherwise run the specified verification. - if [ "$param1" = "VERIFICATION_DONE" ]; then - verification_done=1 - echo "all flush verification complete" > $endsignal - else - $testdir/flushrefresh $param1 $param2 - - # Check for core dump - if [ $? -gt 0 ]; then - nerrors=`expr $nerrors + 1` - fi - - echo "verification flush process done" > $endsignal - fi - -done - -# ========================================= -# Run refresh verification on test program. -# ========================================= -if [ $timedout -eq 0 ]; then - until [ $verification_done -eq 2 ]; do - - # Wait for signal from test program that verification routine can run. - before=`TimeStamp` - until [ -s $startsignal ]; do - after=`TimeStamp` - timediff=`expr $after - $before` - if [ $timediff -gt $timeout_length ]; then - nerrors=`expr $nerrors + 1` - timedout=1 - break - fi - done - - # Check to see if we timed out looking for the signal before continuing. - if [ $timedout -gt 0 ]; then - echo "timed out waiting for signal from test program (refresh)." - break - fi - - # Read in test routine parameter from signal file, then delete signal file. - param1=`head -n 1 $startsignal` - rm $startsignal - - # Check if we're done with verifications, otherwise run the specified verification. - if [ "$param1" = "VERIFICATION_DONE" ]; then - verification_done=2 - echo "all refresh verification complete" > $endsignal - else - $testdir/flushrefresh $param1 - - # Check for core dump - if [ $? -gt 0 ]; then - nerrors=`expr $nerrors + 1` - fi - - echo "refresh verifiction process done" > $endsignal - fi - - done -fi - -# ============================================ -# Wait for main to finish up, and end testing. -# ============================================ -wait $pid_main -if test $? -ne 0; then - echo flushrefresh had error - nerrors=`expr $nerrors + 1` -fi - -############################################################################### -## Report and exit -############################################################################### - -if test $nerrors -eq 0 ; then - echo "flush/refresh objects tests passed." - if test -z "$HDF5_NOCLEANUP"; then - # delete the test directory - rm -rf flushrefresh_test - fi - exit 0 -else - echo "flush/refresh objects tests failed with $nerrors errors." - exit 1 -fi diff --git a/test/testlibinfo.sh.in b/test/testlibinfo.sh.in deleted file mode 100644 index d9fee48..0000000 --- a/test/testlibinfo.sh.in +++ /dev/null @@ -1,120 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. - - -# -# Tests for the embedded library information feature. -# Part 1: -# Verify the HDF5 library does contains an exact copy of the content of the -# libhdf5.settings file. -# Part 2: -# If executable is linked with the static hdf5 library (how to determine?), -# verify an executable indeed contains an exact copy of the content of the -# libhdf5.settings file. -# -# Programmer: Albert Cheng -# Sep 18, 2009 - -srcdir=@srcdir@ - -# Determine the configure options of the hdf5 library and executables. - -Shared_Lib=@enable_shared@ -Static_Lib=@enable_static@ -Static_exec=@STATIC_EXEC@ - - -# Print a line-line message left justified in a field of 70 characters. -# -LINEMSG() { - SPACES=" " - echo "Check file $* $SPACES" | cut -c1-70 | tr -d '\012' -} - - -# Print a "SKIP" message -SKIP() { - LINEMSG $* - echo " -SKIP-" -} - -# Function definitions -CHECK_LIBINFO(){ - LINEMSG $1 - # Some systems, like Mac, the strings command inspects library files. Older - # versions of strings may not know newer library format, resulting in - # command errors. Make it read the file as stdin to avoid the problem. - if strings < $1 | grep "SUMMARY OF THE HDF5 CONFIGURATION" > /dev/null; then - echo " PASSED" - else - echo " FAILED" - nerrors=`expr $nerrors + 1` - fi -} - - -# MAIN Body -nerrors=0 -H5_HAVE_EMBEDDED_LIBINFO=`grep '#define H5_HAVE_EMBEDDED_LIBINFO ' ../src/H5pubconf.h` - -# Skip the rest if embedded-libinfo is not enabled. -if [ -z "$H5_HAVE_EMBEDDED_LIBINFO" ]; then - echo "embedded-libinfo is not enabled. Test skipped." - exit 0 -fi - -# The location of HDF library file(s) depends on whether shared lib is -# built too. -if [ -n $Shared_Lib ]; then - h5libdir=../src/.libs - shlib=$(grep dlname ../src/libhdf5.la | sed -e "s/dlname='//" -e "s/'//") -else - h5libdir=../src -fi - -h5libsettings=../src/libhdf5.settings - -# Part 1: -# Verify the HDF5 library does contains an exact copy of the content of the -# libhdf5.settings file. -# Check dynamic library file if built. -if [ x-$Shared_Lib = x-yes ]; then - CHECK_LIBINFO ${h5libdir}/${shlib} -else - SKIP shlib -fi - -# Though rare, libhdf5.a may not have been built. -if [ x-$Static_Lib = x-yes ]; then - CHECK_LIBINFO ${h5libdir}/libhdf5.a -else - SKIP ${h5libdir}/libhdf5.a -fi - -# Check if executables has the lib information only if shared lib is not -# built or static-exec is used. (Don't care static-exec since it affects -# tools binary only.) -if [ x-$Shared_Lib != x-yes ]; then - CHECK_LIBINFO testhdf5 -else - SKIP testhdf5 -fi - - -if [ $nerrors -gt 0 ]; then - echo "***$nerrors errors encountered***" - exit 1 -else - echo "No error encountered" - exit 0 -fi diff --git a/test/testlinks_env.sh.in b/test/testlinks_env.sh.in deleted file mode 100644 index 09074c3..0000000 --- a/test/testlinks_env.sh.in +++ /dev/null @@ -1,42 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Test for external link with environment variable: HDF5_EXT_PREFIX - -srcdir=@srcdir@ - -nerrors=0 - -############################################################################## -############################################################################## -### T H E T E S T S ### -############################################################################## -############################################################################## - -# test for external links with HDF5_EXT_PREFIX -echo "Testing external link with HDF5_EXT_PREFIX" -TEST_NAME=links_env # The test name -TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary -ENVCMD="env HDF5_EXT_PREFIX=.:tmp_links_env" # The environment variable & value -# -# Run the test -echo "$ENVCMD $RUNSERIAL $TEST_BIN" -$ENVCMD $RUNSERIAL $TEST_BIN -exitcode=$? -if [ $exitcode -eq 0 ]; then - echo "Test for HDF5_EXT_PREFIX PASSED" -else - nerrors="`expr $nerrors + 1`" - echo "***Error encountered for HDF5_EXT_PREFIX test***" -fi -exit $nerrors diff --git a/test/testswmr.pwsh.in b/test/testswmr.pwsh.in deleted file mode 100644 index de7a57a..0000000 --- a/test/testswmr.pwsh.in +++ /dev/null @@ -1,519 +0,0 @@ -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Tests for the swmr feature. - -$srcdir = '@srcdir@' -$utils_testdir=@H5_UTILS_TEST_BUILDDIR@ -$testdir=@H5_TEST_BUILDDIR@ - -############################################################################### -## test parameters -############################################################################### - -$Nreaders = 5 # number of readers to launch -$Nrdrs_spa = 3 # number of sparse readers to launch -$Nrecords = 200000 # number of records to write -$Nrecs_rem = 40000 # number of times to shrink -$Nrecs_spa = 20000 # number of records to write in the sparse test -$Nsecs_add = 5 # number of seconds per read interval -$Nsecs_rem = 3 # number of seconds per read interval -$Nsecs_addrem = 8 # number of seconds per read interval -$nerrors = 0 - -############################################################################### -## definitions for message file to coordinate test runs -############################################################################### -$WRITER_MESSAGE = 'SWMR_WRITER_MESSAGE' # The message file created by writer that the open is complete - # This should be the same as the define in "test/swmr_common.h" -$MESSAGE_TIMEOUT = 300 # Message timeout length in secs - # This should be the same as the define in "test/h5test.h" - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -function Test-WithSpaces { - $SPACES=' ' - #Write-Output "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# To wait for the writer message file or till the maximum # of seconds is reached -# $Message is the message file to wait for -# This performs similar function as the routine h5_wait_message() in test/h5test.c -function Wait-Message { - [CmdletBinding()] - param ( - [Parameter(Mandatory, ValueFromPipeline)] - [string]$TestPath, # Get the path of the message file to wait for - [Parameter(Mandatory, ValueFromPipeline)] - [string]$Message # Get the name of the message file to wait for - ) - - PROCESS { - $message = Join-Path -Path $TestPath -ChildPath $Message - $t0 = Get-Date # Get current time - $t1 = $t0 - $difft = New-Timespan -Start $t0 -End $t1 # Initialize the time difference - $mexist = 0 # Indicate whether the message file is found - while ($difft.TotalSeconds -lt $MESSAGE_TIMEOUT) { # Loop till message times out - $t1 = Get-Date # Get current time in seconds - $difft = New-Timespan -Start $t0 -End $t1 # Calculate the time difference - #Write-Output "Check for $message : time=$difft" - if ([System.IO.File]::Exists($message)) { # If message file is found: - $mexist = 1 # indicate the message file is found - Remove-Item $message # remove the message file - break # get out of the while loop - } - } - if ($mexist -eq 0) { - # Issue warning that the writer message file is not found, continue with launching the reader(s) - Write-Warning -Message "$WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds" - } - else { - Write-Output "$WRITER_MESSAGE is found" - } - } -} - -############################################################################### -## Main -## -## Modifications: -## Vailin Choi; July 2013 -## Add waiting of message file before launching the reader(s). -## Due to the implementation of file locking, coordination -## is needed in file opening for the writer/reader tests -## to proceed as expected. -## -############################################################################### - -# Check to see if the VFD specified by the HDF5_DRIVER environment variable -# supports SWMR. -$testprog = Join-Path -Path $utils_testdir -ChildPath swmr_check_compat_vfd.exe -$rp = Start-Process -FilePath $testprog -PassThru -Wait -NoNewWindow -if ($rp.ExitCode -ne 0) { - Write-Output "" - Write-Output "The VFD specified by the HDF5_DRIVER environment variable" - Write-Output "does not support SWMR." - Write-Output "" - Write-Output "SWMR acceptance tests skipped" - Write-Output "" - exit 0 -} - -Set-Location -Path swmr_test -$testdir = Join-Path -Path $testdir -ChildPath swmr_test - -# Loop over index types -$IndexTypeLoop = '-i ea', '-i b2' -foreach ($index_type in $IndexTypeLoop) { - # Try with and without compression - $CompressLoop = '', '-c 5' - foreach ($compress in $CompressLoop) { - Write-Output "" - Write-Output "*******************************************************************************" - Write-Output "** Loop testing parameters: $index_type $compress" - Write-Output "*******************************************************************************" - Write-Output "" - Write-Output "" - Write-Output "###############################################################################" - Write-Output "## Generator test" - Write-Output "###############################################################################" - # Launch the Generator without SWMR_WRITE - Write-Output "launch the swmr_generator" - $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -ArgumentList "$compress $index_type" -PassThru -Wait - if ($rp.ExitCode -ne 0) { - Write-Warning "generator had error" - $nerrors += 1 - } - - # Launch the Generator with SWMR_WRITE - Write-Output "launch the swmr_generator with SWMR_WRITE" - $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -ArgumentList "-s $compress $index_type" -PassThru -Wait - if ($rp.ExitCode -ne 0) { - Write-Warning "generator had error" - $nerrors += 1 - } - - # Check for error and exit if one occurred - #Write-Output "nerrors=$nerrors" - if ($nerrors -ne 0) { - Write-Warning "SWMR tests failed with $nerrors errors." - exit 1 - } - - Write-Output "" - Write-Output "###############################################################################" - Write-Output "## Use H5Fstart_swmr_write() to enable SWMR writing mode" - Write-Output "###############################################################################" - - # Remove any possible writer message file before launching writer - if ([System.IO.File]::Exists($WRITER_MESSAGE)) { # If message file is found - Remove-Item $WRITER_MESSAGE - } - # - # Launch the Writer - Write-Output "launch the swmr_start_writer" - $seed = "" # Put -r command here - $rp = Start-Process -FilePath $testdir/swmr_start_write.exe -NoNewWindow -PassThru -ArgumentList "$compress $index_type $Nrecords $seed" 2>&1 |tee swmr_writer.out - $pid_writer = $rp.id - #Write-Output "pid_writer=$pid_writer" - - # Wait for message from writer process before starting reader(s) - Wait-Message $testdir $WRITER_MESSAGE - - # - # Launch the Readers - #declare -a seeds = ( ... ) - Write-Output "launch $Nreaders swmr_readers" - $pid_readers = @() - $n = 0 - while ($n -lt $Nreaders) { - #seed = "-r ${seeds[$n]}" - $seed = "" - $rp = Start-Process -FilePath $testdir/swmr_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_add $seed" 2>&1 | tee swmr_reader.out.$n - $pid_readers += $rp.id - $n += 1 - } - #Write-Output "pid_readers=$pid_readers" - - # Collect exit code of the readers first because they usually finish - # before the writer. - foreach ($xpid in $pid_readers) { - #Write-Output "checked reader $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "reader had error" - $nerrors += 1 - } - } - - # Collect exit code of the writer - #Write-Output "checked writer $pid_writer" - $result = Wait-Process -Id $pid_writer - if ($result.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } - - # Check for error and exit if one occurred - #Write-Output "nerrors=$nerrors" - if ($nerrors -ne 0) { - Write-Warning "SWMR tests failed with $nerrors errors." - Write-Warning "(Writer and reader output preserved)" - exit 1 - } - - # Clean up output files - Remove-Item swmr_writer.out - Remove-Item swmr_reader.out.* - - Write-Output "" - Write-Output "###############################################################################" - Write-Output "## Writer test - test expanding the dataset" - Write-Output "###############################################################################" - - # Launch the Generator - Write-Output "launch the swmr_generator" - $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -PassThru -Wait -ArgumentList "-s $compress $index_type" - if ($rp.ExitCode -ne 0) { - Write-Warning "generator had error" - $nerrors += 1 - } - - # Remove any possible writer message file before launching writer - Remove-Item $WRITER_MESSAGE - # - # Launch the Writer - Write-Output "launch the swmr_writer" - $seed = "" # Put -r command here - $rp = Start-Process -FilePath $testdir/swmr_writer.exe -NoNewWindow -PassThru -ArgumentList "-o $Nrecords $seed" 2>&1 |tee swmr_writer.out - $pid_writer = $rp.id - #Write-Output "pid_writer=$pid_writer" - - # Wait for message from writer process before starting reader(s) - Wait-Message $testdir $WRITER_MESSAGE - # - # Launch the Readers - #declare -a seeds = ( ... ) - Write-Output "launch $Nreaders swmr_readers" - $pid_readers = @() - $n = 0 - while ($n -lt $Nreaders) { - #seed = "-r ${seeds[$n]}" - $seed = "" - $rp = Start-Process -FilePath $testdir/swmr_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_add $seed" 2>&1 |tee swmr_reader.out.$n - $pid_readers += $rp.id - $n += 1 - } - #Write-Output "pid_readers=$pid_readers" - - # Collect exit code of the readers first because they usually finish - # before the writer. - foreach ($xpid in $pid_readers) { - #Write-Output "checked reader $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "reader had error" - $nerrors += 1 - } - } - - # Collect exit code of the writer - #Write-Output "checked writer $pid_writer" - $result = Wait-Process -Id $pid_writer - if ($result.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } - - # Check for error and exit if one occurred - #Write-Output "nerrors=$nerrors" - if ($nerrors -ne 0) { - Write-Warning "SWMR tests failed with $nerrors errors." - Write-Warning "(Writer and reader output preserved)" - exit 1 - } - - # Clean up output files - Remove-Item swmr_writer.out - Remove-Item swmr_reader.out.* - - Write-Output "" - Write-Output "###############################################################################" - Write-Output "## Remove test - test shrinking the dataset" - Write-Output "###############################################################################" - - # Remove any possible writer message file before launching writer - Remove-Item $WRITER_MESSAGE - # Launch the Remove Writer - Write-Output "launch the swmr_remove_writer" - $seed = "" # Put -r command here - $rp = Start-Process -FilePath $testdir/swmr_remove_writer.exe -NoNewWindow -PassThru -ArgumentList "-o $Nrecs_rem $seed" 2>&1 |tee swmr_writer.out - $pid_writer = $rp.id - #Write-Output "pid_writer=$pid_writer" - - # Wait for message from writer process before starting reader(s) - Wait-Message $testdir $WRITER_MESSAGE - # - # Launch the Remove Readers - #declare -a seeds = ( ... ) - $n = 0 - $pid_readers = @() - Write-Output "launch $Nreaders swmr_remove_readers" - while ($n -lt $Nreaders) { - #seed = "-r ${seeds[$n]}" - $seed = "" - $rp = Start-Process -FilePath $testdir/swmr_remove_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_rem $seed" 2>&1 |tee swmr_reader.out.$n - $pid_readers += $rp.id - $n += 1 - } - #Write-Output "pid_readers=$pid_readers" - - # Collect exit code of the readers first because they usually finish - # before the writer. - foreach ($xpid in $pid_readers) { - #Write-Output "checked reader $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "reader had error" - $nerrors += 1 - } - } - - # Collect exit code of the writer - #Write-Output "checked writer $pid_writer" - $result = Wait-Process -Id $pid_writer - if ($result.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } - - # Check for error and exit if one occurred - #Write-Output "nerrors=$nerrors" - if ($nerrors -ne 0) { - Write-Warning "SWMR tests failed with $nerrors errors." - Write-Warning "(Writer and reader output preserved)" - exit 1 - } - - # Clean up output files - Remove-Item swmr_writer.out - Remove-Item swmr_reader.out.* - - Write-Output "" - Write-Output "###############################################################################" - Write-Output "## Add/remove test - randomly grow or shrink the dataset" - Write-Output "###############################################################################" - - # Launch the Generator - Write-Output "launch the swmr_generator" - $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow-PassThru -Wait -ArgumentList "$compress $index_type" - if ($rp.ExitCode -ne 0) { - Write-Warning "generator had error" - $nerrors += 1 - } - - # Launch the Writer (not in parallel - just to rebuild the datasets) - Write-Output "launch the swmr_writer" - $seed = "" # Put -r command here - $rp = Start-Process -FilePath $testdir/swmr_writer.exe -NoNewWindow -PassThru -Wait -ArgumentList "$Nrecords $seed" - if ($rp.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } - - # Remove any possible writer message file before launching writer - Remove-Item $WRITER_MESSAGE - # - # Launch the Add/Remove Writer - Write-Output "launch the swmr_addrem_writer" - $seed = "" # Put -r command here - $rp = Start-Process -FilePath $testdir/swmr_addrem_writer.exe -NoNewWindow -PassThru -ArgumentList "$Nrecords $seed" 2>&1 |tee swmr_writer.out - $pid_writer = $rp.id - #Write-Output "pid_writer=$pid_writer" - - # Wait for message from writer process before starting reader(s) - Wait-Message $testdir $WRITER_MESSAGE - # - # Launch the Add/Remove Readers - #declare -a seeds = ( ... ) - $n = 0 - $pid_readers = @() - Write-Output "launch $Nreaders swmr_remove_readers" - while ($n -lt $Nreaders) { - #seed = "-r ${seeds[$n]}" - $seed = "" - $rp = Start-Process -FilePath $testdir/swmr_remove_reader.exe -NoNewWindow -PassThru -ArgumentList "$Nsecs_addrem $seed" 2>&1 |tee swmr_reader.out.$n - $pid_readers += $rp.id - $n += 1 - } - #Write-Output "pid_readers=$pid_readers" - - # Collect exit code of the readers first because they usually finish - # before the writer. - foreach ($xpid in $pid_readers) { - #Write-Output "checked reader $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "reader had error" - $nerrors += 1 - } - } - - # Collect exit code of the writer - #Write-Output "checked writer $pid_writer" - $result = Wait-Process -Id $pid_writer - if ($result.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } - - # Check for error and exit if one occurred - #Write-Output "nerrors=$nerrors" - if ($nerrors -ne 0) { - Write-Warning "SWMR tests failed with $nerrors errors." - Write-Warning "(Writer and reader output preserved)" - exit 1 - } - - # Clean up output files - Remove-Item swmr_writer.out - Remove-Item swmr_reader.out.* - - Write-Output "" - Write-Output "###############################################################################" - Write-Output "## Sparse writer test - test writing to random locations in the dataset" - Write-Output "###############################################################################" - - # Launch the Generator - # NOTE: Random seed is shared between readers and writers and is - # created by the generator. - Write-Output "launch the swmr_generator" - $seed = "" # Put -r command here - $rp = Start-Process -FilePath $testdir/swmr_generator.exe -NoNewWindow -PassThru -Wait -ArgumentList "$compress $index_type $seed" - if ($rp.ExitCode -ne 0) { - Write-Warning "generator had error" - $nerrors += 1 - } - - # Remove any possible writer message file before launching writer - Remove-Item $WRITER_MESSAGE - # Launch the Sparse writer - Write-Output "launch the swmr_sparse_writer" - $rp = Start-Process -FilePath $testdir/swmr_sparse_writer.exe -NoNewWindow -PassThru -ArgumentList "$Nrecs_spa" 2>&1 |tee swmr_writer.out - $pid_writer = $rp.Id - #Write-Output "pid_writer=$pid_writer" - - # Wait for message from writer process before starting reader(s) - Wait-Message $testdir $WRITER_MESSAGE - # - # Launch the Sparse readers - $n = 0 - $pid_readers = @() - Write-Output "launch $Nrdrs_spa swmr_sparse_readers" - while ($n -lt $Nrdrs_spa) { - # The sparse reader spits out a LOT of data so it's set to 'quiet' - $rp = Start-Process -FilePath $testdir/swmr_sparse_reader.exe -NoNewWindow -PassThru -ArgumentList "-q $Nrecs_spa" 2>&1 |tee swmr_reader.out.$n - $pid_readers += $rp.id - $n += 1 - } - #Write-Output "pid_readers=$pid_readers" - - # Collect exit code of the writer - #Write-Output "checked writer $pid_writer" - $result = Wait-Process -Id $pid_writer - if ($result.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } - - # Collect exit code of the readers - foreach ($xpid in $pid_readers) { - #Write-Output "checked reader $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "reader had error" - $nerrors += 1 - } - } - - # Check for error and exit if one occurred - #Write-Output "nerrors=$nerrors" - if ($nerrors -ne 0) { - Write-Warning "SWMR tests failed with $nerrors errors." - Write-Warning "(Writer and reader output preserved)" - exit 1 - } - - # Clean up output files - Remove-Item swmr_writer.out - Remove-Item swmr_reader.out.* - } -} - -############################################################################### -## Report and exit -############################################################################### -cd .. -#Write-Output "nerrors=$nerrors" -if ($nerrors -eq 0) { - Write-Output "SWMR tests passed." -# if test -z "$HDF5_NOCLEANUP"; then -# # delete the test directory -# Remove-Item swmr_test -Recurse -# fi - exit 0 -} -else { - Write-Warning "SWMR tests failed with $nerrors errors." - exit 1 -} - diff --git a/test/testswmr.sh.in b/test/testswmr.sh.in deleted file mode 100644 index 771fe4a..0000000 --- a/test/testswmr.sh.in +++ /dev/null @@ -1,563 +0,0 @@ -#! /bin/bash -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Tests for the swmr feature. -# -# Created: -# Albert Cheng, 2009/07/22 - -srcdir=@srcdir@ -utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ -testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ - -############################################################################### -## test parameters -############################################################################### - -Nreaders=5 # number of readers to launch -Nrdrs_spa=3 # number of sparse readers to launch -Nrecords=200000 # number of records to write -Nrecs_rem=40000 # number of times to shrink -Nrecs_spa=20000 # number of records to write in the sparse test -Nsecs_add=5 # number of seconds per read interval -Nsecs_rem=3 # number of seconds per read interval -Nsecs_addrem=8 # number of seconds per read interval -nerrors=0 - -############################################################################### -## definitions for message file to coordinate test runs -############################################################################### -WRITER_MESSAGE=SWMR_WRITER_MESSAGE # The message file created by writer that the open is complete - # This should be the same as the define in "test/swmr_common.h" -MESSAGE_TIMEOUT=300 # Message timeout length in secs - # This should be the same as the define in "test/h5test.h" - -############################################################################### -## short hands and function definitions -############################################################################### -DPRINT=: # Set to "echo Debug:" for debugging printing, - # else ":" for noop. -IFDEBUG=: # Set to null to turn on debugging, else ":" for noop. - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# To wait for the writer message file or till the maximum # of seconds is reached -# $1 is the message file to wait for -# This performs similar function as the routine h5_wait_message() in test/h5test.c -WAIT_MESSAGE() { - message=$1 # Get the name of the message file to wait for - t0=`date +%s` # Get current time in seconds - difft=0 # Initialize the time difference - mexist=0 # Indicate whether the message file is found - while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out - do - t1=`date +%s` # Get current time in seconds - difft=`expr $t1 - $t0` # Calculate the time difference - if [ -e $message ]; then # If message file is found: - mexist=1 # indicate the message file is found - rm $message # remove the message file - break # get out of the while loop - fi - done; - if test $mexist -eq 0; then - # Issue warning that the writer message file is not found, continue with launching the reader(s) - echo warning: $WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds - else - echo $WRITER_MESSAGE is found - fi -} - -############################################################################### -## Main -## -## Modifications: -## Vailin Choi; July 2013 -## Add waiting of message file before launching the reader(s). -## Due to the implementation of file locking, coordination -## is needed in file opening for the writer/reader tests -## to proceed as expected. -## -############################################################################### - -# Check to see if the VFD specified by the HDF5_DRIVER environment variable -# supports SWMR. -$utils_testdir/swmr_check_compat_vfd -rc=$? -if [ $rc -ne 0 ] ; then - echo - echo "The VFD specified by the HDF5_DRIVER environment variable" - echo "does not support SWMR." - echo - echo "SWMR acceptance tests skipped" - echo - exit 0 -fi - -# Parse options (none accepted at this time) -while [ $# -gt 0 ]; do - case "$1" in - *) # unknown option - echo "$0: Unknown option ($1)" - exit 1 - ;; - esac -done - -# HDF5 has several tests that create and delete signal files to communicate -# between processes, and it seems that even though the names of the files are -# different, occasionally the wrong file is deleted, interrupting the flow of -# the test. Running each of these tests in its own directory should eliminate -# the problem. -mkdir swmr_test -for FILE in swmr*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE swmr_test - fi -done - -# With the --disable-shared option, swmr program files are built in the test -# directory, otherwise they are in test/.libs with a corresponding wrapper -# script in the test directory. The programs or wrapper scripts in test should -# always be copied, swmr files in .libs should be copied only if they exists. -if [ -f .libs/swmr ]; then - mkdir swmr_test/.libs - for FILE in .libs/swmr*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE swmr_test/.libs - fi - done -fi - -cd swmr_test - - -# Loop over index types -for index_type in "-i ea" "-i b2" -do - # Try with and without compression - for compress in "" "-c 5" - do - echo - echo "*******************************************************************************" - echo "** Loop testing parameters: $index_type $compress" - echo "*******************************************************************************" - echo - echo - echo "###############################################################################" - echo "## Generator test" - echo "###############################################################################" - # Launch the Generator without SWMR_WRITE - echo launch the swmr_generator - $testdir/swmr_generator $compress $index_type - if test $? -ne 0; then - echo generator had error - nerrors=`expr $nerrors + 1` - fi - - # Launch the Generator with SWMR_WRITE - echo launch the swmr_generator with SWMR_WRITE - $testdir/swmr_generator -s $compress $index_type - if test $? -ne 0; then - echo generator had error - nerrors=`expr $nerrors + 1` - fi - - # Check for error and exit if one occurred - $DPRINT nerrors=$nerrors - if test $nerrors -ne 0 ; then - echo "SWMR tests failed with $nerrors errors." - exit 1 - fi - - echo - echo "###############################################################################" - echo "## Use H5Fstart_swmr_write() to enable SWMR writing mode" - echo "###############################################################################" - - # Remove any possible writer message file before launching writer - rm -f $WRITER_MESSAGE - # - # Launch the Writer - echo launch the swmr_start_writer - seed="" # Put -r command here - $testdir/swmr_start_write $compress $index_type $Nrecords $seed 2>&1 |tee swmr_writer.out & - pid_writer=$! - $DPRINT pid_writer=$pid_writer - - # Wait for message from writer process before starting reader(s) - WAIT_MESSAGE $WRITER_MESSAGE - - # - # Launch the Readers - #declare -a seeds=( ... ) - echo launch $Nreaders swmr_readers - pid_readers="" - n=0 - while [ $n -lt $Nreaders ]; do - #seed="-r ${seeds[$n]}" - seed="" - $testdir/swmr_reader $Nsecs_add $seed 2>&1 |tee swmr_reader.out.$n & - pid_readers="$pid_readers $!" - n=`expr $n + 1` - done - $DPRINT pid_readers=$pid_readers - $IFDEBUG ps - - # Collect exit code of the readers first because they usually finish - # before the writer. - for xpid in $pid_readers; do - $DPRINT checked reader $xpid - wait $xpid - if test $? -ne 0; then - echo reader had error - nerrors=`expr $nerrors + 1` - fi - done - - # Collect exit code of the writer - $DPRINT checked writer $pid_writer - wait $pid_writer - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi - - # Check for error and exit if one occurred - $DPRINT nerrors=$nerrors - if test $nerrors -ne 0 ; then - echo "SWMR tests failed with $nerrors errors." - echo "(Writer and reader output preserved)" - exit 1 - fi - - # Clean up output files - rm -f swmr_writer.out - rm -f swmr_reader.out.* - - echo - echo "###############################################################################" - echo "## Writer test - test expanding the dataset" - echo "###############################################################################" - - # Launch the Generator - echo launch the swmr_generator - $testdir/swmr_generator -s $compress $index_type - if test $? -ne 0; then - echo generator had error - nerrors=`expr $nerrors + 1` - fi - - # Remove any possible writer message file before launching writer - rm -f $WRITER_MESSAGE - # - # Launch the Writer - echo launch the swmr_writer - seed="" # Put -r command here - $testdir/swmr_writer -o $Nrecords $seed 2>&1 |tee swmr_writer.out & - pid_writer=$! - $DPRINT pid_writer=$pid_writer - - # Wait for message from writer process before starting reader(s) - WAIT_MESSAGE $WRITER_MESSAGE - # - # Launch the Readers - #declare -a seeds=( ... ) - echo launch $Nreaders swmr_readers - pid_readers="" - n=0 - while [ $n -lt $Nreaders ]; do - #seed="-r ${seeds[$n]}" - seed="" - $testdir/swmr_reader $Nsecs_add $seed 2>&1 |tee swmr_reader.out.$n & - pid_readers="$pid_readers $!" - n=`expr $n + 1` - done - $DPRINT pid_readers=$pid_readers - $IFDEBUG ps - - # Collect exit code of the readers first because they usually finish - # before the writer. - for xpid in $pid_readers; do - $DPRINT checked reader $xpid - wait $xpid - if test $? -ne 0; then - echo reader had error - nerrors=`expr $nerrors + 1` - fi - done - - # Collect exit code of the writer - $DPRINT checked writer $pid_writer - wait $pid_writer - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi - - # Check for error and exit if one occurred - $DPRINT nerrors=$nerrors - if test $nerrors -ne 0 ; then - echo "SWMR tests failed with $nerrors errors." - echo "(Writer and reader output preserved)" - exit 1 - fi - - # Clean up output files - rm -f swmr_writer.out - rm -f swmr_reader.out.* - - echo - echo "###############################################################################" - echo "## Remove test - test shrinking the dataset" - echo "###############################################################################" - - # Remove any possible writer message file before launching writer - rm -f $WRITER_MESSAGE - # Launch the Remove Writer - echo launch the swmr_remove_writer - seed="" # Put -r command here - $testdir/swmr_remove_writer -o $Nrecs_rem $seed 2>&1 |tee swmr_writer.out & - pid_writer=$! - $DPRINT pid_writer=$pid_writer - - # Wait for message from writer process before starting reader(s) - WAIT_MESSAGE $WRITER_MESSAGE - # - # Launch the Remove Readers - #declare -a seeds=( ... ) - n=0 - pid_readers="" - echo launch $Nreaders swmr_remove_readers - while [ $n -lt $Nreaders ]; do - #seed="-r ${seeds[$n]}" - seed="" - $testdir/swmr_remove_reader $Nsecs_rem $seed 2>&1 |tee swmr_reader.out.$n & - pid_readers="$pid_readers $!" - n=`expr $n + 1` - done - $DPRINT pid_readers=$pid_readers - $IFDEBUG ps - - # Collect exit code of the readers first because they usually finish - # before the writer. - for xpid in $pid_readers; do - $DPRINT checked reader $xpid - wait $xpid - if test $? -ne 0; then - echo reader had error - nerrors=`expr $nerrors + 1` - fi - done - - # Collect exit code of the writer - $DPRINT checked writer $pid_writer - wait $pid_writer - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi - - # Check for error and exit if one occurred - $DPRINT nerrors=$nerrors - if test $nerrors -ne 0 ; then - echo "SWMR tests failed with $nerrors errors." - echo "(Writer and reader output preserved)" - exit 1 - fi - - # Clean up output files - rm -f swmr_writer.out - rm -f swmr_reader.out.* - - echo - echo "###############################################################################" - echo "## Add/remove test - randomly grow or shrink the dataset" - echo "###############################################################################" - - # Launch the Generator - echo launch the swmr_generator - $testdir/swmr_generator $compress $index_type - if test $? -ne 0; then - echo generator had error - nerrors=`expr $nerrors + 1` - fi - - # Launch the Writer (not in parallel - just to rebuild the datasets) - echo launch the swmr_writer - seed="" # Put -r command here - $testdir/swmr_writer $Nrecords $seed - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi - - # Remove any possible writer message file before launching writer - rm -f $WRITER_MESSAGE - # - # Launch the Add/Remove Writer - echo launch the swmr_addrem_writer - seed="" # Put -r command here - $testdir/swmr_addrem_writer $Nrecords $seed 2>&1 |tee swmr_writer.out & - pid_writer=$! - $DPRINT pid_writer=$pid_writer - - # Wait for message from writer process before starting reader(s) - WAIT_MESSAGE $WRITER_MESSAGE - # - # Launch the Add/Remove Readers - #declare -a seeds=( ... ) - n=0 - pid_readers="" - echo launch $Nreaders swmr_remove_readers - while [ $n -lt $Nreaders ]; do - #seed="-r ${seeds[$n]}" - seed="" - $testdir/swmr_remove_reader $Nsecs_addrem $seed 2>&1 |tee swmr_reader.out.$n & - pid_readers="$pid_readers $!" - n=`expr $n + 1` - done - $DPRINT pid_readers=$pid_readers - $IFDEBUG ps - - # Collect exit code of the readers first because they usually finish - # before the writer. - for xpid in $pid_readers; do - $DPRINT checked reader $xpid - wait $xpid - if test $? -ne 0; then - echo reader had error - nerrors=`expr $nerrors + 1` - fi - done - - # Collect exit code of the writer - $DPRINT checked writer $pid_writer - wait $pid_writer - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi - - # Check for error and exit if one occurred - $DPRINT nerrors=$nerrors - if test $nerrors -ne 0 ; then - echo "SWMR tests failed with $nerrors errors." - echo "(Writer and reader output preserved)" - exit 1 - fi - - # Clean up output files - rm -f swmr_writer.out - rm -f swmr_reader.out.* - - echo - echo "###############################################################################" - echo "## Sparse writer test - test writing to random locations in the dataset" - echo "###############################################################################" - - # Launch the Generator - # NOTE: Random seed is shared between readers and writers and is - # created by the generator. - echo launch the swmr_generator - seed="" # Put -r command here - $testdir/swmr_generator $compress $index_type $seed - if test $? -ne 0; then - echo generator had error - nerrors=`expr $nerrors + 1` - fi - - # Remove any possible writer message file before launching writer - rm -f $WRITER_MESSAGE - # Launch the Sparse writer - echo launch the swmr_sparse_writer - nice -n 20 $testdir/swmr_sparse_writer $Nrecs_spa 2>&1 |tee swmr_writer.out & - pid_writer=$! - $DPRINT pid_writer=$pid_writer - - # Wait for message from writer process before starting reader(s) - WAIT_MESSAGE $WRITER_MESSAGE - # - # Launch the Sparse readers - n=0 - pid_readers="" - echo launch $Nrdrs_spa swmr_sparse_readers - while [ $n -lt $Nrdrs_spa ]; do - # The sparse reader spits out a LOT of data so it's set to 'quiet' - $testdir/swmr_sparse_reader -q $Nrecs_spa 2>&1 |tee swmr_reader.out.$n & - pid_readers="$pid_readers $!" - n=`expr $n + 1` - done - $DPRINT pid_readers=$pid_readers - $IFDEBUG ps - - # Collect exit code of the writer - $DPRINT checked writer $pid_writer - wait $pid_writer - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi - - # Collect exit code of the readers - for xpid in $pid_readers; do - $DPRINT checked reader $xpid - wait $xpid - if test $? -ne 0; then - echo reader had error - nerrors=`expr $nerrors + 1` - fi - done - - # Check for error and exit if one occurred - $DPRINT nerrors=$nerrors - if test $nerrors -ne 0 ; then - echo "SWMR tests failed with $nerrors errors." - echo "(Writer and reader output preserved)" - exit 1 - fi - - # Clean up output files - rm -f swmr_writer.out - rm -f swmr_reader.out.* - done -done - -############################################################################### -## Report and exit -############################################################################### -cd .. -$DPRINT nerrors=$nerrors -if test $nerrors -eq 0 ; then - echo "SWMR tests passed." - if test -z "$HDF5_NOCLEANUP"; then - # delete the test directory - rm -rf swmr_test - fi - exit 0 -else - echo "SWMR tests failed with $nerrors errors." - exit 1 -fi - diff --git a/test/testvds_env.sh.in b/test/testvds_env.sh.in deleted file mode 100644 index 39f13a5..0000000 --- a/test/testvds_env.sh.in +++ /dev/null @@ -1,44 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Test for external file with environment variable: HDF5_VDS_PREFIX - -srcdir=@srcdir@ - -nerrors=0 - -############################################################################## -############################################################################## -### T H E T E S T S ### -############################################################################## -############################################################################## - -# test for VDS with HDF5_VDS_PREFIX -echo "Testing basic virtual dataset I/O via H5Pset_vds_prefix(): all selection with ENV prefix" -TEST_NAME=vds_env # The test name -TEST_BIN=`pwd`/$TEST_NAME # The path of the test binary -ENVCMD="env HDF5_VDS_PREFIX=\${ORIGIN}/tmp_vds_env" # Set the environment variable & value -UNENVCMD="unset HDF5_VDS_PREFIX" # Unset the environment variable & value -# -# Run the test -# echo "$ENVCMD $RUNSERIAL $TEST_BIN" -$ENVCMD $RUNSERIAL $TEST_BIN -exitcode=$? -if [ $exitcode -eq 0 ]; then - echo "Test prefix for HDF5_VDS_PREFIX PASSED" -else - nerrors="`expr $nerrors + 1`" - echo "***Error encountered for HDF5_VDS_PREFIX test***" -fi -$UNENVCMD -exit $nerrors diff --git a/test/testvdsswmr.pwsh.in b/test/testvdsswmr.pwsh.in deleted file mode 100644 index bf5aabb..0000000 --- a/test/testvdsswmr.pwsh.in +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright by The HDF Group. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Tests for the swmr feature using virtual datasets. - -$srcdir = '@srcdir@' -$utils_testdir=@H5_UTILS_TEST_BUILDDIR@ -$testdir=@H5_TEST_BUILDDIR@ - -############################################################################### -## test parameters -############################################################################### - -$Nwriters = 6 # number of writers (1 per source dataset) -$Nreaders = 5 # number of readers to launch -$nerrors = 0 - -############################################################################### -## definitions for message file to coordinate test runs -############################################################################### -$WRITER_MESSAGE = 'SWMR_WRITER_MESSAGE' # The message file created by writer that the open is complete - # This should be the same as the define in "test/swmr_common.h" -$MESSAGE_TIMEOUT = 300 # Message timeout length in secs - # This should be the same as the define in "test/h5test.h" - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -function Test-WithSpaces { - $SPACES=' ' - #Write-Output "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# To wait for the writer message file or till the maximum # of seconds is reached -# $Message is the message file to wait for -# This performs similar function as the routine h5_wait_message() in test/h5test.c -function Wait-Message { - [CmdletBinding()] - param ( - [Parameter(Mandatory, ValueFromPipeline)] - [string]$TestPath, # Get the path of the message file to wait for - [Parameter(Mandatory, ValueFromPipeline)] - [string]$Message # Get the name of the message file to wait for - ) - - PROCESS { - $message = Join-Path -Path $TestPath -ChildPath $Message - $t0 = Get-Date # Get current time - $t1 = $t0 - $difft = New-Timespan -Start $t0 -End $t1 # Initialize the time difference - $mexist = 0 # Indicate whether the message file is found - while ($difft.TotalSeconds -lt $MESSAGE_TIMEOUT) { # Loop till message times out - $t1 = Get-Date # Get current time in seconds - $difft = New-Timespan -Start $t0 -End $t1 # Calculate the time difference - #Write-Output "Check for $message : time=$difft" - if ([System.IO.File]::Exists($message)) { # If message file is found: - $mexist = 1 # indicate the message file is found - Remove-Item $message # remove the message file - break # get out of the while loop - } - } - if ($mexist -eq 0) { - # Issue warning that the writer message file is not found, continue with launching the reader(s) - Write-Warning -Message "$WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds" - } - else { - Write-Output "$WRITER_MESSAGE is found" - } - } -} - -############################################################################### -## Main -############################################################################### - -# Check to see if the VFD specified by the HDF5_DRIVER environment variable -# supports SWMR. -$testprog = Join-Path -Path $utils_testdir -ChildPath swmr_check_compat_vfd.exe -$rp = Start-Process -FilePath $testprog -PassThru -Wait -NoNewWindow -if ($rp.ExitCode -ne 0) { - Write-Output "" - Write-Output "The VFD specified by the HDF5_DRIVER environment variable" - Write-Output "does not support SWMR." - Write-Output "" - Write-Output "SWMR acceptance tests skipped" - Write-Output "" - exit 0 -} - -Set-Location -Path vds_swmr_test -$testdir = Join-Path -Path $testdir -ChildPath vds_swmr_test - -Write-Output "" -Write-Output "###############################################################################" -Write-Output "## Basic VDS SWMR test - writing to a tiled plane" -Write-Output "###############################################################################" - -# Launch the file generator -Write-Output "launch the swmr_generator" -$rp = Start-Process -FilePath $testdir/vds_swmr_gen.exe -NoNewWindow -PassThru -Wait -if ($rp.ExitCode -ne 0) { - Write-Warning "generator had error" - $nerrors += 1 -} - -# Check for error and exit if one occurred -#Write-Output "nerrors=$nerrors" -if ($nerrors -ne 0) { - Write-Warning "VDS SWMR tests failed with $nerrors errors." - exit 1 -} - -# Launch the writers -Write-Output "launch the $Nwriters SWMR VDS writers (1 per source)" -$pid_writers = @() -$n = 0 -while ($n -lt $Nwriters) { - $rp = Start-Process -FilePath $testdir/vds_swmr_writer.exe -NoNewWindow -PassThru -ArgumentList "$n" 2>&1 | tee swmr_writer.out.$n - $pid_writers += $rp.id - $n += 1 -} -#Write-Output "pid_writers=$pid_writers" - -# Sleep to ensure that the writers have started -Start-Sleep -Seconds 3 - -# Launch the readers -Write-Output "launch $Nreaders SWMR readers" -$pid_readers = @() -$n = 0 -while ($n -lt $Nreaders) { - $rp = Start-Process -FilePath $testdir/vds_swmr_reader.exe -NoNewWindow -PassThru 2>&1 | tee swmr_reader.out.$n - $pid_readers += $rp.id - $n += 1 -} -#Write-Output "pid_readers=$pid_readers" - -# Collect exit code of the writers -foreach ($xpid in $pid_writers) { - #Write-Output "checked writer $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "writer had error" - $nerrors += 1 - } -} - -# Collect exit code of the readers -# (they usually finish after the writers) -foreach ($xpid in $pid_readers) { - #Write-Output "checked reader $xpid" - $result = Wait-Process -Id $xpid - if ($result.ExitCode -ne 0) { - Write-Warning "reader had error" - $nerrors += 1 - } -} - -# Check for error and exit if one occurred -#Write-Output "nerrors=$nerrors" -if ($nerrors -ne 0) { - Write-Warning "VDS SWMR tests failed with $nerrors errors." - exit 1 -} - -############################################################################### -## Report and exit -############################################################################### -cd .. -#Write-Output "nerrors=$nerrors" -if ($nerrors -eq 0) { - Write-Output "VDS SWMR tests passed." -# if test -z "$HDF5_NOCLEANUP"; then -# # delete the test directory -# Remove-Item vds_swmr_test -Recurse -# fi - exit 0 -} -else { - Write-Warning "VDS SWMR tests failed with $nerrors errors." - exit 1 -} - diff --git a/test/testvdsswmr.sh.in b/test/testvdsswmr.sh.in deleted file mode 100644 index 399fdef..0000000 --- a/test/testvdsswmr.sh.in +++ /dev/null @@ -1,233 +0,0 @@ -#! /bin/bash -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -# Tests for the swmr feature using virtual datasets. -# -# Created: -# Dana Robinson, November 2015 - -srcdir=@srcdir@ -utils_testdir=@abs_top_builddir@/@H5_UTILS_TEST_BUILDDIR@ -testdir=@abs_top_builddir@/@H5_TEST_BUILDDIR@ - -############################################################################### -## test parameters -############################################################################### - -Nwriters=6 # number of writers (1 per source dataset) -Nreaders=5 # number of readers to launch -nerrors=0 - -############################################################################### -## definitions for message file to coordinate test runs -############################################################################### -WRITER_MESSAGE=SWMR_WRITER_MESSAGE # The message file created by writer that the open is complete - # This should be the same as the define in "test/swmr_common.h" -MESSAGE_TIMEOUT=300 # Message timeout length in secs - # This should be the same as the define in "test/h5test.h" - -############################################################################### -## short hands and function definitions -############################################################################### -DPRINT=: # Set to "echo Debug:" for debugging printing, - # else ":" for noop. -IFDEBUG=: # Set to null to turn on debugging, else ":" for noop. - -# Print a line-line message left justified in a field of 70 characters -# beginning with the word "Testing". -# -TESTING() { - SPACES=" " - echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' -} - -# To wait for the writer message file or till the maximum # of seconds is reached -# $1 is the message file to wait for -# This performs similar function as the routine h5_wait_message() in test/h5test.c -WAIT_MESSAGE() { - message=$1 # Get the name of the message file to wait for - t0=`date +%s` # Get current time in seconds - difft=0 # Initialize the time difference - mexist=0 # Indicate whether the message file is found - while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out - do - t1=`date +%s` # Get current time in seconds - difft=`expr $t1 - $t0` # Calculate the time difference - if [ -e $message ]; then # If message file is found: - mexist=1 # indicate the message file is found - rm $message # remove the message file - break # get out of the while loop - fi - done; - if test $mexist -eq 0; then - # Issue warning that the writer message file is not found, continue with launching the reader(s) - echo warning: $WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds - else - echo $WRITER_MESSAGE is found - fi -} - -############################################################################### -## Main -############################################################################### - -# Check to see if the VFD specified by the HDF5_DRIVER environment variable -# supports SWMR. -$utils_testdir/swmr_check_compat_vfd -rc=$? -if [ $rc -ne 0 ] ; then - echo - echo "The VFD specified by the HDF5_DRIVER environment variable" - echo "does not support SWMR." - echo - echo "SWMR acceptance tests skipped" - echo - exit 0 -fi - -# Parse options (none accepted at this time) -while [ $# -gt 0 ]; do - case "$1" in - *) # unknown option - echo "$0: Unknown option ($1)" - exit 1 - ;; - esac -done - -# HDF5 has several tests that create and delete signal files to communicate -# between processes, and it seems that even though the names of the files are -# different, occasionally the wrong file is deleted, interrupting the flow of -# the test. Running each of these tests in its own directory should eliminate -# the problem. -mkdir vds_swmr_test -for FILE in vds_swmr*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE vds_swmr_test - fi -done - -# With the --disable-shared option, swmr program files are built in the test -# directory, otherwise they are in test/.libs with a corresponding wrapper -# script in the test directory. The programs or wrapper scripts in test should -# always be copied, swmr files in .libs should be copied only if they exists. -if [ -f .libs/vds_swmr_writer ]; then - mkdir vds_swmr_test/.libs - for FILE in .libs/vds_swmr*; do - case "$FILE" in - *.o) continue ;; ## don't copy the .o files - esac - if test -f "$FILE" ; then - cp $FILE vds_swmr_test/.libs - fi - done -fi - -cd vds_swmr_test - - -echo -echo "###############################################################################" -echo "## Basic VDS SWMR test - writing to a tiled plane" -echo "###############################################################################" - -# Launch the file generator -echo launch the generator -$testdir/vds_swmr_gen -if test $? -ne 0; then - echo generator had error - nerrors=`expr $nerrors + 1` -fi - -# Check for error and exit if one occurred -$DPRINT nerrors=$nerrors -if test $nerrors -ne 0 ; then - echo "VDS SWMR tests failed with $nerrors errors." - exit 1 -fi - -# Launch the writers -echo "launch the $Nwriters SWMR VDS writers (1 per source)" -pid_writers="" -n=0 -while [ $n -lt $Nwriters ]; do - $testdir/vds_swmr_writer $n & - pid_writers="$pid_writers $!" - n=`expr $n + 1` -done -$DPRINT pid_writers=$pid_writers -$IFDEBUG ps - -# Sleep to ensure that the writers have started -sleep 3 - -# Launch the readers -echo launch $Nreaders SWMR readers -pid_readers="" -n=0 -while [ $n -lt $Nreaders ]; do - $testdir/vds_swmr_reader & - pid_readers="$pid_readers $!" - n=`expr $n + 1` -done -$DPRINT pid_readers=$pid_readers -$IFDEBUG ps - -# Collect exit code of the writers -for xpid in $pid_writers; do - $DPRINT checked writer $xpid - wait $xpid - if test $? -ne 0; then - echo writer had error - nerrors=`expr $nerrors + 1` - fi -done - -# Collect exit code of the readers -# (they usually finish after the writers) -for xpid in $pid_readers; do - $DPRINT checked reader $xpid - wait $xpid - if test $? -ne 0; then - echo reader had error - nerrors=`expr $nerrors + 1` - fi -done - -# Check for error and exit if one occurred -$DPRINT nerrors=$nerrors -if test $nerrors -ne 0 ; then - echo "VDS SWMR tests failed with $nerrors errors." - exit 1 -fi - -############################################################################### -## Report and exit -############################################################################### -cd .. -$DPRINT nerrors=$nerrors -if test $nerrors -eq 0 ; then - echo "VDS SWMR tests passed." - if test -z "$HDF5_NOCLEANUP"; then - # delete the test directory - rm -rf vds_swmr_test - fi - exit 0 -else - echo "VDS SWMR tests failed with $nerrors errors." - exit 1 -fi - -- cgit v0.12 From 1fb3743f04df101c7245ce045b67d371d462fd70 Mon Sep 17 00:00:00 2001 From: David Young Date: Thu, 10 Mar 2022 13:54:20 -0600 Subject: Fix JNI bug, fix warnings noticed in MSVC CI, be modern & portable (#1480) --- java/src/jni/h5util.c | 8 ++++---- src/H5VMprivate.h | 4 ++-- src/H5system.c | 4 ++-- test/external.c | 7 +++---- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/java/src/jni/h5util.c b/java/src/jni/h5util.c index 5a01dc9..2de5d87 100644 --- a/java/src/jni/h5util.c +++ b/java/src/jni/h5util.c @@ -813,7 +813,7 @@ h5str_sprintf(JNIEnv *env, h5str_t *out_str, hid_t container, hid_t tid, void *i if (NULL == (this_str = (char *)HDmalloc(this_len))) H5_OUT_OF_MEMORY_ERROR(ENVONLY, "h5str_sprintf: failed to allocate string buffer"); - if (HDsnprintf(this_str, "%g", this_len, tmp_double) < 0) + if (HDsnprintf(this_str, this_len, "%g", tmp_double) < 0) H5_JNI_FATAL_ERROR(ENVONLY, "h5str_sprintf: HDsnprintf failure"); break; @@ -1160,11 +1160,11 @@ h5str_sprintf(JNIEnv *env, h5str_t *out_str, hid_t container, hid_t tid, void *i H5Otoken_to_str(tid, &oi.token, &token_str); - size_t this_len = 64 + strlen(token_str) + 1; - if (NULL == (this_str = (char *)HDmalloc(this_len))) + size_t that_len = 64 + strlen(token_str) + 1; + if (NULL == (this_str = HDmalloc(that_len))) H5_OUT_OF_MEMORY_ERROR( ENVONLY, "h5str_sprintf: failed to allocate string buffer"); - if (HDsnprintf(this_str, this_len, "%lu:%s", oi.fileno, token_str) < + if (HDsnprintf(this_str, that_len, "%lu:%s", oi.fileno, token_str) < 0) H5_JNI_FATAL_ERROR(ENVONLY, "h5str_sprintf: HDsnprintf failure"); diff --git a/src/H5VMprivate.h b/src/H5VMprivate.h index 0d3bd0f..e773bae 100644 --- a/src/H5VMprivate.h +++ b/src/H5VMprivate.h @@ -393,8 +393,8 @@ static const unsigned char LogTable256[] = { static inline unsigned H5_ATTR_UNUSED H5VM_log2_gen(uint64_t n) { - unsigned r; /* r will be log2(n) */ - register unsigned int t, tt, ttt; /* temporaries */ + unsigned r; /* r will be log2(n) */ + unsigned int t, tt, ttt; /* temporaries */ if ((ttt = (unsigned)(n >> 32))) if ((tt = (unsigned)(n >> 48))) diff --git a/src/H5system.c b/src/H5system.c index ee9077e..a369e3d 100644 --- a/src/H5system.c +++ b/src/H5system.c @@ -862,7 +862,7 @@ H5_nanosleep(uint64_t nanosec) #else - const uint64_t nanosec_per_sec = 1000 * 1000 * 1000; + const uint64_t nanosec_per_sec = 1000 * 1000L * 1000; struct timespec sleeptime; /* Struct to hold time to sleep */ /* Set up time to sleep @@ -1033,7 +1033,7 @@ H5_get_option(int argc, const char *const *argv, const char *opts, const struct HDfree(arg); } else { - register char *cp; /* pointer into current token */ + char *cp; /* pointer into current token */ /* short command line option */ optchar = argv[H5_optind][sp]; diff --git a/test/external.c b/test/external.c index 11185b3..bb86cde 100644 --- a/test/external.c +++ b/test/external.c @@ -166,8 +166,7 @@ test_non_extendible(hid_t file) if (file_size != (max_size[0] * sizeof(int))) { H5_FAILED(); HDputs(" Wrong file size."); - HDprintf(" got: %lu\n ans: %lu\n", (unsigned long)file_size, - (unsigned long)max_size[0] * sizeof(int)); + HDprintf(" got: %" PRIuHSIZE "\n ans: %" PRIuHSIZE "\n", file_size, max_size[0] * sizeof(int)); goto error; } @@ -986,11 +985,11 @@ test_path_absolute(hid_t fapl) if (NULL == HDgetcwd(cwdpath, sizeof(cwdpath))) TEST_ERROR for (i = 0; i < N_EXT_FILES; i++) { - HDsnprintf(filename, sizeof(filename), "%s%sextern_%dr.raw", cwdpath, H5_DIR_SEPS, (int)i + 1); + HDsnprintf(filename, sizeof(filename), "%s%sextern_%zur.raw", cwdpath, H5_DIR_SEPS, i + 1); #if defined(H5_HAVE_WINDOW_PATH) /* For windows, test path-absolute case (\dir\file.raw) for the second file */ if (i == 1) - HDsnprintf(filename, sizeof(filename), "%s%sextern_%dr.raw", cwdpath + 2, H5_DIR_SEPS, i + 1); + HDsnprintf(filename, sizeof(filename), "%s%sextern_%zur.raw", cwdpath + 2, H5_DIR_SEPS, i + 1); #endif if (H5Pset_external(dcpl, filename, (off_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0) FAIL_STACK_ERROR -- cgit v0.12 From 01209d277767cc66d11d4c1ef874ed493000f78c Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Thu, 10 Mar 2022 14:14:05 -0800 Subject: Removes remaining register keywords (#1481) --- hl/tools/gif2h5/gif2mem.c | 32 +++++++++--------- hl/tools/gif2h5/hdfgifwr.c | 14 ++++---- tools/lib/h5tools.c | 2 +- tools/lib/h5tools_str.c | 8 ++--- tools/src/h5perf/pio_engine.c | 2 +- tools/src/h5perf/pio_perf.c | 65 ++++++++++++++++++------------------- tools/src/h5perf/sio_engine.c | 2 +- tools/src/h5perf/sio_perf.c | 43 ++++++++++++------------ tools/test/h5dump/h5dumpgentest.c | 6 ++-- tools/test/perform/pio_standalone.c | 2 +- tools/test/perform/sio_standalone.c | 2 +- tools/test/perform/zip_perf.c | 6 ++-- 12 files changed, 91 insertions(+), 93 deletions(-) diff --git a/hl/tools/gif2h5/gif2mem.c b/hl/tools/gif2h5/gif2mem.c index 2c2225e..44e18e0 100644 --- a/hl/tools/gif2h5/gif2mem.c +++ b/hl/tools/gif2h5/gif2mem.c @@ -49,22 +49,22 @@ Gif2Mem(GIFBYTE *MemGif, GIFTOMEM *GifMemoryStruct) GIFCOMMENT ** gifComment; /* Comment Extension structure */ GIFGRAPHICCONTROL **gifGraphicControl; /* Graphic Control Extension strct */ - register GIFWORD i; /* Loop counter */ - GIFBYTE Identifier; /* Extension block identifier holder */ - GIFBYTE Label; /* Extension block label holder */ - GIFBYTE ImageCount; /* Count of the number of images in the file */ - GIFBYTE ImageArray; /* Keep the size of the array to store Images */ - GIFBYTE CommentCount; - GIFBYTE CommentArray; - GIFBYTE ApplicationCount; - GIFBYTE ApplicationArray; - GIFBYTE PlainTextCount; - GIFBYTE PlainTextArray; - GIFBYTE GCEflag; - GIFBYTE aTemp; - GIFBYTE j; - GIFBYTE w; /* Two more variables needed only while testing */ - GIFBYTE * b; /* Endian Ordering */ + GIFWORD i; /* Loop counter */ + GIFBYTE Identifier; /* Extension block identifier holder */ + GIFBYTE Label; /* Extension block label holder */ + GIFBYTE ImageCount; /* Count of the number of images in the file */ + GIFBYTE ImageArray; /* Keep the size of the array to store Images */ + GIFBYTE CommentCount; + GIFBYTE CommentArray; + GIFBYTE ApplicationCount; + GIFBYTE ApplicationArray; + GIFBYTE PlainTextCount; + GIFBYTE PlainTextArray; + GIFBYTE GCEflag; + GIFBYTE aTemp; + GIFBYTE j; + GIFBYTE w; /* Two more variables needed only while testing */ + GIFBYTE *b; /* Endian Ordering */ /* Allocate memory for the GIF structures */ /* Plug the structs into GifMemoryStruct at the end */ diff --git a/hl/tools/gif2h5/hdfgifwr.c b/hl/tools/gif2h5/hdfgifwr.c index 21b14d1..7126da9 100644 --- a/hl/tools/gif2h5/hdfgifwr.c +++ b/hl/tools/gif2h5/hdfgifwr.c @@ -188,13 +188,13 @@ hdfWriteGIF(FILE *fp, byte *pic, int ptype, int w, int h, const byte *rmap, cons static void compress(int init_bits, FILE *outfile, byte *data, int len) { - register long fcode; - register int i = 0; - register int c; - register int ent; - register int disp; - register int hsize_reg; - register int hshift; + long fcode; + int i = 0; + int c; + int ent; + int disp; + int hsize_reg; + int hshift; /* * Set up the globals: g_init_bits - initial number of bits g_outfile - diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index da55136..c7dba25 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -1052,7 +1052,7 @@ done: H5_ATTR_PURE static size_t h5tools_count_ncols(const char *s) { - register size_t i; + size_t i; for (i = 0; *s; s++) if (*s >= ' ') diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c index 1fb2c68..7ad6a65 100644 --- a/tools/lib/h5tools_str.c +++ b/tools/lib/h5tools_str.c @@ -1401,10 +1401,10 @@ h5tools_str_sprint_reference(h5tools_str_t *str, H5R_ref_t *ref_vp) static char * h5tools_escape(char *s /*in,out*/, size_t size) { - register size_t i; - const char * escape; - char octal[8]; - size_t n = HDstrlen(s); + size_t i; + const char *escape; + char octal[8]; + size_t n = HDstrlen(s); for (i = 0; i < n; i++) { switch (s[i]) { diff --git a/tools/src/h5perf/pio_engine.c b/tools/src/h5perf/pio_engine.c index e316245..1baaca2 100644 --- a/tools/src/h5perf/pio_engine.c +++ b/tools/src/h5perf/pio_engine.c @@ -420,7 +420,7 @@ pio_create_filename(iotype iot, const char *base_name, char *fullname, size_t si /* If the prefix specifies the HDF5_PARAPREFIX directory, then * default to using the "/tmp/$USER" or "/tmp/$LOGIN" * directory instead. */ - register char *user, *login, *subdir; + char *user, *login, *subdir; user = HDgetenv("USER"); login = HDgetenv("LOGIN"); diff --git a/tools/src/h5perf/pio_perf.c b/tools/src/h5perf/pio_perf.c index c233684..003c4f2 100644 --- a/tools/src/h5perf/pio_perf.c +++ b/tools/src/h5perf/pio_perf.c @@ -200,7 +200,7 @@ static void output_results(const struct options *options, const char *name, min off_t data_size); static void output_times(const struct options *options, const char *name, minmax *table, int table_size); static void output_report(const char *fmt, ...); -static void print_indent(register int indent); +static void print_indent(int indent); static void usage(const char *prog); static void report_parameters(struct options *opts); static off_t squareo(off_t); @@ -336,7 +336,7 @@ run_test_loop(struct options *opts) /* start with max_num_procs and decrement it by half for each loop. */ /* if performance needs restart, fewer processes may be needed. */ for (num_procs = opts->max_num_procs; num_procs >= opts->min_num_procs; num_procs >>= 1) { - register size_t buf_size; + size_t buf_size; parms.num_procs = num_procs; @@ -411,34 +411,34 @@ run_test_loop(struct options *opts) static int run_test(iotype iot, parameters parms, struct options *opts) { - results res; - register int i, ret_value = SUCCESS; - int comm_size; - off_t raw_size; - minmax * write_mpi_mm_table = NULL; - minmax * write_mm_table = NULL; - minmax * write_gross_mm_table = NULL; - minmax * write_raw_mm_table = NULL; - minmax * read_mpi_mm_table = NULL; - minmax * read_mm_table = NULL; - minmax * read_gross_mm_table = NULL; - minmax * read_raw_mm_table = NULL; - minmax * read_open_mm_table = NULL; - minmax * read_close_mm_table = NULL; - minmax * write_open_mm_table = NULL; - minmax * write_close_mm_table = NULL; - minmax write_mpi_mm = {0.0, 0.0, 0.0, 0}; - minmax write_mm = {0.0, 0.0, 0.0, 0}; - minmax write_gross_mm = {0.0, 0.0, 0.0, 0}; - minmax write_raw_mm = {0.0, 0.0, 0.0, 0}; - minmax read_mpi_mm = {0.0, 0.0, 0.0, 0}; - minmax read_mm = {0.0, 0.0, 0.0, 0}; - minmax read_gross_mm = {0.0, 0.0, 0.0, 0}; - minmax read_raw_mm = {0.0, 0.0, 0.0, 0}; - minmax read_open_mm = {0.0, 0.0, 0.0, 0}; - minmax read_close_mm = {0.0, 0.0, 0.0, 0}; - minmax write_open_mm = {0.0, 0.0, 0.0, 0}; - minmax write_close_mm = {0.0, 0.0, 0.0, 0}; + results res; + int i, ret_value = SUCCESS; + int comm_size; + off_t raw_size; + minmax *write_mpi_mm_table = NULL; + minmax *write_mm_table = NULL; + minmax *write_gross_mm_table = NULL; + minmax *write_raw_mm_table = NULL; + minmax *read_mpi_mm_table = NULL; + minmax *read_mm_table = NULL; + minmax *read_gross_mm_table = NULL; + minmax *read_raw_mm_table = NULL; + minmax *read_open_mm_table = NULL; + minmax *read_close_mm_table = NULL; + minmax *write_open_mm_table = NULL; + minmax *write_close_mm_table = NULL; + minmax write_mpi_mm = {0.0, 0.0, 0.0, 0}; + minmax write_mm = {0.0, 0.0, 0.0, 0}; + minmax write_gross_mm = {0.0, 0.0, 0.0, 0}; + minmax write_raw_mm = {0.0, 0.0, 0.0, 0}; + minmax read_mpi_mm = {0.0, 0.0, 0.0, 0}; + minmax read_mm = {0.0, 0.0, 0.0, 0}; + minmax read_gross_mm = {0.0, 0.0, 0.0, 0}; + minmax read_raw_mm = {0.0, 0.0, 0.0, 0}; + minmax read_open_mm = {0.0, 0.0, 0.0, 0}; + minmax read_close_mm = {0.0, 0.0, 0.0, 0}; + minmax write_open_mm = {0.0, 0.0, 0.0, 0}; + minmax write_close_mm = {0.0, 0.0, 0.0, 0}; raw_size = parms.num_files * (off_t)parms.num_dsets * (off_t)parms.num_bytes; parms.io_type = iot; @@ -1098,10 +1098,9 @@ output_report(const char *fmt, ...) * things. * Return: Nothing * Programmer: Bill Wendling, 29. October 2001 - * Modifications: */ static void -print_indent(register int indent) +print_indent(int indent) { int myrank; @@ -1278,7 +1277,7 @@ report_parameters(struct options *opts) static struct options * parse_command_line(int argc, const char *const *argv) { - register int opt; + int opt; struct options *cl_opts; cl_opts = (struct options *)malloc(sizeof(struct options)); diff --git a/tools/src/h5perf/sio_engine.c b/tools/src/h5perf/sio_engine.c index 95ec3ce..bdd2c08 100644 --- a/tools/src/h5perf/sio_engine.c +++ b/tools/src/h5perf/sio_engine.c @@ -328,7 +328,7 @@ sio_create_filename(iotype iot, const char *base_name, char *fullname, size_t si /* If the prefix specifies the HDF5_PREFIX directory, then * default to using the "/tmp/$USER" or "/tmp/$LOGIN" * directory instead. */ - register char *user, *login, *subdir; + char *user, *login, *subdir; user = HDgetenv("USER"); login = HDgetenv("LOGIN"); diff --git a/tools/src/h5perf/sio_perf.c b/tools/src/h5perf/sio_perf.c index 87b9d65..dc2e15e 100644 --- a/tools/src/h5perf/sio_perf.c +++ b/tools/src/h5perf/sio_perf.c @@ -173,7 +173,7 @@ static void accumulate_minmax_stuff(const minmax *mm, int count, minm static void output_results(const struct options *options, const char *name, minmax *table, int table_size, off_t data_size); static void output_report(const char *fmt, ...); -static void print_indent(register int indent); +static void print_indent(int indent); static void usage(const char *prog); static void report_parameters(struct options *opts); @@ -299,25 +299,25 @@ run_test_loop(struct options *opts) static int run_test(iotype iot, parameters parms, struct options *opts) { - results res; - register int i, ret_value = SUCCESS; - off_t raw_size; - minmax * write_sys_mm_table = NULL; - minmax * write_mm_table = NULL; - minmax * write_gross_mm_table = NULL; - minmax * write_raw_mm_table = NULL; - minmax * read_sys_mm_table = NULL; - minmax * read_mm_table = NULL; - minmax * read_gross_mm_table = NULL; - minmax * read_raw_mm_table = NULL; - minmax write_sys_mm = {0.0, 0.0, 0.0, 0}; - minmax write_mm = {0.0, 0.0, 0.0, 0}; - minmax write_gross_mm = {0.0, 0.0, 0.0, 0}; - minmax write_raw_mm = {0.0, 0.0, 0.0, 0}; - minmax read_sys_mm = {0.0, 0.0, 0.0, 0}; - minmax read_mm = {0.0, 0.0, 0.0, 0}; - minmax read_gross_mm = {0.0, 0.0, 0.0, 0}; - minmax read_raw_mm = {0.0, 0.0, 0.0, 0}; + results res; + int i, ret_value = SUCCESS; + off_t raw_size; + minmax *write_sys_mm_table = NULL; + minmax *write_mm_table = NULL; + minmax *write_gross_mm_table = NULL; + minmax *write_raw_mm_table = NULL; + minmax *read_sys_mm_table = NULL; + minmax *read_mm_table = NULL; + minmax *read_gross_mm_table = NULL; + minmax *read_raw_mm_table = NULL; + minmax write_sys_mm = {0.0, 0.0, 0.0, 0}; + minmax write_mm = {0.0, 0.0, 0.0, 0}; + minmax write_gross_mm = {0.0, 0.0, 0.0, 0}; + minmax write_raw_mm = {0.0, 0.0, 0.0, 0}; + minmax read_sys_mm = {0.0, 0.0, 0.0, 0}; + minmax read_mm = {0.0, 0.0, 0.0, 0}; + minmax read_gross_mm = {0.0, 0.0, 0.0, 0}; + minmax read_raw_mm = {0.0, 0.0, 0.0, 0}; raw_size = (off_t)parms.num_bytes; parms.io_type = iot; @@ -657,10 +657,9 @@ output_report(const char *fmt, ...) * things. * Return: Nothing * Programmer: Bill Wendling, 29. October 2001 - * Modifications: */ static void -print_indent(register int indent) +print_indent(int indent) { indent *= TAB_SPACE; diff --git a/tools/test/h5dump/h5dumpgentest.c b/tools/test/h5dump/h5dumpgentest.c index 5258211..339b563 100644 --- a/tools/test/h5dump/h5dumpgentest.c +++ b/tools/test/h5dump/h5dumpgentest.c @@ -3914,9 +3914,9 @@ gent_multi(void) static void gent_large_objname(void) { - hid_t fid, group, group2; - char grp_name[128]; - register int i; + hid_t fid, group, group2; + char grp_name[128]; + int i; fid = H5Fcreate(FILE37, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); diff --git a/tools/test/perform/pio_standalone.c b/tools/test/perform/pio_standalone.c index 032bfba..a074d2c 100644 --- a/tools/test/perform/pio_standalone.c +++ b/tools/test/perform/pio_standalone.c @@ -92,7 +92,7 @@ get_option(int argc, const char **argv, const char *opts, const struct h5_long_o sp = 1; } else { - register char *cp; /* pointer into current token */ + char *cp; /* pointer into current token */ /* short command line option */ opt_opt = argv[H5_optind][sp]; diff --git a/tools/test/perform/sio_standalone.c b/tools/test/perform/sio_standalone.c index 7c22b53..353dad3 100644 --- a/tools/test/perform/sio_standalone.c +++ b/tools/test/perform/sio_standalone.c @@ -92,7 +92,7 @@ get_option(int argc, const char **argv, const char *opts, const struct h5_long_o sp = 1; } else { - register char *cp; /* pointer into current token */ + char *cp; /* pointer into current token */ /* short command line option */ opt_opt = argv[H5_optind][sp]; diff --git a/tools/test/perform/zip_perf.c b/tools/test/perform/zip_perf.c index 74b1685..87a7122 100644 --- a/tools/test/perform/zip_perf.c +++ b/tools/test/perform/zip_perf.c @@ -336,8 +336,8 @@ parse_size_directive(const char *size) static void fill_with_random_data(Bytef *src, uLongf src_len) { - register unsigned u; - h5_stat_t stat_buf; + unsigned u; + h5_stat_t stat_buf; if (HDstat("/dev/urandom", &stat_buf) == 0) { uLongf len = src_len; @@ -386,7 +386,7 @@ do_write_test(unsigned long file_size, unsigned long min_buf_size, unsigned long Bytef * src; for (src_len = min_buf_size; src_len <= max_buf_size; src_len <<= 1) { - register unsigned long i, iters; + unsigned long i, iters; iters = file_size / src_len; src = (Bytef *)HDcalloc(1, sizeof(Bytef) * src_len); -- cgit v0.12 From 1f9228316c3177fa632979fa89e8753d35770efb Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Fri, 11 Mar 2022 11:10:20 -0800 Subject: Fixes for format string warnings raised by -Wformat=2/-Wformat-security (#1489) --- config/clang-warnings/developer-general | 1 - config/clang-warnings/general | 16 +++++----------- config/gnu-warnings/cxx-general | 1 - config/gnu-warnings/developer-general | 3 --- config/gnu-warnings/general | 14 ++++---------- tools/lib/h5tools_str.c | 2 +- tools/src/h5ls/h5ls.c | 6 +++--- 7 files changed, 13 insertions(+), 30 deletions(-) diff --git a/config/clang-warnings/developer-general b/config/clang-warnings/developer-general index 74d8404..b80552f 100644 --- a/config/clang-warnings/developer-general +++ b/config/clang-warnings/developer-general @@ -1,4 +1,3 @@ --Wformat-nonliteral -Wmissing-noreturn -Wsometimes-uninitialized -Wswitch-enum diff --git a/config/clang-warnings/general b/config/clang-warnings/general index f0c9b93..433dff9 100644 --- a/config/clang-warnings/general +++ b/config/clang-warnings/general @@ -8,19 +8,13 @@ -Wformat=2 -Wframe-larger-than=16384 -Wimplicit-fallthrough -# -# NOTE: Due to the divergence in the C and C++, we're dropping support for -# compiling the C library with a C++ compiler and dropping the -Wc++-compat -# warning. -# --Wno-c++-compat -# -# NOTE: Disable the -Wformat-nonliteral from -Wformat=2 here and re-add -# it to the developer flags. -# --Wno-format-nonliteral -Wnull-dereference -Wunused-const-variable -Wwrite-strings -Wpedantic -Wvolatile-register-var +# NOTE: Due to the divergence in the C and C++, we're dropping support for +# compiling the C library with a C++ compiler and dropping the -Wc++-compat +# warning. +# +-Wno-c++-compat diff --git a/config/gnu-warnings/cxx-general b/config/gnu-warnings/cxx-general index 9548cc0..1626524 100644 --- a/config/gnu-warnings/cxx-general +++ b/config/gnu-warnings/cxx-general @@ -17,7 +17,6 @@ -Winit-self -Winvalid-pch -Wmissing-include-dirs --Wno-format-nonliteral -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual diff --git a/config/gnu-warnings/developer-general b/config/gnu-warnings/developer-general index b34c4b7..460b874 100644 --- a/config/gnu-warnings/developer-general +++ b/config/gnu-warnings/developer-general @@ -1,9 +1,6 @@ # (suggestions from gcc, not code problems) -# NOTE: -Wformat-nonliteral added back in here (from being disabled in -# H5_CFLAGS) -Waggregate-return -Wdisabled-optimization --Wformat-nonliteral -Winline -Wmissing-format-attribute -Wmissing-noreturn diff --git a/config/gnu-warnings/general b/config/gnu-warnings/general index a7a20b7..df4c613 100644 --- a/config/gnu-warnings/general +++ b/config/gnu-warnings/general @@ -15,18 +15,12 @@ -Winit-self -Winvalid-pch -Wmissing-include-dirs -# +-Wshadow +-Wundef +-Wwrite-strings +-pedantic # NOTE: Due to the divergence in the C and C++, we're dropping support for # compiling the C library with a C++ compiler and dropping the -Wc++-compat # warning. # -Wno-c++-compat -# -# NOTE: Disable the -Wformat-nonliteral from -Wformat=2 here and re-add -# it to the developer flags. -# --Wno-format-nonliteral --Wshadow --Wundef --Wwrite-strings --pedantic diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c index 7ad6a65..5976044 100644 --- a/tools/lib/h5tools_str.c +++ b/tools/lib/h5tools_str.c @@ -1051,7 +1051,7 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai H5TOOLS_DEBUG("H5T_ENUM"); if (H5Tenum_nameof(type, vp, enum_name, sizeof enum_name) >= 0) - h5tools_str_append(str, h5tools_escape(enum_name, sizeof(enum_name))); + h5tools_str_append(str, "%s", h5tools_escape(enum_name, sizeof(enum_name))); else { size_t i; if (1 == nsize) diff --git a/tools/src/h5ls/h5ls.c b/tools/src/h5ls/h5ls.c index a27a8cc..59cd974 100644 --- a/tools/src/h5ls/h5ls.c +++ b/tools/src/h5ls/h5ls.c @@ -2299,7 +2299,7 @@ list_lnk(const char *name, const H5L_info2_t *linfo, void *_iter) iter->symlink_list->dangle_link = TRUE; h5tools_str_append(&buffer, "Soft Link {"); - h5tools_str_append(&buffer, buf); + h5tools_str_append(&buffer, "%s", buf); h5tools_str_append(&buffer, "}"); h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols, (hsize_t)0, (hsize_t)0); @@ -2367,11 +2367,11 @@ list_lnk(const char *name, const H5L_info2_t *linfo, void *_iter) goto done; h5tools_str_append(&buffer, "External Link {"); - h5tools_str_append(&buffer, filename); + h5tools_str_append(&buffer, "%s", filename); h5tools_str_append(&buffer, "/"); if (*path != '/') h5tools_str_append(&buffer, "/"); - h5tools_str_append(&buffer, path); + h5tools_str_append(&buffer, "%s", path); h5tools_str_append(&buffer, "}"); h5tools_render_element(rawoutstream, info, &ctx, &buffer, &curr_pos, (size_t)info->line_ncols, (hsize_t)0, (hsize_t)0); -- cgit v0.12 From 872b87d5d69fdd3b1b75a7047b713b1adfd16248 Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Fri, 11 Mar 2022 13:17:26 -0600 Subject: Update release note (#1485) * Flip inits to correct ifdef section * rework ifdef to be simpler * format issue * Reformat ifdef inits * remove static attribute * format compliance * Update names * Revert because logic relies on float not being int * Changes noticed from creating merge of #412 * Double underscore change * Correct compiler version variable used * Remove header guard underscores * Whitespace cleanup * Split format source and commit changes on repo push * remove pre-split setting * Change windows TS to use older VS. * correct window os name * HDFFV-11212 JNI export util and Javadoc * Suggested review changes * Another change found * Committing clang-format changes * HDFFV-11113 long double in tools * HDFFV-11113 add note * Disable long double tests for now * HDFFV-11228 remove arbitrary CMake warning groups. * Make each flag a string * Some Javadoc warning fixes * Updated javadoc fixes * # WARNING: head commit changed in the meantime HDFFV-11229 Fix long double usage in tools and java Changed h5dump and h5ls to just print 128-bit for long double type. Added test and file for dataset and attributes with all three float types. * Committing clang-format changes * HDFFV-11229 Add release note * HDFFV-11229 windows testfile needed * fix typo * Remove non supported message text * HDFFV-11229 - change ldouble test to check both native and general * HDFFV-11229 add second file compare * HDFFV-11229 fix reference file * HDFFV-11229 autotools check two refs * HDFFV-11229 revert back to removal of NATIVE_LDOUBLE in tools output * Committing clang-format changes * Update release note * Update attribute type of ref file * Change source of ninja for macs * try port instead of brew * Recommended is to use brew. * Undo non long double changes * remove unneeded file * Fix perl and doxygen CMake code * Add "option" command for clang options * Rework CMake add_custom to use the BYPRODUCTS argument * Add stamp files to BYPRODUCTS * Only one copy of file exists * Fix custom cmmand depends targets * Fix fortran custom command DEPENDS * Add LD_LIBRARY_PATH to tests * Add custom target for DEPENDS * Add h5detect conditionaly to generated target DEPENDS * Correct DEPENDS targets * Parallel builds need the mpi compiler for pkgconfig scripts. * install only if MPI build * Fortran target depends * Remove incorrect source attribute * doxygen adjustments * doxygen build updates * Correct version * Correct function version - function has been merged to 1.12 * Correct version string for map functions * Cleanup warnings for tools debug builds * TRILAB-227 - fix indexing for h5diff selections * Correct location of pos to index function call * TRILAB-227 Enable test * Quote subset args * Use MATCHES because of AppleClang * if blocks needed for build modes * Update list of DT platforms * VS2019 correctly displays float values * revert VS2019 change * Issue #669 remove version from pkgcfg filename * remove version from h5cc script * Java reference functions updated enabled fortran in cmake gcc action yaml file java reference test changed to correctly test refs jni reference functions that create ids changed to use jni id logging * Correct BYPRODUCTS argument * Correct more genereated files BYPRODUCTS * BYPRODUCTS must have unique locations * Fix typo * Fix fortran configure checks * Rework H5_PAC_C_MAX_REAL_PRECISION setting logic * Add note about fortran configure change * Adds a quick for for some egregious chunk_info badness (#722) * Fixes issue with ccmake that prevents building Fortran (#723) ccmake runs iteratively, and the check_fortran_source_runs macros were clobbering a single output file that did not get updated on further configure iterations * Fix conflicts with merge * Move MAX_PRECISION back to HDF5UseFortran.cmake * Use STREQUAL to test macro argument * Move C language test to ConfigureChecks from HDF5UseFortran * MAX_PRECISION defines must be defined * Organize flags and align autotools and cmake * Fix comment in no-error-general warnings files. * Flag cleanup and fix typos * Add comment * Correct VAR used to find configure time file * Set the path correctly * Update missing release note info. * Update code owners * Correct JIRA note * add known problem. * Use only core library for testing dynamic plugins. * Committing clang-format changes * Update main.yml * Update HISTORY-1_13.txt Missing release note added for changed location of CMake configuration files. * Update HISTORY-1_13.txt Fix typo * Update main.yml revert change Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com> --- release_docs/HISTORY-1_13.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/release_docs/HISTORY-1_13.txt b/release_docs/HISTORY-1_13.txt index 91320a1..bc9ae3f 100644 --- a/release_docs/HISTORY-1_13.txt +++ b/release_docs/HISTORY-1_13.txt @@ -1810,6 +1810,17 @@ New Features Configuration: ------------- + - Reworked corrected path searched by CMake find_package command + + The install path for cmake find_package files had been changed to use + "share/cmake" + for all platforms. However setting the HDF5_ROOT variable failed to locate + the configuration files. The build variable HDF5_INSTALL_CMAKE_DIR is now + set to the /cmake folder. The location of the configuration + files can still be specified by the "HDF5_DIR" variable. + + (ADB - 2022/02/02) + - CPack will now generate RPM/DEB packages. Enabled the RPM and DEB CPack generators on linux. In addition to -- cgit v0.12 From b9846d174972ecaa1e236d65d6579444e382b74b Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Mon, 14 Mar 2022 20:47:32 -0700 Subject: Removes the MANIFEST file and unused release files (#1497) * Removes the MANIFEST file and unused release files * Updated tar command --- .github/workflows/main.yml | 1 - .github/workflows/pr-check.yml | 1 - MANIFEST | 3897 ---------------------------------------- bin/bbrelease | 238 +-- bin/chkmanifest | 154 -- bin/locate_sw | 238 --- bin/release | 80 +- bin/runtest | 966 ---------- bin/snapshot | 837 --------- bin/snapshot_version | 19 - bin/timekeeper | 129 -- 11 files changed, 102 insertions(+), 6458 deletions(-) delete mode 100644 MANIFEST delete mode 100755 bin/chkmanifest delete mode 100755 bin/locate_sw delete mode 100755 bin/runtest delete mode 100755 bin/snapshot delete mode 100644 bin/snapshot_version delete mode 100755 bin/timekeeper diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7b1d0c4..b99361e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -184,7 +184,6 @@ jobs: if: matrix.generator == 'autogen' run: | sh ./autogen.sh - sh ./bin/chkmanifest mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" $GITHUB_WORKSPACE/configure --enable-shared --${{ matrix.ts }}-threadsafe --${{ matrix.hl }}-hl --${{ matrix.parallel }}-parallel --${{ matrix.cpp }}-cxx --${{ matrix.fortran }}-fortran --${{ matrix.java }}-java diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 79d5c83..65bf42b 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -179,7 +179,6 @@ jobs: if: matrix.generator == 'autogen' run: | sh ./autogen.sh - sh ./bin/chkmanifest mkdir "${{ runner.workspace }}/build" cd "${{ runner.workspace }}/build" $GITHUB_WORKSPACE/configure --enable-shared --${{ matrix.ts }}-threadsafe --${{ matrix.hl }}-hl --${{ matrix.parallel }}-parallel --${{ matrix.cpp }}-cxx --${{ matrix.fortran }}-fortran --${{ matrix.java }}-java diff --git a/MANIFEST b/MANIFEST deleted file mode 100644 index cd6d086..0000000 --- a/MANIFEST +++ /dev/null @@ -1,3897 +0,0 @@ -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# -#------------------------------------------------------------------------------ -# This is the list of files that are part of HDF5 source distribution. -# All files have a `./' prefix and appear in lexicographic order. -# Lines that end with _DO_NOT_DISTRIBUTE_ will not be included in a -# release. Blank lines and comments are ignored. Comments must start -# in column one with a '#'. -#------------------------------------------------------------------------------ - -./.gitattributes _DO_NOT_DISTRIBUTE_ -./.gitignore _DO_NOT_DISTRIBUTE_ -./.autom4te.cfg _DO_NOT_DISTRIBUTE_ -./.h5chkright.ini _DO_NOT_DISTRIBUTE_ -./ACKNOWLEDGMENTS -./COPYING -./COPYING_LBNL_HDF5 -./MANIFEST -./Makefile.dist -./Makefile.am -./README.md -./acsite.m4 -./autogen.sh -./configure.ac - -./.clang-format -./.github/CODEOWNERS _DO_NOT_DISTRIBUTE_ -./.github/workflows/clang-format-fix.yml _DO_NOT_DISTRIBUTE_ -./.github/workflows/clang-format-check.yml _DO_NOT_DISTRIBUTE_ -./.github/workflows/main.yml _DO_NOT_DISTRIBUTE_ -./.github/workflows/pr-check.yml _DO_NOT_DISTRIBUTE_ -./.github/workflows/codespell.yml _DO_NOT_DISTRIBUTE_ -./.github/FUNDING.yml _DO_NOT_DISTRIBUTE_ - -./m4/aclocal_fc.m4 -./m4/aclocal_fc.f90 -./m4/ax_check_class.m4 -./m4/ax_check_classpath.m4 -./m4/ax_check_java_home.m4 -./m4/ax_check_junit.m4 -./m4/ax_check_rqrd_class.m4 -./m4/ax_java_check_class.m4 -./m4/ax_java_options.m4 -./m4/ax_jni_include_dir.m4 -./m4/ax_prog_doxygen.m4 -./m4/ax_prog_jar.m4 -./m4/ax_prog_java_cc.m4 -./m4/ax_prog_java_works.m4 -./m4/ax_prog_java.m4 -./m4/ax_prog_javac_works.m4 -./m4/ax_prog_javac.m4 -./m4/ax_prog_javadoc.m4 -./m4/ax_prog_javah.m4 -./m4/ax_try_compile_java.m4 -./m4/ax_try_run_java.m4 - -./bin/bbrelease _DO_NOT_DISTRIBUTE_ -./bin/buildhdf5 -./bin/checkapi _DO_NOT_DISTRIBUTE_ -./bin/checkposix _DO_NOT_DISTRIBUTE_ -./bin/chkconfigure _DO_NOT_DISTRIBUTE_ -./bin/chkcopyright _DO_NOT_DISTRIBUTE_ -./bin/chkmanifest -./bin/cmakehdf5 -./bin/debug-ohdr _DO_NOT_DISTRIBUTE_ -./bin/dependencies -./bin/deploy -./bin/distdep -./bin/errors _DO_NOT_DISTRIBUTE_ -./bin/format_source -./bin/format_source_patch -./bin/genparser -./bin/gcov_script _DO_NOT_DISTRIBUTE_ -./bin/h5cc.in -./bin/h5redeploy.in -./bin/h5vers -./bin/iostats -./bin/locate_sw -./bin/make_err -./bin/make_overflow -./bin/make_vers -./bin/Makefile.am -./bin/makehelp -./bin/mkdirs -./bin/newer -./bin/output_filter.sh -./bin/README _DO_NOT_DISTRIBUTE_ -./bin/release -./bin/restore.sh -./bin/runtest _DO_NOT_DISTRIBUTE_ -./bin/runbkgprog _DO_NOT_DISTRIBUTE_ -./bin/snapshot -./bin/snapshot_version _DO_NOT_DISTRIBUTE_ -./bin/switch_maint_mode _DO_NOT_DISTRIBUTE_ -./bin/timekeeper _DO_NOT_DISTRIBUTE_ -./bin/trace -./bin/warnhist _DO_NOT_DISTRIBUTE_ -./bin/yodconfigure -./bin/batch/ctestP.lsf.in.cmake -./bin/batch/ctestP.sl.in.cmake -./bin/batch/ctestS.lsf.in.cmake -./bin/batch/ctestS.sl.in.cmake -./bin/batch/knl_ctestP.sl.in.cmake -./bin/batch/knl_ctestS.sl.in.cmake -./bin/batch/knl_H5detect.sl.in.cmake -./bin/batch/ctest.qsub.in.cmake -./bin/batch/ray_ctestP.lsf.in.cmake -./bin/batch/ray_ctestS.lsf.in.cmake -./bin/batch/raybsub -./bin/pkgscrpts/h5rmflags _DO_NOT_DISTRIBUTE_ -./bin/pkgscrpts/makeHDF5BinaryTarfiles.pl _DO_NOT_DISTRIBUTE_ -./bin/pkgscrpts/makeInternalREADME.pl _DO_NOT_DISTRIBUTE_ -./bin/pkgscrpts/makeOuterREADME.pl _DO_NOT_DISTRIBUTE_ - -./config/BlankForm -./config/apple -./config/cce-fflags -./config/cce-flags -./config/commence.am -./config/conclude.am -./config/conclude_fc.am -./config/examples.am -./config/freebsd -./config/gnu-cxxflags -./config/gnu-fflags -./config/gnu-flags -./config/cygwin -./config/ibm-aix -./config/ibm-flags -./config/intel-cxxflags -./config/intel-fflags -./config/intel-flags -./config/libhdf5.pc.in -./config/linux-gnu -./config/linux-gnuaout -./config/linux-gnueabihf -./config/linux-gnulibc1 -./config/linux-gnulibc2 -./config/lt_vers.am -./config/Makefile.am.blank -./config/netbsd -./config/pgi-cxxflags -./config/pgi-fflags -./config/pgi-flags -./config/solaris - -#warnings files for both autotools and CMake -./config/clang-cxxflags -./config/clang-flags -./config/clang-warnings/developer-general -./config/clang-warnings/error-general -./config/clang-warnings/general -./config/clang-warnings/no-developer-general -./config/gnu-warnings/4.8-4.last -./config/gnu-warnings/4.8 -./config/gnu-warnings/4.9 -./config/gnu-warnings/5 -./config/gnu-warnings/6 -./config/gnu-warnings/7 -./config/gnu-warnings/8 -./config/gnu-warnings/9 -./config/gnu-warnings/9.3 -./config/gnu-warnings/cxx-general -./config/gnu-warnings/cxx-4.8 -./config/gnu-warnings/cxx-4.9 -./config/gnu-warnings/cxx-5 -./config/gnu-warnings/cxx-9 -./config/gnu-warnings/cxx-developer-4.8 -./config/gnu-warnings/cxx-error-5 -./config/gnu-warnings/cxx-error-general -./config/gnu-warnings/developer-4.8 -./config/gnu-warnings/developer-7 -./config/gnu-warnings/developer-8 -./config/gnu-warnings/developer-10 -./config/gnu-warnings/developer-general -./config/gnu-warnings/error-5 -./config/gnu-warnings/error-8 -./config/gnu-warnings/error-general -./config/gnu-warnings/general -./config/gnu-warnings/gfort-general -./config/gnu-warnings/gfort-4.8 -./config/gnu-warnings/developer-gfort-5 -./config/gnu-warnings/gfort-6 -./config/gnu-warnings/gfort-8 -./config/gnu-warnings/no-cxx-developer-4.8 -./config/gnu-warnings/no-developer-4.8 -./config/gnu-warnings/no-developer-8 -./config/gnu-warnings/no-developer-general -./config/intel-warnings/15 -./config/intel-warnings/18 -./config/intel-warnings/developer-general -./config/intel-warnings/general -./config/intel-warnings/win-developer-general -./config/intel-warnings/win-general -./config/intel-warnings/ifort-general - -./config/cmake/FindMFU.cmake -./config/cmake/FindDTCMP.cmake -./config/cmake/FindCIRCLE.cmake - -./config/site-specific/BlankForm - -./doc/branches-explained.md -./doc/code-conventions.md -./doc/contributing.md -./doc/library-init-shutdown.md -./doxygen/aliases -./doxygen/CMakeLists.txt -./doxygen/Doxyfile.in -./doxygen/dox/APIVersions.dox -./doxygen/dox/About.dox -./doxygen/dox/Cookbook.dox -./doxygen/dox/DDLBNF110.dox -./doxygen/dox/DDLBNF112.dox -./doxygen/dox/FTS.dox -./doxygen/dox/GettingStarted.dox -./doxygen/dox/Glossary.dox -./doxygen/dox/H5AC_cache_config_t.dox -./doxygen/dox/MetadataCachingInHDF5.dox -./doxygen/dox/Overview.dox -./doxygen/dox/ReferenceManual.dox -./doxygen/dox/RFC.dox -./doxygen/dox/Specifications.dox -./doxygen/dox/TechnicalNotes.dox -./doxygen/dox/api-compat-macros.dox -./doxygen/dox/maybe_metadata_reads.dox -./doxygen/dox/rm-template.dox -./doxygen/dox/cookbook/Accessibility.c -./doxygen/dox/cookbook/Accessibility.dox -./doxygen/dox/cookbook/Attributes.c -./doxygen/dox/cookbook/Attributes.dox -./doxygen/dox/cookbook/Files.c -./doxygen/dox/cookbook/Files.dox -./doxygen/dox/cookbook/Performance.dox -./doxygen/examples/DebuggingHDF5Applications.html -./doxygen/examples/FF-IH_FileGroup.gif -./doxygen/examples/FF-IH_FileObject.gif -./doxygen/examples/FileFormat.html -./doxygen/examples/FileFormatSpecChunkDiagram.jpg -./doxygen/examples/Filters.html -./doxygen/examples/H5Pset_metadata_read_attempts.c -./doxygen/examples/H5Pset_object_flush_cb.c -./doxygen/examples/H5.format.1.0.html -./doxygen/examples/H5.format.1.1.html -./doxygen/examples/H5.format.2.0.html -./doxygen/examples/H5.format.html -./doxygen/examples/H5A_examples.c -./doxygen/examples/H5D_examples.c -./doxygen/examples/H5E_examples.c -./doxygen/examples/H5Fclose.c -./doxygen/examples/H5Fcreate.c -./doxygen/examples/H5F_examples.c -./doxygen/examples/H5G_examples.c -./doxygen/examples/H5I_examples.c -./doxygen/examples/H5L_examples.c -./doxygen/examples/H5O_examples.c -./doxygen/examples/H5PL_examples.c -./doxygen/examples/H5Pget_metadata_read_attempts.1.c -./doxygen/examples/H5Pget_metadata_read_attempts.2.c -./doxygen/examples/H5Pget_metadata_read_attempts.3.c -./doxygen/examples/H5Pget_object_flush_cb.c -./doxygen/examples/H5P_examples.c -./doxygen/examples/H5R_examples.c -./doxygen/examples/H5S_examples.c -./doxygen/examples/H5T_examples.c -./doxygen/examples/H5Z_examples.c -./doxygen/examples/H5_examples.c -./doxygen/examples/ImageSpec.html -./doxygen/examples/IOFlow.html -./doxygen/examples/PaletteExample1.gif -./doxygen/examples/Palettes.fm.anc.gif -./doxygen/examples/TableSpec.html -./doxygen/examples/ThreadSafeLibrary.html -./doxygen/examples/VFL.html -./doxygen/examples/hello_hdf5.c -./doxygen/hdf5_footer.html -./doxygen/hdf5_header.html -./doxygen/hdf5_navtree_hacks.js -./doxygen/hdf5doxy.css -./doxygen/hdf5doxy_layout.xml -./doxygen/img/FF-IH_FileGroup.gif -./doxygen/img/FF-IH_FileObject.gif -./doxygen/img/FileFormatSpecChunkDiagram.jpg -./doxygen/img/HDF5.png -./doxygen/img/HDFG-logo.png -./doxygen/img/IOFlow.gif -./doxygen/img/IOFlow2.gif -./doxygen/img/IOFlow3.gif -./doxygen/img/PaletteExample1.gif -./doxygen/img/Palettes.fm.anc.gif -./doxygen/img/ftv2node.png -./doxygen/img/ftv2pnode.png - -./examples/Attributes.txt -./examples/Makefile.am -./examples/h5_chunk_read.c -./examples/h5_compound.c -./examples/h5_crtgrpd.c -./examples/h5_debug_trace.c -./examples/h5_subset.c -./examples/h5_cmprss.c -./examples/h5_rdwt.c -./examples/h5_crtgrpar.c -./examples/h5_extend.c -./examples/h5_crtatt.c -./examples/h5_crtgrp.c -./examples/h5_crtdat.c -./examples/h5_drivers.c -./examples/h5_dtransform.c -./examples/h5_elink_unix2win.c -./examples/h5_extend_write.c -./examples/h5_extlink.c -./examples/h5_group.c -./examples/h5_interm_group.c -./examples/h5_read.c -./examples/h5_write.c -./examples/h5_select.c -./examples/h5_attribute.c -./examples/h5_mount.c -./examples/h5_ref_compat.c -./examples/h5_ref_extern.c -./examples/h5_reference_deprec.c -./examples/h5_ref2reg_deprec.c -./examples/h5_shared_mesg.c -./examples/ph5example.c -./examples/ph5_filtered_writes.c -./examples/ph5_filtered_writes_no_sel.c -./examples/h5_vds.c -./examples/h5_vds-exc.c -./examples/h5_vds-exclim.c -./examples/h5_vds-eiger.c -./examples/h5_vds-simpleIO.c -./examples/h5_vds-percival.c -./examples/h5_vds-percival-unlim.c -./examples/h5_vds-percival-unlim-maxmin.c -./examples/testh5cc.sh.in -./examples/README - - -#------------------------------------------------------------------------------ -# -# Begin Fortran interface -# -#------------------------------------------------------------------------------ - -./fortran/Makefile.am -./fortran/robodoc.rc - -./fortran/examples/Makefile.am -./fortran/examples/compound.f90 -./fortran/examples/compound_fortran2003.f90 -./fortran/examples/compound_complex_fortran2003.f90 -./fortran/examples/h5_cmprss.f90 -./fortran/examples/h5_crtatt.f90 -./fortran/examples/h5_crtdat.f90 -./fortran/examples/h5_crtgrp.f90 -./fortran/examples/h5_crtgrpar.f90 -./fortran/examples/h5_crtgrpd.f90 -./hl/fortran/examples/exlite.f90 -./fortran/examples/h5_extend.f90 -./hl/fortran/examples/ex_ds1.f90 -./fortran/examples/h5_rdwt.f90 -./fortran/examples/h5_subset.f90 -./fortran/examples/hyperslab.f90 -./fortran/examples/mountexample.f90 -./fortran/examples/ph5example.f90 -./fortran/examples/refobjexample.f90 -./fortran/examples/refregexample.f90 -./fortran/examples/run-fortran-ex.sh.in -./fortran/examples/selectele.f90 -./fortran/examples/testh5fc.sh.in -./fortran/examples/nested_derived_type.f90 -./fortran/examples/rwdset_fortran2003.f90 - -./fortran/src/H5_buildiface.F90 -./fortran/src/H5_f.c -./fortran/src/H5_ff.F90 -./fortran/src/H5Af.c -./fortran/src/H5Aff.F90 -./fortran/src/H5Df.c -./fortran/src/H5Dff.F90 -./fortran/src/H5Ef.c -./fortran/src/H5Eff.F90 -./fortran/src/H5Ff.c -./fortran/src/H5Fff.F90 -./fortran/src/H5Gf.c -./fortran/src/H5Gff.F90 -./fortran/src/H5If.c -./fortran/src/H5Iff.F90 -./fortran/src/H5Lf.c -./fortran/src/H5Lff.F90 -./fortran/src/H5Of.c -./fortran/src/H5Off.F90 -./fortran/src/H5Pf.c -./fortran/src/H5Pff.F90 -./fortran/src/H5Rf.c -./fortran/src/H5Rff.F90 -./fortran/src/H5Sf.c -./fortran/src/H5Sff.F90 -./fortran/src/H5Tf.c -./fortran/src/H5Tff.F90 -./fortran/src/H5VLff.F90 -./fortran/src/H5Zf.c -./fortran/src/H5Zff.F90 -./fortran/src/H5config_f.inc.cmake -./fortran/src/H5config_f.inc.in -./fortran/src/H5fort_type_defines.h.cmake -./fortran/src/H5fort_type_defines.h.in -./fortran/src/H5f90.h -./fortran/src/H5f90global.F90 -./fortran/src/H5f90i.h -./fortran/src/H5f90kit.c -./fortran/src/H5fortkit.F90 -./fortran/src/H5f90proto.h -./fortran/src/H5match_types.c -./fortran/src/HDF5.F90 -./fortran/src/Makefile.am -./fortran/src/README -./fortran/src/h5fc.in -./fortran/src/hdf5_fortrandll.def.in - -./fortran/test/Makefile.am -./fortran/test/vol_connector.F90 -./fortran/test/fflush1.F90 -./fortran/test/fflush2.F90 -./fortran/test/fortranlib_test.F90 -./fortran/test/fortranlib_test_1_8.F90 -./fortran/test/fortranlib_test_F03.F90 -./fortran/test/t.c -./fortran/test/t.h -./fortran/test/tf.F90 -./fortran/test/tH5A.F90 -./fortran/test/tH5A_1_8.F90 -./fortran/test/tH5D.F90 -./fortran/test/tH5E_F03.F90 -./fortran/test/tH5E.F90 -./fortran/test/tH5F.F90 -./fortran/test/tH5F_F03.F90 -./fortran/test/tH5G.F90 -./fortran/test/tH5G_1_8.F90 -./fortran/test/tH5I.F90 -./fortran/test/tH5L_F03.F90 -./fortran/test/tH5MISC_1_8.F90 -./fortran/test/tH5O.F90 -./fortran/test/tH5O_F03.F90 -./fortran/test/tH5P_F03.F90 -./fortran/test/tH5P.F90 -./fortran/test/tH5R.F90 -./fortran/test/tH5S.F90 -./fortran/test/tH5Sselect.F90 -./fortran/test/tH5T_F03.F90 -./fortran/test/tH5T.F90 -./fortran/test/tH5VL.F90 -./fortran/test/tH5Z.F90 -./fortran/test/tHDF5_1_8.F90 -./fortran/test/tHDF5_F03.F90 -./fortran/test/tHDF5.F90 -./fortran/test/H5_test_buildiface.F90 - -./fortran/testpar/Makefile.am -./fortran/testpar/ptest.f90 -./fortran/testpar/hyper.f90 -./fortran/testpar/mdset.f90 - -#------------------------------------------------------------------------------ -# -# End Fortran interface -# -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# -# Begin C++ interface -# -#------------------------------------------------------------------------------ - -./c++/Makefile.am - -./c++/examples/chunks.cpp -./c++/examples/compound.cpp -./c++/examples/create.cpp -./c++/examples/expected.out -./c++/examples/extend_ds.cpp -./c++/examples/h5group.cpp -./c++/examples/h5tutr_cmprss.cpp -./c++/examples/h5tutr_crtatt.cpp -./c++/examples/h5tutr_crtdat.cpp -./c++/examples/h5tutr_crtgrpar.cpp -./c++/examples/h5tutr_crtgrp.cpp -./c++/examples/h5tutr_crtgrpd.cpp -./c++/examples/h5tutr_extend.cpp -./c++/examples/h5tutr_rdwt.cpp -./c++/examples/h5tutr_subset.cpp -./c++/examples/readdata.cpp -./c++/examples/testh5c++.sh.in -./c++/examples/writedata.cpp -./c++/examples/Makefile.am -./c++/examples/run-c++-ex.sh.in - -./c++/src/H5AbstractDs.cpp -./c++/src/H5AbstractDs.h -./c++/src/H5Alltypes.h -./c++/src/H5ArrayType.cpp -./c++/src/H5ArrayType.h -./c++/src/H5AtomType.cpp -./c++/src/H5AtomType.h -./c++/src/H5Attribute.cpp -./c++/src/H5Attribute.h -./c++/src/H5Classes.h -./c++/src/H5CommonFG.cpp -./c++/src/H5CommonFG.h -./c++/src/H5CompType.cpp -./c++/src/H5CompType.h -./c++/src/H5Cpp.h -./c++/src/H5CppDoc.h -./c++/src/H5DataSet.cpp -./c++/src/H5DataSet.h -./c++/src/H5DataSpace.cpp -./c++/src/H5DataSpace.h -./c++/src/H5DataType.cpp -./c++/src/H5DataType.h -./c++/src/H5DaccProp.cpp -./c++/src/H5DaccProp.h -./c++/src/H5DcreatProp.cpp -./c++/src/H5DcreatProp.h -./c++/src/H5DxferProp.cpp -./c++/src/H5DxferProp.h -./c++/src/H5EnumType.cpp -./c++/src/H5EnumType.h -./c++/src/H5Exception.cpp -./c++/src/H5Exception.h -./c++/src/H5FaccProp.cpp -./c++/src/H5FaccProp.h -./c++/src/H5FcreatProp.cpp -./c++/src/H5FcreatProp.h -./c++/src/H5File.cpp -./c++/src/H5File.h -./c++/src/H5FloatType.cpp -./c++/src/H5FloatType.h -./c++/src/H5Group.cpp -./c++/src/H5Group.h -./c++/src/H5IdComponent.cpp -./c++/src/H5IdComponent.h -./c++/src/H5Include.h -./c++/src/H5IntType.cpp -./c++/src/H5IntType.h -./c++/src/H5LaccProp.cpp -./c++/src/H5LaccProp.h -./c++/src/H5LcreatProp.cpp -./c++/src/H5LcreatProp.h -./c++/src/H5Library.cpp -./c++/src/H5Library.h -./c++/src/H5Location.cpp -./c++/src/H5Location.h -./c++/src/H5Object.cpp -./c++/src/H5Object.h -./c++/src/H5OcreatProp.cpp -./c++/src/H5OcreatProp.h -./c++/src/H5PredType.cpp -./c++/src/H5PredType.h -./c++/src/H5PropList.cpp -./c++/src/H5PropList.h -./c++/src/H5StrType.cpp -./c++/src/H5StrType.h -./c++/src/H5VarLenType.cpp -./c++/src/H5VarLenType.h -./c++/src/Makefile.am -./c++/src/RM_stylesheet.css -./c++/src/C2Cppfunction_map.htm -./c++/src/cpp_doc_config -./c++/src/h5c++.in -./c++/src/footer.html -./c++/src/header.html -./c++/src/header_files/filelist.xml -./c++/src/header_files/hdf_logo.jpg -./c++/src/header_files/help.jpg -./c++/src/header_files/image001.jpg -./c++/src/header_files/image002.jpg - -./c++/test/H5srcdir_str.h.in -./c++/test/Makefile.am -./c++/test/dsets.cpp -./c++/test/h5cpputil.cpp -./c++/test/h5cpputil.h -./c++/test/tarray.cpp -./c++/test/tattr.cpp -./c++/test/tcompound.cpp -./c++/test/tdspl.cpp -./c++/test/testhdf5.cpp -./c++/test/tfile.cpp -./c++/test/tfilter.cpp -./c++/test/th5s.cpp -./c++/test/th5s.h5 -./c++/test/titerate.cpp -./c++/test/tlinks.cpp -./c++/test/tobject.cpp -./c++/test/ttypes.cpp -./c++/test/trefer.cpp -./c++/test/tvlstr.cpp - -#------------------------------------------------------------------------------ -# -# End C++ interface -# -#------------------------------------------------------------------------------ - -./release_docs/HISTORY-1_0-1_8_0_rc3.txt -./release_docs/HISTORY-1_8_0-1_10_0.txt -./release_docs/HISTORY-1_10_0-1_12_0.txt -./release_docs/HISTORY-1_8.txt -./release_docs/HISTORY-1_10.txt -./release_docs/HISTORY-1_12.txt -./release_docs/HISTORY-1_13.txt -./release_docs/INSTALL -./release_docs/INSTALL_CMake.txt -./release_docs/INSTALL_Cygwin.txt -./release_docs/INSTALL_parallel -./release_docs/INSTALL_Warnings.txt -./release_docs/INSTALL_Windows.txt -./release_docs/README_HDF5_CMake -./release_docs/README_HPC -./release_docs/RELEASE.txt -./release_docs/USING_HDF5_CMake.txt -./release_docs/USING_HDF5_VS.txt - -./src/.indent.pro _DO_NOT_DISTRIBUTE_ -./src/hdf5.lnt _DO_NOT_DISTRIBUTE_ -./src/hdf5-win.lnt _DO_NOT_DISTRIBUTE_ -./src/hdf5-lin.lnt _DO_NOT_DISTRIBUTE_ -./src/H5.c -./src/H5checksum.c -./src/H5dbg.c -./src/H5api_adpt.h -./src/H5err.txt -./src/H5detect.c -./src/H5make_libsettings.c -./src/H5module.h -./src/H5mpi.c -./src/H5overflow.txt -./src/H5private.h -./src/H5public.h -./src/H5system.c -./src/H5timer.c -./src/H5trace.c -./src/H5vers.txt -./src/H5A.c -./src/H5Abtree2.c -./src/H5Adense.c -./src/H5Adeprec.c -./src/H5Aint.c -./src/H5Amodule.h -./src/H5Atest.c -./src/H5Apkg.h -./src/H5Aprivate.h -./src/H5Apublic.h -./src/H5AC.c -./src/H5ACdbg.c -./src/H5ACmodule.h -./src/H5ACmpio.c -./src/H5ACpkg.h -./src/H5ACprivate.h -./src/H5ACpublic.h -./src/H5ACproxy_entry.c -./src/H5B.c -./src/H5Bcache.c -./src/H5Bdbg.c -./src/H5Bmodule.h -./src/H5Bpkg.h -./src/H5Bprivate.h -./src/H5B2.c -./src/H5B2cache.c -./src/H5B2dbg.c -./src/H5B2hdr.c -./src/H5B2int.c -./src/H5B2internal.c -./src/H5B2leaf.c -./src/H5B2module.h -./src/H5B2pkg.h -./src/H5B2private.h -./src/H5B2stat.c -./src/H5B2test.c -./src/H5C.c -./src/H5Cdbg.c -./src/H5Cepoch.c -./src/H5Cimage.c -./src/H5Clog.c -./src/H5Clog.h -./src/H5Clog_json.c -./src/H5Clog_trace.c -./src/H5Cmodule.h -./src/H5Cmpio.c -./src/H5Cpkg.h -./src/H5Cprefetched.c -./src/H5Cprivate.h -./src/H5Cpublic.h -./src/H5Cquery.c -./src/H5Ctag.c -./src/H5Ctest.c -./src/H5CS.c -./src/H5CSprivate.h -./src/H5CX.c -./src/H5CXmodule.h -./src/H5CXprivate.h -./src/H5D.c -./src/H5Dbtree.c -./src/H5Dbtree2.c -./src/H5Dchunk.c -./src/H5Dcompact.c -./src/H5Dcontig.c -./src/H5Ddbg.c -./src/H5Ddeprec.c -./src/H5Dearray.c -./src/H5Defl.c -./src/H5Dfarray.c -./src/H5Dfill.c -./src/H5Dint.c -./src/H5Dio.c -./src/H5Dlayout.c -./src/H5Dmodule.h -./src/H5Dmpio.c -./src/H5Dnone.c -./src/H5Doh.c -./src/H5Dpkg.h -./src/H5Dprivate.h -./src/H5Dpublic.h -./src/H5Dscatgath.c -./src/H5Dselect.c -./src/H5Dsingle.c -./src/H5Dtest.c -./src/H5Dvirtual.c -./src/H5E.c -./src/H5Edeprec.c -./src/H5Eint.c -./src/H5Emodule.h -./src/H5Epkg.h -./src/H5Eprivate.h -./src/H5Epublic.h -./src/H5EA.c -./src/H5EAcache.c -./src/H5EAdbg.c -./src/H5EAdblkpage.c -./src/H5EAdblock.c -./src/H5EAhdr.c -./src/H5EAiblock.c -./src/H5EAint.c -./src/H5EAmodule.h -./src/H5EApkg.h -./src/H5EAprivate.h -./src/H5EAsblock.c -./src/H5EAstat.c -./src/H5EAtest.c -./src/H5ES.c -./src/H5ESdevelop.h -./src/H5ESevent.c -./src/H5ESint.c -./src/H5ESlist.c -./src/H5ESmodule.h -./src/H5ESpkg.h -./src/H5ESprivate.h -./src/H5ESpublic.h -./src/H5F.c -./src/H5Faccum.c -./src/H5Fcwfs.c -./src/H5Fdbg.c -./src/H5Fdeprec.c -./src/H5Fefc.c -./src/H5Ffake.c -./src/H5Fint.c -./src/H5Fio.c -./src/H5Fmodule.h -./src/H5Fmount.c -./src/H5Fmpi.c -./src/H5Fquery.c -./src/H5Fsfile.c -./src/H5Fspace.c -./src/H5Fsuper.c -./src/H5Fsuper_cache.c -./src/H5Fpkg.h -./src/H5Fprivate.h -./src/H5Fpublic.h -./src/H5Ftest.c -./src/H5FA.c -./src/H5FAcache.c -./src/H5FAdbg.c -./src/H5FAdblkpage.c -./src/H5FAdblock.c -./src/H5FAhdr.c -./src/H5FAint.c -./src/H5FAmodule.h -./src/H5FApkg.h -./src/H5FAprivate.h -./src/H5FAstat.c -./src/H5FAtest.c -./src/H5FD.c -./src/H5FDcore.c -./src/H5FDcore.h -./src/H5FDdevelop.h -./src/H5FDdirect.c -./src/H5FDdirect.h -./src/H5FDdrvr_module.h -./src/H5FDfamily.c -./src/H5FDfamily.h -./src/H5FDhdfs.c -./src/H5FDhdfs.h -./src/H5FDint.c -./src/H5FDlog.c -./src/H5FDlog.h -./src/H5FDmirror.c -./src/H5FDmirror.h -./src/H5FDmirror_priv.h -./src/H5FDmodule.h -./src/H5FDmpi.c -./src/H5FDmpi.h -./src/H5FDmpio.c -./src/H5FDmpio.h -./src/H5FDmulti.c -./src/H5FDmulti.h -./src/H5FDperform.c -./src/H5FDros3.c -./src/H5FDros3.h -./src/H5FDpkg.h -./src/H5FDprivate.h -./src/H5FDpublic.h -./src/H5FDs3comms.h -./src/H5FDs3comms.c -./src/H5FDsec2.c -./src/H5FDsec2.h -./src/H5FDspace.c -./src/H5FDsplitter.c -./src/H5FDsplitter.h -./src/H5FDstdio.c -./src/H5FDstdio.h -./src/H5FDtest.c -./src/H5FDwindows.c -./src/H5FDwindows.h -./src/H5FL.c -./src/H5FLmodule.h -./src/H5FLprivate.h -./src/H5FO.c -./src/H5FOprivate.h -./src/H5FS.c -./src/H5FScache.c -./src/H5FSdbg.c -./src/H5FSint.c -./src/H5FSmodule.h -./src/H5FSpkg.h -./src/H5FSprivate.h -./src/H5FSsection.c -./src/H5FSstat.c -./src/H5FStest.c -./src/H5G.c -./src/H5Gbtree2.c -./src/H5Gcache.c -./src/H5Gcompact.c -./src/H5Gdense.c -./src/H5Gdeprec.c -./src/H5Gent.c -./src/H5Gint.c -./src/H5Glink.c -./src/H5Gloc.c -./src/H5Gmodule.h -./src/H5Gname.c -./src/H5Gnode.c -./src/H5Gobj.c -./src/H5Goh.c -./src/H5Gpkg.h -./src/H5Gprivate.h -./src/H5Gpublic.h -./src/H5Groot.c -./src/H5Gstab.c -./src/H5Gtest.c -./src/H5Gtraverse.c -./src/H5HF.c -./src/H5HFbtree2.c -./src/H5HFcache.c -./src/H5HFdbg.c -./src/H5HFdblock.c -./src/H5HFdtable.c -./src/H5HFhdr.c -./src/H5HFhuge.c -./src/H5HFiblock.c -./src/H5HFiter.c -./src/H5HFman.c -./src/H5HFmodule.h -./src/H5HFpkg.h -./src/H5HFprivate.h -./src/H5HFsection.c -./src/H5HFspace.c -./src/H5HFstat.c -./src/H5HFtest.c -./src/H5HFtiny.c -./src/H5HG.c -./src/H5HGcache.c -./src/H5HGdbg.c -./src/H5HGmodule.h -./src/H5HGpkg.h -./src/H5HGprivate.h -./src/H5HGquery.c -./src/H5HL.c -./src/H5HLcache.c -./src/H5HLdbg.c -./src/H5HLdblk.c -./src/H5HLint.c -./src/H5HLmodule.h -./src/H5HLpkg.h -./src/H5HLprfx.c -./src/H5HLprivate.h -./src/H5HP.c -./src/H5HPprivate.h -./src/H5I.c -./src/H5Idbg.c -./src/H5Idevelop.h -./src/H5Iint.c -./src/H5Imodule.h -./src/H5Ipkg.h -./src/H5Iprivate.h -./src/H5Ipublic.h -./src/H5Itest.c -./src/H5L.c -./src/H5Ldeprec.c -./src/H5Ldevelop.h -./src/H5Lexternal.c -./src/H5Lint.c -./src/H5Lmodule.h -./src/H5Lpkg.h -./src/H5Lprivate.h -./src/H5Lpublic.h -./src/H5M.c -./src/H5Mmodule.h -./src/H5Mpkg.h -./src/H5Mprivate.h -./src/H5Mpublic.h -./src/H5MF.c -./src/H5MFaggr.c -./src/H5MFdbg.c -./src/H5MFmodule.h -./src/H5MFsection.c -./src/H5MFpkg.h -./src/H5MFprivate.h -./src/H5MM.c -./src/H5MMprivate.h -./src/H5MMpublic.h -./src/H5MP.c -./src/H5MPmodule.h -./src/H5MPpkg.h -./src/H5MPprivate.h -./src/H5MPtest.c -./src/H5O.c -./src/H5Oainfo.c -./src/H5Oalloc.c -./src/H5Oattr.c -./src/H5Oattribute.c -./src/H5Obogus.c -./src/H5Obtreek.c -./src/H5Ocache.c -./src/H5Ocache_image.c -./src/H5Ochunk.c -./src/H5Ocont.c -./src/H5Ocopy.c -./src/H5Ocopy_ref.c -./src/H5Odbg.c -./src/H5Odeprec.c -./src/H5Odrvinfo.c -./src/H5Odtype.c -./src/H5Oefl.c -./src/H5Ofill.c -./src/H5Oflush.c -./src/H5Ofsinfo.c -./src/H5Oginfo.c -./src/H5Oint.c -./src/H5Olayout.c -./src/H5Olinfo.c -./src/H5Olink.c -./src/H5Omessage.c -./src/H5Omodule.h -./src/H5Omtime.c -./src/H5Oname.c -./src/H5Onull.c -./src/H5Opkg.h -./src/H5Opline.c -./src/H5Oprivate.h -./src/H5Opublic.h -./src/H5Orefcount.c -./src/H5Osdspace.c -./src/H5Oshared.c -./src/H5Oshared.h -./src/H5Oshmesg.c -./src/H5Ostab.c -./src/H5Otest.c -./src/H5Ounknown.c -./src/H5P.c -./src/H5Pacpl.c -./src/H5Pdapl.c -./src/H5Pdcpl.c -./src/H5Pdeprec.c -./src/H5Pdxpl.c -./src/H5Pencdec.c -./src/H5Pfapl.c -./src/H5Pfcpl.c -./src/H5Pfmpl.c -./src/H5Pgcpl.c -./src/H5Pint.c -./src/H5Plapl.c -./src/H5Plcpl.c -./src/H5Pmapl.c -./src/H5Pmcpl.c -./src/H5Pmodule.h -./src/H5Pocpl.c -./src/H5Pocpypl.c -./src/H5Ppkg.h -./src/H5Pprivate.h -./src/H5Ppublic.h -./src/H5Pstrcpl.c -./src/H5Ptest.c -./src/H5PB.c -./src/H5PBmodule.h -./src/H5PBpkg.h -./src/H5PBprivate.h -./src/H5PL.c -./src/H5PLint.c -./src/H5PLmodule.h -./src/H5PLpath.c -./src/H5PLpkg.h -./src/H5PLplugin_cache.c -./src/H5PLprivate.h -./src/H5PLpublic.h -./src/H5PLextern.h -./src/H5R.c -./src/H5Rdeprec.c -./src/H5Rint.c -./src/H5Rmodule.h -./src/H5Rpkg.h -./src/H5Rprivate.h -./src/H5Rpublic.h -./src/H5RS.c -./src/H5RSmodule.h -./src/H5RSprivate.h -./src/H5S.c -./src/H5Sall.c -./src/H5Sdbg.c -./src/H5Sdeprec.c -./src/H5Shyper.c -./src/H5Smodule.h -./src/H5Smpio.c -./src/H5Snone.c -./src/H5Spkg.h -./src/H5Spoint.c -./src/H5Sprivate.h -./src/H5Spublic.h -./src/H5Sselect.c -./src/H5Stest.c -./src/H5SL.c -./src/H5SLmodule.h -./src/H5SLprivate.h -./src/H5SM.c -./src/H5SMbtree2.c -./src/H5SMcache.c -./src/H5SMmessage.c -./src/H5SMmodule.h -./src/H5SMpkg.h -./src/H5SMprivate.h -./src/H5SMtest.c -./src/H5T.c -./src/H5Tarray.c -./src/H5Tbit.c -./src/H5Tcommit.c -./src/H5Tcompound.c -./src/H5Tconv.c -./src/H5Tcset.c -./src/H5Tdbg.c -./src/H5Tdeprec.c -./src/H5Tdevelop.h -./src/H5Tenum.c -./src/H5Tfields.c -./src/H5Tfixed.c -./src/H5Tfloat.c -./src/H5Tmodule.h -./src/H5Tnative.c -./src/H5Toffset.c -./src/H5Topaque.c -./src/H5Torder.c -./src/H5Toh.c -./src/H5Tpad.c -./src/H5Tpkg.h -./src/H5Tprecis.c -./src/H5Tprivate.h -./src/H5Tpublic.h -./src/H5Tref.c -./src/H5Tstrpad.c -./src/H5Tvisit.c -./src/H5Tvlen.c -./src/H5TS.c -./src/H5TSdevelop.h -./src/H5TSprivate.h -./src/H5UC.c -./src/H5UCprivate.h -./src/H5VL.c -./src/H5VLcallback.c -./src/H5VLconnector.h -./src/H5VLconnector_passthru.h -./src/H5VLdyn_ops.c -./src/H5VLint.c -./src/H5VLmodule.h -./src/H5VLnative.c -./src/H5VLnative.h -./src/H5VLnative_attr.c -./src/H5VLnative_blob.c -./src/H5VLnative_dataset.c -./src/H5VLnative_datatype.c -./src/H5VLnative_file.c -./src/H5VLnative_group.c -./src/H5VLnative_link.c -./src/H5VLnative_introspect.c -./src/H5VLnative_object.c -./src/H5VLnative_token.c -./src/H5VLnative_private.h -./src/H5VLpassthru.c -./src/H5VLpassthru.h -./src/H5VLpkg.h -./src/H5VLprivate.h -./src/H5VLpublic.h -./src/H5VLtest.c -./src/H5VM.c -./src/H5VMprivate.h -./src/H5WB.c -./src/H5WBprivate.h -./src/H5Z.c -./src/H5Zdeflate.c -./src/H5Zdevelop.h -./src/H5Zfletcher32.c -./src/H5Zmodule.h -./src/H5Znbit.c -./src/H5Zpkg.h -./src/H5Zprivate.h -./src/H5Zpublic.h -./src/H5Zscaleoffset.c -./src/H5Zshuffle.c -./src/H5Zszip.c -./src/H5Ztrans.c -./src/Makefile.am -./src/hdf5.h -./src/libhdf5.settings.in -./src/H5win32defs.h -./src/uthash.h - -./test/AtomicWriterReader.txt -./test/H5srcdir.h -./test/H5srcdir_str.h.in -./test/Makefile.am -./test/POSIX_Order_Write_Test_Report.docx -./test/POSIX_Order_Write_Test_Report.pdf -./test/SWMR_POSIX_Order_UG.txt -./test/SWMR_UseCase_UG.txt -./test/accum.c -./test/accum_swmr_reader.c -./test/aggr.h5 -./test/app_ref.c -./test/atomic_reader.c -./test/atomic_writer.c -./test/bad_compound.h5 -./test/bad_offset.h5 -./test/be_data.h5 -./test/be_extlink1.h5 -./test/be_extlink2.h5 -./test/big.c -./test/bittests.c -./test/btree2.c -./test/btree_idx_1_6.h5 -./test/btree_idx_1_8.h5 -./test/cache.c -./test/cache_api.c -./test/cache_common.c -./test/cache_common.h -./test/cache_image.c -./test/cache_logging.c -./test/cache_tagging.c -./test/chunk_info.c -./test/cmpd_dset.c -./test/cmpd_dtransform.c -./test/cork.c -./test/corrupt_stab_msg.h5 -./test/cross_read.c -./test/cve_2020_10810.h5 -./test/dangle.c -./test/deflate.h5 -./test/del_many_dense_attrs.c -./test/direct_chunk.c -./test/dsets.c -./test/dt_arith.c -./test/dtransform.c -./test/dtypes.c -./test/earray.c -./test/efc.c -./test/enc_dec_plist.c -./test/enc_dec_plist_cross_platform.c -./test/enum.c -./test/err_compat.c -./test/error_test.c -./test/event_set.c -./test/evict_on_close.c -./test/extend.c -./test/external.c -./test/external_common.c -./test/external_common.h -./test/external_env.c -./test/external_fname.h -./test/family_v16-000000.h5 -./test/family_v16-000001.h5 -./test/family_v16-000002.h5 -./test/family_v16-000003.h5 -./test/farray.c -./test/fheap.c -./test/file_image.c -./test/file_image_core_test.h5 -./test/filenotclosed.c -./test/filespace_1_6.h5 -./test/filespace_1_8.h5 -./test/fill18.h5 -./test/fill_old.h5 -./test/fillval.c -./test/filter_error.h5 -./test/filter_fail.c -./test/filter_plugin.c -./test/filter_plugin1_dsets.c -./test/filter_plugin2_dsets.c -./test/filter_plugin3_dsets.c -./test/filter_plugin4_groups.c -./test/flush1.c -./test/flush2.c -./test/flushrefresh.c -./test/freespace.c -./test/fsm_aggr_nopersist.h5 -./test/fsm_aggr_persist.h5 -./test/gen_bad_compound.c -./test/gen_bad_offset.c -./test/gen_bad_ohdr.c -./test/gen_bogus.c -./test/gen_bounds.c -./test/gen_cross.c -./test/gen_deflate.c -./test/gen_file_image.c -./test/gen_filespace.c -./test/gen_filters.c -./test/gen_mergemsg.c -./test/gen_new_array.c -./test/gen_new_fill.c -./test/gen_new_group.c -./test/gen_new_mtime.c -./test/gen_new_super.c -./test/gen_noencoder.c -./test/gen_nullspace.c -./test/gen_old_array.c -./test/gen_old_group.c -./test/gen_old_layout.c -./test/gen_old_mtime.c -./test/gen_plist.c -./test/gen_sizes_lheap.c -./test/gen_specmetaread.c -./test/gen_udlinks.c -./test/genall5.c -./test/genall5.h -./test/getname.c -./test/gheap.c -./test/group_old.h5 -./test/h5fc_ext1_f.h5 -./test/h5fc_ext1_i.h5 -./test/h5fc_ext2_if.h5 -./test/h5fc_ext2_sf.h5 -./test/h5fc_ext3_isf.h5 -./test/h5fc_ext_none.h5 -./test/h5test.c -./test/h5test.h -./test/hdfs.c -./test/hyperslab.c -./test/istore.c -./test/le_data.h5 -./test/le_extlink1.h5 -./test/le_extlink2.h5 -./test/lheap.c -./test/links.c -./test/links_env.c -./test/memleak_H5O_dtype_decode_helper_H5Odtype.h5 -./test/mergemsg.h5 -./test/mf.c -./test/mirror_vfd.c -./test/mount.c -./test/mtime.c -./test/multi_file_v16-r.h5 -./test/multi_file_v16-s.h5 -./test/noencoder.h5 -./test/none.h5 -./test/ntypes.c -./test/null_vol_connector.c -./test/null_vol_connector.h -./test/null_vfd_plugin.c -./test/null_vfd_plugin.h -./test/objcopy.c -./test/objcopy_ref.c -./test/ohdr.c -./test/page_buffer.c -./test/paged_nopersist.h5 -./test/paged_persist.h5 -./test/pool.c -./test/reserved.c -./test/ros3.c -./test/s3comms.c -./test/set_extent.c -# ====distribute this for now. See HDFFV-8236==== -./test/space_overflow.c -# ====end distribute this for now. See HDFFV-8236==== -./test/specmetaread.h5 -./test/stab.c -./test/swmr.c -./test/swmr_addrem_writer.c -./test/swmr_common.c -./test/swmr_common.h -./test/swmr_generator.c -./test/swmr_reader.c -./test/swmr_remove_reader.c -./test/swmr_remove_writer.c -./test/swmr_sparse_reader.c -./test/swmr_sparse_writer.c -./test/swmr_start_write.c -./test/swmr_writer.c -./test/tarray.c -./test/tarrold.h5 -./test/tattr.c -./test/tbad_msg_count.h5 -./test/tbogus.h5 -./test/tcheck_version.c -./test/tchecksum.c -./test/tconfig.c -./test/tcoords.c -./test/test_abort_fail.sh.in -./test/test_check_version.sh.in -./test/test_error.sh.in -./test/test_external_env.sh.in -./test/test_filters_be.h5 -./test/test_filters_le.h5 -./test/test_flush_refresh.sh.in -./test/test_libinfo.sh.in -./test/test_links_env.sh.in -./test/test_mirror.sh.in -./test/test_plugin.sh.in -./test/test_swmr.pwsh.in -./test/test_swmr.sh.in -./test/test_use_cases.sh.in -./test/test_vds_env.sh.in -./test/test_vds_swmr.pwsh.in -./test/test_vds_swmr.sh.in -./test/testframe.c -./test/testhdf5.c -./test/testhdf5.h -./test/testmeta.c -./test/tfile.c -./test/tgenprop.c -./test/th5o.c -./test/th5s.c -./test/th5s.h5 -./test/theap.c -./test/thread_id.c -./test/tid.c -./test/timer.c -./test/titerate.c -./test/tlayouto.h5 -./test/tmeta.c -./test/tmisc.c -./test/tmtimen.h5 -./test/tmtimeo.h5 -./test/trefer.c -./test/trefer_deprec.c -./test/trefer_shutdown.c -./test/trefstr.c -./test/tselect.c -./test/tsizeslheap.h5 -./test/tskiplist.c -./test/tsohm.c -./test/ttime.c -./test/ttsafe.c -./test/ttsafe.h -./test/ttsafe_acreate.c -./test/ttsafe_attr_vlen.c -./test/ttsafe_cancel.c -./test/ttsafe_dcreate.c -./test/ttsafe_error.c -./test/tunicode.c -./test/tvlstr.c -./test/tvltypes.c -./test/twriteorder.c -./test/unlink.c -./test/unregister.c -./test/use.h -./test/use_append_chunk.c -./test/use_append_chunk_mirror.c -./test/use_append_mchunks.c -./test/use_common.c -./test/use_disable_mdc_flushes.c -./test/vds.c -./test/vds_env.c -./test/vds_swmr.h -./test/vds_swmr_gen.c -./test/vds_swmr_reader.c -./test/vds_swmr_writer.c -./test/vfd.c -./test/vfd_plugin.c -./test/vol.c -./test/vol_plugin.c - -./test/testfiles/err_compat_1 -./test/testfiles/err_compat_2 -./test/testfiles/error_test_1 -./test/testfiles/error_test_2 -./test/testfiles/links_env.out -./test/testfiles/plist_files/acpl_32be -./test/testfiles/plist_files/acpl_32le -./test/testfiles/plist_files/acpl_64be -./test/testfiles/plist_files/acpl_64le -./test/testfiles/plist_files/dapl_32be -./test/testfiles/plist_files/dapl_32le -./test/testfiles/plist_files/dapl_64be -./test/testfiles/plist_files/dapl_64le -./test/testfiles/plist_files/dcpl_32be -./test/testfiles/plist_files/dcpl_32le -./test/testfiles/plist_files/dcpl_64be -./test/testfiles/plist_files/dcpl_64le -./test/testfiles/plist_files/def_acpl_32be -./test/testfiles/plist_files/def_acpl_32le -./test/testfiles/plist_files/def_acpl_64be -./test/testfiles/plist_files/def_acpl_64le -./test/testfiles/plist_files/def_dapl_32be -./test/testfiles/plist_files/def_dapl_32le -./test/testfiles/plist_files/def_dapl_64be -./test/testfiles/plist_files/def_dapl_64le -./test/testfiles/plist_files/def_dcpl_32be -./test/testfiles/plist_files/def_dcpl_32le -./test/testfiles/plist_files/def_dcpl_64be -./test/testfiles/plist_files/def_dcpl_64le -./test/testfiles/plist_files/def_dxpl_32be -./test/testfiles/plist_files/def_dxpl_32le -./test/testfiles/plist_files/def_dxpl_64be -./test/testfiles/plist_files/def_dxpl_64le -./test/testfiles/plist_files/def_fapl_32be -./test/testfiles/plist_files/def_fapl_32le -./test/testfiles/plist_files/def_fapl_64be -./test/testfiles/plist_files/def_fapl_64le -./test/testfiles/plist_files/def_fcpl_32be -./test/testfiles/plist_files/def_fcpl_32le -./test/testfiles/plist_files/def_fcpl_64be -./test/testfiles/plist_files/def_fcpl_64le -./test/testfiles/plist_files/def_gcpl_32be -./test/testfiles/plist_files/def_gcpl_32le -./test/testfiles/plist_files/def_gcpl_64be -./test/testfiles/plist_files/def_gcpl_64le -./test/testfiles/plist_files/def_lapl_32be -./test/testfiles/plist_files/def_lapl_32le -./test/testfiles/plist_files/def_lapl_64be -./test/testfiles/plist_files/def_lapl_64le -./test/testfiles/plist_files/def_lcpl_32be -./test/testfiles/plist_files/def_lcpl_32le -./test/testfiles/plist_files/def_lcpl_64be -./test/testfiles/plist_files/def_lcpl_64le -./test/testfiles/plist_files/def_ocpl_32be -./test/testfiles/plist_files/def_ocpl_32le -./test/testfiles/plist_files/def_ocpl_64be -./test/testfiles/plist_files/def_ocpl_64le -./test/testfiles/plist_files/def_ocpypl_32be -./test/testfiles/plist_files/def_ocpypl_32le -./test/testfiles/plist_files/def_ocpypl_64be -./test/testfiles/plist_files/def_ocpypl_64le -./test/testfiles/plist_files/def_strcpl_32be -./test/testfiles/plist_files/def_strcpl_32le -./test/testfiles/plist_files/def_strcpl_64be -./test/testfiles/plist_files/def_strcpl_64le -./test/testfiles/plist_files/dxpl_32be -./test/testfiles/plist_files/dxpl_32le -./test/testfiles/plist_files/dxpl_64be -./test/testfiles/plist_files/dxpl_64le -./test/testfiles/plist_files/fapl_32be -./test/testfiles/plist_files/fapl_32le -./test/testfiles/plist_files/fapl_64be -./test/testfiles/plist_files/fapl_64le -./test/testfiles/plist_files/fcpl_32be -./test/testfiles/plist_files/fcpl_32le -./test/testfiles/plist_files/fcpl_64be -./test/testfiles/plist_files/fcpl_64le -./test/testfiles/plist_files/gcpl_32be -./test/testfiles/plist_files/gcpl_32le -./test/testfiles/plist_files/gcpl_64be -./test/testfiles/plist_files/gcpl_64le -./test/testfiles/plist_files/lapl_32be -./test/testfiles/plist_files/lapl_32le -./test/testfiles/plist_files/lapl_64be -./test/testfiles/plist_files/lapl_64le -./test/testfiles/plist_files/lcpl_32be -./test/testfiles/plist_files/lcpl_32le -./test/testfiles/plist_files/lcpl_64be -./test/testfiles/plist_files/lcpl_64le -./test/testfiles/plist_files/ocpl_32be -./test/testfiles/plist_files/ocpl_32le -./test/testfiles/plist_files/ocpl_64be -./test/testfiles/plist_files/ocpl_64le -./test/testfiles/plist_files/ocpypl_32be -./test/testfiles/plist_files/ocpypl_32le -./test/testfiles/plist_files/ocpypl_64be -./test/testfiles/plist_files/ocpypl_64le -./test/testfiles/plist_files/strcpl_32be -./test/testfiles/plist_files/strcpl_32le -./test/testfiles/plist_files/strcpl_64be -./test/testfiles/plist_files/strcpl_64le - -./testpar/Makefile.am -./testpar/t_bigio.c -./testpar/t_cache.c -./testpar/t_cache_image.c -./testpar/t_chunk_alloc.c -./testpar/t_coll_chunk.c -./testpar/t_coll_md_read.c -./testpar/t_dset.c -./testpar/t_file.c -./testpar/t_file_image.c -./testpar/t_filter_read.c -./testpar/t_filters_parallel.c -./testpar/t_filters_parallel.h -./testpar/t_mdset.c -./testpar/t_mpi.c -./testpar/t_ph5basic.c -./testpar/t_pflush1.c -./testpar/t_pflush2.c -./testpar/t_pread.c -./testpar/t_prop.c -./testpar/t_shapesame.c -./testpar/t_pshutdown.c -./testpar/t_prestart.c -./testpar/t_span_tree.c -./testpar/t_init_term.c -./testpar/t_2Gio.c -./testpar/testpar.h -./testpar/testpflush.sh.in -./testpar/testphdf5.c -./testpar/testphdf5.h - -./tools/Makefile.am -./tools/src/Makefile.am -./tools/test/Makefile.am - -./tools/src/h5dump/Makefile.am -./tools/src/h5dump/h5dump.c -./tools/src/h5dump/h5dump.h -./tools/src/h5dump/h5dump_defines.h -./tools/src/h5dump/h5dump_extern.h -./tools/src/h5dump/h5dump_ddl.c -./tools/src/h5dump/h5dump_ddl.h -./tools/src/h5dump/h5dump_xml.c -./tools/src/h5dump/h5dump_xml.h -./tools/test/h5dump/Makefile.am -./tools/test/h5dump/dynlib_dump.c -./tools/test/h5dump/h5dumpgentest.c -./tools/test/h5dump/h5dump_plugin.sh.in -./tools/test/h5dump/testh5dump.sh.in -./tools/test/h5dump/testh5dumppbits.sh.in -./tools/test/h5dump/testh5dumpxml.sh.in -./tools/test/h5dump/testh5dumpvds.sh.in -./tools/test/h5dump/binread.c - -./tools/src/h5import/Makefile.am -./tools/src/h5import/h5import.h -./tools/src/h5import/h5import.c -./tools/test/h5import/Makefile.am -./tools/test/h5import/h5importtest.c -./tools/test/h5import/h5importtestutil.sh.in - -# testfiles for h5import -./tools/test/h5import/testfiles/binfp64.h5 -./tools/test/h5import/testfiles/binin16.h5 -./tools/test/h5import/testfiles/binin32.h5 -./tools/test/h5import/testfiles/binin8.h5 -./tools/test/h5import/testfiles/binin8w.h5 -./tools/test/h5import/testfiles/binuin16.h5 -./tools/test/h5import/testfiles/binuin32.h5 -./tools/test/h5import/testfiles/tall_fp32.ddl -./tools/test/h5import/testfiles/tall_i32.ddl -./tools/test/h5import/testfiles/tintsattrs_u32.ddl -./tools/test/h5import/testfiles/textpfe.conf -./tools/test/h5import/testfiles/textpfe.h5 -./tools/test/h5import/testfiles/textpfe64.txt -./tools/test/h5import/testfiles/txtfp32.conf -./tools/test/h5import/testfiles/txtfp32.h5 -./tools/test/h5import/testfiles/txtfp32.txt -./tools/test/h5import/testfiles/txtfp64.conf -./tools/test/h5import/testfiles/txtfp64.h5 -./tools/test/h5import/testfiles/txtfp64.txt -./tools/test/h5import/testfiles/txtin16.conf -./tools/test/h5import/testfiles/txtin16.h5 -./tools/test/h5import/testfiles/txtin16.txt -./tools/test/h5import/testfiles/txtin32.conf -./tools/test/h5import/testfiles/txtin32.h5 -./tools/test/h5import/testfiles/txtin32.txt -./tools/test/h5import/testfiles/txtin8.conf -./tools/test/h5import/testfiles/txtin8.h5 -./tools/test/h5import/testfiles/txtin8.txt -./tools/test/h5import/testfiles/txtuin16.conf -./tools/test/h5import/testfiles/txtuin16.h5 -./tools/test/h5import/testfiles/txtuin16.txt -./tools/test/h5import/testfiles/txtuin32.conf -./tools/test/h5import/testfiles/txtuin32.h5 -./tools/test/h5import/testfiles/txtuin32.txt -./tools/test/h5import/testfiles/txtstr.conf -./tools/test/h5import/testfiles/txtstr.h5 -./tools/test/h5import/testfiles/txtstr.txt -./tools/test/h5import/testfiles/dbinfp64.h5.txt -./tools/test/h5import/testfiles/dbinin8.h5.txt -./tools/test/h5import/testfiles/dbinin8w.h5.txt -./tools/test/h5import/testfiles/dbinin16.h5.txt -./tools/test/h5import/testfiles/dbinin32.h5.txt -./tools/test/h5import/testfiles/dbinuin16.h5.txt -./tools/test/h5import/testfiles/dbinuin32.h5.txt -./tools/test/h5import/testfiles/dtxtstr.h5.txt - -# h5diff sources -./tools/src/h5diff/Makefile.am -./tools/src/h5diff/h5diff_common.c -./tools/src/h5diff/h5diff_common.h -./tools/src/h5diff/h5diff_main.c -./tools/src/h5diff/ph5diff_main.c -./tools/test/h5diff/Makefile.am -./tools/test/h5diff/dynlib_diff.c -./tools/test/h5diff/h5diffgentest.c -./tools/test/h5diff/h5diff_plugin.sh.in -./tools/test/h5diff/testh5diff.sh.in -./tools/test/h5diff/testph5diff.sh.in - -# h5format_convert sources -./tools/src/h5format_convert/Makefile.am -./tools/src/h5format_convert/h5format_convert.c -./tools/test/h5format_convert/Makefile.am -./tools/test/h5format_convert/h5fc_chk_idx.c -./tools/test/h5format_convert/h5fc_gentest.c -./tools/test/h5format_convert/testfiles/h5fc_v_n_all.ddl -./tools/test/h5format_convert/testfiles/h5fc_v_bt1.ddl -./tools/test/h5format_convert/testfiles/h5fc_v_err.ddl -./tools/test/h5format_convert/testfiles/h5fc_v_err.ddl.err -./tools/test/h5format_convert/testfiles/h5fc_v_non_chunked.ddl -./tools/test/h5format_convert/testfiles/h5fc_d_file.ddl -./tools/test/h5format_convert/testfiles/h5fc_d_file.ddl.err -./tools/test/h5format_convert/testfiles/h5fc_d_file-d.ddl -./tools/test/h5format_convert/testfiles/h5fc_v_ndata_bt1.ddl -./tools/test/h5format_convert/testfiles/h5fc_dname.ddl -./tools/test/h5format_convert/testfiles/h5fc_dname.err -./tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl.err -./tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl.err -./tools/test/h5format_convert/testfiles/h5fc_help.ddl -./tools/test/h5format_convert/testfiles/h5fc_v_all.ddl -./tools/test/h5format_convert/testfiles/h5fc_nooption.ddl -./tools/test/h5format_convert/testfiles/h5fc_v_n_1d.ddl -./tools/test/h5format_convert/testfiles/h5fc_non_v3.h5 -./tools/test/h5format_convert/testfiles/h5fc_edge_v3.h5 -./tools/test/h5format_convert/testfiles/h5fc_err_level.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext1_f.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext1_i.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext1_s.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext2_if.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext2_is.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext2_sf.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext3_isf.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext_none.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext1_f.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext1_i.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext1_s.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext2_if.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext2_is.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext2_sf.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext3_isf.h5 -./tools/test/h5format_convert/testfiles/old_h5fc_ext_none.h5 -./tools/test/h5format_convert/testfiles/h5fc_ext1_f.ddl -./tools/test/h5format_convert/testfiles/h5fc_ext1_i.ddl -./tools/test/h5format_convert/testfiles/h5fc_ext1_s.ddl -./tools/test/h5format_convert/testfiles/h5fc_ext2_if.ddl -./tools/test/h5format_convert/testfiles/h5fc_ext2_is.ddl -./tools/test/h5format_convert/testfiles/h5fc_ext2_sf.ddl -./tools/test/h5format_convert/testfiles/h5fc_ext3_isf.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext1_f.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext1_i.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext1_s.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext2_if.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext2_is.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext2_sf.ddl -./tools/test/h5format_convert/testfiles/old_h5fc_ext3_isf.ddl -./tools/test/h5format_convert/testh5fc.sh.in - -# h5repack sources -./tools/src/h5repack/Makefile.am -./tools/src/h5repack/h5repack.c -./tools/src/h5repack/h5repack.h -./tools/src/h5repack/h5repack_copy.c -./tools/src/h5repack/h5repack_refs.c -./tools/src/h5repack/h5repack_filters.c -./tools/src/h5repack/h5repack_main.c -./tools/src/h5repack/h5repack_opttable.c -./tools/src/h5repack/h5repack_parse.c -./tools/src/h5repack/h5repack_verify.c -./tools/test/h5repack/Makefile.am -./tools/test/h5repack/dynlib_rpk.c -./tools/test/h5repack/dynlib_vrpk.c -./tools/test/h5repack/h5repack.sh.in -./tools/test/h5repack/h5repackgentest.c -./tools/test/h5repack/h5repack_plugin.sh.in -./tools/test/h5repack/h5repacktst.c -./tools/test/h5repack/testh5repack_detect_szip.c - -# h5ls sources -./tools/src/h5ls/Makefile.am -./tools/src/h5ls/h5ls.c -./tools/test/h5ls/Makefile.am -./tools/test/h5ls/dynlib_ls.c -./tools/test/h5ls/h5ls_plugin.sh.in -./tools/test/h5ls/testh5ls.sh.in -./tools/test/h5ls/testh5lsvds.sh.in -./tools/test/h5ls/vds_prefix/tvds-1.ls -./tools/test/h5ls/vds_prefix/tvds-2.ls -./tools/test/h5ls/vds_prefix/tvds-3_1.ls -./tools/test/h5ls/vds_prefix/tvds-3_2.ls -./tools/test/h5ls/vds_prefix/tvds-4.ls -./tools/test/h5ls/vds_prefix/tvds-5.ls - -# h5ls test error files -./tools/test/h5ls/errfiles/nosuchfile.err -./tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err -./tools/test/h5ls/errfiles/tgroup-1.err - -# h5copy sources -./tools/src/h5copy/Makefile.am -./tools/src/h5copy/h5copy.c -./tools/test/h5copy/Makefile.am -./tools/test/h5copy/h5copygentest.c -./tools/test/h5copy/testh5copy.sh.in -./tools/test/h5copy/dynlib_copy.c - - -./tools/lib/Makefile.am -./tools/lib/h5diff.c -./tools/lib/h5diff.h -./tools/lib/h5diff_array.c -./tools/lib/h5diff_attr.c -./tools/lib/h5diff_dset.c -./tools/lib/h5diff_util.c -./tools/lib/h5trav.c -./tools/lib/h5trav.h -./tools/lib/h5tools.c -./tools/lib/h5tools.h -./tools/lib/h5tools_dump.c -./tools/lib/h5tools_dump.h -./tools/lib/h5tools_filters.c -./tools/lib/h5tools_str.c -./tools/lib/h5tools_str.h -./tools/lib/h5tools_utils.c -./tools/lib/h5tools_utils.h -./tools/lib/h5tools_ref.c -./tools/lib/h5tools_ref.h -./tools/lib/h5tools_type.c -./tools/lib/ph5diff.h -./tools/lib/h5tools_error.h -./tools/lib/io_timer.c -./tools/lib/io_timer.h - -./tools/libtest/Makefile.am -./tools/libtest/h5tools_test_utils.c - -./tools/src/misc/Makefile.am -./tools/src/misc/h5clear.c -./tools/src/misc/h5debug.c -./tools/src/misc/h5delete.c -./tools/src/misc/h5mkgrp.c -./tools/src/misc/h5repart.c -./tools/test/misc/Makefile.am -./tools/test/misc/h5repart_gentest.c -./tools/test/misc/repart_test.c -./tools/test/misc/testh5mkgrp.sh.in -./tools/test/misc/testh5repart.sh.in -./tools/test/misc/talign.c -./tools/test/misc/testfiles/h5clear_equal_after_size.ddl -./tools/test/misc/testfiles/h5clear_equal_before_size.ddl -./tools/test/misc/testfiles/h5clear_greater_after_size.ddl -./tools/test/misc/testfiles/h5clear_greater_before_size.ddl -./tools/test/misc/testfiles/h5clear_less_after_size.ddl -./tools/test/misc/testfiles/h5clear_less_before_size.ddl -./tools/test/misc/testfiles/h5clear_missing_file.ddl -./tools/test/misc/testfiles/h5clear_missing_file.err -./tools/test/misc/testfiles/h5clear_noclose_after_size.ddl -./tools/test/misc/testfiles/h5clear_noclose_before_size.ddl -./tools/test/misc/testfiles/h5clear_no_mdc_image.err -./tools/test/misc/testfiles/h5clear_open_fail.err -./tools/test/misc/testfiles/h5clear_status_noclose_after_size.ddl -./tools/test/misc/testfiles/h5clear_usage.ddl -./tools/test/misc/testfiles/h5clear_user_equal_after_size.ddl -./tools/test/misc/testfiles/h5clear_user_equal_before_size.ddl -./tools/test/misc/testfiles/h5clear_user_greater_after_size.ddl -./tools/test/misc/testfiles/h5clear_user_greater_before_size.ddl -./tools/test/misc/testfiles/h5clear_user_less_after_size.ddl -./tools/test/misc/testfiles/h5clear_user_less_before_size.ddl -./tools/test/misc/testfiles/h5clear_fsm_persist_equal.h5 -./tools/test/misc/testfiles/h5clear_fsm_persist_greater.h5 -./tools/test/misc/testfiles/h5clear_fsm_persist_less.h5 -./tools/test/misc/testfiles/h5clear_fsm_persist_noclose.h5 -./tools/test/misc/testfiles/h5clear_fsm_persist_user_equal.h5 -./tools/test/misc/testfiles/h5clear_fsm_persist_user_greater.h5 -./tools/test/misc/testfiles/h5clear_fsm_persist_user_less.h5 -./tools/test/misc/testfiles/h5clear_log_v3.h5 -./tools/test/misc/testfiles/h5clear_mdc_image.h5 -./tools/test/misc/testfiles/h5clear_sec2_v0.h5 -./tools/test/misc/testfiles/h5clear_sec2_v2.h5 -./tools/test/misc/testfiles/h5clear_sec2_v3.h5 -./tools/test/misc/testfiles/h5clear_status_noclose.h5 -./tools/test/misc/testfiles/latest_h5clear_log_v3.h5 -./tools/test/misc/testfiles/latest_h5clear_sec2_v3.h5 -./tools/test/misc/testfiles/mod_h5clear_mdc_image.h5 -./tools/test/misc/testfiles/h5mkgrp_help.txt -./tools/test/misc/testfiles/h5mkgrp_version.txt.in -./tools/test/misc/h5perf_gentest.c -./tools/test/misc/vds/Makefile.am -./tools/test/misc/vds/UC_1.h -./tools/test/misc/vds/UC_1_one_dim_gen.c -./tools/test/misc/vds/UC_2.h -./tools/test/misc/vds/UC_2_two_dims_gen.c -./tools/test/misc/vds/UC_3.h -./tools/test/misc/vds/UC_3_gaps_gen.c -./tools/test/misc/vds/UC_4.h -./tools/test/misc/vds/UC_4_printf_gen.c -./tools/test/misc/vds/UC_5.h -./tools/test/misc/vds/UC_5_stride_gen.c -./tools/test/misc/vds/UC_common.h -./tools/test/misc/h5clear_gentest.c -./tools/test/misc/clear_open_chk.c -./tools/test/misc/testh5clear.sh.in - -# h5stat sources -./tools/src/h5stat/Makefile.am -./tools/src/h5stat/h5stat.c - -# h5stat test files -./tools/test/h5stat/Makefile.am -./tools/test/h5stat/h5stat_gentest.c -./tools/test/h5stat/testh5stat.sh.in -./tools/test/h5stat/testfiles/h5stat_dims1.ddl -./tools/test/h5stat/testfiles/h5stat_dims2.ddl -./tools/test/h5stat/testfiles/h5stat_err_old_fill.h5 -./tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl -./tools/test/h5stat/testfiles/h5stat_err_old_layout.h5 -./tools/test/h5stat/testfiles/h5stat_err_old_layout.ddl -./tools/test/h5stat/testfiles/h5stat_err_refcount.h5 -./tools/test/h5stat/testfiles/h5stat_err_refcount.ddl -./tools/test/h5stat/testfiles/h5stat_filters.ddl -./tools/test/h5stat/testfiles/h5stat_filters-d.ddl -./tools/test/h5stat/testfiles/h5stat_filters-dT.ddl -./tools/test/h5stat/testfiles/h5stat_filters-F.ddl -./tools/test/h5stat/testfiles/h5stat_filters-file.ddl -./tools/test/h5stat/testfiles/h5stat_filters-g.ddl -./tools/test/h5stat/testfiles/h5stat_filters-UD.ddl -./tools/test/h5stat/testfiles/h5stat_filters-UT.ddl -./tools/test/h5stat/testfiles/h5stat_filters.h5 -./tools/test/h5stat/testfiles/h5stat_help1.ddl -./tools/test/h5stat/testfiles/h5stat_help2.ddl -./tools/test/h5stat/testfiles/h5stat_idx.h5 -./tools/test/h5stat/testfiles/h5stat_idx.ddl -./tools/test/h5stat/testfiles/h5stat_links1.ddl -./tools/test/h5stat/testfiles/h5stat_links2.ddl -./tools/test/h5stat/testfiles/h5stat_links3.ddl -./tools/test/h5stat/testfiles/h5stat_links4.ddl -./tools/test/h5stat/testfiles/h5stat_links5.ddl -./tools/test/h5stat/testfiles/h5stat_newgrat.ddl -./tools/test/h5stat/testfiles/h5stat_newgrat-UA.ddl -./tools/test/h5stat/testfiles/h5stat_newgrat-UG.ddl -./tools/test/h5stat/testfiles/h5stat_newgrat.h5 -./tools/test/h5stat/testfiles/h5stat_nofile.ddl -./tools/test/h5stat/testfiles/h5stat_notexist.ddl -./tools/test/h5stat/testfiles/h5stat_numattrs1.ddl -./tools/test/h5stat/testfiles/h5stat_numattrs2.ddl -./tools/test/h5stat/testfiles/h5stat_numattrs3.ddl -./tools/test/h5stat/testfiles/h5stat_numattrs4.ddl -./tools/test/h5stat/testfiles/h5stat_threshold.h5 -./tools/test/h5stat/testfiles/h5stat_tsohm.ddl -./tools/test/h5stat/testfiles/h5stat_tsohm.h5 -./tools/test/h5stat/testfiles/h5stat_err_refcount.err -./tools/test/h5stat/testfiles/h5stat_err_old_layout.err -./tools/test/h5stat/testfiles/h5stat_err_old_fill.err -./tools/test/h5stat/testfiles/h5stat_err1_dims.err -./tools/test/h5stat/testfiles/h5stat_err1_links.err -./tools/test/h5stat/testfiles/h5stat_err1_numattrs.err -./tools/test/h5stat/testfiles/h5stat_err2_numattrs.err -./tools/test/h5stat/testfiles/h5stat_notexist.err -./tools/test/h5stat/testfiles/h5stat_nofile.err - -# h5dump test files -./tools/testfiles/charsets.h5 -./tools/testfiles/charsets.ddl -./tools/testfiles/err_attr_dspace.h5 -./tools/testfiles/err_attr_dspace.ddl -./tools/testfiles/family_file00000.h5 -./tools/testfiles/family_file00001.h5 -./tools/testfiles/family_file00002.h5 -./tools/testfiles/family_file00003.h5 -./tools/testfiles/family_file00004.h5 -./tools/testfiles/family_file00005.h5 -./tools/testfiles/family_file00006.h5 -./tools/testfiles/family_file00007.h5 -./tools/testfiles/family_file00008.h5 -./tools/testfiles/family_file00009.h5 -./tools/testfiles/family_file00010.h5 -./tools/testfiles/family_file00011.h5 -./tools/testfiles/family_file00012.h5 -./tools/testfiles/family_file00013.h5 -./tools/testfiles/family_file00014.h5 -./tools/testfiles/family_file00015.h5 -./tools/testfiles/family_file00016.h5 -./tools/testfiles/family_file00017.h5 -./tools/testfiles/file_space.h5 -./tools/testfiles/file_space.ddl -./tools/testfiles/filter_fail.h5 -./tools/testfiles/filter_fail.ddl -./tools/testfiles/h5dump-help.txt -./tools/testfiles/non_existing.ddl -./tools/testfiles/packedbits.ddl -./tools/testfiles/t128bit_float.h5 -./tools/testfiles/taindices.h5 -./tools/testfiles/tall-1.ddl -./tools/testfiles/tall-2.ddl -./tools/testfiles/tall-2A.ddl -./tools/testfiles/tall-2A0.ddl -./tools/testfiles/tall-2B.ddl -./tools/testfiles/tall-3.ddl -./tools/testfiles/tall-4s.ddl -./tools/testfiles/tall-5s.ddl -./tools/testfiles/tall-6.ddl -./tools/testfiles/tall-6.exp -./tools/testfiles/tall-7.ddl -./tools/testfiles/tall-7N.ddl -./tools/testfiles/tall.h5 -./tools/testfiles/tallfilters.ddl -./tools/testfiles/tarray1.ddl -./tools/testfiles/tarray1.h5 -./tools/testfiles/tarray1_big.ddl -./tools/testfiles/tarray1_big.h5 -./tools/testfiles/tarray2.ddl -./tools/testfiles/tarray2.h5 -./tools/testfiles/tarray3.ddl -./tools/testfiles/tarray3.h5 -./tools/testfiles/tarray4.ddl -./tools/testfiles/tarray4.h5 -./tools/testfiles/tarray5.ddl -./tools/testfiles/tarray5.h5 -./tools/testfiles/tarray6.ddl -./tools/testfiles/tarray6.h5 -./tools/testfiles/tarray7.ddl -./tools/testfiles/tarray7.h5 -./tools/testfiles/tarray8.ddl -./tools/testfiles/tarray8.h5 -./tools/testfiles/tattr.h5 -./tools/testfiles/tattr-1.ddl -./tools/testfiles/tattr-2.ddl -./tools/testfiles/tattr-3.ddl -./tools/testfiles/tattr-4_be.ddl -./tools/testfiles/tattr2.h5 -./tools/testfiles/tattr4_be.h5 -./tools/testfiles/tattrcontents1.ddl -./tools/testfiles/tattrcontents2.ddl -./tools/testfiles/tattrintsize.ddl -./tools/testfiles/tattrintsize.h5 -./tools/testfiles/tattrreg.h5 -./tools/testfiles/tattrreg.ddl -./tools/testfiles/tattrregR.ddl -./tools/testfiles/tbigdims.ddl -./tools/testfiles/tbigdims.h5 -./tools/testfiles/tbinary.h5 -./tools/testfiles/tbin1.ddl -./tools/testfiles/tbin2.ddl -./tools/testfiles/tbin3.ddl -./tools/testfiles/tbin4.ddl -./tools/testfiles/tbinregR.exp -./tools/testfiles/tbinregR.ddl -./tools/testfiles/tbitfields.h5 -./tools/testfiles/tbitnopaque_be.ddl -./tools/testfiles/tbitnopaque_le.ddl -./tools/testfiles/tbitnopaque.h5 -./tools/testfiles/tboot1.ddl -./tools/testfiles/tboot2.ddl -./tools/testfiles/tboot2A.ddl -./tools/testfiles/tboot2B.ddl -./tools/testfiles/tchar.h5 -./tools/testfiles/tchar1.ddl -./tools/testfiles/tchunked.ddl -./tools/testfiles/tcompact.ddl -./tools/testfiles/tcontents.ddl -./tools/testfiles/tcontiguos.ddl -./tools/testfiles/tcmpdattrintsize.ddl -./tools/testfiles/tcmpdintarray.ddl -./tools/testfiles/tcmpdints.ddl -./tools/testfiles/tcmpdintsize.ddl -./tools/testfiles/tcmpdattrintsize.h5 -./tools/testfiles/tcmpdintarray.h5 -./tools/testfiles/tcmpdints.h5 -./tools/testfiles/tcmpdintsize.h5 -./tools/testfiles/tcomp-1.ddl -./tools/testfiles/tcomp-2.ddl -./tools/testfiles/tcomp-3.ddl -./tools/testfiles/tcomp-4.ddl -./tools/testfiles/tcompound.h5 -./tools/testfiles/tcompound2.h5 -./tools/testfiles/tcompound_complex.h5 -./tools/testfiles/tcompound_complex2.h5 -./tools/testfiles/tcompound_complex2.ddl -./tools/testfiles/tdatareg.h5 -./tools/testfiles/tdatareg.ddl -./tools/testfiles/tdataregR.ddl -./tools/testfiles/tdeflate.ddl -./tools/testfiles/tdset-1.ddl -./tools/testfiles/tdset-2.ddl -./tools/testfiles/tdset-3s.ddl -./tools/testfiles/tdset.h5 -./tools/testfiles/tdset2.h5 -./tools/testfiles/tdset_idx.ls -./tools/testfiles/tdset_idx.h5 -./tools/testfiles/tempty.ddl -./tools/testfiles/tempty.h5 -./tools/testfiles/tenum.h5 -./tools/testfiles/texceedsubblock.ddl -./tools/testfiles/texceedsubcount.ddl -./tools/testfiles/texceedsubstart.ddl -./tools/testfiles/texceedsubstride.ddl -./tools/testfiles/texternal.ddl -./tools/testfiles/textlink.h5 -./tools/testfiles/textlink.h5.xml -./tools/testfiles/textlink.ddl -./tools/testfiles/textlinkfar.ddl -./tools/testfiles/textlinkfar.h5 -./tools/testfiles/textlinksrc.ddl -./tools/testfiles/textlinksrc.h5 -./tools/testfiles/textlinktar.h5 -./tools/testfiles/tfamily.ddl -./tools/testfiles/tfamily00000.h5 -./tools/testfiles/tfamily00001.h5 -./tools/testfiles/tfamily00002.h5 -./tools/testfiles/tfamily00003.h5 -./tools/testfiles/tfamily00004.h5 -./tools/testfiles/tfamily00005.h5 -./tools/testfiles/tfamily00006.h5 -./tools/testfiles/tfamily00007.h5 -./tools/testfiles/tfamily00008.h5 -./tools/testfiles/tfamily00009.h5 -./tools/testfiles/tfamily00010.h5 -./tools/testfiles/tfcontents1.h5 -./tools/testfiles/tfcontents2.h5 -./tools/testfiles/tfill.ddl -./tools/testfiles/tfilters.h5 -./tools/testfiles/tfletcher32.ddl -./tools/testfiles/tfloatsattrs.ddl -./tools/testfiles/tfloatsattrs.h5 -./tools/testfiles/tfloatsattrs.wddl -./tools/testfiles/tfvalues.h5 -./tools/testfiles/tgroup-1.ddl -./tools/testfiles/tgroup-2.ddl -./tools/testfiles/tgroup.h5 -./tools/testfiles/tgrp_comments.ls -./tools/testfiles/tgrp_comments.ddl -./tools/testfiles/tgrp_comments.h5 -./tools/testfiles/tgrpnullspace.h5 -./tools/testfiles/tgrpnullspace.ddl -./tools/testfiles/tgrpnullspace.ls -./tools/testfiles/thlink-1.ddl -./tools/testfiles/thlink-2.ddl -./tools/testfiles/thlink-3.ddl -./tools/testfiles/thlink-4.ddl -./tools/testfiles/thlink-5.ddl -./tools/testfiles/thlink.h5 -./tools/testfiles/thyperslab.ddl -./tools/testfiles/thyperslab.h5 -./tools/testfiles/tindicesyes.ddl -./tools/testfiles/tindicesno.ddl -./tools/testfiles/tindicessub2.ddl -./tools/testfiles/tindicessub3.ddl -./tools/testfiles/tindicessub4.ddl -./tools/testfiles/tindicessub1.ddl -./tools/testfiles/tints4dims.ddl -./tools/testfiles/tints4dimsBlock2.ddl -./tools/testfiles/tints4dimsBlockEq.ddl -./tools/testfiles/tints4dimsCount2.ddl -./tools/testfiles/tints4dimsCountEq.ddl -./tools/testfiles/tints4dimsStride2.ddl -./tools/testfiles/tints4dims.h5 -./tools/testfiles/tintsattrs.ddl -./tools/testfiles/tintsattrs.h5 -./tools/testfiles/tintsnodata.ddl -./tools/testfiles/tintsnodata.h5 -./tools/testfiles/tlarge_objname.ddl -./tools/testfiles/tlarge_objname.h5 -./tools/testfiles/tldouble.ddl -./tools/testfiles/tldouble.h5 -./tools/testfiles/tldouble_scalar.ddl -./tools/testfiles/tldouble_scalar.h5 -./tools/testfiles/tlonglinks.ddl -./tools/testfiles/tlonglinks.h5 -./tools/testfiles/tloop-1.ddl -./tools/testfiles/tloop.h5 -./tools/testfiles/tloop2.h5 -./tools/testfiles/tmany.h5 -./tools/testfiles/tmulti-b.h5 -./tools/testfiles/tmulti.ddl -./tools/testfiles/tmulti-g.h5 -./tools/testfiles/tmulti-l.h5 -./tools/testfiles/tmulti-o.h5 -./tools/testfiles/tmulti-r.h5 -./tools/testfiles/tmulti-s.h5 -./tools/testfiles/tmultifile.ls -./tools/testfiles/tmultifile.ddl -./tools/testfiles/tnbit.ddl -./tools/testfiles/tnestcomp-1.ddl -./tools/testfiles/tnestedcomp.h5 -./tools/testfiles/tnestedcmpddt.ddl -./tools/testfiles/tnestedcmpddt.h5 -./tools/testfiles/tnoattrdata.ddl -./tools/testfiles/tnoattrddl.ddl -./tools/testfiles/tnodata.ddl -./tools/testfiles/tnoddl.ddl -./tools/testfiles/tnoddlfile.ddl -./tools/testfiles/tnoddlfile.exp -./tools/testfiles/tno-subset.h5 -./tools/testfiles/tno-subset.ddl -./tools/testfiles/tnullspace.h5 -./tools/testfiles/tnullspace.h5.xml -./tools/testfiles/tnullspace.ddl -./tools/testfiles/tobjref.h5 -./tools/testfiles/topaque.h5 -./tools/testfiles/tordercontents1.ddl -./tools/testfiles/tordercontents2.ddl -./tools/testfiles/torderlinks1.ddl -./tools/testfiles/torderlinks2.ddl -./tools/testfiles/tperror.ddl -./tools/testfiles/tqmarkfile.ddl -./tools/testfiles/trawdatafile.ddl -./tools/testfiles/trawdatafile.exp -./tools/testfiles/trawssetfile.ddl -./tools/testfiles/trawssetfile.exp -./tools/testfiles/treadfilter.ddl -./tools/testfiles/treadintfilter.ddl -./tools/testfiles/treference.ddl -./tools/testfiles/tsaf.ddl -./tools/testfiles/tsaf.h5 -./tools/testfiles/tscalarattrintsize.ddl -./tools/testfiles/tscalarattrintsize.h5 -./tools/testfiles/tscalarintattrsize.ddl -./tools/testfiles/tscalarintattrsize.h5 -./tools/testfiles/tscalarintsize.ddl -./tools/testfiles/tscalarintsize.h5 -./tools/testfiles/tscalarstring.ddl -./tools/testfiles/tscalarstring.h5 -./tools/testfiles/tscaleoffset.ddl -./tools/testfiles/tshuffle.ddl -./tools/testfiles/tslink-1.ddl -./tools/testfiles/tslink-2.ddl -./tools/testfiles/tslink-D.ddl -./tools/testfiles/tslink.h5 -./tools/testfiles/tsoftlinks.h5 -./tools/testfiles/tsplit_file-m.h5 -./tools/testfiles/tsplit_file-r.h5 -./tools/testfiles/tsplit_file.ddl -./tools/testfiles/tstarfile.ddl -./tools/testfiles/tstr.h5 -./tools/testfiles/tstr2.h5 -./tools/testfiles/tstr3.h5 -./tools/testfiles/tstr-1.ddl -./tools/testfiles/tstr-2.ddl -./tools/testfiles/tstr2bin2.exp -./tools/testfiles/tstr2bin6.exp -./tools/testfiles/tstring.ddl -./tools/testfiles/tstring2.ddl -./tools/testfiles/tstringe.ddl -./tools/testfiles/tszip.ddl -./tools/testfiles/tudfilter.ddl -./tools/testfiles/tudfilter.h5 -./tools/testfiles/tudfilter.ls -./tools/testfiles/tudlink.h5 -./tools/testfiles/tudlink.h5.xml -./tools/testfiles/tudlink-1.ddl -./tools/testfiles/tudlink-2.ddl -./tools/testfiles/tuserfilter.ddl -./tools/testfiles/tvldtypes1.ddl -./tools/testfiles/tvldtypes1.h5 -./tools/testfiles/tvldtypes2.ddl -./tools/testfiles/tvldtypes2.h5 -./tools/testfiles/tvldtypes3.ddl -./tools/testfiles/tvldtypes3.h5 -./tools/testfiles/tvldtypes4.ddl -./tools/testfiles/tvldtypes4.h5 -./tools/testfiles/tvldtypes5.ddl -./tools/testfiles/tvldtypes5.h5 -./tools/testfiles/tvlenstr_array.ddl -./tools/testfiles/tvlenstr_array.h5 -./tools/testfiles/tvlstr.h5 -./tools/testfiles/tvlstr.ddl -./tools/testfiles/tvms.ddl -./tools/testfiles/tvms.h5 -./tools/testfiles/twidedisplay.ddl -./tools/testfiles/twithddl.exp -./tools/testfiles/twithddlfile.ddl -./tools/testfiles/twithddlfile.exp -./tools/testfiles/tCVE_2018_11206_fill_old.h5 -./tools/testfiles/tCVE_2018_11206_fill_new.h5 - -# h5dump test error files -./tools/test/h5dump/errfiles/filter_fail.err -./tools/test/h5dump/errfiles/non_existing.err -./tools/test/h5dump/errfiles/tall-1.err -./tools/test/h5dump/errfiles/tall-2A.err -./tools/test/h5dump/errfiles/tall-2A0.err -./tools/test/h5dump/errfiles/tall-2B.err -./tools/test/h5dump/errfiles/tarray1_big.err -./tools/test/h5dump/errfiles/tattr-3.err -./tools/test/h5dump/errfiles/tattrregR.err -./tools/test/h5dump/errfiles/tcomp-3.err -./tools/test/h5dump/errfiles/tdataregR.err -./tools/test/h5dump/errfiles/tdset-2.err -./tools/test/h5dump/errfiles/texceedsubblock.err -./tools/test/h5dump/errfiles/texceedsubcount.err -./tools/test/h5dump/errfiles/texceedsubstart.err -./tools/test/h5dump/errfiles/texceedsubstride.err -./tools/test/h5dump/errfiles/textlink.err -./tools/test/h5dump/errfiles/textlinkfar.err -./tools/test/h5dump/errfiles/textlinksrc.err -./tools/test/h5dump/errfiles/tgroup-2.err -./tools/test/h5dump/errfiles/tnofilename-with-packed-bits.err -./tools/test/h5dump/errfiles/torderlinks1.err -./tools/test/h5dump/errfiles/torderlinks2.err -./tools/test/h5dump/errfiles/tpbitsCharLengthExceeded.err -./tools/test/h5dump/errfiles/tpbitsCharOffsetExceeded.err -./tools/test/h5dump/errfiles/tpbitsIncomplete.err -./tools/test/h5dump/errfiles/tpbitsIntLengthExceeded.err -./tools/test/h5dump/errfiles/tpbitsIntOffsetExceeded.err -./tools/test/h5dump/errfiles/tpbitsLengthExceeded.err -./tools/test/h5dump/errfiles/tpbitsLengthPositive.err -./tools/test/h5dump/errfiles/tpbitsLongLengthExceeded.err -./tools/test/h5dump/errfiles/tpbitsLongOffsetExceeded.err -./tools/test/h5dump/errfiles/tpbitsMaxExceeded.err -./tools/test/h5dump/errfiles/tpbitsOffsetExceeded.err -./tools/test/h5dump/errfiles/tpbitsOffsetNegative.err -./tools/test/h5dump/errfiles/tperror.err -./tools/test/h5dump/errfiles/tqmarkfile.err -./tools/test/h5dump/errfiles/tslink-D.err - -# h5dump packed bits validation -./tools/testfiles/pbits/tnofilename-with-packed-bits.ddl -./tools/testfiles/pbits/tpbitsLengthPositive.ddl -./tools/testfiles/pbits/tpbitsMaxExceeded.ddl -./tools/testfiles/pbits/tpbitsSigned.ddl -./tools/testfiles/pbits/tpbitsSigned2.ddl -./tools/testfiles/pbits/tpbitsSigned4.ddl -./tools/testfiles/pbits/tpbitsSignedWhole.ddl -./tools/testfiles/pbits/tpbitsSignedInt.ddl -./tools/testfiles/pbits/tpbitsSignedInt4.ddl -./tools/testfiles/pbits/tpbitsSignedInt8.ddl -./tools/testfiles/pbits/tpbitsSignedIntWhole.ddl -./tools/testfiles/pbits/tpbitsSignedLong.ddl -./tools/testfiles/pbits/tpbitsSignedLong8.ddl -./tools/testfiles/pbits/tpbitsSignedLong16.ddl -./tools/testfiles/pbits/tpbitsSignedLongWhole.ddl -./tools/testfiles/pbits/tpbitsSignedLongLong.ddl -./tools/testfiles/pbits/tpbitsSignedLongLong16.ddl -./tools/testfiles/pbits/tpbitsSignedLongLong32.ddl -./tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl -./tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl -./tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl -./tools/testfiles/pbits/tpbitsOffsetNegative.ddl -./tools/testfiles/pbits/tpbitsUnsigned.ddl -./tools/testfiles/pbits/tpbitsUnsigned2.ddl -./tools/testfiles/pbits/tpbitsUnsigned4.ddl -./tools/testfiles/pbits/tpbitsUnsignedWhole.ddl -./tools/testfiles/pbits/tpbitsUnsignedInt.ddl -./tools/testfiles/pbits/tpbitsUnsignedInt4.ddl -./tools/testfiles/pbits/tpbitsUnsignedInt8.ddl -./tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl -./tools/testfiles/pbits/tpbitsUnsignedLong.ddl -./tools/testfiles/pbits/tpbitsUnsignedLong8.ddl -./tools/testfiles/pbits/tpbitsUnsignedLong16.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl -./tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl -./tools/testfiles/pbits/tpbitsMax.ddl -./tools/testfiles/pbits/tpbitsArray.ddl -./tools/testfiles/pbits/tpbitsCompound.ddl -./tools/testfiles/pbits/tpbitsIncomplete.ddl -./tools/testfiles/pbits/tpbitsLengthExceeded.ddl -./tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl -./tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl -./tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl -./tools/testfiles/pbits/tpbitsOffsetExceeded.ddl -./tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl -./tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl -./tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl -./tools/testfiles/pbits/tpbitsOverlapped.ddl -./tools/testfiles/packedbits.h5 - -# h5dump vds validation -./tools/testfiles/vds/tvds-1.ddl -./tools/testfiles/vds/tvds-2.ddl -./tools/testfiles/vds/tvds-3_1.ddl -./tools/testfiles/vds/tvds-3_2.ddl -./tools/testfiles/vds/tvds-4.ddl -./tools/testfiles/vds/tvds-5.ddl -./tools/testfiles/vds/tvds_layout-1.ddl -./tools/testfiles/vds/tvds_layout-2.ddl -./tools/testfiles/vds/tvds_layout-3_1.ddl -./tools/testfiles/vds/tvds_layout-3_2.ddl -./tools/testfiles/vds/tvds_layout-4.ddl -./tools/testfiles/vds/tvds_layout-5.ddl -./tools/testfiles/vds/vds-first.ddl -./tools/testfiles/vds/vds-gap1.ddl -./tools/testfiles/vds/vds-gap2.ddl -./tools/testfiles/vds/vds_layout-eiger.ddl -./tools/testfiles/vds/vds_layout-maxmin.ddl -./tools/testfiles/vds/1_a.h5 -./tools/testfiles/vds/1_b.h5 -./tools/testfiles/vds/1_c.h5 -./tools/testfiles/vds/1_d.h5 -./tools/testfiles/vds/1_e.h5 -./tools/testfiles/vds/1_f.h5 -./tools/testfiles/vds/1_vds.h5 -./tools/testfiles/vds/2_a.h5 -./tools/testfiles/vds/2_b.h5 -./tools/testfiles/vds/2_c.h5 -./tools/testfiles/vds/2_d.h5 -./tools/testfiles/vds/2_e.h5 -./tools/testfiles/vds/2_vds.h5 -./tools/testfiles/vds/3_1_vds.h5 -./tools/testfiles/vds/3_2_vds.h5 -./tools/testfiles/vds/4_0.h5 -./tools/testfiles/vds/4_1.h5 -./tools/testfiles/vds/4_2.h5 -./tools/testfiles/vds/4_vds.h5 -./tools/testfiles/vds/5_a.h5 -./tools/testfiles/vds/5_b.h5 -./tools/testfiles/vds/5_c.h5 -./tools/testfiles/vds/5_vds.h5 -./tools/testfiles/vds/a.h5 -./tools/testfiles/vds/b.h5 -./tools/testfiles/vds/c.h5 -./tools/testfiles/vds/d.h5 -./tools/testfiles/vds/vds-percival-unlim-maxmin.h5 -./tools/testfiles/vds/f-0.h5 -./tools/testfiles/vds/f-3.h5 -./tools/testfiles/vds/vds-eiger.h5 - -# h5dump h5import validation -./tools/testfiles/out3.h5import -./tools/testfiles/tordergr.h5 -./tools/testfiles/tordergr3.ddl -./tools/testfiles/tordergr4.ddl -./tools/testfiles/tordergr1.ddl -./tools/testfiles/tordergr5.ddl -./tools/testfiles/tordergr2.ddl -./tools/testfiles/torderattr1.ddl -./tools/testfiles/torderattr2.ddl -./tools/testfiles/torderattr3.ddl -./tools/testfiles/torderattr4.ddl -./tools/testfiles/torderattr.h5 -./tools/testfiles/tfpformat.ddl -./tools/testfiles/tfpformat.h5 - -# h5dump h5repack validation -./tools/testfiles/zerodim.ddl -./tools/testfiles/zerodim.h5 - -# h5dump new reference validation -./tools/testfiles/trefer_attrR.ddl -./tools/testfiles/trefer_compatR.ddl -./tools/testfiles/trefer_extR.ddl -./tools/testfiles/trefer_grpR.ddl -./tools/testfiles/trefer_obj_delR.ddl -./tools/testfiles/trefer_objR.ddl -./tools/testfiles/trefer_paramR.ddl -./tools/testfiles/trefer_reg_1dR.ddl -./tools/testfiles/trefer_regR.ddl -# h5dump and h5diff new reference files -./tools/testfiles/trefer_attr.h5 -./tools/testfiles/trefer_compat.h5 -./tools/testfiles/trefer_ext1.h5 -./tools/testfiles/trefer_ext2.h5 -./tools/testfiles/trefer_grp.h5 -./tools/testfiles/trefer_obj_del.h5 -./tools/testfiles/trefer_obj.h5 -./tools/testfiles/trefer_param.h5 -./tools/testfiles/trefer_reg_1d.h5 -./tools/testfiles/trefer_reg.h5 - -# Expected output from h5ls tests -./tools/testfiles/nosuchfile.ls -./tools/testfiles/help-1.ls -./tools/testfiles/help-2.ls -./tools/testfiles/help-3.ls -./tools/testfiles/tall-1.ls -./tools/testfiles/tall-2.ls -./tools/testfiles/tcomp-1.ls -./tools/testfiles/tdset-1.ls -./tools/testfiles/tgroup-1.ls -./tools/testfiles/tgroup-2.ls -./tools/testfiles/tgroup-3.ls -./tools/testfiles/tgroup.ls -./tools/testfiles/tloop-1.ls -./tools/testfiles/tnestcomp-1.ls -./tools/testfiles/tnestcomp-2.ls -./tools/testfiles/tnestcomp-3.ls -./tools/testfiles/tnestcomp-4.ls -./tools/testfiles/tsaf.ls -./tools/testfiles/tstr-1.ls -./tools/testfiles/tattr2.ls -./tools/testfiles/tattrreg_le.ls -./tools/testfiles/tattrreg_be.ls -./tools/testfiles/tvldtypes1.ls -./tools/testfiles/tvldtypes2le.ls -./tools/testfiles/tvldtypes2be.ls -./tools/testfiles/tdataregle.ls -./tools/testfiles/tdataregbe.ls -./tools/testfiles/tarray1.ls -./tools/testfiles/tempty.ls -./tools/testfiles/thlink-1.ls -./tools/testfiles/tslink-1.ls -./tools/testfiles/textlink-1.ls -./tools/testfiles/textlinksrc-1.ls -./tools/testfiles/textlinksrc-2.ls -./tools/testfiles/textlinksrc-3.ls -./tools/testfiles/textlinksrc-4.ls -./tools/testfiles/textlinksrc-5.ls -./tools/testfiles/textlinksrc-6.ls -./tools/testfiles/textlinksrc-7.ls -./tools/testfiles/textlinksrc-1-old.ls -./tools/testfiles/textlinksrc-2-old.ls -./tools/testfiles/textlinksrc-3-old.ls -./tools/testfiles/textlinksrc-6-old.ls -./tools/testfiles/textlinksrc-7-old.ls -./tools/testfiles/tsoftlinks-1.ls -./tools/testfiles/tsoftlinks-2.ls -./tools/testfiles/tsoftlinks-3.ls -./tools/testfiles/tsoftlinks-4.ls -./tools/testfiles/tsoftlinks-5.ls -./tools/testfiles/textlinksrc-nodangle-1.ls -./tools/testfiles/textlinksrc-nodangle-2.ls -./tools/testfiles/tsoftlinks-nodangle-1.ls -./tools/testfiles/thlinks-nodangle-1.ls -./tools/testfiles/tudlink-1.ls - -# h5ls vds validation -./tools/testfiles/vds/tvds-1.ls -./tools/testfiles/vds/tvds-2.ls -./tools/testfiles/vds/tvds-3_1.ls -./tools/testfiles/vds/tvds-3_2.ls -./tools/testfiles/vds/tvds-4.ls -./tools/testfiles/vds/tvds-5.ls - -#additional test input and output for h5dump XML -./tools/testfiles/tall.h5.xml -./tools/testfiles/tarray1.h5.xml -./tools/testfiles/tarray2.h5.xml -./tools/testfiles/tarray3.h5.xml -./tools/testfiles/tarray6.h5.xml -./tools/testfiles/tarray7.h5.xml -./tools/testfiles/tattr.h5.xml -./tools/testfiles/tbitfields_be.h5.xml -./tools/testfiles/tbitfields_le.h5.xml -./tools/testfiles/tcompound.h5.xml -./tools/testfiles/tcompound2.h5.xml -./tools/testfiles/tcompound_complex.h5.xml -./tools/testfiles/tdatareg.h5.xml -./tools/testfiles/tdset.h5.xml -./tools/testfiles/tdset2.h5.xml -./tools/testfiles/tempty.h5.xml -./tools/testfiles/tenum.h5.xml -./tools/testfiles/test35.nc -./tools/testfiles/test35.nc.xml -./tools/testfiles/tfpformat.h5.xml -./tools/testfiles/tgroup.h5.xml -./tools/testfiles/thlink.h5.xml -./tools/testfiles/tloop.h5.xml -./tools/testfiles/tloop2.h5.xml -./tools/testfiles/tmany.h5.xml -./tools/testfiles/tname-amp.h5 -./tools/testfiles/tname-amp.h5.xml -./tools/testfiles/tname-apos.h5 -./tools/testfiles/tname-apos.h5.xml -./tools/testfiles/tname-gt.h5 -./tools/testfiles/tname-gt.h5.xml -./tools/testfiles/tname-lt.h5 -./tools/testfiles/tname-lt.h5.xml -./tools/testfiles/tname-quot.h5 -./tools/testfiles/tname-quot.h5.xml -./tools/testfiles/tname-sp.h5 -./tools/testfiles/tname-sp.h5.xml -./tools/testfiles/tnamed_dtype_attr.ddl -./tools/testfiles/tnamed_dtype_attr.h5 -./tools/testfiles/tnamed_dtype_attr.h5.xml -./tools/testfiles/tnestedcomp.h5.xml -./tools/testfiles/tnodata.h5 -./tools/testfiles/tnodata.h5.xml -./tools/testfiles/tobjref.h5.xml -./tools/testfiles/topaque.h5.xml -./tools/testfiles/tref-escapes-at.h5 -./tools/testfiles/tref-escapes-at.h5.xml -./tools/testfiles/tref-escapes.h5 -./tools/testfiles/tref-escapes.h5.xml -./tools/testfiles/tref.h5 -./tools/testfiles/tref.h5.xml -./tools/testfiles/tsaf.h5.xml -./tools/testfiles/tslink.h5.xml -./tools/testfiles/tstr.h5.xml -./tools/testfiles/tstr2.h5.xml -./tools/testfiles/tstring-at.h5 -./tools/testfiles/tstring-at.h5.xml -./tools/testfiles/tstring.h5 -./tools/testfiles/tstring.h5.xml -./tools/testfiles/tvldtypes1.h5.xml -./tools/testfiles/tvldtypes2.h5.xml -./tools/testfiles/tvldtypes3.h5.xml -./tools/testfiles/tvldtypes4.h5.xml -./tools/testfiles/tvldtypes5.h5.xml -./tools/testfiles/tvlstr.h5.xml -./tools/testfiles/tempty-dtd.h5.xml -./tools/testfiles/tempty-dtd-uri.h5.xml -./tools/testfiles/tempty-nons.h5.xml -./tools/testfiles/tempty-nons-uri.h5.xml -./tools/testfiles/tempty-ns.h5.xml -./tools/testfiles/tempty-dtd-2.h5.xml -./tools/testfiles/tempty-nons-2.h5.xml -./tools/testfiles/tempty-ns-2.h5.xml -./tools/testfiles/tall-2A.h5.xml -./tools/testfiles/torderattr4.h5.xml -./tools/testfiles/torderattr2.h5.xml -./tools/testfiles/torderattr3.h5.xml -./tools/testfiles/torderattr1.h5.xml - - -#test files for h5diff -./tools/test/h5diff/testfiles/h5diff_10.txt -./tools/test/h5diff/testfiles/h5diff_11.txt -./tools/test/h5diff/testfiles/h5diff_12.txt -./tools/test/h5diff/testfiles/h5diff_13.txt -./tools/test/h5diff/testfiles/h5diff_14.txt -./tools/test/h5diff/testfiles/h5diff_15.txt -./tools/test/h5diff/testfiles/h5diff_16_1.txt -./tools/test/h5diff/testfiles/h5diff_16_2.txt -./tools/test/h5diff/testfiles/h5diff_16_3.txt -./tools/test/h5diff/testfiles/h5diff_17.txt -./tools/test/h5diff/testfiles/h5diff_171.txt -./tools/test/h5diff/testfiles/h5diff_172.txt -./tools/test/h5diff/testfiles/h5diff_18.txt -./tools/test/h5diff/testfiles/h5diff_18_1.txt -./tools/test/h5diff/testfiles/h5diff_19.txt -./tools/test/h5diff/testfiles/h5diff_20.txt -./tools/test/h5diff/testfiles/h5diff_21.txt -./tools/test/h5diff/testfiles/h5diff_22.txt -./tools/test/h5diff/testfiles/h5diff_23.txt -./tools/test/h5diff/testfiles/h5diff_24.txt -./tools/test/h5diff/testfiles/h5diff_25.txt -./tools/test/h5diff/testfiles/h5diff_26.txt -./tools/test/h5diff/testfiles/h5diff_27.txt -./tools/test/h5diff/testfiles/h5diff_28.txt -./tools/test/h5diff/testfiles/h5diff_30.txt -./tools/test/h5diff/testfiles/h5diff_50.txt -./tools/test/h5diff/testfiles/h5diff_51.txt -./tools/test/h5diff/testfiles/h5diff_52.txt -./tools/test/h5diff/testfiles/h5diff_53.txt -./tools/test/h5diff/testfiles/h5diff_54.txt -./tools/test/h5diff/testfiles/h5diff_55.txt -./tools/test/h5diff/testfiles/h5diff_56.txt -./tools/test/h5diff/testfiles/h5diff_57.txt -./tools/test/h5diff/testfiles/h5diff_58.txt -./tools/test/h5diff/testfiles/h5diff_58_ref.txt -./tools/test/h5diff/testfiles/h5diff_59.txt -./tools/test/h5diff/testfiles/h5diff_60.txt -./tools/test/h5diff/testfiles/h5diff_61.txt -./tools/test/h5diff/testfiles/h5diff_62.txt -./tools/test/h5diff/testfiles/h5diff_63.txt -./tools/test/h5diff/testfiles/h5diff_600.txt -./tools/test/h5diff/testfiles/h5diff_601.txt -./tools/test/h5diff/testfiles/h5diff_601_ERR.err -./tools/test/h5diff/testfiles/h5diff_603.txt -./tools/test/h5diff/testfiles/h5diff_604.txt -./tools/test/h5diff/testfiles/h5diff_605.txt -./tools/test/h5diff/testfiles/h5diff_606.txt -./tools/test/h5diff/testfiles/h5diff_607.txt -./tools/test/h5diff/testfiles/h5diff_608.txt -./tools/test/h5diff/testfiles/h5diff_609.txt -./tools/test/h5diff/testfiles/h5diff_610.txt -./tools/test/h5diff/testfiles/h5diff_612.txt -./tools/test/h5diff/testfiles/h5diff_613.txt -./tools/test/h5diff/testfiles/h5diff_614.txt -./tools/test/h5diff/testfiles/h5diff_615.txt -./tools/test/h5diff/testfiles/h5diff_616.txt -./tools/test/h5diff/testfiles/h5diff_617.txt -./tools/test/h5diff/testfiles/h5diff_618.txt -./tools/test/h5diff/testfiles/h5diff_619.txt -./tools/test/h5diff/testfiles/h5diff_621.txt -./tools/test/h5diff/testfiles/h5diff_622.txt -./tools/test/h5diff/testfiles/h5diff_623.txt -./tools/test/h5diff/testfiles/h5diff_624.txt -./tools/test/h5diff/testfiles/h5diff_625.txt -./tools/test/h5diff/testfiles/h5diff_626.txt -./tools/test/h5diff/testfiles/h5diff_627.txt -./tools/test/h5diff/testfiles/h5diff_628.txt -./tools/test/h5diff/testfiles/h5diff_629.txt -./tools/test/h5diff/testfiles/h5diff_630.txt -./tools/test/h5diff/testfiles/h5diff_631.txt -./tools/test/h5diff/testfiles/h5diff_640.txt -./tools/test/h5diff/testfiles/h5diff_641.txt -./tools/test/h5diff/testfiles/h5diff_642.txt -./tools/test/h5diff/testfiles/h5diff_643.txt -./tools/test/h5diff/testfiles/h5diff_644.txt -./tools/test/h5diff/testfiles/h5diff_645.txt -./tools/test/h5diff/testfiles/h5diff_646.txt -./tools/test/h5diff/testfiles/h5diff_70.txt -./tools/test/h5diff/testfiles/h5diff_700.txt -./tools/test/h5diff/testfiles/h5diff_701.txt -./tools/test/h5diff/testfiles/h5diff_702.txt -./tools/test/h5diff/testfiles/h5diff_703.txt -./tools/test/h5diff/testfiles/h5diff_704.txt -./tools/test/h5diff/testfiles/h5diff_705.txt -./tools/test/h5diff/testfiles/h5diff_706.txt -./tools/test/h5diff/testfiles/h5diff_707.txt -./tools/test/h5diff/testfiles/h5diff_708.txt -./tools/test/h5diff/testfiles/h5diff_709.txt -./tools/test/h5diff/testfiles/h5diff_710.txt -./tools/test/h5diff/testfiles/h5diff_80.txt -./tools/test/h5diff/testfiles/h5diff_800.txt -./tools/test/h5diff/testfiles/h5diff_801.txt -./tools/test/h5diff/testfiles/h5diff_830.txt -./tools/test/h5diff/testfiles/h5diff_90.txt -./tools/test/h5diff/testfiles/h5diff_100.txt -./tools/test/h5diff/testfiles/h5diff_101.txt -./tools/test/h5diff/testfiles/h5diff_102.txt -./tools/test/h5diff/testfiles/h5diff_103.txt -./tools/test/h5diff/testfiles/h5diff_104.txt -# w for Windows-specific -./tools/test/h5diff/testfiles/h5diff_101w.txt -./tools/test/h5diff/testfiles/h5diff_102w.txt -./tools/test/h5diff/testfiles/h5diff_103w.txt -./tools/test/h5diff/testfiles/h5diff_104w.txt -./tools/test/h5diff/testfiles/h5diff_200.txt -./tools/test/h5diff/testfiles/h5diff_201.txt -./tools/test/h5diff/testfiles/h5diff_202.txt -./tools/test/h5diff/testfiles/h5diff_203.txt -./tools/test/h5diff/testfiles/h5diff_204.txt -./tools/test/h5diff/testfiles/h5diff_205.txt -./tools/test/h5diff/testfiles/h5diff_206.txt -./tools/test/h5diff/testfiles/h5diff_207.txt -./tools/test/h5diff/testfiles/h5diff_208.txt -./tools/test/h5diff/testfiles/h5diff_220.txt -./tools/test/h5diff/testfiles/h5diff_221.txt -./tools/test/h5diff/testfiles/h5diff_222.txt -./tools/test/h5diff/testfiles/h5diff_223.txt -./tools/test/h5diff/testfiles/h5diff_224.txt -./tools/test/h5diff/testfiles/h5diff_300.txt -./tools/test/h5diff/testfiles/h5diff_400.txt -./tools/test/h5diff/testfiles/h5diff_401.txt -./tools/test/h5diff/testfiles/h5diff_402.txt -./tools/test/h5diff/testfiles/h5diff_403.txt -./tools/test/h5diff/testfiles/h5diff_404.txt -./tools/test/h5diff/testfiles/h5diff_405.txt -./tools/test/h5diff/testfiles/h5diff_406.txt -./tools/test/h5diff/testfiles/h5diff_407.txt -./tools/test/h5diff/testfiles/h5diff_408.txt -./tools/test/h5diff/testfiles/h5diff_409.txt -./tools/test/h5diff/testfiles/h5diff_410.txt -./tools/test/h5diff/testfiles/h5diff_411.txt -./tools/test/h5diff/testfiles/h5diff_412.txt -./tools/test/h5diff/testfiles/h5diff_413.txt -./tools/test/h5diff/testfiles/h5diff_414.txt -./tools/test/h5diff/testfiles/h5diff_415.txt -./tools/test/h5diff/testfiles/h5diff_416.txt -./tools/test/h5diff/testfiles/h5diff_417.txt -./tools/test/h5diff/testfiles/h5diff_418.txt -./tools/test/h5diff/testfiles/h5diff_419.txt -./tools/test/h5diff/testfiles/h5diff_420.txt -./tools/test/h5diff/testfiles/h5diff_421.txt -./tools/test/h5diff/testfiles/h5diff_422.txt -./tools/test/h5diff/testfiles/h5diff_423.txt -./tools/test/h5diff/testfiles/h5diff_424.txt -./tools/test/h5diff/testfiles/h5diff_425.txt -./tools/test/h5diff/testfiles/h5diff_450.txt -./tools/test/h5diff/testfiles/h5diff_451.txt -./tools/test/h5diff/testfiles/h5diff_452.txt -./tools/test/h5diff/testfiles/h5diff_453.txt -./tools/test/h5diff/testfiles/h5diff_454.txt -./tools/test/h5diff/testfiles/dangling_link.err -./tools/test/h5diff/testfiles/h5diff_455.txt -./tools/test/h5diff/testfiles/h5diff_456.txt -./tools/test/h5diff/testfiles/h5diff_457.txt -./tools/test/h5diff/testfiles/h5diff_458.txt -./tools/test/h5diff/testfiles/h5diff_459.txt -./tools/test/h5diff/testfiles/h5diff_465.txt -./tools/test/h5diff/testfiles/h5diff_466.txt -./tools/test/h5diff/testfiles/h5diff_467.txt -./tools/test/h5diff/testfiles/h5diff_468.txt -./tools/test/h5diff/testfiles/h5diff_469.txt -./tools/test/h5diff/testfiles/h5diff_471.txt -./tools/test/h5diff/testfiles/h5diff_472.txt -./tools/test/h5diff/testfiles/h5diff_473.txt -./tools/test/h5diff/testfiles/h5diff_474.txt -./tools/test/h5diff/testfiles/h5diff_475.txt -./tools/test/h5diff/testfiles/h5diff_480.txt -./tools/test/h5diff/testfiles/h5diff_481.txt -./tools/test/h5diff/testfiles/h5diff_482.txt -./tools/test/h5diff/testfiles/h5diff_483.txt -./tools/test/h5diff/testfiles/h5diff_484.txt -./tools/test/h5diff/testfiles/h5diff_485.txt -./tools/test/h5diff/testfiles/h5diff_486.txt -./tools/test/h5diff/testfiles/h5diff_487.txt -./tools/test/h5diff/testfiles/h5diff_500.txt -./tools/test/h5diff/testfiles/h5diff_501.txt -./tools/test/h5diff/testfiles/h5diff_502.txt -./tools/test/h5diff/testfiles/h5diff_503.txt -./tools/test/h5diff/testfiles/h5diff_504.txt -./tools/test/h5diff/testfiles/h5diff_505.txt -./tools/test/h5diff/testfiles/h5diff_506.txt -./tools/test/h5diff/testfiles/h5diff_507.txt -./tools/test/h5diff/testfiles/h5diff_508.txt -./tools/test/h5diff/testfiles/h5diff_509.txt -./tools/test/h5diff/testfiles/h5diff_510.txt -./tools/test/h5diff/testfiles/h5diff_511.txt -./tools/test/h5diff/testfiles/h5diff_512.txt -./tools/test/h5diff/testfiles/h5diff_513.txt -./tools/test/h5diff/testfiles/h5diff_514.txt -./tools/test/h5diff/testfiles/h5diff_515.txt -./tools/test/h5diff/testfiles/h5diff_516.txt -./tools/test/h5diff/testfiles/h5diff_517.txt -./tools/test/h5diff/testfiles/h5diff_518.txt -./tools/test/h5diff/testfiles/h5diff_530.txt -./tools/test/h5diff/testfiles/h5diff_540.txt - -./tools/test/h5diff/testfiles/h5diff_attr1.h5 -./tools/test/h5diff/testfiles/h5diff_attr2.h5 -./tools/test/h5diff/testfiles/h5diff_attr3.h5 -./tools/test/h5diff/testfiles/h5diff_attr_v_level1.h5 -./tools/test/h5diff/testfiles/h5diff_attr_v_level2.h5 -./tools/test/h5diff/testfiles/h5diff_basic1.h5 -./tools/test/h5diff/testfiles/h5diff_basic2.h5 -./tools/test/h5diff/testfiles/h5diff_dset1.h5 -./tools/test/h5diff/testfiles/h5diff_dset2.h5 -./tools/test/h5diff/testfiles/h5diff_dset3.h5 -./tools/test/h5diff/testfiles/h5diff_dtypes.h5 -./tools/test/h5diff/testfiles/h5diff_empty.h5 -./tools/test/h5diff/testfiles/h5diff_eps1.h5 -./tools/test/h5diff/testfiles/h5diff_eps2.h5 -./tools/test/h5diff/testfiles/h5diff_hyper1.h5 -./tools/test/h5diff/testfiles/h5diff_hyper2.h5 -./tools/test/h5diff/testfiles/h5diff_types.h5 -./tools/test/h5diff/testfiles/h5diff_links.h5 -./tools/test/h5diff/testfiles/h5diff_ext2softlink_src.h5 -./tools/test/h5diff/testfiles/h5diff_ext2softlink_trg.h5 -./tools/test/h5diff/testfiles/h5diff_extlink_src.h5 -./tools/test/h5diff/testfiles/h5diff_extlink_trg.h5 -./tools/test/h5diff/testfiles/h5diff_linked_softlink.h5 -./tools/test/h5diff/testfiles/h5diff_softlinks.h5 -./tools/test/h5diff/testfiles/h5diff_danglelinks1.h5 -./tools/test/h5diff/testfiles/h5diff_danglelinks2.h5 -./tools/test/h5diff/testfiles/h5diff_grp_recurse1.h5 -./tools/test/h5diff/testfiles/h5diff_grp_recurse2.h5 -./tools/test/h5diff/testfiles/h5diff_grp_recurse_ext1.h5 -./tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-1.h5 -./tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-2.h5 -./tools/test/h5diff/testfiles/h5diff_grp_recurse_ext2-3.h5 -./tools/test/h5diff/testfiles/h5diff_exclude1-1.h5 -./tools/test/h5diff/testfiles/h5diff_exclude1-2.h5 -./tools/test/h5diff/testfiles/h5diff_exclude2-1.h5 -./tools/test/h5diff/testfiles/h5diff_exclude2-2.h5 -./tools/test/h5diff/testfiles/h5diff_exclude3-1.h5 -./tools/test/h5diff/testfiles/h5diff_exclude3-2.h5 -./tools/test/h5diff/testfiles/h5diff_comp_vl_strs.h5 -./tools/test/h5diff/testfiles/h5diff_dset_zero_dim_size1.h5 -./tools/test/h5diff/testfiles/h5diff_dset_zero_dim_size2.h5 -./tools/test/h5diff/testfiles/h5diff_enum_invalid_values.h5 -./tools/test/h5diff/testfiles/h5diff_eps.txt -./tools/test/h5diff/testfiles/compounds_array_vlen1.h5 -./tools/test/h5diff/testfiles/compounds_array_vlen2.h5 -./tools/test/h5diff/testfiles/non_comparables1.h5 -./tools/test/h5diff/testfiles/non_comparables2.h5 -./tools/test/h5diff/testfiles/h5diff_8625.txt -./tools/test/h5diff/testfiles/h5diff_8639.txt -./tools/test/h5diff/testfiles/tudfilter.h5 -./tools/test/h5diff/testfiles/tudfilter2.h5 -./tools/test/h5diff/testfiles/h5diff_ud.txt -./tools/test/h5diff/testfiles/h5diff_udfail.err -./tools/test/h5diff/testfiles/h5diff_udfail.txt -./tools/test/h5diff/testfiles/h5diff_strings1.h5 -./tools/test/h5diff/testfiles/h5diff_strings2.h5 -./tools/test/h5diff/testfiles/h5diff_vlstr.txt -#vds -./tools/test/h5diff/testfiles/h5diff_v1.txt -./tools/test/h5diff/testfiles/h5diff_v2.txt -./tools/test/h5diff/testfiles/h5diff_v3.txt -#reg_ref -./tools/test/h5diff/testfiles/h5diff_reg.txt - -#test files for h5repack -./tools/test/h5repack/testfiles/README -./tools/test/h5repack/testfiles/bounds_latest_latest.h5 -./tools/test/h5repack/testfiles/h5copy_extlinks_src.h5 -./tools/test/h5repack/testfiles/h5repack_aggr.h5 -./tools/test/h5repack/testfiles/h5repack_attr.h5 -./tools/test/h5repack/testfiles/h5repack_attr_refs.h5 -./tools/test/h5repack/testfiles/h5repack_deflate.h5 -./tools/test/h5repack/testfiles/h5repack_early.h5 -./tools/test/h5repack/testfiles/h5repack_ext.bin -./tools/test/h5repack/testfiles/h5repack_ext.h5 -./tools/test/h5repack/testfiles/h5repack_f32le.h5 -./tools/test/h5repack/testfiles/h5repack_f32le_ex-0.dat -./tools/test/h5repack/testfiles/h5repack_f32le_ex.h5 -./tools/test/h5repack/testfiles/h5repack_fill.h5 -./tools/test/h5repack/testfiles/h5repack_filters.h5 -./tools/test/h5repack/testfiles/h5repack_fletcher.h5 -./tools/test/h5repack/testfiles/h5repack_fsm_aggr_nopersist.h5 -./tools/test/h5repack/testfiles/h5repack_fsm_aggr_persist.h5 -./tools/test/h5repack/testfiles/h5repack_hlink.h5 -./tools/test/h5repack/testfiles/h5repack_int32le_1d.h5 -./tools/test/h5repack/testfiles/h5repack_int32le_1d_ex-0.dat -./tools/test/h5repack/testfiles/h5repack_int32le_1d_ex-1.dat -./tools/test/h5repack/testfiles/h5repack_int32le_1d_ex.h5 -./tools/test/h5repack/testfiles/h5repack_int32le_2d.h5 -./tools/test/h5repack/testfiles/h5repack_int32le_2d_ex-0.dat -./tools/test/h5repack/testfiles/h5repack_int32le_2d_ex.h5 -./tools/test/h5repack/testfiles/h5repack_int32le_3d.h5 -./tools/test/h5repack/testfiles/h5repack_int32le_3d_ex-0.dat -./tools/test/h5repack/testfiles/h5repack_int32le_3d_ex.h5 -./tools/test/h5repack/testfiles/h5repack.info -./tools/test/h5repack/testfiles/h5repack_layout.h5 -./tools/test/h5repack/testfiles/h5repack_layouto.h5 -./tools/test/h5repack/testfiles/h5repack_layout2.h5 -./tools/test/h5repack/testfiles/h5repack_layout3.h5 -./tools/test/h5repack/testfiles/h5repack_layout.UD.h5 -./tools/test/h5repack/testfiles/h5repack_named_dtypes.h5 -./tools/test/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 -./tools/test/h5repack/testfiles/h5repack_nested_8bit_enum.h5 -./tools/test/h5repack/testfiles/h5repack_nbit.h5 -./tools/test/h5repack/testfiles/h5repack_none.h5 -./tools/test/h5repack/testfiles/h5repack_objs.h5 -./tools/test/h5repack/testfiles/h5repack_paged_nopersist.h5 -./tools/test/h5repack/testfiles/h5repack_paged_persist.h5 -./tools/test/h5repack/testfiles/h5repack_refs.h5 -./tools/test/h5repack/testfiles/h5repack_shuffle.h5 -./tools/test/h5repack/testfiles/h5repack_soffset.h5 -./tools/test/h5repack/testfiles/h5repack_szip.h5 -./tools/test/h5repack/testfiles/h5repack_uint8be.h5 -./tools/test/h5repack/testfiles/h5repack_uint8be_ex-0.dat -./tools/test/h5repack/testfiles/h5repack_uint8be_ex-1.dat -./tools/test/h5repack/testfiles/h5repack_uint8be_ex-2.dat -./tools/test/h5repack/testfiles/h5repack_uint8be_ex-3.dat -./tools/test/h5repack/testfiles/h5repack_uint8be_ex.h5 -./tools/test/h5repack/testfiles/ublock.bin -./tools/test/h5repack/testfiles/crtorder.tordergr.h5.ddl -./tools/test/h5repack/testfiles/deflate_limit.h5repack_layout.h5.ddl -./tools/test/h5repack/testfiles/plugin_none.h5repack_layout.UD.h5.tst -./tools/test/h5repack/testfiles/plugin_test.h5repack_layout.h5.tst -./tools/test/h5repack/testfiles/plugin_zero.h5repack_layout.h5.tst -./tools/test/h5repack/testfiles/plugin_version_test.h5repack_layout.h5.tst -./tools/test/h5repack/testfiles/h5repack-help.txt -./tools/test/h5repack/testfiles/h5repack_filters.h5-gzip_verbose_filters.tst -./tools/test/h5repack/testfiles/h5repack_layout.h5-dset2_chunk_20x10-errstk.tst -./tools/test/h5repack/testfiles/h5repack_layout.h5.ddl -./tools/test/h5repack/testfiles/h5repack_layout.UD.h5-plugin_none.ddl -./tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_test.ddl -./tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_version_test.ddl -./tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_zero.ddl -./tools/test/h5repack/testfiles/h5repack_CVE-2018-17432.h5 -./tools/test/h5repack/testfiles/h5repack_CVE-2018-14460.h5 -./tools/test/h5repack/testfiles/GS.h5repack_paged_nopersist.h5.ddl -./tools/test/h5repack/testfiles/S.h5repack_fsm_aggr_persist.h5.ddl -./tools/test/h5repack/testfiles/SP.h5repack_fsm_aggr_nopersist.h5.ddl -./tools/test/h5repack/testfiles/SP.h5repack_paged_persist.h5.ddl -./tools/test/h5repack/testfiles/SPT.h5repack_aggr.h5.ddl -./tools/test/h5repack/testfiles/STG.h5repack_none.h5.ddl -./tools/test/h5repack/testfiles/1_vds.h5-vds_dset_chunk20x10x5-v.ddl -./tools/test/h5repack/testfiles/2_vds.h5-vds_chunk3x6x9-v.ddl -./tools/test/h5repack/testfiles/3_1_vds.h5-vds_chunk2x5x8-v.ddl -./tools/test/h5repack/testfiles/4_vds.h5-vds_conti-v.ddl -./tools/test/h5repack/testfiles/4_vds.h5-vds_compa-v.ddl -./tools/test/h5repack/testfiles/attrregion.tattrreg.h5.ddl -./tools/test/h5repack/testfiles/dataregion.tdatareg.h5.ddl -./tools/test/h5repack/testfiles/textlink-base.textlink.h5.ddl -./tools/test/h5repack/testfiles/textlink-merge.textlink.h5.tst -./tools/test/h5repack/testfiles/textlink-mergeprune.textlink.h5.ddl -./tools/test/h5repack/testfiles/textlink-prune.textlink.h5.ddl -./tools/test/h5repack/testfiles/textlinkfar-base.textlinkfar.h5.ddl -./tools/test/h5repack/testfiles/textlinkfar-merge.textlinkfar.h5.tst -./tools/test/h5repack/testfiles/textlinkfar-mergeprune.textlinkfar.h5.ddl -./tools/test/h5repack/testfiles/textlinkfar-prune.textlinkfar.h5.ddl -./tools/test/h5repack/testfiles/textlinksrc-base.textlinksrc.h5.ddl -./tools/test/h5repack/testfiles/textlinksrc-merge.textlinksrc.h5.tst -./tools/test/h5repack/testfiles/textlinksrc-mergeprune.textlinksrc.h5.ddl -./tools/test/h5repack/testfiles/textlinksrc-prune.textlinksrc.h5.ddl -./tools/test/h5repack/testfiles/textlinktar-base.textlinktar.h5.ddl -./tools/test/h5repack/testfiles/textlinktar-merge.textlinktar.h5.tst -./tools/test/h5repack/testfiles/textlinktar-mergeprune.textlinktar.h5.ddl -./tools/test/h5repack/testfiles/textlinktar-prune.textlinktar.h5.ddl -./tools/test/h5repack/testfiles/tsoftlinks-base.tsoftlinks.h5.ddl -./tools/test/h5repack/testfiles/tsoftlinks-merge.tsoftlinks.h5.tst -./tools/test/h5repack/testfiles/tsoftlinks-mergeprune.tsoftlinks.h5.ddl -./tools/test/h5repack/testfiles/tsoftlinks-prune.tsoftlinks.h5.ddl -./tools/test/h5repack/testfiles/h5copy_extlinks_src-base.h5copy_extlinks_src.h5.ddl -./tools/test/h5repack/testfiles/h5copy_extlinks_src-merge.h5copy_extlinks_src.h5.tst -./tools/test/h5repack/testfiles/h5copy_extlinks_src-mergeprune.h5copy_extlinks_src.h5.ddl -./tools/test/h5repack/testfiles/h5copy_extlinks_src-prune.h5copy_extlinks_src.h5.ddl -./tools/test/h5repack/testfiles/h5copy_extlinks_trg.h5 - -# jam utility and tests -./tools/src/h5jam/Makefile.am -./tools/src/h5jam/h5jam.c -./tools/src/h5jam/h5unjam.c -./tools/test/h5jam/Makefile.am -./tools/test/h5jam/h5jamgentest.c -./tools/test/h5jam/testh5jam.sh.in -./tools/test/h5jam/tellub.c -./tools/test/h5jam/getub.c - -# test files for jam -./tools/test/h5jam/testfiles/h5jam-help.txt -./tools/test/h5jam/testfiles/h5unjam-help.txt -./tools/test/h5jam/testfiles/tall.h5 -./tools/test/h5jam/testfiles/twithub.h5 -./tools/test/h5jam/testfiles/twithub513.h5 -./tools/test/h5jam/testfiles/u10.txt -./tools/test/h5jam/testfiles/u511.txt -./tools/test/h5jam/testfiles/u512.txt -./tools/test/h5jam/testfiles/u513.txt -./tools/test/h5jam/testfiles/h5jam-ub-nohdf5.txt - -# test files for h5copy -./tools/test/h5copy/testfiles/h5copytst.h5 -./tools/test/h5copy/testfiles/h5copytst.out.ls -./tools/test/h5copy/testfiles/h5copy_ref.h5 -./tools/test/h5copy/testfiles/h5copy_ref.out.ls -./tools/test/h5copy/testfiles/h5copy_extlinks_src.h5 -./tools/test/h5copy/testfiles/h5copy_extlinks_trg.h5 -./tools/test/h5copy/testfiles/h5copy_extlinks_src.out.ls -./tools/test/h5copy/testfiles/h5copy_misc1.err -./tools/test/h5copy/testfiles/h5copy_misc1.out -./tools/test/h5copy/testfiles/h5copytst_new.h5 -./tools/test/h5copy/testfiles/h5copytst_new.out.ls -./tools/test/h5copy/testfiles/h5copy_plugin_fail_ERR.out.h5.txt -./tools/test/h5copy/testfiles/h5copy_plugin_test.out.h5.txt -./tools/test/h5copy/testfiles/tudfilter.h5 -./tools/test/h5copy/testfiles/tudfilter2.h5 -./tools/test/h5copy/testfiles/tudfilter.h5.txt -./tools/test/h5copy/testfiles/tudfilter.h5_ERR.txt - -# test files for h5mkgrp -./tools/testfiles/h5mkgrp_nested_p.ls -./tools/testfiles/h5mkgrp_nested_lp.ls -./tools/testfiles/h5mkgrp_nested_mult_p.ls -./tools/testfiles/h5mkgrp_nested_mult_lp.ls -./tools/testfiles/h5mkgrp_several.ls -./tools/testfiles/h5mkgrp_several_v.ls -./tools/testfiles/h5mkgrp_several_p.ls -./tools/testfiles/h5mkgrp_several_l.ls -./tools/testfiles/h5mkgrp_single.ls -./tools/testfiles/h5mkgrp_single_v.ls -./tools/testfiles/h5mkgrp_single_p.ls -./tools/testfiles/h5mkgrp_single_l.ls - -./tools/src/h5perf/Makefile.am -./tools/src/h5perf/perf.c -./tools/src/h5perf/pio_engine.c -./tools/src/h5perf/pio_perf.c -./tools/src/h5perf/pio_perf.h -./tools/src/h5perf/sio_engine.c -./tools/src/h5perf/sio_perf.c -./tools/src/h5perf/sio_perf.h - -./tools/test/perform/Makefile.am -./tools/test/perform/build_h5perf_alone.sh -./tools/test/perform/build_h5perf_serial_alone.sh -./tools/test/perform/chunk.c -./tools/test/perform/chunk_cache.c -./tools/test/perform/direct_write_perf.c -./tools/test/perform/gen_report.pl -./tools/test/perform/iopipe.c -./tools/test/perform/overhead.c -./tools/test/perform/perf_meta.c -./tools/test/perform/pio_standalone.c -./tools/test/perform/pio_standalone.h -./tools/test/perform/sio_standalone.c -./tools/test/perform/sio_standalone.h -./tools/test/perform/zip_perf.c - -# Utils directory -./utils/Makefile.am - -# Mirror VFD utilities -./utils/mirror_vfd/Makefile.am -./utils/mirror_vfd/mirror_remote.c -./utils/mirror_vfd/mirror_remote.h -./utils/mirror_vfd/mirror_server.c -./utils/mirror_vfd/mirror_server_stop.c -./utils/mirror_vfd/mirror_writer.c - -# test utilities -./utils/test/Makefile.am -./utils/test/swmr_check_compat_vfd.c - -# parallel tools (h5dwalk) and tests -./utils/tools/CMakeLists.txt -./utils/tools/Makefile.am -./utils/tools/h5dwalk/CMakeLists.txt -./utils/tools/h5dwalk/Makefile.am -./utils/tools/h5dwalk/h5dwalk.1 -./utils/tools/h5dwalk/h5dwalk.c -./utils/tools/test/CMakeLists.txt -./utils/tools/test/Makefile.am -./utils/tools/test/h5dwalk/CMakeLists.txt -./utils/tools/test/h5dwalk/CMakeTests.cmake -./utils/tools/test/h5dwalk/Makefile.am -./utils/tools/test/h5dwalk/copy_demo_files.sh.in -./utils/tools/test/h5dwalk/help.h5dwalk -./utils/tools/test/h5dwalk/testh5dwalk.sh.in - -# high level libraries -./hl/Makefile.am -./hl/examples/Makefile.am -./hl/examples/ex_ds1.c -./hl/examples/ex_lite1.c -./hl/examples/ex_lite2.c -./hl/examples/ex_lite3.c -./hl/examples/ex_image1.c -./hl/examples/ex_image2.c -./hl/examples/ex_table_01.c -./hl/examples/ex_table_02.c -./hl/examples/ex_table_03.c -./hl/examples/ex_table_04.c -./hl/examples/ex_table_05.c -./hl/examples/ex_table_06.c -./hl/examples/ex_table_07.c -./hl/examples/ex_table_08.c -./hl/examples/ex_table_09.c -./hl/examples/ex_table_10.c -./hl/examples/ex_table_11.c -./hl/examples/ex_table_12.c -./hl/examples/image24pixel.txt -./hl/examples/image8.txt -./hl/examples/pal_rgb.h -./hl/examples/ptExampleFL.c -./hl/examples/run-hl-ex.sh -./hl/examples/run-hlc-ex.sh.in -./hl/src/Makefile.am -./hl/src/H5DO.c -./hl/src/H5DOpublic.h -./hl/src/H5DS.c -./hl/src/H5DSprivate.h -./hl/src/H5DSpublic.h -./hl/src/H5HLprivate2.h -./hl/src/H5IM.c -./hl/src/H5IMprivate.h -./hl/src/H5IMpublic.h -./hl/src/H5LD.c -./hl/src/H5LDprivate.h -./hl/src/H5LDpublic.h -./hl/src/H5LT.c -./hl/src/H5LTanalyze.c -./hl/src/H5LTanalyze.l -./hl/src/H5LTparse.c -./hl/src/H5LTparse.h -./hl/src/H5LTparse.y -./hl/src/H5LTprivate.h -./hl/src/H5LTpublic.h -./hl/src/H5PT.c -./hl/src/H5PTprivate.h -./hl/src/H5PTpublic.h -./hl/src/H5TB.c -./hl/src/H5TBprivate.h -./hl/src/H5TBpublic.h -./hl/src/hdf5_hl.h -./hl/test/H5srcdir_str.h.in -./hl/test/Makefile.am -./hl/test/dsdata.txt -./hl/test/dslat.txt -./hl/test/dslon.txt -./hl/test/dtype_file.txt -./hl/test/dtype_file_readable.txt -./hl/test/earth.pal -./hl/test/gen_test_ds.c -./hl/test/gen_test_ld.c -./hl/test/h5hltest.h -./hl/test/image24pixel.txt -./hl/test/image24plane.txt -./hl/test/image8.txt -./hl/test/pal_rgb.h -./hl/test/sepia.pal -./hl/test/test_ds.c -./hl/test/test_ds_be.h5 -./hl/test/test_ds_be_new_ref.h5 -./hl/test/test_ds_be_new_ref-32bit.h5 -./hl/test/test_ds_le.h5 -./hl/test/test_ds_le_new_ref.h5 -./hl/test/test_dset_append.c -./hl/test/test_file_image.c -./hl/test/test_h5do_compat.c -./hl/test/test_image.c -./hl/test/test_ld.c -./hl/test/test_ld.h5 -./hl/test/test_lite.c -./hl/test/test_packet.c -./hl/test/test_packet_vlen.c -./hl/test/test_table.c -./hl/test/test_table_be.h5 -./hl/test/test_table_cray.h5 -./hl/test/test_table_le.h5 -./hl/test/usa.wri - -# tools -./hl/tools/Makefile.am -./hl/tools/gif2h5/Makefile.am -./hl/tools/gif2h5/decompress.c -./hl/tools/gif2h5/gif.h -./hl/tools/gif2h5/gif2hdf.c -./hl/tools/gif2h5/gif2mem.c -./hl/tools/gif2h5/gifread.c -./hl/tools/gif2h5/hdf2gif.c -./hl/tools/gif2h5/hdfgifwr.c -./hl/tools/gif2h5/writehdf.c -./hl/tools/gif2h5/h52gifgentst.c -./hl/tools/gif2h5/h52giftest.sh.in -./hl/tools/gif2h5/testfiles/README -./hl/tools/gif2h5/testfiles/ex_image2.h5 -./hl/tools/gif2h5/testfiles/image1.gif -./hl/tools/gif2h5/testfiles/h52giftst.h5 -# -./hl/tools/h5watch/Makefile.am -./hl/tools/h5watch/extend_dset.c -./hl/tools/h5watch/h5watch.c -./hl/tools/h5watch/h5watchgentest.c -./hl/tools/h5watch/testh5watch.sh.in - -# expected test output from testing h5watch -# -./hl/tools/testfiles/w-err-std.ddl -./hl/tools/testfiles/w-err-cmpd1.err -./hl/tools/testfiles/w-err-cmpd2.err -./hl/tools/testfiles/w-err-cmpd3.err -./hl/tools/testfiles/w-err-cmpd4.err -./hl/tools/testfiles/w-err-cmpd5.err -./hl/tools/testfiles/w-err-dset1.err -./hl/tools/testfiles/w-err-dset2.err -./hl/tools/testfiles/w-err-dset-nomax.err -./hl/tools/testfiles/w-err-dset-none.err -./hl/tools/testfiles/w-err-file.err -./hl/tools/testfiles/w-err-poll0.ddl -./hl/tools/testfiles/w-err-poll.ddl -./hl/tools/testfiles/w-err-width.ddl -./hl/tools/testfiles/w-ext-cmpd.ddl -./hl/tools/testfiles/w-ext-cmpd-esc.ddl -./hl/tools/testfiles/w-ext-cmpd-esc-f1.ddl -./hl/tools/testfiles/w-ext-cmpd-esc-f3.ddl -./hl/tools/testfiles/w-ext-cmpd-esc-ff2.ddl -./hl/tools/testfiles/w-ext-cmpd-f1.ddl -./hl/tools/testfiles/w-ext-cmpd-f2.ddl -./hl/tools/testfiles/w-ext-cmpd-ff3.ddl -./hl/tools/testfiles/w-ext-cmpd-label.ddl -./hl/tools/testfiles/w-ext-cmpd-two.ddl -./hl/tools/testfiles/w-ext-cmpd-two-f1.ddl -./hl/tools/testfiles/w-ext-cmpd-two-f3.ddl -./hl/tools/testfiles/w-ext-cmpd-two-ff2.ddl -./hl/tools/testfiles/w-ext-early.ddl -./hl/tools/testfiles/w-ext-late.ddl -./hl/tools/testfiles/w-ext-one-d.ddl -./hl/tools/testfiles/w-ext-one.ddl -./hl/tools/testfiles/w-ext-one-simple.ddl -./hl/tools/testfiles/w-ext-two-d.ddl -./hl/tools/testfiles/w-ext-two.ddl -./hl/tools/testfiles/w-ext-two-width.ddl -./hl/tools/testfiles/w-help1.ddl - -# hl fortran -./hl/fortran/Makefile.am -./hl/fortran/examples/Makefile.am -./hl/fortran/examples/run-hlfortran-ex.sh.in -./hl/fortran/src/hdf5_hl_fortrandll.def.in -./hl/fortran/src/H5DSfc.c -./hl/fortran/src/H5DSff.F90 -./hl/fortran/src/H5HL_buildiface.F90 -./hl/fortran/src/H5IMcc.c -./hl/fortran/src/H5IMcc.h -./hl/fortran/src/H5IMfc.c -./hl/fortran/src/H5IMff.F90 -./hl/fortran/src/H5LTf90proto.h -./hl/fortran/src/H5LTfc.c -./hl/fortran/src/H5LTff.F90 -./hl/fortran/src/H5TBfc.c -./hl/fortran/src/H5TBff.F90 -./hl/fortran/src/Makefile.am -./hl/fortran/test/Makefile.am -./hl/fortran/test/tstds.F90 -./hl/fortran/test/tstimage.F90 -./hl/fortran/test/tstlite.F90 -./hl/fortran/test/tsttable.F90 - -# hl c++ -./hl/c++/Makefile.am -./hl/c++/examples/Makefile.am -./hl/c++/examples/ptExampleFL.cpp -./hl/c++/examples/run-hlc++-ex.sh.in -./hl/c++/src/H5PacketTable.h -./hl/c++/src/H5PacketTable.cpp -./hl/c++/src/Makefile.am -./hl/c++/test/ptableTest.h -./hl/c++/test/ptableTest.cpp -./hl/c++/test/Makefile.am - -# java -./java/Makefile.am -./java/CMakeLists.txt - -./java/src/Makefile.am -./java/src/CMakeLists.txt -./java/src/jni/Makefile.am -./java/src/jni/CMakeLists.txt -./java/src/jni/exceptionImp.c -./java/src/jni/exceptionImp.h -./java/src/jni/h5Constants.c -./java/src/jni/nativeData.c -./java/src/jni/nativeData.h -./java/src/jni/h5jni.h -./java/src/jni/h5util.c -./java/src/jni/h5util.h -./java/src/jni/h5Imp.c -./java/src/jni/h5Imp.h -./java/src/jni/h5aImp.c -./java/src/jni/h5aImp.h -./java/src/jni/h5dImp.c -./java/src/jni/h5dImp.h -./java/src/jni/h5eImp.c -./java/src/jni/h5eImp.h -./java/src/jni/h5fImp.c -./java/src/jni/h5fImp.h -./java/src/jni/h5gImp.c -./java/src/jni/h5gImp.h -./java/src/jni/h5iImp.c -./java/src/jni/h5iImp.h -./java/src/jni/h5lImp.c -./java/src/jni/h5lImp.h -./java/src/jni/h5oImp.c -./java/src/jni/h5oImp.h -./java/src/jni/h5pImp.c -./java/src/jni/h5pImp.h -./java/src/jni/h5pACPLImp.c -./java/src/jni/h5pACPLImp.h -./java/src/jni/h5pDAPLImp.c -./java/src/jni/h5pDAPLImp.h -./java/src/jni/h5pDCPLImp.c -./java/src/jni/h5pDCPLImp.h -./java/src/jni/h5pDXPLImp.c -./java/src/jni/h5pDXPLImp.h -./java/src/jni/h5pFAPLImp.c -./java/src/jni/h5pFAPLImp.h -./java/src/jni/h5pFCPLImp.c -./java/src/jni/h5pFCPLImp.h -./java/src/jni/h5pGAPLImp.c -./java/src/jni/h5pGAPLImp.h -./java/src/jni/h5pGCPLImp.c -./java/src/jni/h5pGCPLImp.h -./java/src/jni/h5pLAPLImp.c -./java/src/jni/h5pLAPLImp.h -./java/src/jni/h5pLCPLImp.c -./java/src/jni/h5pLCPLImp.h -./java/src/jni/h5pOCPLImp.c -./java/src/jni/h5pOCPLImp.h -./java/src/jni/h5pOCpyPLImp.c -./java/src/jni/h5pOCpyPLImp.h -./java/src/jni/h5pStrCPLImp.c -./java/src/jni/h5pStrCPLImp.h -./java/src/jni/h5plImp.c -./java/src/jni/h5plImp.h -./java/src/jni/h5rImp.c -./java/src/jni/h5rImp.h -./java/src/jni/h5sImp.c -./java/src/jni/h5sImp.h -./java/src/jni/h5tImp.c -./java/src/jni/h5tImp.h -./java/src/jni/h5vlImp.c -./java/src/jni/h5vlImp.h -./java/src/jni/h5zImp.c -./java/src/jni/h5zImp.h - -./java/src/hdf/CMakeLists.txt -./java/src/hdf/overview.html -./java/src/hdf/hdf5lib/CMakeLists.txt - -./java/src/hdf/hdf5lib/callbacks/Callbacks.java -./java/src/hdf/hdf5lib/callbacks/H5A_iterate_cb.java -./java/src/hdf/hdf5lib/callbacks/H5A_iterate_t.java -./java/src/hdf/hdf5lib/callbacks/H5D_iterate_cb.java -./java/src/hdf/hdf5lib/callbacks/H5D_iterate_t.java -./java/src/hdf/hdf5lib/callbacks/H5D_append_cb.java -./java/src/hdf/hdf5lib/callbacks/H5D_append_t.java -./java/src/hdf/hdf5lib/callbacks/H5E_walk_cb.java -./java/src/hdf/hdf5lib/callbacks/H5E_walk_t.java -./java/src/hdf/hdf5lib/callbacks/H5L_iterate_t.java -./java/src/hdf/hdf5lib/callbacks/H5L_iterate_opdata_t.java -./java/src/hdf/hdf5lib/callbacks/H5O_iterate_t.java -./java/src/hdf/hdf5lib/callbacks/H5O_iterate_opdata_t.java -./java/src/hdf/hdf5lib/callbacks/H5P_cls_close_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_cls_close_func_t.java -./java/src/hdf/hdf5lib/callbacks/H5P_cls_copy_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_cls_copy_func_t.java -./java/src/hdf/hdf5lib/callbacks/H5P_cls_create_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_cls_create_func_t.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_close_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_compare_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_copy_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_create_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_delete_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_get_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_prp_set_func_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_iterate_cb.java -./java/src/hdf/hdf5lib/callbacks/H5P_iterate_t.java -./java/src/hdf/hdf5lib/callbacks/package-info.java - -./java/src/hdf/hdf5lib/exceptions/HDF5AttributeException.java -./java/src/hdf/hdf5lib/exceptions/HDF5BtreeException.java -./java/src/hdf/hdf5lib/exceptions/HDF5DataFiltersException.java -./java/src/hdf/hdf5lib/exceptions/HDF5DataStorageException.java -./java/src/hdf/hdf5lib/exceptions/HDF5DatasetInterfaceException.java -./java/src/hdf/hdf5lib/exceptions/HDF5DataspaceInterfaceException.java -./java/src/hdf/hdf5lib/exceptions/HDF5DatatypeInterfaceException.java -./java/src/hdf/hdf5lib/exceptions/HDF5Exception.java -./java/src/hdf/hdf5lib/exceptions/HDF5ExternalFileListException.java -./java/src/hdf/hdf5lib/exceptions/HDF5FileInterfaceException.java -./java/src/hdf/hdf5lib/exceptions/HDF5FunctionArgumentException.java -./java/src/hdf/hdf5lib/exceptions/HDF5FunctionEntryExitException.java -./java/src/hdf/hdf5lib/exceptions/HDF5HeapException.java -./java/src/hdf/hdf5lib/exceptions/HDF5IdException.java -./java/src/hdf/hdf5lib/exceptions/HDF5InternalErrorException.java -./java/src/hdf/hdf5lib/exceptions/HDF5JavaException.java -./java/src/hdf/hdf5lib/exceptions/HDF5LibraryException.java -./java/src/hdf/hdf5lib/exceptions/HDF5LowLevelIOException.java -./java/src/hdf/hdf5lib/exceptions/HDF5MetaDataCacheException.java -./java/src/hdf/hdf5lib/exceptions/HDF5ObjectHeaderException.java -./java/src/hdf/hdf5lib/exceptions/HDF5PropertyListInterfaceException.java -./java/src/hdf/hdf5lib/exceptions/HDF5ReferenceException.java -./java/src/hdf/hdf5lib/exceptions/HDF5ResourceUnavailableException.java -./java/src/hdf/hdf5lib/exceptions/HDF5SymbolTableException.java -./java/src/hdf/hdf5lib/exceptions/package-info.java - -./java/src/hdf/hdf5lib/structs/H5_ih_info_t.java -./java/src/hdf/hdf5lib/structs/H5A_info_t.java -./java/src/hdf/hdf5lib/structs/H5AC_cache_config_t.java -./java/src/hdf/hdf5lib/structs/H5E_error2_t.java -./java/src/hdf/hdf5lib/structs/H5F_info2_t.java -./java/src/hdf/hdf5lib/structs/H5FD_hdfs_fapl_t.java -./java/src/hdf/hdf5lib/structs/H5FD_ros3_fapl_t.java -./java/src/hdf/hdf5lib/structs/H5G_info_t.java -./java/src/hdf/hdf5lib/structs/H5L_info_t.java -./java/src/hdf/hdf5lib/structs/H5O_hdr_info_t.java -./java/src/hdf/hdf5lib/structs/H5O_info_t.java -./java/src/hdf/hdf5lib/structs/H5O_native_info_t.java -./java/src/hdf/hdf5lib/structs/H5O_token_t.java -./java/src/hdf/hdf5lib/structs/package-info.java - -./java/src/hdf/hdf5lib/H5.java -./java/src/hdf/hdf5lib/HDF5Constants.java -./java/src/hdf/hdf5lib/HDF5GroupInfo.java -./java/src/hdf/hdf5lib/HDFArray.java -./java/src/hdf/hdf5lib/HDFNativeData.java -./java/src/hdf/hdf5lib/package-info.java - -./java/examples/Makefile.am -./java/examples/CMakeLists.txt - -./java/examples/intro/Makefile.am -./java/examples/intro/CMakeLists.txt -./java/examples/intro/JavaIntroExample.sh.in -./java/examples/intro/H5_CreateAttribute.java -./java/examples/intro/H5_CreateDataset.java -./java/examples/intro/H5_CreateFile.java -./java/examples/intro/H5_CreateGroup.java -./java/examples/intro/H5_CreateGroupAbsoluteRelative.java -./java/examples/intro/H5_CreateGroupDataset.java -./java/examples/intro/H5_ReadWrite.java - -./java/examples/groups/Makefile.am -./java/examples/groups/CMakeLists.txt -./java/examples/groups/JavaGroupExample.sh.in -./java/examples/groups/H5Ex_G_Create.java -./java/examples/groups/H5Ex_G_Iterate.java -./java/examples/groups/H5Ex_G_Compact.java -./java/examples/groups/H5Ex_G_Corder.java -./java/examples/groups/H5Ex_G_Intermediate.java -./java/examples/groups/H5Ex_G_Phase.java -./java/examples/groups/H5Ex_G_Traverse.java -./java/examples/groups/H5Ex_G_Visit.java -./java/examples/groups/h5ex_g_iterate.h5 -./java/examples/groups/h5ex_g_visit.h5 - -./java/examples/datasets/Makefile.am -./java/examples/datasets/CMakeLists.txt -./java/examples/datasets/JavaDatasetExample.sh.in -./java/examples/datasets/H5Ex_D_Alloc.java -./java/examples/datasets/H5Ex_D_Checksum.java -./java/examples/datasets/H5Ex_D_Chunk.java -./java/examples/datasets/H5Ex_D_Compact.java -./java/examples/datasets/H5Ex_D_External.java -./java/examples/datasets/H5Ex_D_FillValue.java -./java/examples/datasets/H5Ex_D_Gzip.java -./java/examples/datasets/H5Ex_D_Hyperslab.java -./java/examples/datasets/H5Ex_D_ReadWrite.java -./java/examples/datasets/H5Ex_D_Shuffle.java -./java/examples/datasets/H5Ex_D_Szip.java -./java/examples/datasets/H5Ex_D_UnlimitedAdd.java -./java/examples/datasets/H5Ex_D_UnlimitedGzip.java -./java/examples/datasets/H5Ex_D_UnlimitedMod.java -./java/examples/datasets/H5Ex_D_Nbit.java -./java/examples/datasets/H5Ex_D_Transform.java -./java/examples/datasets/H5Ex_D_Sofloat.java -./java/examples/datasets/H5Ex_D_Soint.java - -./java/examples/datatypes/Makefile.am -./java/examples/datatypes/CMakeLists.txt -./java/examples/datatypes/JavaDatatypeExample.sh.in -./java/examples/datatypes/H5Ex_T_Array.java -./java/examples/datatypes/H5Ex_T_ArrayAttribute.java -./java/examples/datatypes/H5Ex_T_Bit.java -./java/examples/datatypes/H5Ex_T_BitAttribute.java -./java/examples/datatypes/H5Ex_T_Commit.java -./java/examples/datatypes/H5Ex_T_Compound.java -./java/examples/datatypes/H5Ex_T_CompoundAttribute.java -./java/examples/datatypes/H5Ex_T_Float.java -./java/examples/datatypes/H5Ex_T_FloatAttribute.java -./java/examples/datatypes/H5Ex_T_Integer.java -./java/examples/datatypes/H5Ex_T_IntegerAttribute.java -./java/examples/datatypes/H5Ex_T_ObjectReference.java -./java/examples/datatypes/H5Ex_T_ObjectReferenceAttribute.java -./java/examples/datatypes/H5Ex_T_Opaque.java -./java/examples/datatypes/H5Ex_T_OpaqueAttribute.java -./java/examples/datatypes/H5Ex_T_String.java -./java/examples/datatypes/H5Ex_T_StringAttribute.java -./java/examples/datatypes/H5Ex_T_VLString.java - -./java/examples/testfiles/examples.intro.H5_CreateAttribute.txt -./java/examples/testfiles/examples.intro.H5_CreateDataset.txt -./java/examples/testfiles/examples.intro.H5_CreateFile.txt -./java/examples/testfiles/examples.intro.H5_CreateGroup.txt -./java/examples/testfiles/examples.intro.H5_CreateGroupAbsoluteRelative.txt -./java/examples/testfiles/examples.intro.H5_CreateGroupDataset.txt -./java/examples/testfiles/examples.intro.H5_ReadWrite.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Create.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Iterate.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Compact.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Corder.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Intermediate.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Phase.txt -./java/examples/testfiles/examples.groups.H5Ex_G_Visit.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Alloc.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Checksum.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Chunk.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Compact.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_External.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_FillValue.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Gzip.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Hyperslab.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_ReadWrite.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Shuffle.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Szip.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_UnlimitedAdd.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_UnlimitedGzip.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_UnlimitedMod.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Nbit.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Transform.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Sofloat.txt -./java/examples/testfiles/examples.datasets.H5Ex_D_Soint.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Array.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_ArrayAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Bit.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_BitAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Commit.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Compound.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_CompoundAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Float.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_FloatAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Integer.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_IntegerAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_ObjectReference.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_ObjectReferenceAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_Opaque.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_OpaqueAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_String.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_StringAttribute.txt -./java/examples/testfiles/examples.datatypes.H5Ex_T_VLString.txt - -./java/test/Makefile.am -./java/test/CMakeLists.txt -./java/test/junit.sh.in -./java/test/testfiles/JUnit-TestH5.txt -./java/test/testfiles/JUnit-TestH5A.txt -./java/test/testfiles/JUnit-TestH5Arw.txt -./java/test/testfiles/JUnit-TestH5Dparams.txt -./java/test/testfiles/JUnit-TestH5D.txt -./java/test/testfiles/JUnit-TestH5Dplist.txt -./java/test/testfiles/JUnit-TestH5Drw.txt -./java/test/testfiles/JUnit-TestH5E.txt -./java/test/testfiles/JUnit-TestH5Edefault.txt -./java/test/testfiles/JUnit-TestH5Eparams.txt -./java/test/testfiles/JUnit-TestH5Eregister.txt -./java/test/testfiles/JUnit-TestH5Fparams.txt -./java/test/testfiles/JUnit-TestH5Fbasic.txt -./java/test/testfiles/JUnit-TestH5F.txt -./java/test/testfiles/JUnit-TestH5Fswmr.txt -./java/test/testfiles/JUnit-TestH5Gbasic.txt -./java/test/testfiles/JUnit-TestH5G.txt -./java/test/testfiles/JUnit-TestH5Giterate.txt -./java/test/testfiles/JUnit-TestH5Lparams.txt -./java/test/testfiles/JUnit-TestH5Lbasic.txt -./java/test/testfiles/JUnit-TestH5Lcreate.txt -./java/test/testfiles/JUnit-TestH5Oparams.txt -./java/test/testfiles/JUnit-TestH5Obasic.txt -./java/test/testfiles/JUnit-TestH5Ocreate.txt -./java/test/testfiles/JUnit-TestH5Ocopy.txt -./java/test/testfiles/JUnit-TestH5OcopyOld.txt -./java/test/testfiles/JUnit-TestH5P.txt -./java/test/testfiles/JUnit-TestH5PData.txt -./java/test/testfiles/JUnit-TestH5Pfapl.txt -./java/test/testfiles/JUnit-TestH5Pfaplhdfs.txt -./java/test/testfiles/JUnit-TestH5Pfapls3.txt -./java/test/testfiles/JUnit-TestH5Plist.txt -./java/test/testfiles/JUnit-TestH5Pvirtual.txt -./java/test/testfiles/JUnit-TestH5PL.txt -./java/test/testfiles/JUnit-TestH5R.txt -./java/test/testfiles/JUnit-TestH5Rref.txt -./java/test/testfiles/JUnit-TestH5Sbasic.txt -./java/test/testfiles/JUnit-TestH5S.txt -./java/test/testfiles/JUnit-TestH5Tparams.txt -./java/test/testfiles/JUnit-TestH5Tbasic.txt -./java/test/testfiles/JUnit-TestH5T.txt -./java/test/testfiles/JUnit-TestH5VL.txt -./java/test/testfiles/JUnit-TestH5Z.txt -./java/test/h5ex_g_iterate.orig -./java/test/TestH5.java -./java/test/TestH5A.java -./java/test/TestH5Arw.java -./java/test/TestH5Dparams.java -./java/test/TestH5D.java -./java/test/TestH5Dplist.java -./java/test/TestH5Drw.java -./java/test/TestH5E.java -./java/test/TestH5Edefault.java -./java/test/TestH5Eparams.java -./java/test/TestH5Eregister.java -./java/test/TestH5Fparams.java -./java/test/TestH5Fbasic.java -./java/test/TestH5F.java -./java/test/TestH5Fswmr.java -./java/test/TestH5Gbasic.java -./java/test/TestH5G.java -./java/test/TestH5Giterate.java -./java/test/TestH5Lparams.java -./java/test/TestH5Lbasic.java -./java/test/TestH5Lcreate.java -./java/test/TestH5Oparams.java -./java/test/TestH5Obasic.java -./java/test/TestH5Ocreate.java -./java/test/TestH5Ocopy.java -./java/test/TestH5OcopyOld.java -./java/test/TestH5P.java -./java/test/TestH5PData.java -./java/test/TestH5Pfapl.java -./java/test/TestH5Pfaplhdfs.java -./java/test/TestH5Pfapls3.java -./java/test/TestH5Plist.java -./java/test/TestH5Pvirtual.java -./java/test/TestH5PL.java -./java/test/TestH5R.java -./java/test/TestH5Rref.java -./java/test/TestH5Sbasic.java -./java/test/TestH5S.java -./java/test/TestH5Tparams.java -./java/test/TestH5Tbasic.java -./java/test/TestH5T.java -./java/test/TestH5VL.java -./java/test/TestH5Z.java -./java/test/TestAll.java - -./java/lib/hamcrest-core.jar -./java/lib/junit.jar -./java/lib/simplelogger.properties -./java/lib/slf4j-api-1.7.33.jar -./java/lib/ext/slf4j-nop-1.7.33.jar -./java/lib/ext/slf4j-simple-1.7.33.jar - -# CMake-specific Files -./config/toolchain/build32.cmake -./config/toolchain/clang.cmake -./config/toolchain/crayle.cmake -./config/toolchain/GCC.cmake -./config/toolchain/intel.cmake -./config/toolchain/mingw64.cmake -./config/toolchain/PGI.cmake - -./config/cmake/cacheinit.cmake -./config/cmake/CMakeFindJavaCommon.cmake -./config/cmake/ConversionTests.c -./config/cmake/ConfigureChecks.cmake -./config/cmake/CPack.Info.plist.in -./config/cmake/CTestCustom.cmake -./config/cmake/fileCompareTest.cmake -./config/cmake/FindHDFS.cmake -./config/cmake/H5pubconf.h.in -./config/cmake/hdf5-config.cmake.in -./config/cmake/hdf5-config-version.cmake.in -./config/cmake/HDFCompilerFlags.cmake -./config/cmake/HDFCXXCompilerFlags.cmake -./config/cmake/HDFFortranCompilerFlags.cmake -./config/cmake/HDF5Macros.cmake -./config/cmake/HDF5PluginMacros.cmake -./config/cmake/HDF5PluginCache.cmake -./config/cmake/HDF5UseFortran.cmake -./config/cmake/javaTargets.cmake.in -./config/cmake/jrunTest.cmake -./config/cmake/libh5cc.in -./config/cmake/libhdf5.settings.cmake.in -./config/cmake/mccacheinit.cmake -./config/cmake/patch.xml -./config/cmake/PkgInfo.in -./config/cmake/README.md.cmake.in -./config/cmake/UseJava.cmake -./config/cmake/UseJavaClassFilelist.cmake -./config/cmake/UseJavaSymlinks.cmake -./config/cmake/userblockTest.cmake -./config/cmake/vfdTest.cmake -./config/cmake/volTest.cmake -./config/cmake/wait_H5Tinit.cmake - -./config/cmake_ext_mod/ConfigureChecks.cmake -./config/cmake_ext_mod/CTestCustom.cmake -./config/cmake_ext_mod/FindSZIP.cmake -./config/cmake_ext_mod/GetTimeOfDayTest.cpp -./config/cmake_ext_mod/grepTest.cmake -./config/cmake_ext_mod/hdf.bmp -./config/cmake_ext_mod/hdf.icns -./config/cmake_ext_mod/hdf.ico -./config/cmake_ext_mod/HDFLibMacros.cmake -./config/cmake_ext_mod/HDFMacros.cmake -./config/cmake_ext_mod/HDFTests.c -./config/cmake_ext_mod/HDFUseFortran.cmake -./config/cmake_ext_mod/NSIS.InstallOptions.ini.in -./config/cmake_ext_mod/NSIS.template.in -./config/cmake_ext_mod/runTest.cmake -./config/cmake_ext_mod/version.plist.in - -# CMake-specific User Files -./config/cmake/UserMacros/Windows_MT.cmake - -# CMake-specific Examples Files -./config/cmake/HDF5_Examples.cmake.in -./release_docs/USING_CMake_Examples.txt - -./CMakeLists.txt -./CMakeFilters.cmake -./CMakeInstallation.cmake -./CMakePlugins.cmake -./CTestConfig.cmake -./UserMacros.cmake -./c++/CMakeLists.txt -./c++/examples/CMakeLists.txt -./c++/examples/CMakeTests.cmake -./c++/src/CMakeLists.txt -./c++/test/CMakeLists.txt -./c++/test/CMakeTests.cmake -./c++/test/CMakeVFDTests.cmake -./examples/CMakeLists.txt -./examples/CMakeTests.cmake -./examples/run-all-ex.sh -./examples/run-c-ex.sh.in -./fortran/CMakeLists.txt -./fortran/examples/CMakeLists.txt -./fortran/examples/CMakeTests.cmake -./fortran/src/CMakeLists.txt -./fortran/test/CMakeLists.txt -./fortran/test/CMakeTests.cmake -./fortran/testpar/CMakeLists.txt -./fortran/testpar/CMakeTests.cmake -./hl/CMakeLists.txt -./hl/c++/CMakeLists.txt -./hl/c++/examples/CMakeLists.txt -./hl/c++/examples/CMakeTests.cmake -./hl/c++/src/CMakeLists.txt -./hl/c++/test/CMakeLists.txt -./hl/c++/test/CMakeTests.cmake -./hl/examples/CMakeLists.txt -./hl/examples/CMakeTests.cmake -./hl/fortran/CMakeLists.txt -./hl/fortran/examples/CMakeLists.txt -./hl/fortran/examples/CMakeTests.cmake -./hl/fortran/src/CMakeLists.txt -./hl/fortran/test/CMakeLists.txt -./hl/fortran/test/CMakeTests.cmake -./hl/src/CMakeLists.txt -./hl/test/CMakeLists.txt -./hl/test/CMakeTests.cmake -./hl/tools/CMakeLists.txt -./hl/tools/gif2h5/CMakeLists.txt -./hl/tools/gif2h5/CMakeTests.cmake -./hl/tools/h5watch/CMakeLists.txt -./hl/tools/h5watch/CMakeTests.cmake -./src/CMakeLists.txt -./test/CMakeLists.txt -./test/CMakePassthroughVOLTests.cmake -./test/CMakeTests.cmake -./test/CMakeVFDTests.cmake -./test/flushrefreshTest.cmake -./test/ShellTests.cmake -./testpar/CMakeLists.txt -./testpar/CMakeTests.cmake -./testpar/CMakeVFDTests.cmake -./tools/CMakeLists.txt -./tools/lib/CMakeLists.txt -./tools/libtest/CMakeLists.txt -./tools/libtest/CMakeTests.cmake -./tools/src/CMakeLists.txt -./tools/test/CMakeLists.txt -./tools/src/h5copy/CMakeLists.txt -./tools/test/h5copy/CMakeLists.txt -./tools/test/h5copy/CMakeTests.cmake -./tools/src/h5diff/CMakeLists.txt -./tools/test/h5diff/CMakeLists.txt -./tools/test/h5diff/CMakeTests.cmake -./tools/src/h5dump/CMakeLists.txt -./tools/test/h5dump/CMakeLists.txt -./tools/test/h5dump/CMakeTests.cmake -./tools/test/h5dump/CMakeTestsPBITS.cmake -./tools/test/h5dump/CMakeTestsXML.cmake -./tools/test/h5dump/CMakeTestsVDS.cmake -./tools/test/h5dump/CMakeVFDTests.cmake -./tools/src/h5format_convert/CMakeLists.txt -./tools/test/h5format_convert/CMakeLists.txt -./tools/test/h5format_convert/CMakeTests.cmake -./tools/src/h5import/CMakeLists.txt -./tools/test/h5import/CMakeLists.txt -./tools/test/h5import/CMakeTests.cmake -./tools/src/h5jam/CMakeLists.txt -./tools/test/h5jam/CMakeLists.txt -./tools/test/h5jam/CMakeTests.cmake -./tools/src/h5ls/CMakeLists.txt -./tools/test/h5ls/CMakeLists.txt -./tools/test/h5ls/CMakeTests.cmake -./tools/test/h5ls/CMakeTestsVDS.cmake -./tools/src/h5repack/CMakeLists.txt -./tools/test/h5repack/CMakeLists.txt -./tools/test/h5repack/CMakeTests.cmake -./tools/test/h5repack/CMakeVFDTests.cmake -./tools/src/h5stat/CMakeLists.txt -./tools/test/h5stat/CMakeLists.txt -./tools/test/h5stat/CMakeTests.cmake -./tools/src/misc/CMakeLists.txt -./tools/src/h5perf/CMakeLists.txt -./tools/test/misc/CMakeLists.txt -./tools/test/misc/CMakeTestsClear.cmake -./tools/test/misc/CMakeTestsMkgrp.cmake -./tools/test/misc/CMakeTestsRepart.cmake -./tools/test/misc/vds/CMakeLists.txt -./tools/test/perform/CMakeLists.txt -./tools/test/perform/CMakeTests.cmake - -./utils/CMakeLists.txt -./utils/mirror_vfd/CMakeLists.txt -./utils/test/CMakeLists.txt - -# CMake-specific User Scripts -./config/cmake/CTestScript.cmake -./config/cmake/HDF5_Examples_options.cmake -./config/cmake/scripts/CTestScript.cmake -./config/cmake/scripts/HDF5config.cmake -./config/cmake/scripts/HDF5options.cmake - -# CMake-specific Sanitizer Scripts -./config/sanitizer/code-coverage.cmake -./config/sanitizer/formatting.cmake -./config/sanitizer/sanitizers.cmake -./config/sanitizer/tools.cmake -./config/sanitizer/LICENSE -./config/sanitizer/README.md - -# CMake-specific HPC Scripts -./config/cmake/scripts/HPC/sbatch-HDF5options.cmake -./config/cmake/scripts/HPC/bsub-HDF5options.cmake -./config/cmake/scripts/HPC/qsub-HDF5options.cmake -./config/cmake/scripts/HPC/raybsub-HDF5options.cmake - -# Files generated by autogen -./aclocal.m4 -./bin/compile -./bin/config.guess -./bin/config.sub -./bin/depcomp -./bin/install-sh -./bin/ltmain.sh -./bin/missing -./bin/test-driver -./c++/examples/Makefile.in -./c++/Makefile.in -./configure -./bin/Makefile.in -./c++/src/Makefile.in -./c++/test/Makefile.in -./examples/Makefile.in -./fortran/examples/Makefile.in -./fortran/Makefile.in -./fortran/src/Makefile.in -./fortran/test/Makefile.in -./fortran/testpar/Makefile.in -./hl/c++/examples/Makefile.in -./hl/c++/Makefile.in -./hl/c++/src/Makefile.in -./hl/c++/test/Makefile.in -./hl/examples/Makefile.in -./hl/fortran/examples/Makefile.in -./hl/fortran/Makefile.in -./hl/fortran/src/Makefile.in -./hl/fortran/test/Makefile.in -./hl/Makefile.in -./hl/src/Makefile.in -./hl/test/Makefile.in -./hl/tools/gif2h5/Makefile.in -./hl/tools/h5watch/Makefile.in -./hl/tools/Makefile.in -./java/examples/intro/Makefile.in -./java/examples/datasets/Makefile.in -./java/examples/datatypes/Makefile.in -./java/examples/Makefile.in -./java/examples/groups/Makefile.in -./java/Makefile.in -./java/test/Makefile.in -./java/src/Makefile.in -./java/src/jni/Makefile.in -./m4/libtool.m4 -./m4/lt~obsolete.m4 -./m4/ltoptions.m4 -./m4/ltsugar.m4 -./m4/ltversion.m4 -./Makefile.in -./src/H5config.h.in -./src/H5Edefin.h -./src/H5Einit.h -./src/H5Epubgen.h -./src/H5Eterm.h -./src/H5overflow.h -./src/H5version.h -./src/Makefile.in -./test/Makefile.in -./testpar/Makefile.in -./tools/Makefile.in -./tools/lib/Makefile.in -./tools/libtest/Makefile.in -./tools/src/Makefile.in -./tools/src/h5copy/Makefile.in -./tools/src/h5diff/Makefile.in -./tools/src/h5dump/Makefile.in -./tools/src/h5format_convert/Makefile.in -./tools/src/h5import/Makefile.in -./tools/src/h5jam/Makefile.in -./tools/src/h5ls/Makefile.in -./tools/src/h5perf/Makefile.in -./tools/src/h5repack/Makefile.in -./tools/src/h5stat/Makefile.in -./tools/src/misc/Makefile.in -./tools/test/Makefile.in -./tools/test/h5copy/Makefile.in -./tools/test/h5diff/Makefile.in -./tools/test/h5dump/Makefile.in -./tools/test/h5format_convert/Makefile.in -./tools/test/h5import/Makefile.in -./tools/test/h5jam/Makefile.in -./tools/test/h5ls/Makefile.in -./tools/test/h5repack/Makefile.in -./tools/test/h5stat/Makefile.in -./tools/test/misc/Makefile.in -./tools/test/misc/vds/Makefile.in -./tools/test/perform/Makefile.in -./utils/Makefile.in -./utils/mirror_vfd/Makefile.in -./utils/test/Makefile.in -./utils/tools/Makefile.in -./utils/tools/h5dwalk/Makefile.in -./utils/tools/test/Makefile.in -./utils/tools/test/h5dwalk/Makefile.in diff --git a/bin/bbrelease b/bin/bbrelease index a45be2e..d056f6d 100755 --- a/bin/bbrelease +++ b/bin/bbrelease @@ -14,32 +14,13 @@ # Make a release of hdf5. # -# Programmer: Robb Matzke -# Creation date: on or before 1998-01-29. +# NOTE: +# This script differs from bin/release in that this has an added +# --revision option to create private releases with the code revision +# hash in the version strings. # -# Modifications -# Robb Matzke, 1999-07-16 -# The SunOS 5.6 sed *must* have slashes as delimiters. I changed things like -# `sed s+/CVS++' to `sed 's/\/CVS//' -# -# Albert Cheng, 1999-10-26 -# Moved the MANIFEST checking to a separate command file so that -# it can be invoked individually. -# -# Albert Cheng, 2004-08-14 -# Added the --private option. -# -# James Laird, 2005-09-07 -# Added the md5 method. -# -# Larry Knox, 2016-08-30 -# Added the --revision option to create private releases with the -# code revision hash in the version strings. Currently the version -# of this script with the --revision option is named bbrelease. It -# can probably be merged into the original release script in the -# future. -# Commands to get the revision hash have now been converted to git -# to match the source repository change. +# This script can probably be merged into the original release script in +# the future. # Function definitions # @@ -47,26 +28,25 @@ USAGE() { cat << EOF -Usage: $0 -d [--docver BRANCHNAME] [-h] [--nocheck] [--private] ... - -d DIR The name of the directory where the release(s) should be +Usage: $0 -d [--docver BRANCHNAME] [-h] [--private] [--revision] ... + -d DIR The name of the directory where the release(s) should be placed. --docver BRANCHNAME This is added for 1.8 and beyond to get the correct version of documentation files from the hdf5docs repository. BRANCHNAME for v1.8 should be hdf5_1_8. -h print the help page. - --nocheck Ignore errors in MANIFEST file. - --private Make a private release with today's date in version information. - --revision Make a private release with the code revision number in version information. - + --private Make a private release with today's date in version information. + --revision Make a private release with the code revision number in version information. + This must be run at the top level of the source directory. The other command-line options are the names of the programs to use for compressing the resulting tar archive (if none are given then "tar" is assumed): - tar -- use tar and don't do any compressing. - gzip -- use gzip with "-9" and append ".gz" to the output name. + tar -- use tar and don't do any compressing. + gzip -- use gzip with "-9" and append ".gz" to the output name. bzip2 -- use bzip2 with "-9" and append ".bz2" to the output name. - zip -- convert all text files to DOS style and form a zip file for Windows use. + zip -- convert all text files to DOS style and form a zip file for Windows use. doc -- produce the latest doc tree in addition to the archive. An md5 checksum is produced for each archive created and stored in the md5 file. @@ -97,15 +77,10 @@ EOF # Function name: tar2zip # Convert the release tarball to a Windows zipball. # -# Programmer: Albert Cheng -# Creation date: 2014-04-23 -# -# Modifications -# # Steps: # 1. untar the tarball in a temporary directory; # Note: do this in a temporary directory to avoid changing -# the original source directory which maybe around. +# the original source directory which may be around. # 2. convert all its text files to DOS (LF-CR) style; # 3. form a zip file which is usable by Windows users. # @@ -119,8 +94,8 @@ EOF tar2zip() { if [ $# -ne 3 ]; then - echo "usage: tar2zip " - return 1 + echo "usage: tar2zip " + return 1 fi ztmpdir=/tmp/tmpdir$$ mkdir -p $ztmpdir @@ -132,23 +107,23 @@ tar2zip() (cd $ztmpdir; tar xf -) < $tarfile # sanity check if [ ! -d $ztmpdir/$version ]; then - echo "untar did not create $ztmpdir/$version source dir" - # cleanup - rm -rf $ztmpdir - return 1 + echo "untar did not create $ztmpdir/$version source dir" + # cleanup + rm -rf $ztmpdir + return 1 fi # step 2: convert text files # There maybe a simpler way to do this. # options used in unix2dos: - # -k Keep the date stamp + # -k Keep the date stamp # -q quiet mode # grep redirect output to /dev/null because -q or -s are not portable. find $ztmpdir/$version | \ - while read inf; do \ - if file $inf | grep "$inf\: .*text" > /dev/null 2>&1 ; then \ - unix2dos -q -k $inf; \ - fi\ - done + while read inf; do \ + if file $inf | grep "$inf\: .*text" > /dev/null 2>&1 ; then \ + unix2dos -q -k $inf; \ + fi\ + done # step 3: make zipball # -9 maximum compression # -y Store symbolic links as such in the zip archive @@ -163,14 +138,6 @@ tar2zip() # This command must be run at the top level of the hdf5 source directory. # Verify this requirement. -# Since we are running bbrelease to create an HDF5 source tarfile for buildbot -# testing with source that is not for release, there is not a file named -# "configure" but there will be one named "configure.ac". The "configure" -# file will be created when autogen.sh runs. There probably will always -# be a bin/release file, but just in case it is removed, we can check for -# this script, bbrelease, in the bin directory. The bin/release script should -# continue to check for "configure" because it should be present in release -# source. if [ ! \( -f configure.ac -a -f bin/bbrelease \) ]; then echo "$0 must be run at the top level of the hdf5 source directory" exit 1 @@ -182,12 +149,11 @@ VERS=`perl bin/h5vers` VERS_OLD= test "$VERS" || exit 1 verbose=yes -check=yes release_date=`date +%F` today=`date +%Y%m%d` pmode='no' revmode='no' -tmpdir="../#release_tmp.$$" # tmp work directory +tmpdir="../#release_tmp.$$" # tmp work directory DOC_URL=https://git@bitbucket.hdfgroup.org/scm/hdffv/hdf5doc.git CPPLUS_RM_NAME=cpplus_RM @@ -195,11 +161,11 @@ CPPLUS_RM_NAME=cpplus_RM RESTORE_VERSION() { if [ X-${VERS_OLD} != X- ]; then - echo restoring version information back to $VERS_OLD - rm -f config/lt_vers.am - cp $tmpdir/lt_vers.am config/lt_vers.am - bin/h5vers -s $VERS_OLD - VERS_OLD= + echo restoring version information back to $VERS_OLD + rm -f config/lt_vers.am + cp $tmpdir/lt_vers.am config/lt_vers.am + bin/h5vers -s $VERS_OLD + VERS_OLD= fi } @@ -209,20 +175,17 @@ while [ -n "$1" ]; do arg=$1 shift case "$arg" in - -d) - DEST=$1 - shift - ;; - --nocheck) - check=no - ;; - -h) - USAGE - exit 0 - ;; - --private) - pmode=yes - ;; + -d) + DEST=$1 + shift + ;; + -h) + USAGE + exit 0 + ;; + --private) + pmode=yes + ;; --revision) revmode=yes ;; @@ -230,14 +193,14 @@ while [ -n "$1" ]; do DOCVERSION=$1 shift ;; - -*) - echo "Unknown switch: $arg" 1>&2 - USAGE - exit 1 - ;; - *) - methods="$methods $arg" - ;; + -*) + echo "Unknown switch: $arg" 1>&2 + USAGE + exit 1 + ;; + *) + methods="$methods $arg" + ;; esac done @@ -278,7 +241,7 @@ if [ X$revmode = Xyes ]; then cp config/lt_vers.am $tmpdir branch=`git branch | grep '*' | awk '{print $NF}'` revision=`git rev-parse --short HEAD` -# Set version information to m.n.r-r$revision. + # Set version information to m.n.r-r$revision. # (h5vers does not correctly handle just m.n.r-$today.) VERS=`echo $VERS | sed -e s/-.*//`-$revision echo Private release of $VERS @@ -299,23 +262,10 @@ if [ ! -d $DEST ]; then exit 1 fi -# Check the validity of the MANIFEST file. -bin/chkmanifest || fail=yes -if [ "X$fail" = "Xyes" ]; then - if [ $check = yes ]; then - exit 1 - else - echo "Continuing anyway..." - fi -fi - -# Create a manifest that contains only files for distribution. -MANIFEST=$tmpdir/H5_MANIFEST -grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_ >$MANIFEST - -# Prepare the source tree for a release. -#ln -s `pwd` $tmpdir/$HDF5_VERS || exit 1 +# Create a symlink to the source so files in the tarball have the prefix +# we want (gnu's --transform isn't portable) ln -s `pwd` $tmpdir/$HDF5_IN_VERS || exit 1 + # Save a backup copy of Makefile if exists. test -f Makefile && mv Makefile $tmpdir/Makefile.x cp -p Makefile.dist Makefile @@ -330,64 +280,60 @@ for f in README.md release_docs/RELEASE.txt; do chmod 644 $f done -# trunk is different than branches. +# develop is different than branches. if [ "${DOCVERSION}" ]; then DOC_URL=https://git@bitbucket.hdfgroup.org/scm/hdffv/hdf5doc.git -b ${DOCVERSION} fi # Create the tar file test "$verbose" && echo " Running tar..." 1>&2 -( \ - cd $tmpdir; \ - tar cf $HDF5_VERS.tar $HDF5_IN_VERS/Makefile \ - `sed 's/^\.\//'$HDF5_IN_VERS'\//' $MANIFEST` || exit 1 \ -) +(cd "$tmpdir" && exec tar -ch --exclude-vcs -f "$HDF5_VERS.tar" "./$HDF5_IN_VERS" || exit 1 ) # Compress MD5file=$HDF5_VERS.md5 cp /dev/null $DEST/$MD5file for comp in $methods; do case $comp in - tar) - cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar - (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) - ;; - gzip) - test "$verbose" && echo " Running gzip..." 1>&2 - gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz - (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) - ;; - bzip2) - test "$verbose" && echo " Running bzip2..." 1>&2 - bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 - (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) - ;; - zip) - test "$verbose" && echo " Creating zip ball..." 1>&2 - tar2zip $HDF5_IN_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 - (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) - ;; - doc) + tar) + cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar + (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) + ;; + gzip) + test "$verbose" && echo " Running gzip..." 1>&2 + gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz + (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) + ;; + bzip2) + test "$verbose" && echo " Running bzip2..." 1>&2 + bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2 + (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) + ;; + zip) + test "$verbose" && echo " Creating zip ball..." 1>&2 + tar2zip $HDF5_IN_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2 + (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) + ;; + doc) if [ "${DOCVERSION}" = "" ]; then DOCVERSION=master fi - test "$verbose" && echo " Creating docs..." 1>&2 - # Check out docs from git repo - (cd $tmpdir; git clone $DOC_URL > /dev/null) || exit 1 - # Create doxygen C++ RM - (cd c++/src && doxygen cpp_doc_config > /dev/null ) || exit 1 - # Replace version of C++ RM with just-created version + test "$verbose" && echo " Creating docs..." 1>&2 + # Check out docs from git repo + (cd $tmpdir; git clone $DOC_URL > /dev/null) || exit 1 + # Create doxygen C++ RM + (cd c++/src && doxygen cpp_doc_config > /dev/null ) || exit 1 + # Replace version of C++ RM with just-created version rm -rf $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME mv c++/src/$CPPLUS_RM_NAME $tmpdir/${DOCVERSION}/html/$CPPLUS_RM_NAME # Compress the docs and move them to the release area mv $tmpdir/$DOCVERSION $tmpdir/${HDF5_VERS}_docs - (cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs) - mv $tmpdir/${HDF5_VERS}_docs.tar $DEST - ;; - *) - echo "***Error*** Unknown method $comp" - exit 1 - ;; + (cd $tmpdir && tar cf ${HDF5_VERS}_docs.tar ${HDF5_VERS}_docs) + mv $tmpdir/${HDF5_VERS}_docs.tar $DEST + ;; + *) + echo "***Error*** Unknown method $comp" + exit 1 + ;; esac done @@ -408,4 +354,6 @@ fi # Remove temporary things rm -rf $tmpdir +echo "DONE" + exit 0 diff --git a/bin/chkmanifest b/bin/chkmanifest deleted file mode 100755 index 08ca1fa..0000000 --- a/bin/chkmanifest +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# - -# Check that all the files in MANIFEST exist and (if this is a -# GIT checkout) that all the GIT-managed files appear in the -# MANIFEST. -# - -verbose=yes -MANIFEST=/tmp/HD_MANIFEST.$$ -AUTOGEN=./autogen.sh -AUTOGEN_LOG=/tmp/autogen.log.$$ - -# Main -test "$verbose" && echo " Checking MANIFEST..." 1>&2 -# clean up $MANIFEST file when exits -trap "rm -f $MANIFEST" 0 - -# Only split lines on newline, not whitespace -set -f -IFS=' -' - -# First make sure i am in the directory in which there is an MANIFEST file -# and then do the checking from there. Will try the following, -# current directory, parent directory, the directory this command resides. -if [ -f MANIFEST ]; then - continue -elif [ -f ../MANIFEST ]; then - cd .. -else - commanddir=`dirname $0` - if [ -d "$commanddir" -a -f $commanddir/MANIFEST ]; then - cd $commanddir - continue - else - echo MANIFEST file not found. Abort. - exit 1 - fi -fi - -# Do an autogen if generated files (e.g., configure) is not present -if [ ! -f configure ]; then - echo " running $AUTOGEN" - $AUTOGEN > $AUTOGEN_LOG 2>&1 - if [ $? -ne 0 ]; then - echo $AUTOGEN encountered error. Abort. - echo output from $AUTOGEN: - cat $AUTOGEN_LOG - exit 1 - fi - rm $AUTOGEN_LOG -fi - -# Check for duplicate entries. This can be done at any time, but it may as -# well be sooner so that if something else fails the presence of duplicates -# will already be known. -errcode=0 -DUPLICATES=`perl -ne 's/#.*//; next if /^\s*$/; if ($uniq{$_}++) { print $_; }' MANIFEST` -if [ "$DUPLICATES" ]; then - cat 1>&2 <$MANIFEST - -for file in `cat $MANIFEST`; do - if [ ! -f $file ]; then - echo "- $file" - fail=yes - fi -done - -# Get the list of files under version control and check that they are -# present. -# -# First get a list of all the pending files with git status and -# check those. -git_stat=`git status -s` -for file in $git_stat; do - - # Newly added files are not listed by git ls-files, which - # we check later. - - # The line listing new files starts with 'A'. - letter=`echo $file | head -c 1` - if [ "$letter" = "A" ]; then - # Convert the git status columns to './' so it matches - # the manifest file name. - # - # There is a space between the status columns and file name, hence - # the '3'. - path=`echo $file | sed 's/^.\{3\}/\.\//g'` - # Ignore directories - if [ ! -d $path ]; then - if (grep ^$path$ $MANIFEST >/dev/null); then - : - else - echo "- $path" - fail=yes - fi - fi - fi -done - -# Next check git ls-files, which gets a list of all files that are -# checked in. -git_ls=`git ls-files` -for file in $git_ls; do - path="./${file}" - # Ignore directories - if [ ! -d $path ]; then - if (grep ^$path$ $MANIFEST >/dev/null); then - : - else - echo "+ $path" - fail=yes - fi - fi -done - -# Finish up -if [ "X$fail" = "Xyes" ]; then - cat 1>&2 <&2 -exit 0 diff --git a/bin/locate_sw b/bin/locate_sw deleted file mode 100755 index 1cf84e2..0000000 --- a/bin/locate_sw +++ /dev/null @@ -1,238 +0,0 @@ -#!/bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# - -# Try to locate the software as named in argument. -# This is a sequential search of all possible locations of the software. -# Usage: locate_sw -# It prints a string showing the paths leading to the include, lib and bin -# directory of the software, separated by colons. E.g., if the software is -# located in /usr/sdt/*, it prints -# /usr/sdt/include:/usr/sdt/lib:/usr/sdt/bin -# Any component that is not found will be returned as an empty string. E.g., -# if somehow the header files of the software are not found, it prints -# :/usr/sdt/lib;/usr/sdt/bin - -# Function definitions -USAGE() -{ - echo "Usage: locate_sw " - echo " where can be hdf4, hdf5, zlib" - echo " It prints the paths leading the header files (include)," - echo " library (lib), and tools (bin). E.g.," - echo " /usr/sdt/include:/usr/sdt/lib:/usr/sdt/bin" - echo " Any component that is not found will be returned as an empty string. E.g.," - echo " if somehow the header files of the software are not found, it prints" - echo " :/usr/sdt/lib;/usr/sdt/bin" - echo "Exit code: 0 if software located; otherwise non-zero" -} - -# locate hdf4 software -locate_hdf4() -{ -# this default is the best guess of locating hdf4 software -swpaths_defaults="/usr/ncsa /usr/sdt /usr/local" -swpaths= - -case "$OSname" in - SunOS) - case "$OSrelease" in - 5.7) - swpaths="/afs/ncsa/packages/hdf/SunOS_5.7" - ;; - *) - # use default - ;; - esac - ;; - HP-UX) - case "$OSrelease" in - B.11.00) - swpaths="/afs/ncsa/packages/hdf/HPUX_11.00" - ;; - *) - # use default - ;; - esac - ;; - Linux) - swpaths="/afs/ncsa/packages/hdf/Linux" - ;; - OSF1) - swpaths="/afs/ncsa/packages/hdf/OSF1_V4.0" - ;; - *) - # just use the defaults - ;; -esac - -# Check if the hdf4 software is actually available. -# Accept the directory only if needed .h, .a and tools are found -# in the same place. That way, they are more likely to be of the -# same version. -# -swpaths="$swpaths $swpaths_defaults" -for sw in $swpaths; do - if [ -r $sw/include/hdf.h -a -r $sw/lib/libdf.a -a -r $sw/bin/hdp ]; then - SW_inc=$sw/include - SW_lib=$sw/lib - SW_bin=$sw/bin - SW_Location=$sw - break - fi -done -} - -# locate hdf5 software -locate_hdf5() -{ -# this default is the best guess of locating hdf5 software -swpaths_defaults="/usr/ncsa /usr/sdt /usr/local" -swpaths= - -case "$OSname" in - SunOS) - case "$OSrelease" in - 5.7) - swpaths="/afs/ncsa/packages/hdf5/SunOS_5.7" - ;; - *) - # use default - ;; - esac - ;; - HP-UX) - case "$OSrelease" in - B.11.00) - swpaths="/afs/ncsa/packages/hdf5/HPUX_11.00" - ;; - *) - # use default - ;; - esac - ;; - Linux) - swpaths="/afs/ncsa/packages/hdf5/Linux" - ;; - FreeBSD) - swpaths="/afs/ncsa/packages/hdf5/FreeBSD" - ;; - OSF1) - swpaths="/afs/ncsa/packages/hdf5/OSF1_V4.0" - ;; - *) - # just use the defaults - ;; -esac - -# Check if the hdf5 software is actually available. -# Accept the directory only if needed .h, .a and tools are found -# in the same place. That way, they are more likely to be of the -# same version. -# -swpaths="$swpaths $swpaths_defaults" -for sw in $swpaths; do - if [ -r $sw/include/hdf5.h -a -r $sw/lib/libhdf5.a -a -r $sw/bin/h5dump ]; then - SW_inc=$sw/include - SW_lib=$sw/lib - SW_bin=$sw/bin - SW_Location=$sw - break - fi -done -} - -# locate zlib software -locate_zlib() -{ -# this default is the best guess of locating zlib software -swpaths_defaults="/usr /usr/local /usr/ncsa /usr/sdt" -swpaths= - - -# Check if the zlib software is actually available. -# Accept the directory only if needed .h, .a and tools are found -# in the same place. That way, they are more likely to be of the -# same version. -# Don't know something specific to check the bin directory. Maybe gzip? -# Just make sure it exists. -# -swpaths="$swpaths $swpaths_defaults" -for sw in $swpaths; do - if [ -r $sw/include/zlib.h -a \ - \( -r $sw/lib/libz.a -o -r $sw/lib/libz.so \) -a -d $cw/bin ]; then - SW_inc=$sw/include - SW_lib=$sw/lib - SW_bin=$sw/bin - SW_Location=$sw - break - fi -done - -# if none found, try HDF4 software which contains a version of zlib. -if [ x-$SW_Location = x- ]; then - locate_hdf4 -fi - -} - -# Main -# -# Options -# -if [ $# -lt 1 ]; then - USAGE - exit 1 -fi - -if [ "$1" = -h ]; then - USAGE - exit 0 -fi - -SW=$1 -shift - -# locations of the software seeked. -SW_inc= # include place -SW_lib= # library place -SW_bin= # binary place -SW_Location= # parent directory of all the above - -OSname=`uname -s` -OSrelease=`uname -r` - -case $SW in -hdf4|hdf) - locate_hdf4 - ;; -hdf5) - locate_hdf5 - ;; -zlib) - locate_zlib - ;; -*) - echo "unknown software ($SW)" - USAGE - exit 1 - ;; -esac - -# show the results located, separated by commas. -if [ -n "${SW_inc}" -a -n "${SW_lib}" -a -n "${SW_bin}" ]; then - echo ${SW_inc},${SW_lib},${SW_bin} - exit 0 -else - exit 1 -fi diff --git a/bin/release b/bin/release index e71a38e..84555b6 100755 --- a/bin/release +++ b/bin/release @@ -13,24 +13,6 @@ # # Make a release of hdf5. -# -# Programmer: Robb Matzke -# Creation date: on or before 1998-01-29. -# -# Modifications -# Robb Matzke, 1999-07-16 -# The SunOS 5.6 sed *must* have slashes as delimiters. I changed things like -# `sed s+/CVS++' to `sed 's/\/CVS//' -# -# Albert Cheng, 1999-10-26 -# Moved the MANIFEST checking to a separate command file so that -# it can be invoked individually. -# -# Albert Cheng, 2004-08-14 -# Added the --private option. -# -# James Laird, 2005-09-07 -# Added the md5 method. # Function definitions # @@ -38,14 +20,13 @@ USAGE() { cat << EOF -Usage: $0 -d [--docver BRANCHNAME] [-h] [--nocheck] [--private] ... - -d DIR The name of the directory where the release(es) should be +Usage: $0 -d [--docver BRANCHNAME] [-h] [--private] ... + -d DIR The name of the directory where the release(s) should be placed. --docver BRANCHNAME This is added for 1.8 and beyond to get the correct version of documentation files from the hdf5docs repository. BRANCHNAME for v1.8 should be hdf5_1_8. -h print the help page. - --nocheck Ignore errors in MANIFEST file. --private Make a private release with today's date in version information. This must be run at the top level of the source directory. @@ -100,11 +81,6 @@ EOF # Function name: tar2zip # Convert the release tarball to a Windows zipball. # -# Programmer: Albert Cheng -# Creation date: 2014-04-23 -# -# Modifications -# # Steps: # 1. untar the tarball in a temporary directory; # Note: do this in a temporary directory to avoid changing @@ -167,11 +143,6 @@ tar2zip() # Function name: tar2cmakezip # Convert the release tarball to a Windows zipball with files to run CMake build. # -# Programmer: Larry Knox -# Creation date: 2017-02-20 -# -# Modifications -# # Steps: # 1. untar the tarball in a temporary directory; # Note: do this in a temporary directory to avoid changing @@ -269,10 +240,6 @@ tar2cmakezip() # Function name: tar2cmaketgz # Convert the release tarball to a gzipped tar file with files to run CMake build. # -# Programmer: Larry Knox -# Creation date: 2017-02-20 -# -# Modifications # # Steps: # 1. untar the tarball in a temporary directory; @@ -347,11 +314,6 @@ tar2cmaketgz() # and HDF5options.cmake files for parallel or serial only builds where build # tests are run on compute nodes using batch scripts. # -# Programmer: Larry Knox -# Creation date: 2019-01-28 -# -# Modifications -# # Steps: # 1. untar the tarball in a temporary directory; # Note: do this in a temporary directory to avoid changing @@ -443,7 +405,6 @@ VERS=`perl bin/h5vers` VERS_OLD= test "$VERS" || exit 1 verbose=yes -check=yes release_date=`date +%F` today=`date +%Y%m%d` pmode='no' @@ -482,9 +443,6 @@ while [ -n "$1" ]; do DEST=$1 shift ;; - --nocheck) - check=no - ;; -h) USAGE exit 0 @@ -546,28 +504,10 @@ if [ ! -d $DEST ]; then exit 1 fi -# Check the validity of the MANIFEST file. -bin/chkmanifest || fail=yes -if [ "X$fail" = "Xyes" ]; then - if [ $check = yes ]; then - echo "" - echo "Note! If you are running bin/release in a development branch" - echo "later than v 1.8 the MANIFEST check is expected to fail when" - echo "autogen.sh has not been run successfully. Either run autogen.sh " - echo "with /usr/hdf/bin/AUTOTOOLS at the beginning of PATH or add the" - echo "--nocheck argument to the bin/release command." - exit 1 - else - echo "Continuing anyway..." - fi -fi - -# Create a manifest that contains only files for distribution. -MANIFEST=$tmpdir/H5_MANIFEST -grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_ >$MANIFEST - -# Prepare the source tree for a release. +# Create a symlink to the source so files in the tarball have the prefix +# we want (gnu's --transform isn't portable) ln -s `pwd` $tmpdir/$HDF5_VERS || exit 1 + # Save a backup copy of Makefile if exists. test -f Makefile && mv Makefile $tmpdir/Makefile.x cp -p Makefile.dist Makefile @@ -582,18 +522,14 @@ for f in README.md release_docs/RELEASE.txt; do chmod 644 $f done -# trunk is different than branches. +# develop is different than branches. if [ "${DOCVERSION}" ]; then DOC_URL="$DOC_URL -b ${DOCVERSION}" fi # Create the tar file test "$verbose" && echo " Running tar..." 1>&2 -( \ - cd $tmpdir; \ - tar cf $HDF5_VERS.tar $HDF5_VERS/Makefile \ - `sed 's/^\.\//hdf5-'$VERS'\//' $MANIFEST` || exit 1 \ -) +(cd "$tmpdir" && exec tar -ch --exclude-vcs -f "$HDF5_VERS.tar" "./$HDF5_VERS" || exit 1 ) # Compress MD5file=$HDF5_VERS.md5 @@ -680,4 +616,6 @@ fi # Remove temporary things rm -rf $tmpdir +echo "DONE" + exit 0 diff --git a/bin/runtest b/bin/runtest deleted file mode 100755 index 5e05abb..0000000 --- a/bin/runtest +++ /dev/null @@ -1,966 +0,0 @@ -#! /bin/sh -# -# Copyright by The HDF Group. -# Copyright by the Board of Trustees of the University of Illinois. -# All rights reserved. -# -# This file is part of HDF5. The full HDF5 copyright notice, including -# terms governing use, modification, and redistribution, is contained in -# the COPYING file, which can be found at the root of the source code -# distribution tree, or in https://www.hdfgroup.org/licenses. -# If you do not have access to either file, you may request a copy from -# help@hdfgroup.org. -# - -# run the hdf5/bin/snapshot -# Usage: -# runtest run the test for the local host -# runtest run the test for -# runtest -all run the test for all predefined hosts -# -# Assumptions in knowing where to find the right scripts to execute. -# 1. assume we are at the top level of the hdf5 source. So, bin/* are -# where the script files are. -# 2. after the cvs update is completed, we can go to the snapshot area -# hdf5 source tree and use the bin/* there. -# 3. Cannot use the snapshot area scripts from the beginning because -# for one, the current directory is renamed as previous right after -# a snapshot release; and for another, some scripts may be changed -# by the cvs update while it is being used. - -# local setup -DEBUGMODE="" -test -n "$DEBUGMODE" && echo "******** DEBUGMODE is $DEBUGMODE ************" -WHEREAMI='pwd' -CMD= - -# the name of this program -PROGNAME="bin/runtest $DEBUGMODE" - -# Setup -HOSTNAME=`hostname | cut -f1 -d.` # no domain part -TODAY=`date +%m%d%a` -WEEKDAY=`date +%a` -H5VER= # default to current CVS version -H5VERSION= # default to current CVS version -n_test=0 # Number of tests ran -n_pass=0 # Number of tests passed -n_fail=0 # Number of tests failed -n_skip=0 # Number of tests skipped - -# Default to do checkout (only once) and test, no release. -# Will run test only if there is significant differences from previous version. -# If srcdir is not used, don't launched multiple tests -SNAPSHOT="${DEBUGMODE:+echo }bin/snapshot" -SRCDIR="srcdir" -# Default standard Snaptest commands -SNAPCMD="$SRCDIR test clean" -# Default Standard snaptest command options -STANDARD_OPT="" -ENABLE_PARALLEL="--enable-parallel" -CONFIGNAME=$HOSTNAME # Name used in the SNAPTESTCFG file - -# test host default as local host. -TESTHOST="" - -################################# -# Function definitions -################################# - -# Print messages to stdout -# Use this to show output heading to stdout -PRINT() -{ - echo "$*" -} - -# Show seconds since midnight. -# This is used to calculate seconds elapsed -SecOfDay() -{ - set `date '+%H %M %S'` - t_sec=`expr $1 \* 3600 + $2 \* 60 + $3` - echo $t_sec -} - -# Calculated the elapsed time (in seconds) between the first -# and second time. If second time is smaller than the first, -# we assume the clock has passed midnight and calculate appropriately. -ElapsedTime() -{ - if [ $2 -lt $1 ]; then - t_sec=`expr 3600 \* 24 - $1 + $2` - else - t_sec=`expr $2 - $1` - fi - echo `expr $t_sec / 60`m `expr $t_sec % 60`s -} - -# Report errors -# $1--an error message to be printed -REPORT_ERR() -{ - ERRMSG=$1 - # print it with a banner shifted right a bit - PRINT " *************************************" - PRINT " `date`" - PRINT " $ERRMSG" - PRINT " *************************************" - # report it in the FAILED-LOG file too - PRINT "$ERRMSG" >> $FAILEDLOG -} - -# -# Report results of the last test done -REPORT_RESULT() -{ - if [ $retcode -eq 0 ]; then - if [ $skiptest = yes ]; then - n_skip=`expr $n_skip + 1` - PRINT "SKIPPED ${HOSTNAME}: $TEST_TYPE" | tee -a $SKIPPEDLOG - else - n_pass=`expr $n_pass + 1` - PRINT "PASSED ${HOSTNAME}: $TEST_TYPE" | tee -a $PASSEDLOG - fi - else - # test failed. - n_fail=`expr $n_fail + 1` - REPORT_ERR "****FAILED ${HOSTNAME}: $TEST_TYPE****" - fi -} - -# Print a blank line -PRINT_BLANK() -{ - PRINT -} - -# Print test trailer -PRINT_TEST_TRAILER() -{ - PRINT "*** finished $TEST_TYPE tests for $HOSTNAME ***" - date; EndTime=`SecOfDay` - PRINT Total time = `ElapsedTime $StartTime $EndTime` - PRINT_BLANK -} - -# Print trailer summary -PRINT_TRAILER() -{ - PRINT "*** finished tests in $HOSTNAME ***" - date; TotalEndTime=`SecOfDay` - PRINT "${HOSTNAME}: Ran $n_test($n_pass/$n_fail/$n_skip) $runtest_type, Grand total test time = " \ - "`ElapsedTime $TotalStartTime $TotalEndTime`" | tee -a $TIMELOG - PRINT_BLANK -} - -# Figure out which remote command to use to reach a host. -# Try ssh first, then rsh since fewer machines support rsh exec. -# $1--hostname to reach. -CHECK_RSH() -{ - # Figure out how to use ping command in this host. - # Some hosts use "ping host count", some use "ping -c count host". - # Test "ping -c 3 -w 5" since it has timeout feature. - # Test "ping -c ..." style before "ping host 3" because some machines - # that recognize -c treat 'ping localhost 3' as to ping host '3'. - if [ -z "$PING" ]; then - if ping -c 3 -w 5 localhost >/dev/null 2>&1; then - PING='ping -c 3 -w 5' - PINGCOUNT= - elif ping -c 3 localhost >/dev/null 2>&1; then - PING='ping -c 3' - PINGCOUNT= - elif ping localhost 3 >/dev/null 2>&1; then - PING=ping - PINGCOUNT=3 - else # don't know how to use ping. - PING=no_ping - PINGCOUNT= - fi - fi - # - host=$1 - # Try remote command with host if it responds to ping. - # Still try it if we don't know how to do ping. - if [ no_ping = "$PING" ] || $PING $host $PINGCOUNT >/dev/null 2>&1; then - if ssh $host -n hostname >/dev/null 2>&1; then - RSH=ssh - elif rsh $host -n hostname >/dev/null 2>&1; then - RSH=rsh - else - PRINT cannot remote command with $host - RSH="NoRemoteCommand" - fi - else - RSH="NotReachable" - fi -} - - -# Wait for a file for at most number of minutes -# $1--the file -# $2--number of minutes -# WAIT_STATUS set to: -# -1 if errors encountered -# 0 if file found within time limit -# 1 if file not found within time limit -WAITFOR() -{ - wait_file=$1 - nminutes=$2 - if [ -z "$wait_file" -o ! "$nminutes" -ge 0 ] - then - PRINT "errors in argument of WAITFOR(): wait_file($1) or nminutes($2)" - WAIT_STATUS=-1 - return - fi - while [ ! -f $wait_file ]; do - if [ $nminutes -gt 0 ]; then - PRINT "Wait For $wait_file to appear" - sleep 60 #sleep 1 minute - else - WAIT_STATUS=1 - return - fi - nminutes=`expr $nminutes - 1` - done - WAIT_STATUS=0 - return -} - - -# Wait till a file disappears for at most number of minutes. -# Useful to wait till a lock is removed by another process. -# $1--the file -# $2--number of minutes -# WAIT_STATUS set to: -# -1 if errors encountered -# 0 if file disappears within time limit -# 1 if file has not disappeared within time limit -WAITTILL() -{ - wait_file=$1 - nminutes=$2 - if [ -z "$wait_file" -o ! "$nminutes" -ge 0 ] - then - PRINT "errors in argument of WAITTILL(): wait_file($1) or nminutes($2)" - WAIT_STATUS=-1 - return - fi - while [ -f $wait_file ]; do - if [ $nminutes -gt 0 ]; then - PRINT "Wait till $wait_file has disappeared" - sleep 60 #sleep 1 minute - else - WAIT_STATUS=1 - return - fi - nminutes=`expr $nminutes - 1` - done - WAIT_STATUS=0 - return -} - - -# Run one snapshot test -# $*--Types of test being run -RUNSNAPTEST() -{ - SNAPCMD_OPT="$STANDARD_OPT" # snapshot test option - SRCDIRNAME=${HOSTNAME} - # restore CC, PATH in case they were changed in the last test. - CC="$CC_SAVED" - PATH=$PATH_SAVED - export PATH # DEC OSF1 needs to export PATH explicitly - TEST_TYPE=$* - retcode=0 - skiptest=no - date - PRINT "*** starting $TEST_TYPE tests in $HOSTNAME ***" - PRINT "Uname -a: `uname -a`" - - # Parse the test type and set options accordingly. - # See comments of SNAPTEST_CONFIG_PARSE(). - while [ $# -gt 0 ]; do - case $1 in - -n32) # want -n32 option - SRCDIRNAME=${SRCDIRNAME}-n32 - CC="cc -n32" - export CC - ;; - -64) # want -64 option - SRCDIRNAME=${SRCDIRNAME}-64 - CC="cc -64" - export CC - ;; - parallel) # want parallel test - SNAPCMD_OPT="$SNAPCMD_OPT $ENABLE_PARALLEL" - SRCDIRNAME=${SRCDIRNAME}-pp - ;; - standard) # standard test - ;; - --*) - # option for configure - SNAPCMD_OPT="$SNAPCMD_OPT $1" - ;; - op-configure) - # option for configure - SNAPCMD_OPT="$SNAPCMD_OPT $1 $2" - shift - ;; - op-snapshot) - # option for snapshot - shift - SNAPCMD_OPT="$SNAPCMD_OPT $1" - ;; - setenv) - # pass them along to snapshot set environment variable - shift - SNAPCMD_OPT="$SNAPCMD_OPT setenv $1 $2" - shift - ;; - setenvN) - # set environment variable with $1 values - # e.g., setenvN 3 x a b c is same as setenv x="a b c". - # pass them along to snapshot set environment variable - shift - envN=$1 - shift - envname=$1 - SNAPCMD_OPT="$SNAPCMD_OPT setenvN $envN $envname" - envalue= - while test $envN -gt 0; do - shift - envalue="$envalue $1" - envN=`expr $envN - 1` - done - SNAPCMD_OPT="$SNAPCMD_OPT $envalue" - ;; - skip) - # skip this test - skiptest=yes - ;; - srcdirname) - # Use this before using parallel and -n32 since this overrides - # the others. - shift - SRCDIRNAME=$1 - ;; - deploy) - # deploy the built binary. - shift - SNAPCMD_OPT="$SNAPCMD_OPT deploy $1" - ;; - deploydir) - # default directory for deployment. - shift - SNAPCMD_OPT="$SNAPCMD_OPT deploydir $1" - ;; - *) # unknown test - PRINT "$0: unknown type of test ($1)" - retcode=1 - ;; - esac - shift - done - - if [ $retcode -ne 0 -o $skiptest = yes ]; then - errcode=$retcode - return $retcode - fi - - # Track down the zlib software - ans=`$SNAPYARD/current/bin/locate_sw zlib` - if [ $? = 0 ]; then - Z_INC=`echo $ans | cut -f1 -d,` - Z_LIB=`echo $ans | cut -f2 -d,` - SNAPCMD_OPT="$SNAPCMD_OPT zlib $Z_INC,$Z_LIB" - else - # cannot locate zlib software. - # continue the test, maybe configure can find it. - : - fi - - if [ -n "${SRCDIRNAME}" ]; then - SNAPCMD_OPT="$SNAPCMD_OPT srcdirname ${SRCDIRNAME}" - fi - - # Setup log file name to save test output - THIS_MINUTE=`date +%H%M` - LOGFILE=${LOGBASENAME}/${SRCDIRNAME}_${TODAY}_${THIS_MINUTE} - PRINT "Running snapshot with output saved in" - PRINT " $LOGFILE" - (date; PRINT Hostname=$HOSTNAME) >> $LOGFILE - - ( - cd $SNAPYARD/current - $SNAPSHOT $SNAPCMD $SNAPCMD_OPT - ) >> $LOGFILE 2>&1 - retcode=$? - [ $retcode -ne 0 ] && errcode=$retcode - - date >> $LOGFILE - if [ $retcode -ne 0 ]; then - # Dump the first 10 lines and the last 30 lines of the LOGFILE. - ( ntail=30 - echo ========================= - echo "Dumping logfile of ${HOSTNAME}: $TEST_TYPE" - echo "Last $ntail lines of $LOGFILE" - echo ========================= - tail -$ntail $LOGFILE - echo ========================= - echo Dumping done - echo ========================= - echo "" - ) >> $FAILEDDETAIL - fi -} - -TIMELIMIT_PARSE() -{ - # Function returns timeparam for timekeeper via standard out - - # any debug statements should be 'echo "Debug string" >&2' or timekeeper - # will declare timeparam to be non-numeric and ignore it. - while read x y ; do - # Scan for entry for this weekday. - xd=`echo $x | cut -f1 -d/` - if [ "$xd" = ${WEEKDAY} ]; then - # strip away the weekday/ part. - timeparam=`echo $x | cut -f2 -d/` - break - fi - case "$x" in - '' | '#'*) - # blank or comment lines. Continue. - ;; - ???/*) - # Ignore any entry not of this weekday. - ;; - *) - timeparam="$x" - ;; - esac - done - echo $timeparam - return -} - -# configuration parsing. -# Taking configuration from input. -# This should be invoke with configure file as stdin. -# Syntax of the configure file: -# All lines started with the # are comment lines and are ignored. -# Blank lines are ignored too. -# Each config line starts with a "Scope" followed by test types. -# -# Scope can be: -# standard ... # what the standard test types are. -# : Do for -# all: Do for all hosts. -# /... Use this scope if the matches. -# can be {Mon,Tue,Wed,Thu,Fri,Sat,Sun} -# If no : input for a , the standard test is used. -# -# Test types: -# standard tests defined in standard scope. -# -n32 -n32 mode. Apply to 64/32 bit OS such as IRIX64. -# parallel parallel mode. -# op-configure