From b043ee1241522fc0b87787ead985f5d9f3b7af26 Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Tue, 25 Aug 2009 09:14:21 -0500 Subject: [svn-r17417] Description: Bring r17365:17416 from trunk to revise_chunks branch Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.5.8 (amazon) in debug mode Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode --- configure | 68 + configure.in | 50 + release_docs/RELEASE.txt | 8 +- src/H5AC.c | 310 +- src/H5ACprivate.h | 2 +- src/H5C.c | 163 +- src/H5Cprivate.h | 2 - src/H5Dchunk.c | 19 +- src/H5Dcompact.c | 4 +- src/H5Dcontig.c | 4 +- src/H5Defl.c | 8 +- src/H5Dint.c | 14 +- src/H5Dpkg.h | 3 +- src/H5Dprivate.h | 2 +- src/H5F.c | 159 +- src/H5FD.c | 20 +- src/H5FDcore.c | 20 +- src/H5FDprivate.h | 2 +- src/H5FDsec2.c | 5 +- src/H5FDwindows.c | 51 +- src/H5FSprivate.h | 2 +- src/H5Faccum.c | 14 +- src/H5Fmount.c | 77 + src/H5Fpkg.h | 6 +- src/H5Fprivate.h | 11 +- src/H5Fpublic.h | 3 +- src/H5Fsuper.c | 2 +- src/H5Fsuper_cache.c | 12 +- src/H5MF.c | 75 +- src/H5MFaggr.c | 97 +- src/H5MFpkg.h | 2 +- src/H5MFprivate.h | 2 +- src/H5T.c | 6 +- src/H5Tconv.c | 8 +- src/H5Tpkg.h | 12 +- src/H5config.h.in | 4 + src/H5trace.c | 4 - src/H5win32defs.h | 1 + test/dt_arith.c | 5 + test/freespace.c | 148 +- test/links.c | 271 +- test/mf.c | 1 - test/ohdr.c | 28 +- test/tsohm.c | 20 +- testpar/t_cache.c | 2 +- testpar/t_mdset.c | 6 +- testpar/testphdf5.c | 31 +- tools/h5stat/h5stat.c | 16 +- vms/tools/h5jam/check_h5jam.com | 11 +- windows/c++/examples/chunkstest/chunkstest.vcproj | 42 - .../examples/chunkstestdll/chunkstestdll.vcproj | 42 - .../c++/examples/compoundtest/compoundtest.vcproj | 42 - .../compoundtestdll/compoundtestdll.vcproj | 42 - windows/c++/examples/createtest/createtest.vcproj | 42 - .../examples/createtestdll/createtestdll.vcproj | 42 - .../examples/extend_dstest/extend_dstest.vcproj | 42 - .../extend_dstestdll/extend_dstestdll.vcproj | 42 - .../c++/examples/h5grouptest/h5grouptest.vcproj | 42 - .../examples/h5grouptestdll/h5grouptestdll.vcproj | 42 - .../c++/examples/readdatatest/readdatatest.vcproj | 42 - .../readdatatestdll/readdatatestdll.vcproj | 42 - .../examples/writedatatest/writedatatest.vcproj | 42 - .../writedatatestdll/writedatatestdll.vcproj | 42 - windows/c++/test/dsets_cpp/dsets_cpp.vcproj | 126 - windows/c++/test/dsets_cppdll/dsets_cppdll.vcproj | 126 - windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj | 462 -- .../test/testhdf5_cppdll/testhdf5_cppdll.vcproj | 462 -- .../examples/attributetest/attributetest.vcproj | 40 - .../attributetestdll/attributetestdll.vcproj | 42 - windows/examples/chunkread/chunkread.vcproj | 40 - windows/examples/chunkreaddll/chunkreaddll.vcproj | 42 - windows/examples/compoundtest/compoundtest.vcproj | 40 - .../compoundtestdll/compoundtestdll.vcproj | 42 - .../extendwritetest/extendwritetest.vcproj | 40 - .../extendwritetestdll/extendwritetestdll.vcproj | 42 - windows/examples/grouptest/grouptest.vcproj | 40 - windows/examples/grouptestdll/grouptestdll.vcproj | 42 - .../intermgrouptest/intermgrouptest.vcproj | 42 - .../intermgrouptestdll/intermgrouptestdll.vcproj | 42 - windows/examples/readtest/readtest.vcproj | 40 - windows/examples/readtestdll/readtestdll.vcproj | 42 - windows/examples/selectest/selectest.vcproj | 40 - windows/examples/selectestdll/selectestdll.vcproj | 42 - windows/examples/writetest/writetest.vcproj | 40 - windows/examples/writetestdll/writetestdll.vcproj | 42 - .../test/libtest_cstubdll/libtest_cstubdll.vcproj | 84 - .../test/libtest_fortran/libtest_cstub.vcproj | 42 - .../hl_test_table_cpp/hl_test_table_cpp.vcproj | 52 - .../hl_test_table_cppdll.vcproj | 52 - windows/hl/examples/ex_ds1/ex_ds1.vcproj | 52 - windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj | 52 - windows/hl/examples/ex_image1/ex_image1.vcproj | 52 - .../hl/examples/ex_image1dll/ex_image1dll.vcproj | 52 - windows/hl/examples/ex_lite1/ex_lite1.vcproj | 52 - windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj | 52 - windows/hl/examples/ex_table01/ex_table01.vcproj | 52 - .../hl/examples/ex_table01dll/ex_table01dll.vcproj | 52 - windows/hl/examples/ptExampleFL/ptExampleFL.vcproj | 52 - .../examples/ptExampleFLdll/ptExampleFLdll.vcproj | 52 - windows/hl/test/hl_test_ds/hl_test_ds.vcproj | 42 - windows/hl/test/hl_test_dsdll/hl_test_dsdll.vcproj | 42 - windows/hl/test/hl_test_image/hl_test_image.vcproj | 42 - .../test/hl_test_imagedll/hl_test_imagedll.vcproj | 63 +- windows/hl/test/hl_test_lite/hl_test_lite.vcproj | 42 - .../hl/test/hl_test_litedll/hl_test_litedll.vcproj | 52 - .../hl/test/hl_test_packet/hl_test_packet.vcproj | 52 - .../hl_test_packetdll/hl_test_packetdll.vcproj | 52 - windows/hl/test/hl_test_table/hl_test_table.vcproj | 42 - .../test/hl_test_tabledll/hl_test_tabledll.vcproj | 52 - windows/hl/tools/gifconv/gif2h5.vcproj | 220 - windows/hl/tools/gifconv/h52gif.vcproj | 94 - windows/hl/tools/gifconvdll/gif2h5dll.vcproj | 220 - windows/hl/tools/gifconvdll/h52gifdll.vcproj | 94 - .../typegen/h5match_types/h5match_types.vcproj | 50 - windows/misc/typegen/h5tinit/h5tinit.vcproj | 48 - windows/perform/perf_serial/perf_serial.vcproj | 120 - .../perform/perf_serialdll/perf_serialdll.vcproj | 120 - windows/proj/hdf5/hdf5.vcproj | 7983 +------------------- windows/proj/hdf5_cpp/hdf5_cpp.vcproj | 1092 --- windows/proj/hdf5_cppdll/hdf5_cppdll.vcproj | 1092 --- windows/proj/hdf5_f90cstub/hdf5_f90cstub.vcproj | 546 -- .../proj/hdf5_f90cstubdll/hdf5_f90cstubdll.vcproj | 546 -- windows/proj/hdf5_hl/hdf5_hl.vcproj | 296 +- windows/proj/hdf5_hl_cpp/hdf5_hl_cpp.vcproj | 42 - windows/proj/hdf5_hl_cppdll/hdf5_hl_cppdll.vcproj | 42 - .../hdf5_hl_f90cstubdll/hdf5_hl_f90cstubdll.vcproj | 168 - windows/proj/hdf5_hldll/hdf5_hldll.vcproj | 294 - windows/proj/hdf5dll/hdf5dll.vcproj | 7980 +------------------ windows/test/app_ref/app_ref.vcproj | 24 +- windows/test/app_refdll/app_refdll.vcproj | 24 +- windows/test/big/big.vcproj | 46 - windows/test/bigdll/bigdll.vcproj | 40 - windows/test/bittests/bittests.vcproj | 40 - windows/test/bittestsdll/bittestsdll.vcproj | 40 - windows/test/btree2/btree2.vcproj | 52 - windows/test/btree2dll/btree2dll.vcproj | 52 - windows/test/cache/cache.vcproj | 84 - windows/test/cache_api/cache_api.vcproj | 94 - windows/test/cache_apidll/cache_apidll.vcproj | 94 - windows/test/cachedll/cachedll.vcproj | 84 - windows/test/chunk/chunk.vcproj | 42 - windows/test/chunk_info/chunk_info.vcproj | 24 +- windows/test/chunk_infodll/chunk_infodll.vcproj | 24 +- windows/test/chunkdll/chunkdll.vcproj | 40 - windows/test/cmpd_dset/cmpd_dset.vcproj | 40 - windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj | 40 - windows/test/cross_read/cross_read.vcproj | 52 - windows/test/cross_readdll/cross_readdll.vcproj | 52 - windows/test/dangle/dangle.vcproj | 42 - windows/test/dangledll/dangledll.vcproj | 42 - windows/test/dsets/dsets.vcproj | 40 - windows/test/dsetsdll/dsetsdll.vcproj | 40 - windows/test/dt_arith/dt_arith.vcproj | 52 - windows/test/dt_arithdll/dt_arithdll.vcproj | 52 - windows/test/dtransform/dtransform.vcproj | 42 - windows/test/dtransformdll/dtransformdll.vcproj | 42 - windows/test/dtypes/dtypes.vcproj | 40 - windows/test/dtypesdll/dtypesdll.vcproj | 40 - windows/test/earray/earray.vcproj | 24 +- windows/test/earraydll/earraydll.vcproj | 24 +- windows/test/enum/enum.vcproj | 40 - windows/test/enumdll/enumdll.vcproj | 40 - windows/test/err_compat/err_compat.vcproj | 52 - windows/test/err_compatdll/err_compatdll.vcproj | 52 - windows/test/error_test/error_test.vcproj | 52 - windows/test/error_testdll/error_testdll.vcproj | 52 - windows/test/extend/extend.vcproj | 40 - windows/test/extenddll/extenddll.vcproj | 40 - windows/test/external/external.vcproj | 40 - windows/test/externaldll/externaldll.vcproj | 40 - windows/test/fheap/fheap.vcproj | 52 - windows/test/fheapdll/fheapdll.vcproj | 52 - windows/test/fillval/fillval.vcproj | 40 - windows/test/fillvaldll/fillvaldll.vcproj | 40 - windows/test/flush1/flush1.vcproj | 40 - windows/test/flush1dll/flush1dll.vcproj | 40 - windows/test/flush2/flush2.vcproj | 40 - windows/test/flush2dll/flush2dll.vcproj | 40 - windows/test/freespace/freespace.vcproj | 24 +- windows/test/freespacedll/freespacedll.vcproj | 24 +- windows/test/getname/getname.vcproj | 42 - windows/test/getnamedll/getnamedll.vcproj | 42 - windows/test/getub/getub.vcproj | 42 - windows/test/gheap/gheap.vcproj | 40 - windows/test/gheapdll/gheapdll.vcproj | 40 - windows/test/hyperslab/hyperslab.vcproj | 44 - windows/test/hyperslabdll/hyperslabdll.vcproj | 40 - windows/test/iopipe/iopipe.vcproj | 40 - windows/test/iopipedll/iopipedll.vcproj | 40 - windows/test/istore/istore.vcproj | 40 - windows/test/istoredll/istoredll.vcproj | 40 - windows/test/lheap/lheap.vcproj | 40 - windows/test/lheapdll/lheapdll.vcproj | 40 - windows/test/libtest/libtest.vcproj | 105 - windows/test/libtestdll/libtestdll.vcproj | 94 - windows/test/links/links.vcproj | 40 - windows/test/linksdll/linksdll.vcproj | 40 - windows/test/mf/mf.vcproj | 24 +- windows/test/mfdll/mfdll.vcproj | 24 +- windows/test/mount/mount.vcproj | 40 - windows/test/mountdll/mountdll.vcproj | 40 - windows/test/mtime/mtime.vcproj | 40 - windows/test/mtimedll/mtimedll.vcproj | 40 - windows/test/ntypes/ntypes.vcproj | 42 - windows/test/ntypesdll/ntypesdll.vcproj | 42 - windows/test/objcopy/objcopy.vcproj | 52 - windows/test/objcopydll/objcopydll.vcproj | 52 - windows/test/ohdr/ohdr.vcproj | 40 - windows/test/ohdrdll/ohdrdll.vcproj | 40 - windows/test/overhead/overhead.vcproj | 40 - windows/test/overheaddll/overheaddll.vcproj | 40 - windows/test/pool/pool.vcproj | 52 - windows/test/pooldll/pooldll.vcproj | 52 - windows/test/reserved/reserved.vcproj | 42 - windows/test/reserveddll/reserveddll.vcproj | 42 - windows/test/set_extent/set_extent.vcproj | 42 - windows/test/set_extentdll/set_extentdll.vcproj | 42 - windows/test/stab/stab.vcproj | 40 - windows/test/stabdll/stabdll.vcproj | 40 - windows/test/tellub/tellub.vcproj | 42 - windows/test/testhdf5/testhdf5.vcproj | 1004 --- windows/test/testhdf5dll/testhdf5dll.vcproj | 960 --- windows/test/ttsafedll/ttsafedll.vcproj | 220 - windows/test/unlink/unlink.vcproj | 40 - windows/test/unlinkdll/unlinkdll.vcproj | 40 - windows/test/vfd/vfd.vcproj | 52 - windows/test/vfddll/vfddll.vcproj | 52 - windows/tools/h5copy/h5copy.vcproj | 63 +- windows/tools/h5debug/h5debug.vcproj | 40 - windows/tools/h5debugdll/h5debugdll.vcproj | 40 - windows/tools/h5diff/h5diff.vcproj | 88 - windows/tools/h5diffdll/h5diffdll.vcproj | 84 - windows/tools/h5dump/h5dump.vcproj | 40 - windows/tools/h5dumpdll/h5dumpdll.vcproj | 40 - windows/tools/h5import/h5import.vcproj | 40 - windows/tools/h5importdll/h5importdll.vcproj | 40 - windows/tools/h5jam/h5jam.vcproj | 42 - windows/tools/h5ls/h5ls.vcproj | 40 - windows/tools/h5lsdll/h5lsdll.vcproj | 40 - windows/tools/h5mkgrp/h5mkgrp.vcproj | 63 +- windows/tools/h5repack/h5repack.vcproj | 357 - windows/tools/h5repackdll/h5repackdll.vcproj | 341 - windows/tools/h5repart/h5repart.vcproj | 40 - windows/tools/h5repartdll/h5repartdll.vcproj | 40 - windows/tools/h5stat/h5stat.vcproj | 63 +- windows/tools/h5statdll/h5statdll.vcproj | 63 +- windows/tools/h5unjam/h5unjam.vcproj | 42 - windows/tools/talign/talign.vcproj | 42 - windows/tools/taligndll/taligndll.vcproj | 42 - windows/tools/testfiles/binread/binread.vcproj | 59 +- windows/tools/testfiles/h5difftst/h5difftst.vcproj | 47 - windows/tools/testfiles/h5dumptst/h5dumptst.vcproj | 40 - .../tools/testfiles/h5importtst/h5importtst.vcproj | 42 - windows/tools/testfiles/h5jamtst/h5jamtst.vcproj | 42 - .../tools/testfiles/h5repacktst/h5repacktst.vcproj | 357 - .../h5repart_gentest/h5repart_gentest.vcproj | 63 +- .../tools/testfiles/h5reparttst/h5reparttst.vcproj | 63 +- .../testh5repack_detect_szip.vcproj | 42 - .../testh5repack_detect_szipdll.vcproj | 42 - windows/tools/toolslib/toolslib.vcproj | 480 -- windows/tools/toolslibdll/toolslibdll.vcproj | 480 -- 261 files changed, 1139 insertions(+), 35316 deletions(-) diff --git a/configure b/configure index e16efba..6ba4da7 100755 --- a/configure +++ b/configure @@ -27058,6 +27058,74 @@ else $as_echo "no" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long to float values" >&5 +$as_echo_n "checking if accurately converting unsigned long to float values... " >&6; } + +if test "${hdf5_ulong_to_float_accurate+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run test program while cross compiling +See \`config.log' for more details." "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main(void) + { + int ret = 0; + unsigned long l1; + unsigned long l2; + unsigned long l3; + float f1; + float f2; + float f3; + + + if(sizeof(unsigned long)==8) { + l1 = 0xffffffffffffffffUL; + l2 = 0xffffffffffff0000UL; + l3 = 0xf000000000000000UL; + + f1 = (float)l1; + f2 = (float)l2; + f3 = (float)l3; + + if((f1 < 0) || (f2 < 0) || (f3 < 0)) + ret = 1; + } + +done: + exit(ret); + } + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + hdf5_ulong_to_float_accurate=yes +else + hdf5_ulong_to_float_accurate=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi + + +if test ${hdf5_ulong_to_float_accurate} = "yes"; then + +$as_echo "#define ULONG_TO_FLOAT_ACCURATE 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long long to floating-point values" >&5 $as_echo_n "checking if accurately converting unsigned long long to floating-point values... " >&6; } diff --git a/configure.in b/configure.in index 7cc5e6d..533ffb3 100644 --- a/configure.in +++ b/configure.in @@ -3053,6 +3053,56 @@ fi dnl ---------------------------------------------------------------------- dnl Set the flag to indicate that the machine can accurately convert +dnl 'unsigned long' to 'float' values. +dnl (This flag should be set for all machines, except for Pathscale compiler +dnl on Sandia's Linux machine where the compiler interprets 'unsigned long' +dnl values as negative when the first bit of 'unsigned long' is on during +dnl the conversion to float.) +dnl +AC_MSG_CHECKING([if accurately converting unsigned long to float values]) + +AC_CACHE_VAL([hdf5_ulong_to_float_accurate], + [AC_TRY_RUN([ + int main(void) + { + int ret = 0; + unsigned long l1; + unsigned long l2; + unsigned long l3; + float f1; + float f2; + float f3; + + + if(sizeof(unsigned long)==8) { + l1 = 0xffffffffffffffffUL; + l2 = 0xffffffffffff0000UL; + l3 = 0xf000000000000000UL; + + f1 = (float)l1; + f2 = (float)l2; + f3 = (float)l3; + + if((f1 < 0) || (f2 < 0) || (f3 < 0)) + ret = 1; + } + +done: + exit(ret); + } + ], [hdf5_ulong_to_float_accurate=yes], [hdf5_ulong_to_float_accurate=no],)]) + +if test ${hdf5_ulong_to_float_accurate} = "yes"; then + AC_DEFINE([ULONG_TO_FLOAT_ACCURATE], [1], + [Define if your system accurately converting unsigned long to float values.]) + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + + +dnl ---------------------------------------------------------------------- +dnl Set the flag to indicate that the machine can accurately convert dnl 'unsigned (long) long' values to 'float' and 'double' values. dnl (This flag should be set for all machines, except for the SGIs, where dnl the cache value is set in the config/irix6.x config file) and Solaris diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index ebc43aa..19f1606 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -60,6 +60,9 @@ New Features Library: -------- + - Corrected problem where library would re-write the superblock in a file + opened for R/W access, even when no changes were made to the file. + (QAK - 2009/08/20, Bz#1473) - Separated "factory" free list class from block free lists. These free lists are dynamically created and manage blocks of a fixed size. H5set_free_list_limits() will use the same settings specified for block @@ -123,9 +126,10 @@ New Features Tools: ------ + - h5dump/h5ls display buffer resize fixed in tools library. (ADB - 2009/7/21 - 1520) - h5diff new flag, -c, --compare, list objects that are not comparable. - PVN - 2009/4/10 - 1368 - - h5diff new flag, -N, --nan, avoids NaNs detection. PVN - 2009/4/10 + (PVN - 2009/4/10 - 1368) + - h5diff new flag, -N, --nan, avoids NaNs detection. (PVN - 2009/4/10) - h5dump correctly specifies XML dtd / schema urls (ADB - 2009/4/3 - 1519) - h5repack now handles group creation order. (PVN - 2009/4/2 - 1402) - h5dump: added a printing of the compression ratio of uncompressed and compressed diff --git a/src/H5AC.c b/src/H5AC.c index da37285..2084bfe 100644 --- a/src/H5AC.c +++ b/src/H5AC.c @@ -193,6 +193,8 @@ static herr_t H5AC_receive_and_apply_clean_list(H5F_t * f, static herr_t H5AC_log_renamed_entry(H5AC_t * cache_ptr, haddr_t old_addr, haddr_t new_addr); + +static herr_t H5AC_flush_entries(H5F_t *f); #endif /* H5_HAVE_PARALLEL */ @@ -766,64 +768,52 @@ done: herr_t H5AC_dest(H5F_t *f, hid_t dxpl_id) { - H5AC_t *cache = NULL; - herr_t ret_value=SUCCEED; /* Return value */ #ifdef H5_HAVE_PARALLEL H5AC_aux_t * aux_ptr = NULL; #endif /* H5_HAVE_PARALLEL */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5AC_dest, FAIL) - assert(f); - assert(f->shared->cache); - cache = f->shared->cache; -#ifdef H5_HAVE_PARALLEL - aux_ptr = cache->aux_ptr; - - if ( aux_ptr != NULL ) { - - HDassert ( aux_ptr->magic == H5AC__H5AC_AUX_T_MAGIC ); - } -#endif /* H5_HAVE_PARALLEL */ + /* Sanity check */ + HDassert(f); + HDassert(f->shared->cache); #if H5AC__TRACE_FILE_ENABLED - if ( H5AC_close_trace_file(cache) < 0 ) { - - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "H5AC_close_trace_file() failed.") - } + if(H5AC_close_trace_file(f->shared->cache) < 0) + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "H5AC_close_trace_file() failed.") #endif /* H5AC__TRACE_FILE_ENABLED */ - if ( H5C_dest(f, dxpl_id, H5AC_noblock_dxpl_id, cache) < 0 ) { +#ifdef H5_HAVE_PARALLEL + aux_ptr = f->shared->cache->aux_ptr; + if(aux_ptr) + /* Sanity check */ + HDassert(aux_ptr->magic == H5AC__H5AC_AUX_T_MAGIC); - HGOTO_ERROR(H5E_CACHE, H5E_CANTFREE, FAIL, "can't destroy cache") - } + /* Attempt to flush all entries from rank 0 & Bcast clean list to other ranks */ + if(H5AC_flush_entries(f) < 0) + HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush.") +#endif /* H5_HAVE_PARALLEL */ + /* Destroy the cache */ + if(H5C_dest(f, dxpl_id, H5AC_noblock_dxpl_id, f->shared->cache) < 0) + HGOTO_ERROR(H5E_CACHE, H5E_CANTFREE, FAIL, "can't destroy cache") f->shared->cache = NULL; #ifdef H5_HAVE_PARALLEL - if ( aux_ptr != NULL ) { - - if ( aux_ptr->d_slist_ptr != NULL ) { - + if(aux_ptr != NULL) { + if(aux_ptr->d_slist_ptr != NULL) H5SL_close(aux_ptr->d_slist_ptr); - } - - if ( aux_ptr->c_slist_ptr != NULL ) { - + if(aux_ptr->c_slist_ptr != NULL) H5SL_close(aux_ptr->c_slist_ptr); - } - aux_ptr->magic = 0; H5FL_FREE(H5AC_aux_t, aux_ptr); aux_ptr = NULL; - } + } /* end if */ #endif /* H5_HAVE_PARALLEL */ done: - FUNC_LEAVE_NOAPI(ret_value) - } /* H5AC_dest() */ @@ -923,43 +913,11 @@ done: * Purpose: Flush (and possibly destroy) the metadata cache associated * with the specified file. * - * This is a re-write of an earlier version of the function - * which was reputedly capable of flushing (and destroying - * if requested) individual entries, individual entries if - * they match the supplied type, all entries of a given type, - * as well as all entries in the cache. - * - * As only this last capability is actually used at present, - * I have not implemented the other capabilities in this - * version of the function. - * - * The type and addr parameters are retained to avoid source - * code changed, but values other than NULL and HADDR_UNDEF - * respectively are errors. If all goes well, they should - * be removed, and the function renamed to something more - * descriptive -- perhaps H5AC_flush_cache. - * * If the cache contains protected entries, the function will * fail, as protected entries cannot be flushed. However * all unprotected entries should be flushed before the * function returns failure. * - * For historical purposes, the original version of the - * purpose section is reproduced below: - * - * ============ Original Version of "Purpose:" ============ - * - * Flushes (and destroys if DESTROY is non-zero) the specified - * entry from the cache. If the entry TYPE is CACHE_FREE and - * ADDR is HADDR_UNDEF then all types of entries are - * flushed. If TYPE is CACHE_FREE and ADDR is defined then - * whatever is cached at ADDR is flushed. Otherwise the thing - * at ADDR is flushed if it is the correct type. - * - * If there are protected objects they will not be flushed. - * However, an attempt will be made to flush all non-protected - * items before this function returns failure. - * * Return: Non-negative on success/Negative on failure if there was a * request to flush all items and something was protected. * @@ -967,45 +925,16 @@ done: * matzke@llnl.gov * Jul 9 1997 * - * Modifications: - * Robb Matzke, 1999-07-27 - * The ADDR argument is passed by value. - * - * Complete re-write. See above for details. -- JRM 5/11/04 - * - * Abstracted the guts of the function to H5C_flush_cache() - * in H5C.c, and then re-wrote the function as a wrapper for - * H5C_flush_cache(). - * - * JRM - 6/7/04 - * - * JRM - 7/5/05 - * Modified function as part of a fix for a cache coherency - * bug in PHDF5. See the header comments on the H5AC_aux_t - * structure for details. - * - * JRM -- 5/11/06 - * Added call to the write_done callback. - * - * JRM -- 6/6/06 - * Added trace file support. - * *------------------------------------------------------------------------- */ herr_t -H5AC_flush(H5F_t *f, hid_t dxpl_id, unsigned flags) +H5AC_flush(H5F_t *f, hid_t dxpl_id) { - herr_t status; - herr_t ret_value = SUCCEED; /* Return value */ -#ifdef H5_HAVE_PARALLEL - H5AC_aux_t * aux_ptr = NULL; - int mpi_code; -#endif /* H5_HAVE_PARALLEL */ #if H5AC__TRACE_FILE_ENABLED char trace[128] = ""; FILE * trace_file_ptr = NULL; #endif /* H5AC__TRACE_FILE_ENABLED */ - + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5AC_flush, FAIL) @@ -1016,108 +945,31 @@ H5AC_flush(H5F_t *f, hid_t dxpl_id, unsigned flags) /* For the flush, only the flags are really necessary in the trace file. * Write the result to catch occult errors. */ - if ( ( f != NULL ) && - ( f->shared != NULL ) && - ( f->shared->cache != NULL ) && - ( H5C_get_trace_file_ptr(f->shared->cache, &trace_file_ptr) >= 0 ) && - ( trace_file_ptr != NULL ) ) { - - sprintf(trace, "H5AC_flush 0x%x", flags); - } + if((f != NULL) && + (f->shared != NULL) && + (f->shared->cache != NULL) && + (H5C_get_trace_file_ptr(f->shared->cache, &trace_file_ptr) >= 0) && + (trace_file_ptr != NULL)) + sprintf(trace, "H5AC_flush"); #endif /* H5AC__TRACE_FILE_ENABLED */ #ifdef H5_HAVE_PARALLEL - aux_ptr = f->shared->cache->aux_ptr; - - if ( aux_ptr != NULL ) { - -#if H5AC_DEBUG_DIRTY_BYTES_CREATION - HDfprintf(stdout, - "%d::H5AC_flush: (u/uu/i/iu/r/ru) = %d/%d/%d/%d/%d/%d\n", - (int)(aux_ptr->mpi_rank), - (int)(aux_ptr->unprotect_dirty_bytes), - (int)(aux_ptr->unprotect_dirty_bytes_updates), - (int)(aux_ptr->insert_dirty_bytes), - (int)(aux_ptr->insert_dirty_bytes_updates), - (int)(aux_ptr->rename_dirty_bytes), - (int)(aux_ptr->rename_dirty_bytes_updates)); -#endif /* H5AC_DEBUG_DIRTY_BYTES_CREATION */ - - /* to prevent "messages from the future" we must synchronize all - * processes before we start the flush. Hence the following - * barrier. - */ - if ( MPI_SUCCESS != (mpi_code = MPI_Barrier(aux_ptr->mpi_comm)) ) { - - HMPI_GOTO_ERROR(FAIL, "MPI_Barrier failed", mpi_code) - } - - /* if the clear only flag is set, this flush will not involve any - * disk I/O. In such cases, it is not necessary to let process 0 - * flush first. - */ - if ( ( aux_ptr->mpi_rank == 0 ) && - ( (flags & H5AC__FLUSH_CLEAR_ONLY_FLAG) == 0 ) ) { - - unsigned init_flush_flags = H5AC__NO_FLAGS_SET; - - if ( ( (flags & H5AC__FLUSH_MARKED_ENTRIES_FLAG) != 0 ) && - ( (flags & H5AC__FLUSH_INVALIDATE_FLAG) == 0 ) ) { - - init_flush_flags |= H5AC__FLUSH_MARKED_ENTRIES_FLAG; - } - - aux_ptr->write_permitted = TRUE; - - status = H5C_flush_cache(f, - H5AC_noblock_dxpl_id, - H5AC_noblock_dxpl_id, - f->shared->cache, - init_flush_flags); - - aux_ptr->write_permitted = FALSE; - - if ( status < 0 ) { - - HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush.") - } - - if ( aux_ptr->write_done != NULL ) { - - (aux_ptr->write_done)(); - } - - } /* end if ( aux_ptr->mpi_rank == 0 ) */ - - status = H5AC_propagate_flushed_and_still_clean_entries_list(f, - H5AC_noblock_dxpl_id, - f->shared->cache, - FALSE); - } /* end if ( aux_ptr != NULL ) */ + /* Attempt to flush all entries from rank 0 & Bcast clean list to other ranks */ + if(H5AC_flush_entries(f) < 0) + HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush.") #endif /* H5_HAVE_PARALLEL */ - status = H5C_flush_cache(f, - dxpl_id, - H5AC_noblock_dxpl_id, - f->shared->cache, - flags); - - if ( status < 0 ) { - - HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush entry.") - } + /* Flush the cache */ + if(H5C_flush_cache(f, dxpl_id, H5AC_noblock_dxpl_id, f->shared->cache, H5AC__NO_FLAGS_SET) < 0) + HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush cache.") done: - #if H5AC__TRACE_FILE_ENABLED - if ( trace_file_ptr != NULL ) { - + if(trace_file_ptr != NULL) HDfprintf(trace_file_ptr, "%s %d\n", trace, (int)ret_value); - } #endif /* H5AC__TRACE_FILE_ENABLED */ FUNC_LEAVE_NOAPI(ret_value) - } /* H5AC_flush() */ @@ -4886,5 +4738,89 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* H5AC_receive_and_apply_clean_list() */ + + +/*------------------------------------------------------------------------- + * Function: H5AC_flush_entries + * + * Purpose: Flush the metadata cache associated with the specified file, + * only writing from rank 0, but propagating the cleaned entries + * to all ranks. + * + * Return: Non-negative on success/Negative on failure if there was a + * request to flush all items and something was protected. + * + * Programmer: Quincey Koziol + * koziol@hdfgroup.org + * Aug 22 2009 + * + *------------------------------------------------------------------------- + */ +herr_t +H5AC_flush_entries(H5F_t *f) +{ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI_NOINIT(H5AC_flush_entries) + + HDassert(f); + HDassert(f->shared->cache); + + /* Check if we have >1 ranks */ + if(f->shared->cache->aux_ptr) { + H5AC_aux_t * aux_ptr = f->shared->cache->aux_ptr; + int mpi_code; + +#if H5AC_DEBUG_DIRTY_BYTES_CREATION + HDfprintf(stdout, + "%d::H5AC_flush: (u/uu/i/iu/r/ru) = %d/%d/%d/%d/%d/%d\n", + (int)(aux_ptr->mpi_rank), + (int)(aux_ptr->unprotect_dirty_bytes), + (int)(aux_ptr->unprotect_dirty_bytes_updates), + (int)(aux_ptr->insert_dirty_bytes), + (int)(aux_ptr->insert_dirty_bytes_updates), + (int)(aux_ptr->rename_dirty_bytes), + (int)(aux_ptr->rename_dirty_bytes_updates)); +#endif /* H5AC_DEBUG_DIRTY_BYTES_CREATION */ + + /* to prevent "messages from the future" we must synchronize all + * processes before we start the flush. Hence the following + * barrier. + */ + if(MPI_SUCCESS != (mpi_code = MPI_Barrier(aux_ptr->mpi_comm))) + HMPI_GOTO_ERROR(FAIL, "MPI_Barrier failed", mpi_code) + + /* Flush data to disk, from rank 0 process */ + if(aux_ptr->mpi_rank == 0 ) { + herr_t status; + + aux_ptr->write_permitted = TRUE; + + status = H5C_flush_cache(f, + H5AC_noblock_dxpl_id, + H5AC_noblock_dxpl_id, + f->shared->cache, + H5AC__NO_FLAGS_SET); + + aux_ptr->write_permitted = FALSE; + + if(status < 0) + HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't flush.") + + if(aux_ptr->write_done != NULL) + (aux_ptr->write_done)(); + } /* end if ( aux_ptr->mpi_rank == 0 ) */ + + /* Propagate cleaned entries to other ranks */ + if(H5AC_propagate_flushed_and_still_clean_entries_list(f, + H5AC_noblock_dxpl_id, + f->shared->cache, + FALSE) < 0 ) + HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't propagate clean entries list.") + } /* end if ( aux_ptr != NULL ) */ + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* H5AC_flush_entries() */ #endif /* H5_HAVE_PARALLEL */ diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h index f264401..208dde1 100644 --- a/src/H5ACprivate.h +++ b/src/H5ACprivate.h @@ -344,7 +344,7 @@ H5_DLL herr_t H5AC_destroy_flush_dependency(H5F_t *f, void *parent_thing, H5_DLL herr_t H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr, void *thing, unsigned flags); -H5_DLL herr_t H5AC_flush(H5F_t *f, hid_t dxpl_id, unsigned flags); +H5_DLL herr_t H5AC_flush(H5F_t *f, hid_t dxpl_id); H5_DLL herr_t H5AC_mark_pinned_entry_dirty(H5F_t * f, void * thing, hbool_t size_changed, diff --git a/src/H5C.c b/src/H5C.c index c8e4d05..b90f963 100644 --- a/src/H5C.c +++ b/src/H5C.c @@ -3434,10 +3434,6 @@ H5C_def_auto_resize_rpt_fcn(H5C_t * cache_ptr, * Programmer: John Mainzer * 6/2/04 * - * Modifications: - * - * None. - * *------------------------------------------------------------------------- */ herr_t @@ -3450,21 +3446,20 @@ H5C_dest(H5F_t * f, FUNC_ENTER_NOAPI(H5C_dest, FAIL) - HDassert( cache_ptr ); - HDassert( cache_ptr->magic == H5C__H5C_T_MAGIC ); - HDassert( cache_ptr->skip_file_checks || f ); - - if ( H5C_flush_cache(f, primary_dxpl_id, secondary_dxpl_id, - cache_ptr, H5C__FLUSH_INVALIDATE_FLAG) < 0 ) { + /* Sanity check */ + HDassert(cache_ptr); + HDassert(cache_ptr->magic == H5C__H5C_T_MAGIC); + HDassert(cache_ptr->skip_file_checks || f); + /* Flush and invalidate all cache entries */ + if(H5C_flush_invalidate_cache(f, primary_dxpl_id, secondary_dxpl_id, + cache_ptr, H5C__NO_FLAGS_SET) < 0 ) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache") - } - - if ( cache_ptr->slist_ptr != NULL ) { + if(cache_ptr->slist_ptr != NULL) { H5SL_close(cache_ptr->slist_ptr); cache_ptr->slist_ptr = NULL; - } + } /* end if */ cache_ptr->magic = 0; @@ -3472,66 +3467,10 @@ H5C_dest(H5F_t * f, done: FUNC_LEAVE_NOAPI(ret_value) - } /* H5C_dest() */ /*------------------------------------------------------------------------- - * Function: H5C_dest_empty - * - * Purpose: Destroy an empty cache. - * - * This function fails if the cache is not empty on entry. - * - * Note that *cache_ptr has been freed upon successful return. - * - * Return: Non-negative on success/Negative on failure - * - * Programmer: John Mainzer - * 6/2/04 - * - * Modifications: - * - * None. - * - *------------------------------------------------------------------------- - */ -herr_t -H5C_dest_empty(H5C_t * cache_ptr) -{ - herr_t ret_value=SUCCEED; /* Return value */ - - FUNC_ENTER_NOAPI(H5C_dest_empty, FAIL) - - /* This would normally be an assert, but we need to use an HGOTO_ERROR - * call to shut up the compiler. - */ - if ( ( ! cache_ptr ) || - ( cache_ptr->magic != H5C__H5C_T_MAGIC ) || - ( cache_ptr->index_len != 0 ) ) { - - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "Bad cache_ptr or non-empty cache on entry.") - } - - - if ( cache_ptr->slist_ptr != NULL ) { - - H5SL_close(cache_ptr->slist_ptr); - cache_ptr->slist_ptr = NULL; - } - - cache_ptr->magic = 0; - - (void)H5FL_FREE(H5C_t, cache_ptr); - -done: - FUNC_LEAVE_NOAPI(ret_value) - -} /* H5C_dest_empty() */ - - -/*------------------------------------------------------------------------- * * Function: H5C_expunge_entry * @@ -3928,8 +3867,7 @@ H5C_flush_cache(H5F_t * f, #ifndef NDEBUG if ( entry_ptr->magic != H5C__H5C_CACHE_ENTRY_T_MAGIC ) { - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "entry_ptr->magic invalid ?!?!"); + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "entry_ptr->magic is invalid ?!?!") } else #endif /* NDEBUG */ @@ -3937,9 +3875,8 @@ H5C_flush_cache(H5F_t * f, ( ! entry_ptr->in_slist ) ) { /* the s-list has been modified out from under us. - * set node_ptr to NULL and break out of the inner loop. + * break out of the loop. */ - node_ptr = NULL; goto end_of_inner_loop;; } @@ -3950,11 +3887,8 @@ H5C_flush_cache(H5F_t * f, if ( node_ptr != NULL ) { next_entry_ptr = (H5C_cache_entry_t *)H5SL_item(node_ptr); - - if ( next_entry_ptr == NULL ) { - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "next_entry_ptr == NULL 2 ?!?!"); - } + if ( NULL == next_entry_ptr ) + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "next_entry_ptr == NULL ?!?!") HDassert( next_entry_ptr->magic == H5C__H5C_CACHE_ENTRY_T_MAGIC ); HDassert( next_entry_ptr->is_dirty ); HDassert( next_entry_ptr->in_slist ); @@ -3999,18 +3933,19 @@ H5C_flush_cache(H5F_t * f, FALSE); if ( status < 0 ) { - /* This shouldn't happen -- if it does, we are - * toast so just scream and die. + /* This shouldn't happen -- if it does, we are toast + * so just scream and die. */ HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, \ "dirty pinned entry flush failed.") - } + } /* end if */ flushed_during_dep_loop = TRUE; } /* end if */ else if(entry_ptr->flush_dep_height < curr_flush_dep_height) /* This shouldn't happen -- if it does, just scream and die. */ HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "dirty entry below current flush dep. height.") - } else { + } /* end if */ + else { /* Test to see if we are can flush the entry now. * If we can, go ahead and flush. Note that we * aren't trying to do a destroy here, so that @@ -10335,7 +10270,6 @@ H5C_flush_invalidate_cache(H5F_t * f, { herr_t status; herr_t ret_value = SUCCEED; - hbool_t done = FALSE; hbool_t first_flush = TRUE; int32_t protected_entries = 0; int32_t i; @@ -10411,7 +10345,7 @@ H5C_flush_invalidate_cache(H5F_t * f, cur_pel_len = cache_ptr->pel_len; old_pel_len = cache_ptr->pel_len; - while ( ! done ) + while ( cache_ptr->index_len > 0 ) { unsigned curr_flush_dep_height = 0; unsigned flush_dep_passes = 0; @@ -10436,24 +10370,19 @@ H5C_flush_invalidate_cache(H5F_t * f, } else { + /* Start at beginning of skip list each time */ node_ptr = H5SL_first(cache_ptr->slist_ptr); + HDassert( node_ptr != NULL ); - if ( node_ptr == NULL ) { - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "slist_len != 0 && node_ptr == NULL"); - } - + /* Get cache entry for this node */ next_entry_ptr = (H5C_cache_entry_t *)H5SL_item(node_ptr); - - if ( next_entry_ptr == NULL ) { - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "next_entry_ptr == NULL 1 ?!?!"); - } + if ( NULL == next_entry_ptr ) + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "next_entry_ptr == NULL ?!?!") HDassert( next_entry_ptr->magic == H5C__H5C_CACHE_ENTRY_T_MAGIC ); HDassert( next_entry_ptr->is_dirty ); HDassert( next_entry_ptr->in_slist ); - } + #if H5C_DO_SANITY_CHECKS /* Depending on circumstances, H5C_flush_single_entry() will * remove dirty entries from the slist as it flushes them. @@ -10518,8 +10447,7 @@ H5C_flush_invalidate_cache(H5F_t * f, #ifndef NDEBUG if ( entry_ptr->magic != H5C__H5C_CACHE_ENTRY_T_MAGIC ) { - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "entry_ptr->magic is invalid ?!?!"); + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "entry_ptr->magic is invalid ?!?!") } else #endif /* NDEBUG */ @@ -10538,19 +10466,13 @@ H5C_flush_invalidate_cache(H5F_t * f, node_ptr = H5SL_next(node_ptr); if ( node_ptr != NULL ) { - next_entry_ptr = (H5C_cache_entry_t *)H5SL_item(node_ptr); - - if ( next_entry_ptr == NULL ) { - HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, \ - "next_entry_ptr == NULL 2 ?!?!"); - } + if ( NULL == next_entry_ptr ) + HGOTO_ERROR(H5E_CACHE, H5E_SYSTEM, FAIL, "next_entry_ptr == NULL ?!?!") HDassert( next_entry_ptr->magic == H5C__H5C_CACHE_ENTRY_T_MAGIC ); HDassert( next_entry_ptr->is_dirty ); HDassert( next_entry_ptr->in_slist ); - } else { - next_entry_ptr = NULL; } @@ -10811,24 +10733,21 @@ end_of_inner_loop: HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, \ "Maximum passes on flush exceeded.") } - - if ( cache_ptr->index_len <= 0 ) { - - done = TRUE; - HDassert( cache_ptr->index_size == 0 ); - HDassert( cache_ptr->clean_index_size == 0 ); - HDassert( cache_ptr->dirty_index_size == 0 ); - HDassert( cache_ptr->slist_len == 0 ); - HDassert( cache_ptr->slist_size == 0 ); - HDassert( cache_ptr->pel_len == 0 ); - HDassert( cache_ptr->pel_size == 0 ); - HDassert( cache_ptr->pl_len == 0 ); - HDassert( cache_ptr->pl_size == 0 ); - HDassert( cache_ptr->LRU_list_len == 0 ); - HDassert( cache_ptr->LRU_list_size == 0 ); - } } /* main while loop */ + /* Invariants, after destroying all entries in the hash table */ + HDassert( cache_ptr->index_size == 0 ); + HDassert( cache_ptr->clean_index_size == 0 ); + HDassert( cache_ptr->dirty_index_size == 0 ); + HDassert( cache_ptr->slist_len == 0 ); + HDassert( cache_ptr->slist_size == 0 ); + HDassert( cache_ptr->pel_len == 0 ); + HDassert( cache_ptr->pel_size == 0 ); + HDassert( cache_ptr->pl_len == 0 ); + HDassert( cache_ptr->pl_size == 0 ); + HDassert( cache_ptr->LRU_list_len == 0 ); + HDassert( cache_ptr->LRU_list_size == 0 ); + HDassert( protected_entries <= cache_ptr->pl_len ); diff --git a/src/H5Cprivate.h b/src/H5Cprivate.h index 5524f2b..5c7fe9f 100644 --- a/src/H5Cprivate.h +++ b/src/H5Cprivate.h @@ -1026,8 +1026,6 @@ H5_DLL herr_t H5C_dest(H5F_t * f, hid_t secondary_dxpl_id, H5C_t * cache_ptr); -H5_DLL herr_t H5C_dest_empty(H5C_t * cache_ptr); - H5_DLL herr_t H5C_expunge_entry(H5F_t * f, hid_t primary_dxpl_id, hid_t secondary_dxpl_id, diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c index 2c8ef5d..f05b3ce 100644 --- a/src/H5Dchunk.c +++ b/src/H5Dchunk.c @@ -181,7 +181,7 @@ static herr_t H5D_chunk_read(H5D_io_info_t *io_info, const H5D_type_info_t *type static herr_t H5D_chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, H5D_chunk_map_t *fm); -static herr_t H5D_chunk_flush(H5D_t *dset, hid_t dxpl_id, unsigned flags); +static herr_t H5D_chunk_flush(H5D_t *dset, hid_t dxpl_id); static herr_t H5D_chunk_io_term(const H5D_chunk_map_t *fm); /* "Nonexistent" layout operation callback */ @@ -1958,14 +1958,14 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5D_chunk_flush(H5D_t *dset, hid_t dxpl_id, unsigned flags) +H5D_chunk_flush(H5D_t *dset, hid_t dxpl_id) { H5D_dxpl_cache_t _dxpl_cache; /* Data transfer property cache buffer */ H5D_dxpl_cache_t *dxpl_cache = &_dxpl_cache; /* Data transfer property cache */ H5D_rdcc_t *rdcc = &(dset->shared->cache.chunk); - unsigned nerrors = 0; H5D_rdcc_ent_t *ent, *next; - herr_t ret_value = SUCCEED; /* Return value */ + unsigned nerrors = 0; /* Count of any errors encountered when flushing chunks */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI_NOINIT(H5D_chunk_flush) @@ -1983,16 +1983,11 @@ H5D_chunk_flush(H5D_t *dset, hid_t dxpl_id, unsigned flags) /* Loop over all entries in the chunk cache */ for(ent = rdcc->head; ent; ent = next) { next = ent->next; - if((flags & H5F_FLUSH_INVALIDATE)) { - if(H5D_chunk_cache_evict(dset, dxpl_id, dxpl_cache, ent, TRUE) < 0) - nerrors++; - } else { - if(H5D_chunk_flush_entry(dset, dxpl_id, dxpl_cache, ent, FALSE) < 0) - nerrors++; - } + if(H5D_chunk_flush_entry(dset, dxpl_id, dxpl_cache, ent, FALSE) < 0) + nerrors++; } /* end for */ if(nerrors) - HGOTO_ERROR(H5E_IO, H5E_CANTFLUSH, FAIL, "unable to flush one or more raw data chunks") + HGOTO_ERROR(H5E_DATASET, H5E_CANTFLUSH, FAIL, "unable to flush one or more raw data chunks") done: FUNC_LEAVE_NOAPI(ret_value) diff --git a/src/H5Dcompact.c b/src/H5Dcompact.c index a33a62e..a3ce68a 100644 --- a/src/H5Dcompact.c +++ b/src/H5Dcompact.c @@ -69,7 +69,7 @@ static ssize_t H5D_compact_readvv(const H5D_io_info_t *io_info, static ssize_t H5D_compact_writevv(const H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq, size_t dset_size_arr[], hsize_t dset_offset_arr[], size_t mem_max_nseq, size_t *mem_curr_seq, size_t mem_size_arr[], hsize_t mem_offset_arr[]); -static herr_t H5D_compact_flush(H5D_t *dset, hid_t dxpl_id, unsigned flags); +static herr_t H5D_compact_flush(H5D_t *dset, hid_t dxpl_id); /*********************/ @@ -350,7 +350,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5D_compact_flush(H5D_t *dset, hid_t dxpl_id, unsigned UNUSED flags) +H5D_compact_flush(H5D_t *dset, hid_t dxpl_id) { herr_t ret_value = SUCCEED; /* Return value */ diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c index 712b17c..0ff3964 100644 --- a/src/H5Dcontig.c +++ b/src/H5Dcontig.c @@ -65,7 +65,7 @@ static herr_t H5D_contig_construct(H5F_t *f, H5D_t *dset); static herr_t H5D_contig_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, H5D_chunk_map_t *cm); -static herr_t H5D_contig_flush(H5D_t *dset, hid_t dxpl_id, unsigned flags); +static herr_t H5D_contig_flush(H5D_t *dset, hid_t dxpl_id); /* Helper routines */ static herr_t H5D_contig_write_one(H5D_io_info_t *io_info, hsize_t offset, @@ -1186,7 +1186,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5D_contig_flush(H5D_t *dset, hid_t dxpl_id, unsigned UNUSED flags) +H5D_contig_flush(H5D_t *dset, hid_t dxpl_id) { herr_t ret_value = SUCCEED; /* Return value */ diff --git a/src/H5Defl.c b/src/H5Defl.c index af57eff..7ce0c67 100644 --- a/src/H5Defl.c +++ b/src/H5Defl.c @@ -50,7 +50,7 @@ /* Layout operation callbacks */ static herr_t H5D_efl_construct(H5F_t *f, H5D_t *dset); -static hbool_t H5D_efl_is_space_alloc(const H5O_layout_t *layout); +static hbool_t H5D_efl_is_space_alloc(const H5O_storage_t *storage); static herr_t H5D_efl_io_init(const H5D_io_info_t *io_info, const H5D_type_info_t *type_info, hsize_t nelmts, const H5S_t *file_space, const H5S_t *mem_space, H5D_chunk_map_t *cm); @@ -182,14 +182,14 @@ done: *------------------------------------------------------------------------- */ static hbool_t -H5D_efl_is_space_alloc(const H5O_layout_t UNUSED *layout) +H5D_efl_is_space_alloc(const H5O_storage_t UNUSED *storage) { FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5D_efl_is_space_alloc) /* Sanity checks */ - HDassert(layout); + HDassert(storage); - /* EFL storage is currently treated as allocated */ + /* EFL storage is currently always treated as allocated */ FUNC_LEAVE_NOAPI(TRUE) } /* end H5D_efl_is_space_alloc() */ diff --git a/src/H5Dint.c b/src/H5Dint.c index 6709628..8ad3736 100644 --- a/src/H5Dint.c +++ b/src/H5Dint.c @@ -48,7 +48,6 @@ typedef struct { const H5F_t *f; /* Pointer to file being flushed */ hid_t dxpl_id; /* DXPL for I/O operations */ - unsigned flags; /* Flags for flush operation */ } H5D_flush_ud_t; @@ -66,7 +65,7 @@ static herr_t H5D_init_space(H5F_t *file, const H5D_t *dset, const H5S_t *space) static herr_t H5D_update_oh_info(H5F_t *file, hid_t dxpl_id, H5D_t *dset, hid_t dapl_id); static herr_t H5D_open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id); -static herr_t H5D_flush_real(H5D_t *dataset, hid_t dxpl_id, unsigned flags); +static herr_t H5D_flush_real(H5D_t *dataset, hid_t dxpl_id); /*********************/ @@ -1365,7 +1364,7 @@ H5D_close(H5D_t *dataset) dataset->shared->fo_count--; if(dataset->shared->fo_count == 0) { /* Flush the dataset's information */ - if(H5D_flush_real(dataset, H5AC_dxpl_id, H5F_FLUSH_NONE) < 0) + if(H5D_flush_real(dataset, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to flush cached dataset info") /* Free the data sieve buffer, if it's been allocated */ @@ -2238,7 +2237,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5D_flush_real(H5D_t *dataset, hid_t dxpl_id, unsigned flags) +H5D_flush_real(H5D_t *dataset, hid_t dxpl_id) { H5O_t *oh = NULL; /* Pointer to dataset's object header */ herr_t ret_value = SUCCEED; /* Return value */ @@ -2282,7 +2281,7 @@ H5D_flush_real(H5D_t *dataset, hid_t dxpl_id, unsigned flags) /* Flush cached raw data for each kind of dataset layout */ if(dataset->shared->layout.ops->flush && - (dataset->shared->layout.ops->flush)(dataset, dxpl_id, flags) < 0) + (dataset->shared->layout.ops->flush)(dataset, dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_CANTFLUSH, FAIL, "unable to flush raw data") done: @@ -2323,7 +2322,7 @@ H5D_flush_cb(void *_dataset, hid_t UNUSED id, void *_udata) /* Check for dataset in same file */ if(udata->f == dataset->oloc.file) { /* Flush the dataset's information */ - if(H5D_flush_real(dataset, udata->dxpl_id, udata->flags) < 0) + if(H5D_flush_real(dataset, udata->dxpl_id) < 0) HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, H5_ITER_ERROR, "unable to flush cached dataset info") } /* end if */ @@ -2346,7 +2345,7 @@ done: *------------------------------------------------------------------------- */ herr_t -H5D_flush(const H5F_t *f, hid_t dxpl_id, unsigned flags) +H5D_flush(const H5F_t *f, hid_t dxpl_id) { H5D_flush_ud_t udata; /* User data for callback */ herr_t ret_value = SUCCEED; /* Return value */ @@ -2359,7 +2358,6 @@ H5D_flush(const H5F_t *f, hid_t dxpl_id, unsigned flags) /* Set user data for callback */ udata.f = f; udata.dxpl_id = dxpl_id; - udata.flags = flags; /* Iterate over all the open datasets */ H5I_search(H5I_DATASET, H5D_flush_cb, &udata, FALSE); diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 6ccb9c5..6790212 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -130,8 +130,7 @@ typedef ssize_t (*H5D_layout_readvv_func_t)(const struct H5D_io_info_t *io_info, typedef ssize_t (*H5D_layout_writevv_func_t)(const struct H5D_io_info_t *io_info, size_t dset_max_nseq, size_t *dset_curr_seq, size_t dset_len_arr[], hsize_t dset_offset_arr[], size_t mem_max_nseq, size_t *mem_curr_seq, size_t mem_len_arr[], hsize_t mem_offset_arr[]); -typedef herr_t (*H5D_layout_flush_func_t)(H5D_t *dataset, hid_t dxpl_id, - unsigned flags); +typedef herr_t (*H5D_layout_flush_func_t)(H5D_t *dataset, hid_t dxpl_id); typedef herr_t (*H5D_layout_io_term_func_t)(const struct H5D_chunk_map_t *cm); /* Typedef for grouping layout I/O routines */ diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index d5a1d16..3f5e379 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -163,7 +163,7 @@ H5_DLL herr_t H5D_close(H5D_t *dataset); H5_DLL H5O_loc_t *H5D_oloc(H5D_t *dataset); H5_DLL H5G_name_t *H5D_nameof(H5D_t *dataset); H5_DLL H5T_t *H5D_typeof(const H5D_t *dset); -H5_DLL herr_t H5D_flush(const H5F_t *f, hid_t dxpl_id, unsigned flags); +H5_DLL herr_t H5D_flush(const H5F_t *f, hid_t dxpl_id); /* Functions that operate on vlen data */ H5_DLL herr_t H5D_vlen_reclaim(hid_t type_id, H5S_t *space, hid_t plist_id, diff --git a/src/H5F.c b/src/H5F.c index 7ab9dde..9fdf8be 100644 --- a/src/H5F.c +++ b/src/H5F.c @@ -71,7 +71,6 @@ static herr_t H5F_get_vfd_handle(const H5F_t *file, hid_t fapl, void** file_hand static H5F_t *H5F_new(H5F_file_t *shared, hid_t fcpl_id, hid_t fapl_id, H5FD_t *lf); static herr_t H5F_dest(H5F_t *f, hid_t dxpl_id); -static herr_t H5F_flush(H5F_t *f, hid_t dxpl_id, H5F_scope_t scope, unsigned flags); static herr_t H5F_close(H5F_t *f); /* Declare a free list to manage the H5F_t struct */ @@ -890,7 +889,7 @@ H5F_new(H5F_file_t *shared, hid_t fcpl_id, hid_t fapl_id, H5FD_t *lf) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't get byte number for address") if(H5P_get(plist, H5F_CRT_OBJ_BYTE_NUM_NAME, &f->shared->sizeof_size) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't get byte number for object size") - if(H5P_get(plist, H5F_CRT_SHMSG_NINDEXES_NAME, &f->shared->sohm_nindexes)<0) + if(H5P_get(plist, H5F_CRT_SHMSG_NINDEXES_NAME, &f->shared->sohm_nindexes) < 0) HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't get number of SOHM indexes") HDassert(f->shared->sohm_nindexes < 255); @@ -1020,22 +1019,22 @@ H5F_dest(H5F_t *f, hid_t dxpl_id) H5AC_stats(f); #endif /* H5AC_DUMP_STATS_ON_CLOSE */ - /* Flush all caches and indicate we are closing the file */ - if(H5F_flush(f, dxpl_id, H5F_SCOPE_LOCAL, H5F_FLUSH_CLOSING) < 0) + /* Shutdown file free space manager(s) */ + /* (We should release the free space information now (before truncating + * the file and before the metadata cache is shut down) since the + * free space manager is holding some data structures in memory + * and also because releasing free space can shrink the file's + * 'eoa' value) + */ + if(H5MF_close(f, dxpl_id) < 0) /* Push error, but keep going*/ - HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache") + HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't release file free space info") /* Unpin the superblock, since we're about to destroy the cache */ if(H5AC_unpin_entry(f, f->shared->sblock) < 0) /* Push error, but keep going*/ HDONE_ERROR(H5E_FSPACE, H5E_CANTUNPIN, FAIL, "unable to unpin superblock") f->shared->sblock = NULL; - - /* Flush all caches and indicate all cached objects should be invalidated */ - /* (The caches should already be clean and we should just be invalidating objects) */ - if(H5F_flush(f, dxpl_id, H5F_SCOPE_LOCAL, H5F_FLUSH_INVALIDATE) < 0) - /* Push error, but keep going*/ - HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache") } /* end if */ /* Remove shared file struct from list of open files */ @@ -1043,6 +1042,11 @@ H5F_dest(H5F_t *f, hid_t dxpl_id) /* Push error, but keep going*/ HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "problems closing file") + /* Shutdown the metadata cache */ + if(H5AC_dest(f, dxpl_id)) + /* Push error, but keep going*/ + HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "problems closing file") + /* * Do not close the root group since we didn't count it, but free * the memory associated with it. @@ -1061,10 +1065,7 @@ H5F_dest(H5F_t *f, hid_t dxpl_id) } /* end if */ /* Destroy other components of the file */ - if(H5AC_dest(f, dxpl_id)) - /* Push error, but keep going*/ - HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "problems closing file") - if(H5F_accum_reset(f) < 0) + if(H5F_accum_reset(f, dxpl_id) < 0) /* Push error, but keep going*/ HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "problems closing file") if(H5FO_dest(f) < 0) @@ -1083,10 +1084,18 @@ H5F_dest(H5F_t *f, hid_t dxpl_id) /* Push error, but keep going*/ HDONE_ERROR(H5E_PLIST, H5E_CANTFREE, FAIL, "can't close property list") - /* Close low-level file */ + /* Only truncate the file on an orderly close, with write-access */ + if(f->closing && (H5F_ACC_RDWR & f->shared->flags)) { + /* Truncate the file to the current allocated size */ + if(H5FD_truncate(f->shared->lf, dxpl_id, (unsigned)TRUE) < 0) + /* Push error, but keep going*/ + HDONE_ERROR(H5E_FILE, H5E_WRITEERROR, FAIL, "low level truncate failed") + } /* end if */ + + /* Close the file */ if(H5FD_close(f->shared->lf) < 0) /* Push error, but keep going*/ - HDONE_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "problems closing file") + HDONE_ERROR(H5E_FILE, H5E_CANTCLOSEFILE, FAIL, "unable to close file") /* Free mount table */ f->shared->mtab.child = (H5F_mount_t *)H5MM_xfree(f->shared->mtab.child); @@ -1627,8 +1636,26 @@ H5Fflush(hid_t object_id, H5F_scope_t scope) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "object is not associated with a file") /* Flush the file */ - if(H5F_flush(f, H5AC_dxpl_id, scope, H5F_FLUSH_NONE) < 0) - HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "flush failed") + /* + * Nothing to do if the file is read only. This determination is + * made at the shared open(2) flags level, implying that opening a + * file twice, once for read-only and once for read-write, and then + * calling H5Fflush() with the read-only handle, still causes data + * to be flushed. + */ + if(H5F_ACC_RDWR & f->shared->flags) { + /* Flush other files, depending on scope */ + if(H5F_SCOPE_GLOBAL == scope) { + /* Call the flush routine for mounted file hierarchies */ + if(H5F_flush_mounts(f, H5AC_dxpl_id) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush mounted file hierarchy") + } /* end if */ + else { + /* Call the flush routine, for this file */ + if(H5F_flush(f, H5AC_dxpl_id) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush file's cached information") + } /* end else */ + } /* end if */ done: FUNC_LEAVE_API(ret_value) @@ -1638,9 +1665,7 @@ done: /*------------------------------------------------------------------------- * Function: H5F_flush * - * Purpose: Flushes (and optionally invalidates) cached data plus the - * file superblock. If the logical file size field is zero - * then it is updated to be the length of the superblock. + * Purpose: Flushes cached data. * * Return: Non-negative on success/Negative on failure * @@ -1650,81 +1675,45 @@ done: * *------------------------------------------------------------------------- */ -static herr_t -H5F_flush(H5F_t *f, hid_t dxpl_id, H5F_scope_t scope, unsigned flags) +herr_t +H5F_flush(H5F_t *f, hid_t dxpl_id) { - unsigned nerrors = 0; /* Errors from nested flushes */ - unsigned i; /* Index variable */ - unsigned int H5AC_flags; /* translated flags for H5AC_flush() */ - herr_t ret_value; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5F_flush) + FUNC_ENTER_NOAPI(H5F_flush, FAIL) /* Sanity check arguments */ HDassert(f); - /* - * Nothing to do if the file is read only. This determination is - * made at the shared open(2) flags level, implying that opening a - * file twice, once for read-only and once for read-write, and then - * calling H5F_flush() with the read-only handle, still causes data - * to be flushed. - */ - if(0 == (H5F_ACC_RDWR & f->shared->flags)) - HGOTO_DONE(SUCCEED) - - /* Flush other files, depending on scope */ - if(H5F_SCOPE_GLOBAL == scope) { - while(f->parent) - f = f->parent; - - scope = H5F_SCOPE_DOWN; - } /* end while */ - if(H5F_SCOPE_DOWN == scope) - for(i = 0; i < f->shared->mtab.nmounts; i++) - if(H5F_flush(f->shared->mtab.child[i].file, dxpl_id, scope, flags) < 0) - nerrors++; - /* Flush any cached dataset storage raw data */ - if(H5D_flush(f, dxpl_id, flags) < 0) - HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush dataset cache") - - /* If we will be closing the file, we should release the free space - * information now (needs to happen before truncating the file and - * before the metadata cache is shut down, since the free space manager is - * holding some data structures in memory and also because releasing free - * space can shrink the file's 'eoa' value) - */ - if(flags & H5F_FLUSH_CLOSING) { - /* Shutdown file free space manager(s) */ - if(H5MF_close(f, dxpl_id) < 0) - HGOTO_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't release file free space info") - } /* end if */ + if(H5D_flush(f, dxpl_id) < 0) + /* Push error, but keep going*/ + HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush dataset cache") - /* Truncate the file to the current allocated size */ - /* (needs to happen before superblock write, since the 'eoa' value is - * written in superblock -QAK) + /* Release any space allocated to space aggregators, so that the eoa value + * corresponds to the end of the space written to in the file. */ - if(H5FD_truncate(f->shared->lf, dxpl_id, (unsigned)((flags & H5F_FLUSH_CLOSING) > 0)) < 0) - HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "low level truncate failed") + /* (needs to happen before cache flush, with superblock write, since the + * 'eoa' value is written in superblock -QAK) + */ + if(H5MF_free_aggrs(f, dxpl_id) < 0) + /* Push error, but keep going*/ + HDONE_ERROR(H5E_FILE, H5E_CANTRELEASE, FAIL, "can't release file space") - /* Flush (and invalidate, if requested) the entire metadata cache */ - H5AC_flags = 0; - if((flags & H5F_FLUSH_INVALIDATE) != 0 ) - H5AC_flags |= H5AC__FLUSH_INVALIDATE_FLAG; - if(H5AC_flush(f, dxpl_id, H5AC_flags) < 0) - HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush metadata cache") + /* Flush the entire metadata cache */ + if(H5AC_flush(f, dxpl_id) < 0) + /* Push error, but keep going*/ + HDONE_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush metadata cache") /* Flush out the metadata accumulator */ if(H5F_accum_flush(f, dxpl_id) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTFLUSH, FAIL, "unable to flush metadata accumulator") + /* Push error, but keep going*/ + HDONE_ERROR(H5E_IO, H5E_CANTFLUSH, FAIL, "unable to flush metadata accumulator") /* Flush file buffers to disk. */ - if(H5FD_flush(f->shared->lf, dxpl_id, (unsigned)((flags & H5F_FLUSH_CLOSING) > 0)) < 0) - HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "low level flush failed") - - /* Check flush errors for children - errors are already on the stack */ - ret_value = (nerrors ? FAIL : SUCCEED); + if(H5FD_flush(f->shared->lf, dxpl_id, FALSE) < 0) + /* Push error, but keep going*/ + HDONE_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "low level flush failed") done: FUNC_LEAVE_NOAPI(ret_value) @@ -1933,8 +1922,8 @@ H5F_try_close(H5F_t *f) * Only try to flush the file if it was opened with write access. */ if(f->intent&H5F_ACC_RDWR) { - /* Flush and destroy all caches */ - if(H5F_flush(f, H5AC_dxpl_id, H5F_SCOPE_LOCAL, H5AC__NO_FLAGS_SET) < 0) + /* Flush all caches */ + if(H5F_flush(f, H5AC_dxpl_id) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache") } /* end if */ @@ -2873,7 +2862,7 @@ H5Fget_info(hid_t obj_id, H5F_info_t *finfo) /* Check for superblock extension info */ if(H5F_super_size(f, H5AC_ind_dxpl_id, NULL, &finfo->super_ext_size) < 0) - HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve superblock sizes") + HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "Unable to retrieve superblock extension size") /* Check for SOHM info */ if(H5F_addr_defined(f->shared->sohm_addr)) diff --git a/src/H5FD.c b/src/H5FD.c index 967017f..8de2a1a 100644 --- a/src/H5FD.c +++ b/src/H5FD.c @@ -1126,14 +1126,11 @@ done: * the `open' callback. * * Return: Success: Non-negative - * * Failure: Negative * * Programmer: Robb Matzke * Tuesday, July 27, 1999 * - * Modifications: - * *------------------------------------------------------------------------- */ herr_t @@ -1148,11 +1145,11 @@ H5FDclose(H5FD_t *file) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid file pointer") if(H5FD_close(file) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "unable to close file") + HGOTO_ERROR(H5E_VFL, H5E_CANTCLOSEFILE, FAIL, "unable to close file") done: FUNC_LEAVE_API(ret_value) -} +} /* end H5FDclose() */ /*------------------------------------------------------------------------- @@ -1161,22 +1158,11 @@ done: * Purpose: Private version of H5FDclose() * * Return: Success: Non-negative - * * Failure: Negative * * Programmer: Robb Matzke * Wednesday, August 4, 1999 * - * Modifications: - * Robb Matzke, 2000-11-10 - * Removed a call to set *file to all zero because the struct - * has already been freed by the close method. This fixes a write - * to freed memory. - * - * Bill Wendling, 2003-02-17 - * Split out the freeing of the freelist from this function - * so that the Flexible PHDF5 stuff can call it without - * having to call H5FD_close(). *------------------------------------------------------------------------- */ herr_t @@ -1201,7 +1187,7 @@ H5FD_close(H5FD_t *file) */ HDassert(driver->close); if((driver->close)(file) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "close failed") + HGOTO_ERROR(H5E_VFL, H5E_CANTCLOSEFILE, FAIL, "close failed") done: FUNC_LEAVE_NOAPI(ret_value) diff --git a/src/H5FDcore.c b/src/H5FDcore.c index 1e30ace..a08abdd 100644 --- a/src/H5FDcore.c +++ b/src/H5FDcore.c @@ -484,33 +484,33 @@ done: * Programmer: Robb Matzke * Thursday, July 29, 1999 * - * Modifications: - * Robb Matzke, 1999-10-19 - * The contents of memory are written to the backing store if - * one is open. *------------------------------------------------------------------------- */ static herr_t H5FD_core_close(H5FD_t *_file) { H5FD_core_t *file = (H5FD_core_t*)_file; - herr_t ret_value=SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_core_close, FAIL) + /* Flush any changed buffers */ + if(H5FD_core_flush(_file, (hid_t)-1, TRUE) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush file") + /* Release resources */ - if (file->fd>=0) + if(file->fd >= 0) HDclose(file->fd); - if (file->name) + if(file->name) H5MM_xfree(file->name); - if (file->mem) + if(file->mem) H5MM_xfree(file->mem); HDmemset(file, 0, sizeof(H5FD_core_t)); H5MM_xfree(file); done: FUNC_LEAVE_NOAPI(ret_value) -} +} /* end H5FD_core_close() */ /*------------------------------------------------------------------------- @@ -973,7 +973,7 @@ H5FD_core_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) new_eof += file->increment; /* Extend the file to make sure it's large enough */ - if(!H5F_addr_eq((haddr_t)new_eof, file->eof)) { + if(!H5F_addr_eq(file->eof, (haddr_t)new_eof)) { unsigned char *x; /* Pointer to new buffer for file data */ /* (Re)allocate memory for the file buffer */ diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h index 6b2e4fe..fc38566 100644 --- a/src/H5FDprivate.h +++ b/src/H5FDprivate.h @@ -72,7 +72,7 @@ H5_DLL herr_t H5FD_read(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type, haddr_t addr, size_t size, void *buf/*out*/); H5_DLL herr_t H5FD_write(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type, haddr_t addr, size_t size, const void *buf); -H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, unsigned closing); +H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, hbool_t closing); H5_DLL herr_t H5FD_truncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing); H5_DLL herr_t H5FD_get_fileno(const H5FD_t *file, unsigned long *filenum); H5_DLL herr_t H5FD_get_vfd_handle(H5FD_t *file, hid_t fapl, void** file_handle); diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c index 0b4632d..c2d74a9 100644 --- a/src/H5FDsec2.c +++ b/src/H5FDsec2.c @@ -397,7 +397,7 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) /* Get the FAPL */ if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a file access property list") + HGOTO_ERROR(H5E_VFL, H5E_BADTYPE, NULL, "not a file access property list") /* This step is for h5repart tool only. If user wants to change file driver from * family to sec2 while using h5repart, this private property should be set so that @@ -406,7 +406,7 @@ H5FD_sec2_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr) */ if(H5P_exist_plist(plist, H5F_ACS_FAMILY_TO_SEC2_NAME) > 0) if(H5P_get(plist, H5F_ACS_FAMILY_TO_SEC2_NAME, &file->fam_to_sec2) < 0) - HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, NULL, "can't get property of changing family to sec2") + HGOTO_ERROR(H5E_VFL, H5E_CANTGET, NULL, "can't get property of changing family to sec2") } /* end if */ /* Set return value */ @@ -535,7 +535,6 @@ done: * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t H5FD_sec2_query(const H5FD_t *_file, unsigned long *flags /* out */) { diff --git a/src/H5FDwindows.c b/src/H5FDwindows.c index 37228d7..aca03c8 100644 --- a/src/H5FDwindows.c +++ b/src/H5FDwindows.c @@ -91,7 +91,11 @@ typedef struct H5FD_windows_t { */ DWORD fileindexlo; DWORD fileindexhi; - DWORD volumeserialnumber; + DWORD volumeserialnumber; + + /* Information from properties set by 'h5repart' tool */ + hbool_t fam_to_sec2; /* Whether to eliminate the family driver info + * and convert this file to a single file */ } H5FD_windows_t; @@ -401,13 +405,31 @@ H5FD_windows_open(const char *name, unsigned flags, hid_t UNUSED fapl_id, file->write_access=write_access; /* Note the write_access for later */ #endif /* WINDOWS_USE_STDIO */ - if( (filehandle = (HANDLE)_get_osfhandle(fd)) == INVALID_HANDLE_VALUE) - HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to get file handle for file") + if( (filehandle = (HANDLE)_get_osfhandle(fd)) == INVALID_HANDLE_VALUE) + HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to get file handle for file") if(!GetFileInformationByHandle(filehandle, &fileinfo)) - HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to get file information") + HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to get file information") file->fileindexhi = fileinfo.nFileIndexHigh; file->fileindexlo = fileinfo.nFileIndexLow; - file->volumeserialnumber = fileinfo.dwVolumeSerialNumber; + file->volumeserialnumber = fileinfo.dwVolumeSerialNumber; + + /* Check for non-default FAPL */ + if(H5P_FILE_ACCESS_DEFAULT != fapl_id) { + H5P_genplist_t *plist; /* Property list pointer */ + + /* Get the FAPL */ + if(NULL == (plist = (H5P_genplist_t *)H5I_object(fapl_id))) + HGOTO_ERROR(H5E_VFL, H5E_BADTYPE, NULL, "not a file access property list") + + /* This step is for h5repart tool only. If user wants to change file driver from + * family to sec2 while using h5repart, this private property should be set so that + * in the later step, the library can ignore the family driver information saved + * in the superblock. + */ + if(H5P_exist_plist(plist, H5F_ACS_FAMILY_TO_SEC2_NAME) > 0) + if(H5P_get(plist, H5F_ACS_FAMILY_TO_SEC2_NAME, &file->fam_to_sec2) < 0) + HGOTO_ERROR(H5E_VFL, H5E_CANTGET, NULL, "can't get property of changing family to sec2") + } /* end if */ /* Set return value */ ret_value=(H5FD_t*)file; @@ -520,17 +542,14 @@ done: Based on code by Quincey Koziol * Thursday, May 24 2007 * - * Modifications: - * *------------------------------------------------------------------------- */ -/* ARGSUSED */ static herr_t -H5FD_windows_query(const H5FD_t UNUSED * _f, unsigned long *flags /* out */) +H5FD_windows_query(const H5FD_t *_file, unsigned long *flags /* out */) { - herr_t ret_value=SUCCEED; + const H5FD_windows_t *file = (const H5FD_windows_t*)_file; /* windows VFD info */ - FUNC_ENTER_NOAPI(H5FD_windows_query, FAIL) + FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5FD_windows_query) /* Set the VFL feature flags that this driver supports */ if(flags) { @@ -539,11 +558,15 @@ H5FD_windows_query(const H5FD_t UNUSED * _f, unsigned long *flags /* out */) *flags|=H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */ *flags|=H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */ *flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */ - } + + /* Check for flags that are set by h5repart */ + if(file->fam_to_sec2) + *flags |= H5FD_FEAT_IGNORE_DRVRINFO; /* Ignore the driver info when file is opened (which eliminates it) */ + } /* end if */ done: - FUNC_LEAVE_NOAPI(ret_value) -} + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5FD_windows_query() */ /*------------------------------------------------------------------------- * Function: H5FD_windows_get_eoa diff --git a/src/H5FSprivate.h b/src/H5FSprivate.h index e5763a5..056449d 100644 --- a/src/H5FSprivate.h +++ b/src/H5FSprivate.h @@ -184,7 +184,7 @@ H5_DLL herr_t H5FS_close(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace); /* Free space section routines */ H5_DLL herr_t H5FS_sect_add(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace, H5FS_section_info_t *node, unsigned flags, void *op_data); -H5_DLL herr_t H5FS_sect_try_extend(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace, +H5_DLL htri_t H5FS_sect_try_extend(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace, haddr_t addr, hsize_t size, hsize_t extra_requested); H5_DLL herr_t H5FS_sect_remove(H5F_t *f, hid_t dxpl_id, H5FS_t *fspace, H5FS_section_info_t *node); diff --git a/src/H5Faccum.c b/src/H5Faccum.c index d4e142b..d8b9820 100644 --- a/src/H5Faccum.c +++ b/src/H5Faccum.c @@ -722,13 +722,19 @@ done: *------------------------------------------------------------------------- */ herr_t -H5F_accum_reset(H5F_t *f) +H5F_accum_reset(H5F_t *f, hid_t dxpl_id) { - FUNC_ENTER_NOAPI_NOFUNC(H5F_accum_reset) + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI(H5F_accum_reset, FAIL) HDassert(f); HDassert(f->shared); + /* Flush any dirty data in accumulator */ + if(H5F_accum_flush(f, dxpl_id) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "can't flush metadata accumulator") + /* Check if we need to reset the metadata accumulator information */ if(f->shared->feature_flags & H5FD_FEAT_ACCUMULATE_METADATA) { /* Sanity check */ @@ -744,7 +750,7 @@ H5F_accum_reset(H5F_t *f) f->shared->accum.dirty = FALSE; } /* end if */ - FUNC_LEAVE_NOAPI(SUCCEED) +done: + FUNC_LEAVE_NOAPI(ret_value) } /* end H5F_accum_reset() */ - diff --git a/src/H5Fmount.c b/src/H5Fmount.c index ff4b1eb..f70a7c6 100644 --- a/src/H5Fmount.c +++ b/src/H5Fmount.c @@ -627,3 +627,80 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5F_mount_count_ids() */ + +/*------------------------------------------------------------------------- + * Function: H5F_flush_mounts_recurse + * + * Purpose: Flush a mount hierarchy, recursively + * + * Return: SUCCEED/FAIL + * + * Programmer: Quincey Koziol + * Fri, August 21, 2009 + * + *------------------------------------------------------------------------- + */ +static herr_t +H5F_flush_mounts_recurse(H5F_t *f, hid_t dxpl_id) +{ + unsigned nerrors = 0; /* Errors from recursive flushes */ + unsigned u; /* Index variable */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI_NOINIT(H5F_flush_mounts_recurse) + + /* Sanity check */ + HDassert(f); + + /* Flush all child files, not stopping for errors */ + for(u = 0; u < f->shared->mtab.nmounts; u++) + if(H5F_flush_mounts_recurse(f->shared->mtab.child[u].file, dxpl_id) < 0) + nerrors++; + + /* Call the "real" flush routine, for this file */ + if(H5F_flush(f, dxpl_id) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush file's cached information") + + /* Check flush errors for children - errors are already on the stack */ + if(nerrors) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush file's child mounts") + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5F_flush_mounts_recurse() */ + + +/*------------------------------------------------------------------------- + * Function: H5F_flush_mounts + * + * Purpose: Flush a mount hierarchy + * + * Return: SUCCEED/FAIL + * + * Programmer: Quincey Koziol + * Fri, August 21, 2009 + * + *------------------------------------------------------------------------- + */ +herr_t +H5F_flush_mounts(H5F_t *f, hid_t dxpl_id) +{ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI(H5F_flush_mounts, FAIL) + + /* Sanity check */ + HDassert(f); + + /* Find the top file in the mount hierarchy */ + while(f->parent) + f = f->parent; + + /* Flush the mounted file hierarchy */ + if(H5F_flush_mounts_recurse(f, dxpl_id) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "unable to flush mounted file hierarchy") + +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5F_flush_mounts() */ + diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h index c9d2f46..5fdde37 100644 --- a/src/H5Fpkg.h +++ b/src/H5Fpkg.h @@ -243,7 +243,7 @@ typedef struct H5F_file_t { /* (if aggregating "small data" allocations) */ /* Metadata accumulator information */ - H5F_meta_accum_t accum; /* Metadata accumulator info */ + H5F_meta_accum_t accum; /* Metadata accumulator info */ } H5F_file_t; /* @@ -288,11 +288,13 @@ H5_DLLVAR const H5AC_class_t H5AC_SUPERBLOCK[1]; /* General routines */ H5_DLL herr_t H5F_init(void); H5_DLL haddr_t H5F_locate_signature(H5FD_t *file, hid_t dxpl_id); +H5_DLL herr_t H5F_flush(H5F_t *f, hid_t dxpl_id); /* File mount related routines */ H5_DLL herr_t H5F_close_mounts(H5F_t *f); H5_DLL int H5F_term_unmount_cb(void *obj_ptr, hid_t obj_id, void *key); H5_DLL herr_t H5F_mount_count_ids(H5F_t *f, unsigned *nopen_files, unsigned *nopen_objs); +H5_DLL herr_t H5F_flush_mounts(H5F_t *f, hid_t dxpl_id); /* Superblock related routines */ H5_DLL herr_t H5F_super_init(H5F_t *f, hid_t dxpl_id); @@ -312,7 +314,7 @@ H5_DLL htri_t H5F_accum_write(const H5F_t *f, hid_t dxpl_id, H5FD_mem_t type, H5_DLL herr_t H5F_accum_free(H5F_t *f, hid_t dxpl_id, H5FD_mem_t type, haddr_t addr, hsize_t size); H5_DLL herr_t H5F_accum_flush(H5F_t *f, hid_t dxpl_id); -H5_DLL herr_t H5F_accum_reset(H5F_t *f); +H5_DLL herr_t H5F_accum_reset(H5F_t *f, hid_t dxpl_id); /* Shared file list related routines */ H5_DLL herr_t H5F_sfile_add(H5F_file_t *shared); diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h index f2223d0..1e816f9 100644 --- a/src/H5Fprivate.h +++ b/src/H5Fprivate.h @@ -28,6 +28,7 @@ /* Private headers needed by this file */ + /****************************/ /* Library Private Typedefs */ /****************************/ @@ -38,16 +39,6 @@ typedef struct H5F_t H5F_t; /* Block aggregation structure */ typedef struct H5F_blk_aggr_t H5F_blk_aggr_t; -/*===----------------------------------------------------------------------=== - * Flush Flags - *===----------------------------------------------------------------------=== - * - * Flags passed into the flush routines which indicate what type of - * flush we want to do. They can be ORed together. - */ -#define H5F_FLUSH_NONE (0U) /* No flags specified */ -#define H5F_FLUSH_INVALIDATE (1U << 0) /* Invalidate cached data */ -#define H5F_FLUSH_CLOSING (1U << 1) /* Closing the file */ /* * Encode and decode macros for file meta-data. diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index 5d1c8c8..6392c9e 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -96,8 +96,7 @@ /* The difference between a single file and a set of mounted files */ typedef enum H5F_scope_t { H5F_SCOPE_LOCAL = 0, /*specified file handle only */ - H5F_SCOPE_GLOBAL = 1, /*entire virtual file */ - H5F_SCOPE_DOWN = 2 /*for internal use only */ + H5F_SCOPE_GLOBAL = 1 /*entire virtual file */ } H5F_scope_t; /* Unlimited file size for H5Pset_external() */ diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c index b0096cb..3be8069 100644 --- a/src/H5Fsuper.c +++ b/src/H5Fsuper.c @@ -704,7 +704,7 @@ H5F_super_ext_write_msg(H5F_t *f, hid_t dxpl_id, void *mesg, unsigned id, hbool_ htri_t status; /* Indicate whether the message exists or not */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI_NOINIT(H5F_super_ext_write_msg) + FUNC_ENTER_NOAPI(H5F_super_ext_write_msg, FAIL) /* Sanity checks */ HDassert(f); diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c index 7df8f31..240ac9f 100644 --- a/src/H5Fsuper_cache.c +++ b/src/H5Fsuper_cache.c @@ -727,7 +727,9 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5F_sup H5_ASSIGN_OVERFLOW(driver_size, H5FD_sb_size(f->shared->lf), hsize_t, size_t); if(driver_size > 0) { H5O_drvinfo_t drvinfo; /* Driver info */ + H5O_loc_t ext_loc; /* "Object location" for superblock extension */ uint8_t dbuf[H5F_MAX_DRVINFOBLOCK_SIZE]; /* Driver info block encoding buffer */ + htri_t status; /* Indicate whether the message exists or not */ /* Sanity check */ HDassert(driver_size <= H5F_MAX_DRVINFOBLOCK_SIZE); @@ -735,12 +737,20 @@ H5F_sblock_flush(H5F_t *f, hid_t dxpl_id, hbool_t destroy, haddr_t addr, H5F_sup /* Encode driver-specific data */ if(H5FD_sb_encode(f->shared->lf, drvinfo.name, dbuf) < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTINIT, FAIL, "unable to encode driver information") + + /* Open the superblock extension's object header */ + if(H5F_super_ext_open(f, sblock->ext_addr, &ext_loc) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTOPENOBJ, FAIL, "unable to open file's superblock extension") /* Write driver info information to the superblock extension */ drvinfo.len = driver_size; drvinfo.buf = dbuf; - if(H5F_super_ext_write_msg(f, dxpl_id, &drvinfo, H5O_DRVINFO_ID, FALSE) < 0) + if(H5O_msg_write(&ext_loc, H5O_DRVINFO_ID, H5O_MSG_FLAG_DONTSHARE, H5O_UPDATE_TIME, &drvinfo, dxpl_id) < 0) HGOTO_ERROR(H5E_FILE, H5E_WRITEERROR, FAIL, "unable to update driver info header message") + + /* Close the superblock extension object header */ + if(H5F_super_ext_close(f, &ext_loc) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTCLOSEOBJ, FAIL, "unable to close file's superblock extension") } /* end if */ } /* end if */ } /* end if */ diff --git a/src/H5MF.c b/src/H5MF.c index 639a65f..b59af88 100644 --- a/src/H5MF.c +++ b/src/H5MF.c @@ -938,74 +938,6 @@ HDfprintf(stderr, "%s: Leaving, ret_value = %d\n", FUNC, ret_value); /*------------------------------------------------------------------------- - * Function: H5MF_free_aggrs - * - * Purpose: Reset a block aggregator, returning any space back to file - * - * Return: Success: Non-negative - * Failure: Negative - * - * Programmer: Vailin Choi - * July 1st, 2009 - * - *------------------------------------------------------------------------- - */ -static herr_t -H5MF_free_aggrs(H5F_t *f, hid_t dxpl_id) -{ - H5F_blk_aggr_t *first_aggr; /* First aggregator to reset */ - H5F_blk_aggr_t *second_aggr; /* Second aggregator to reset */ - haddr_t ma_addr = HADDR_UNDEF; /* Base "metadata aggregator" address */ - hsize_t ma_size = 0; /* Size of "metadata aggregator" */ - haddr_t sda_addr = HADDR_UNDEF; /* Base "small data aggregator" address */ - hsize_t sda_size = 0; /* Size of "small data aggregator" */ - herr_t ret_value = SUCCEED; /* Return value */ - - FUNC_ENTER_NOAPI(H5MF_free_aggrs, FAIL) - - /* Check args */ - HDassert(f); - HDassert(f->shared); - HDassert(f->shared->lf); - - /* Retrieve metadata aggregator info, if available */ - if(H5MF_aggr_query(f, &(f->shared->meta_aggr), &ma_addr, &ma_size) < 0) - HGOTO_ERROR(H5E_RESOURCE, H5E_CANTGET, FAIL, "can't query metadata aggregator stats") - - /* Retrieve 'small data' aggregator info, if available */ - if(H5MF_aggr_query(f, &(f->shared->sdata_aggr), &sda_addr, &sda_size) < 0) - HGOTO_ERROR(H5E_RESOURCE, H5E_CANTGET, FAIL, "can't query small data aggregator stats") - - /* Make certain we release the aggregator that's later in the file first */ - /* (so the file shrinks properly) */ - if(H5F_addr_defined(ma_addr) && H5F_addr_defined(sda_addr)) { - if(H5F_addr_lt(ma_addr, sda_addr)) { - first_aggr = &(f->shared->sdata_aggr); - second_aggr = &(f->shared->meta_aggr); - } /* end if */ - else { - first_aggr = &(f->shared->meta_aggr); - second_aggr = &(f->shared->sdata_aggr); - } /* end else */ - } /* end if */ - else { - first_aggr = &(f->shared->meta_aggr); - second_aggr = &(f->shared->sdata_aggr); - } /* end else */ - - /* Release the unused portion of the metadata and "small data" blocks back - * to the free lists in the file. - */ - if(H5MF_aggr_reset(f, dxpl_id, first_aggr) < 0) - HGOTO_ERROR(H5E_FILE, H5E_CANTFREE, FAIL, "can't reset metadata block") - if(H5MF_aggr_reset(f, dxpl_id, second_aggr) < 0) - HGOTO_ERROR(H5E_FILE, H5E_CANTFREE, FAIL, "can't reset 'small data' block") -done: - FUNC_LEAVE_NOAPI(ret_value) -} /* end H5MF_free_aggrs() */ - - -/*------------------------------------------------------------------------- * Function: H5MF_close * * Purpose: Close the free space tracker(s) for a file @@ -1033,6 +965,11 @@ HDfprintf(stderr, "%s: Entering\n", FUNC); HDassert(f->shared); HDassert(f->shared->lf); + /* Free the space in aggregators */ + /* (for space not at EOF, it may be put into free space managers) */ + if(H5MF_free_aggrs(f, dxpl_id) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFREE, FAIL, "can't free aggregators") + /* Iterate over all the free space types that have managers and get each free list's space */ for(type = H5FD_MEM_DEFAULT; type < H5FD_MEM_NTYPES; H5_INC_ENUM(H5FD_mem_t, type)) { #ifdef H5MF_ALLOC_DEBUG_MORE @@ -1083,6 +1020,8 @@ HDfprintf(stderr, "%s: Before deleting free space manager\n", FUNC); } /* end if */ } /* end for */ + /* Free the space in aggregators (again) */ + /* (in case any free space information re-started them) */ if(H5MF_free_aggrs(f, dxpl_id) < 0) HGOTO_ERROR(H5E_FILE, H5E_CANTFREE, FAIL, "can't free aggregators") diff --git a/src/H5MFaggr.c b/src/H5MFaggr.c index 0b1bc91..1435d18 100644 --- a/src/H5MFaggr.c +++ b/src/H5MFaggr.c @@ -227,7 +227,7 @@ HDfprintf(stderr, "%s: aggr = {%a, %Hu, %Hu}\n", FUNC, aggr->addr, aggr->tot_siz ((other_aggr->tot_size - other_aggr->size) >= other_aggr->alloc_size)) { if(H5FD_free(f->shared->lf, dxpl_id, other_alloc_type, f, other_aggr->addr, other_aggr->size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation block") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation block") other_aggr->addr = 0; other_aggr->tot_size = 0; @@ -236,7 +236,7 @@ HDfprintf(stderr, "%s: aggr = {%a, %Hu, %Hu}\n", FUNC, aggr->addr, aggr->tot_siz /* Allocate space from the VFD (i.e. at the end of the file) */ if(HADDR_UNDEF == (ret_value = H5FD_alloc(f->shared->lf, dxpl_id, type, f, size, &eoa_frag_addr, &eoa_frag_size))) - HGOTO_ERROR(H5E_VFL, H5E_CANTALLOC, HADDR_UNDEF, "can't allocate aggregation block") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, HADDR_UNDEF, "can't allocate aggregation block") } /* end else */ } /* end if */ else { @@ -271,7 +271,7 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC); ((other_aggr->tot_size - other_aggr->size) >= other_aggr->alloc_size)) { if(H5FD_free(f->shared->lf, dxpl_id, other_alloc_type, f, other_aggr->addr, other_aggr->size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation block") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation block") other_aggr->addr = 0; other_aggr->tot_size = 0; other_aggr->size = 0; @@ -279,12 +279,12 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC); /* Allocate space from the VFD (i.e. at the end of the file) */ if(HADDR_UNDEF == (new_space = H5FD_alloc(f->shared->lf, dxpl_id, alloc_type, f, aggr->alloc_size, &eoa_frag_addr, &eoa_frag_size))) - HGOTO_ERROR(H5E_VFL, H5E_CANTALLOC, HADDR_UNDEF, "can't allocate aggregation block") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTALLOC, HADDR_UNDEF, "can't allocate aggregation block") /* Return the unused portion of the block to a free list */ if(aggr->size > 0) if(H5MF_xfree(f, alloc_type, dxpl_id, aggr->addr, aggr->size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation block") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation block") /* Point the aggregator at the newly allocated block */ aggr->addr = new_space; @@ -301,12 +301,12 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC); /* Freeing any possible fragment due to file allocation */ if(eoa_frag_size) if(H5MF_xfree(f, type, dxpl_id, eoa_frag_addr, eoa_frag_size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free eoa fragment") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free eoa fragment") /* Freeing any possible fragment due to alignment in the block after extension */ if(extended && frag_size) if(H5MF_xfree(f, type, dxpl_id, frag_addr, frag_size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation fragment") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation fragment") } /* end if */ else { /* Allocate space out of the block */ @@ -317,7 +317,7 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC); /* free any possible fragment */ if (frag_size) if(H5MF_xfree(f, type, dxpl_id, frag_addr, frag_size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation fragment") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free aggregation fragment") } /* end else */ } /* end if */ else { @@ -333,7 +333,7 @@ HDfprintf(stderr, "%s: Allocating block\n", FUNC); if(eoa_frag_size) /* Put fragment on the free list */ if(H5MF_xfree(f, type, dxpl_id, eoa_frag_addr, eoa_frag_size) < 0) - HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, HADDR_UNDEF, "can't free eoa fragment") + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, HADDR_UNDEF, "can't free eoa fragment") } /* end else */ /* Sanity check for overlapping into file's temporary allocation space */ @@ -366,7 +366,7 @@ HDfprintf(stderr, "%s: ret_value = %a\n", FUNC, ret_value); *------------------------------------------------------------------------- */ htri_t -H5MF_aggr_try_extend(const H5F_t *f, H5F_blk_aggr_t *aggr, H5FD_mem_t type, +H5MF_aggr_try_extend(H5F_t *f, H5F_blk_aggr_t *aggr, H5FD_mem_t type, haddr_t blk_end, hsize_t extra_requested) { htri_t ret_value = FALSE; /* Return value */ @@ -605,13 +605,13 @@ H5MF_aggr_query(const H5F_t *f, const H5F_blk_aggr_t *aggr, haddr_t *addr, * *------------------------------------------------------------------------- */ -herr_t +static herr_t H5MF_aggr_reset(H5F_t *f, hid_t dxpl_id, H5F_blk_aggr_t *aggr) { H5FD_mem_t alloc_type; /* Type of file memory to work with */ herr_t ret_value = SUCCEED; /* Return value */ - FUNC_ENTER_NOAPI(H5MF_aggr_reset, FAIL) + FUNC_ENTER_NOAPI_NOINIT(H5MF_aggr_reset) /* Check args */ HDassert(f); @@ -640,11 +640,80 @@ HDfprintf(stderr, "%s: tmp_addr = %a, tmp_size = %Hu\n", FUNC, tmp_addr, tmp_siz /* Return the unused portion of the metadata block to the file */ if(tmp_size > 0 && (H5F_INTENT(f) & H5F_ACC_RDWR)) - if(H5FD_free(f->shared->lf, dxpl_id, alloc_type, f, tmp_addr, tmp_size) < 0) - HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, FAIL, "can't free space") + if(H5MF_xfree(f, alloc_type, dxpl_id, tmp_addr, tmp_size) < 0) + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, FAIL, "can't release aggregator's free space") } /* end if */ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5MF_aggr_reset() */ + +/*------------------------------------------------------------------------- + * Function: H5MF_free_aggrs + * + * Purpose: Reset a metadata & small block aggregators, returning any space + * back to file + * + * Return: Success: Non-negative + * Failure: Negative + * + * Programmer: Vailin Choi + * July 1st, 2009 + * + *------------------------------------------------------------------------- + */ +herr_t +H5MF_free_aggrs(H5F_t *f, hid_t dxpl_id) +{ + H5F_blk_aggr_t *first_aggr; /* First aggregator to reset */ + H5F_blk_aggr_t *second_aggr; /* Second aggregator to reset */ + haddr_t ma_addr = HADDR_UNDEF; /* Base "metadata aggregator" address */ + hsize_t ma_size = 0; /* Size of "metadata aggregator" */ + haddr_t sda_addr = HADDR_UNDEF; /* Base "small data aggregator" address */ + hsize_t sda_size = 0; /* Size of "small data aggregator" */ + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_NOAPI(H5MF_free_aggrs, FAIL) + + /* Check args */ + HDassert(f); + HDassert(f->shared); + HDassert(f->shared->lf); + + /* Retrieve metadata aggregator info, if available */ + if(H5MF_aggr_query(f, &(f->shared->meta_aggr), &ma_addr, &ma_size) < 0) + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTGET, FAIL, "can't query metadata aggregator stats") + + /* Retrieve 'small data' aggregator info, if available */ + if(H5MF_aggr_query(f, &(f->shared->sdata_aggr), &sda_addr, &sda_size) < 0) + HGOTO_ERROR(H5E_RESOURCE, H5E_CANTGET, FAIL, "can't query small data aggregator stats") + + /* Make certain we release the aggregator that's later in the file first */ + /* (so the file shrinks properly) */ + if(H5F_addr_defined(ma_addr) && H5F_addr_defined(sda_addr)) { + if(H5F_addr_lt(ma_addr, sda_addr)) { + first_aggr = &(f->shared->sdata_aggr); + second_aggr = &(f->shared->meta_aggr); + } /* end if */ + else { + first_aggr = &(f->shared->meta_aggr); + second_aggr = &(f->shared->sdata_aggr); + } /* end else */ + } /* end if */ + else { + first_aggr = &(f->shared->meta_aggr); + second_aggr = &(f->shared->sdata_aggr); + } /* end else */ + + /* Release the unused portion of the metadata and "small data" blocks back + * to the free lists in the file. + */ + if(H5MF_aggr_reset(f, dxpl_id, first_aggr) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFREE, FAIL, "can't reset metadata block") + if(H5MF_aggr_reset(f, dxpl_id, second_aggr) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTFREE, FAIL, "can't reset 'small data' block") +done: + FUNC_LEAVE_NOAPI(ret_value) +} /* end H5MF_free_aggrs() */ + diff --git a/src/H5MFpkg.h b/src/H5MFpkg.h index de63f56..25785ae 100644 --- a/src/H5MFpkg.h +++ b/src/H5MFpkg.h @@ -158,7 +158,7 @@ H5_DLL herr_t H5MF_sect_simple_free(H5FS_section_info_t *sect); /* Block aggregator routines */ H5_DLL haddr_t H5MF_aggr_alloc(H5F_t *f, hid_t dxpl_id, H5F_blk_aggr_t *aggr, H5F_blk_aggr_t *other_aggr, H5FD_mem_t type, hsize_t size); -H5_DLL htri_t H5MF_aggr_try_extend(const H5F_t *f, H5F_blk_aggr_t *aggr, +H5_DLL htri_t H5MF_aggr_try_extend(H5F_t *f, H5F_blk_aggr_t *aggr, H5FD_mem_t type, haddr_t abs_blk_end, hsize_t extra_requested); H5_DLL htri_t H5MF_aggr_can_absorb(const H5F_t *f, const H5F_blk_aggr_t *aggr, const H5MF_free_section_t *sect, H5MF_shrink_type_t *shrink); diff --git a/src/H5MFprivate.h b/src/H5MFprivate.h index 515fed8..3f2a427 100644 --- a/src/H5MFprivate.h +++ b/src/H5MFprivate.h @@ -78,7 +78,7 @@ H5_DLL htri_t H5MF_try_shrink(H5F_t *f, H5FD_mem_t alloc_type, hid_t dxpl_id, H5_DLL haddr_t H5MF_alloc_tmp(H5F_t *f, hsize_t size); /* 'block aggregator' routines */ -H5_DLL herr_t H5MF_aggr_reset(H5F_t *file, hid_t dxpl_id, H5F_blk_aggr_t *aggr); +H5_DLL herr_t H5MF_free_aggrs(H5F_t *f, hid_t dxpl_id); /* Debugging routines */ #ifdef H5MF_DEBUGGING diff --git a/src/H5T.c b/src/H5T.c index 4b710d3..1e30f77 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -1198,10 +1198,12 @@ H5T_init_interface(void) #endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */ /* From unsigned long to floats */ -#if H5T_CONV_INTERNAL_ULONG_FP +#if H5T_CONV_INTERNAL_ULONG_FLT status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T_conv_ulong_float, H5AC_dxpl_id, FALSE); +#endif /* H5T_CONV_INTERNAL_ULONG_FLT */ +#if H5T_CONV_INTERNAL_ULONG_DBL status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T_conv_ulong_double, H5AC_dxpl_id, FALSE); -#endif /* H5T_CONV_INTERNAL_ULONG_FP */ +#endif /* H5T_CONV_INTERNAL_ULONG_DBL */ #if H5T_CONV_INTERNAL_ULONG_LDOUBLE status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T_conv_ulong_ldouble, H5AC_dxpl_id, FALSE); #endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */ diff --git a/src/H5Tconv.c b/src/H5Tconv.c index c621bf4..08e7fa1 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -8417,7 +8417,7 @@ done: * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_FP +#if H5T_CONV_INTERNAL_ULONG_FLT herr_t H5T_conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8433,7 +8433,7 @@ H5T_conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, done: FUNC_LEAVE_NOAPI(ret_value) } -#endif /* H5T_CONV_INTERNAL_ULONG_FP */ +#endif /* H5T_CONV_INTERNAL_ULONG_FLT */ /*------------------------------------------------------------------------- @@ -8451,7 +8451,7 @@ done: * *------------------------------------------------------------------------- */ -#if H5T_CONV_INTERNAL_ULONG_FP +#if H5T_CONV_INTERNAL_ULONG_DBL herr_t H5T_conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, size_t nelmts, size_t buf_stride, @@ -8467,7 +8467,7 @@ H5T_conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata, done: FUNC_LEAVE_NOAPI(ret_value) } -#endif /* H5T_CONV_INTERNAL_ULONG_FP */ +#endif /* H5T_CONV_INTERNAL_ULONG_DBL */ /*------------------------------------------------------------------------- diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index 7ef4b63..18bf7cf 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -133,10 +133,18 @@ #define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1 #endif -/* Define an internal macro for converting unsigned (long) long to floating numbers. +/* Define an internal macro for converting unsigned long to float. + * Pathscale compiler on Sandia's Linux machine has some problem. + * 64-bit Solaris does different rounding. */ +#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \ + (!H5_WANT_DATA_ACCURACY) +#define H5T_CONV_INTERNAL_ULONG_FLT 1 +#endif + +/* Define an internal macro for converting unsigned (long) long to double. * 64-bit Solaris does different rounding. */ #if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY) -#define H5T_CONV_INTERNAL_ULONG_FP 1 +#define H5T_CONV_INTERNAL_ULONG_DBL 1 #endif /* Define an internal macro for converting unsigned long to long double. SGI compilers give some diff --git a/src/H5config.h.in b/src/H5config.h.in index 5877c6d..bb03fc7 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -620,6 +620,10 @@ correct precision. */ #undef ULLONG_TO_LDOUBLE_PRECISION +/* Define if your system accurately converting unsigned long to float values. + */ +#undef ULONG_TO_FLOAT_ACCURATE + /* Define if your system can accurately convert unsigned (long) long values to floating-point values. */ #undef ULONG_TO_FP_BOTTOM_BIT_ACCURATE diff --git a/src/H5trace.c b/src/H5trace.c index 172a7f7..5f1e128 100644 --- a/src/H5trace.c +++ b/src/H5trace.c @@ -674,10 +674,6 @@ H5_trace (const double *returning, const char *func, const char *type, ...) case H5F_SCOPE_GLOBAL: fprintf(out, "H5F_SCOPE_GLOBAL"); break; - case H5F_SCOPE_DOWN: - fprintf(out, "H5F_SCOPE_DOWN " - "/*FOR INTERNAL USE ONLY!*/"); - break; default: fprintf(out, "%ld", (long)scope); break; diff --git a/src/H5win32defs.h b/src/H5win32defs.h index 89b41a0..2a170ea 100644 --- a/src/H5win32defs.h +++ b/src/H5win32defs.h @@ -60,6 +60,7 @@ typedef __int64 h5_stat_size_t; #define HDopen(S,F,M) _open(S,F|_O_BINARY,M) #define HDread(F,M,Z) _read(F,M,Z) #define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,(Z>1?Z:2)) +#define HDsleep(S) Sleep(S*1000) #define HDstrcasecmp(A,B) _stricmp(A,B) #define HDstrtoull(S,R,N) _strtoui64(S,R,N) #define HDstrdup(S) _strdup(S) diff --git a/test/dt_arith.c b/test/dt_arith.c index 6c59555..43855a8 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -2524,6 +2524,7 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst) if (++fails_all_tests>=max_fails) { HDputs(" maximum failures reached, aborting test..."); + HDputs(" (dst is library's conversion output. ans is compiler's conversion output.)"); goto done; } } @@ -3359,6 +3360,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst) HDputs(" maximum failures reached, aborting test..."); else if(run_test==TEST_DENORM || run_test==TEST_SPECIAL) HDputs(" maximum warnings reached, aborting test..."); + HDputs(" (dst is library's conversion output. ans is compiler's conversion output.)"); goto done; } @@ -4488,6 +4490,7 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst) HDputs(" maximum failures reached, aborting test..."); else if(run_test==TEST_DENORM || run_test==TEST_SPECIAL) HDputs(" maximum warnings reached, aborting test..."); + HDputs(" (dst is library's conversion output. ans is compiler's conversion output.)"); goto done; } @@ -4887,7 +4890,9 @@ run_int_fp_conv(const char *name) nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LONG, H5T_NATIVE_FLOAT); nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LONG, H5T_NATIVE_DOUBLE); +#if H5_ULONG_TO_FLOAT_ACCURATE nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULONG, H5T_NATIVE_FLOAT); +#endif nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULONG, H5T_NATIVE_DOUBLE); #endif diff --git a/test/freespace.c b/test/freespace.c index 82395d0..0f6514c 100644 --- a/test/freespace.c +++ b/test/freespace.c @@ -638,7 +638,7 @@ test_fs_sect_add(hid_t fapl) init_sect_node(sect_node, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -701,7 +701,7 @@ test_fs_sect_add(hid_t fapl) init_sect_node(sect_node, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node, - 0, NULL)) + 0, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -775,7 +775,7 @@ test_fs_sect_add(hid_t fapl) init_sect_node(sect_node, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR /* nothing in free-space */ @@ -844,7 +844,7 @@ test_fs_sect_add(hid_t fapl) init_sect_node(sect_node, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node, - H5FS_ADD_DESERIALIZING, &can_shrink)) + H5FS_ADD_DESERIALIZING, &can_shrink) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -952,7 +952,7 @@ test_fs_sect_find(hid_t fapl) TEST_ERROR if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE30, (H5FS_section_info_t **)&node)) < 0) + (hsize_t)TEST_SECT_SIZE30, (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR @@ -988,7 +988,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR60, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1009,7 +1009,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node3, (haddr_t)(TEST_SECT_ADDR200), (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node3, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node3->sect_info.size; @@ -1028,7 +1028,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node2->sect_info.size; @@ -1047,7 +1047,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node4, (haddr_t)TEST_SECT_ADDR300, (hsize_t)TEST_SECT_SIZE80, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node4, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node4->sect_info.size; @@ -1058,7 +1058,7 @@ test_fs_sect_find(hid_t fapl) TEST_ERROR if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0) + (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1105,7 +1105,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR60, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1125,7 +1125,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR200, (hsize_t)TEST_SECT_SIZE80, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node2->sect_info.size; @@ -1136,7 +1136,7 @@ test_fs_sect_find(hid_t fapl) TEST_ERROR if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0) + (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1178,7 +1178,7 @@ test_fs_sect_find(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR60, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1190,7 +1190,7 @@ test_fs_sect_find(hid_t fapl) TEST_ERROR if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0) + (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR @@ -1311,7 +1311,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1331,7 +1331,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* section B & C are merged */ @@ -1349,7 +1349,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node3, (haddr_t)TEST_SECT_ADDR60, (hsize_t)TEST_SECT_SIZE10, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node3, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* section A is merged with the merged section of B & C */ @@ -1367,7 +1367,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node4, (haddr_t)TEST_SECT_ADDR150, (hsize_t)TEST_SECT_SIZE80, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node4, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* section D is merged with the merged section of A & B & C */ @@ -1379,7 +1379,7 @@ test_fs_sect_merge(hid_t fapl) /* should be able to find the merged section of A, B, C & D */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE10+TEST_SECT_SIZE30+TEST_SECT_SIZE50+TEST_SECT_SIZE80), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE10+TEST_SECT_SIZE30+TEST_SECT_SIZE50+TEST_SECT_SIZE80), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1439,7 +1439,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1459,7 +1459,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* section A & B are not merged because H5FS_CLS_SEPAR_OBJ is set */ @@ -1472,7 +1472,7 @@ test_fs_sect_merge(hid_t fapl) /* should not be able to find the merged section of A & B */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE30+TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE30+TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR @@ -1533,7 +1533,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR60, (hsize_t)TEST_SECT_SIZE10, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1553,7 +1553,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE_NEW, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* sections A & B are not merged because H5FS_CLS_MERGE_SYM is set & section class type is different */ @@ -1573,7 +1573,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node3, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE_NEW, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node3, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* sections B & C are merged because H5FS_CLS_MERGE_SYM is set & section class type is the same */ @@ -1591,7 +1591,7 @@ test_fs_sect_merge(hid_t fapl) init_sect_node(sect_node4, (haddr_t)TEST_SECT_ADDR150, (hsize_t)TEST_SECT_SIZE80, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node4, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* @@ -1607,14 +1607,14 @@ test_fs_sect_merge(hid_t fapl) /* should not be able to find a merged section of A, B, C & D */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE10+TEST_SECT_SIZE30+TEST_SECT_SIZE50+TEST_SECT_SIZE80), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE10+TEST_SECT_SIZE30+TEST_SECT_SIZE50+TEST_SECT_SIZE80), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR /* should be able to find the merged section of B & C */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE30+TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE30+TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1628,7 +1628,7 @@ test_fs_sect_merge(hid_t fapl) /* should be able to find section A */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE10), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE10), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1641,7 +1641,7 @@ test_fs_sect_merge(hid_t fapl) /* should be able to find section D */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE80), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE80), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1766,7 +1766,7 @@ test_fs_sect_shrink(hid_t fapl) can_shrink = FALSE; if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1779,7 +1779,7 @@ test_fs_sect_shrink(hid_t fapl) /* section A should still be there in free-space */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1800,7 +1800,7 @@ test_fs_sect_shrink(hid_t fapl) can_shrink = FALSE; if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR /* should have nothing in free-space */ @@ -1811,7 +1811,7 @@ test_fs_sect_shrink(hid_t fapl) /* section A should not be there in free-space */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR @@ -1866,7 +1866,7 @@ test_fs_sect_shrink(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1886,7 +1886,7 @@ test_fs_sect_shrink(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR /* free-space should be the same since section B is shrunk */ @@ -1895,7 +1895,7 @@ test_fs_sect_shrink(hid_t fapl) /* section B should not be there in free-space */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR @@ -1906,7 +1906,7 @@ test_fs_sect_shrink(hid_t fapl) /* section A should still be there in free-space */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE20), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE20), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (!node_found) TEST_ERROR @@ -1965,7 +1965,7 @@ test_fs_sect_shrink(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -1985,7 +1985,7 @@ test_fs_sect_shrink(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, &can_shrink)) + H5FS_ADD_RETURNED_SPACE, &can_shrink) < 0) FAIL_STACK_ERROR /* section A & B are merged and then strunk, so there is nothing in free-space */ @@ -1995,14 +1995,14 @@ test_fs_sect_shrink(hid_t fapl) /* section B should not be there in free-space */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE50), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR /* section A should not be there in free-space */ if((node_found = H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)(TEST_SECT_SIZE30), (H5FS_section_info_t **)&node)) < 0) + (hsize_t)(TEST_SECT_SIZE30), (H5FS_section_info_t **)&node)) < 0) FAIL_STACK_ERROR if (node_found) TEST_ERROR @@ -2100,7 +2100,7 @@ test_fs_sect_change_class(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR60, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -2120,7 +2120,7 @@ test_fs_sect_change_class(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE_NONE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += TEST_SECT_SIZE50; @@ -2140,7 +2140,7 @@ test_fs_sect_change_class(hid_t fapl) TEST_ERROR if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE30, (H5FS_section_info_t **)&node) < 0) + (hsize_t)TEST_SECT_SIZE30, (H5FS_section_info_t **)&node) < 0) FAIL_STACK_ERROR if (node->sect_info.type != TEST_FSPACE_SECT_TYPE_NONE) @@ -2201,7 +2201,7 @@ test_fs_sect_change_class(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE30, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* @@ -2213,7 +2213,7 @@ test_fs_sect_change_class(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE50, TEST_FSPACE_SECT_TYPE_NONE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* @@ -2225,7 +2225,7 @@ test_fs_sect_change_class(hid_t fapl) init_sect_node(sect_node3, (haddr_t)TEST_SECT_ADDR200, (hsize_t)TEST_SECT_SIZE80, TEST_FSPACE_SECT_TYPE_NONE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node3, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR /* change the class of B to A's class */ @@ -2245,7 +2245,7 @@ test_fs_sect_change_class(hid_t fapl) /* verify that section B has changed class */ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node) < 0) + (hsize_t)TEST_SECT_SIZE50, (H5FS_section_info_t **)&node) < 0) FAIL_STACK_ERROR if (node->sect_info.type != TEST_FSPACE_SECT_TYPE) @@ -2256,7 +2256,7 @@ test_fs_sect_change_class(hid_t fapl) /* verify that section C has changed class */ if(H5FS_sect_find(f, H5P_DATASET_XFER_DEFAULT, frsp, - (hsize_t)TEST_SECT_SIZE80, (H5FS_section_info_t **)&node) < 0) + (hsize_t)TEST_SECT_SIZE80, (H5FS_section_info_t **)&node) < 0) FAIL_STACK_ERROR if (node->sect_info.type != TEST_FSPACE_SECT_TYPE) @@ -2338,9 +2338,9 @@ test_fs_sect_extend(hid_t fapl) size_t nclasses; H5FS_create_t cparam; /* creation parameters */ frspace_state_t state; /* State of free space*/ - - TEST_free_section_t *sect_node1=NULL, *sect_node2=NULL; - unsigned init_flags=0; + TEST_free_section_t *sect_node1=NULL, *sect_node2=NULL; + unsigned init_flags=0; + htri_t status; /* Status of 'try' calls */ TESTING("a block's extension by requested-size which is = adjoining free section's size: Test 1"); @@ -2376,7 +2376,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE5, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -2396,7 +2396,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE40, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node2->sect_info.size; @@ -2407,11 +2407,13 @@ test_fs_sect_extend(hid_t fapl) TEST_ERROR /* Extend a block by requested-size */ - if(H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_SIZE80, (hsize_t)TEST_SECT_SIZE20, (hsize_t)TEST_SECT_SIZE40) < 0) - TEST_ERROR + if((status = H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_SIZE80, (hsize_t)TEST_SECT_SIZE20, (hsize_t)TEST_SECT_SIZE40)) < 0) + FAIL_STACK_ERROR + if(FALSE == status) + TEST_ERROR /* Succeed in extending the block: free space info is decremented accordingly */ - state.tot_space -= sect_node2->sect_info.size; + state.tot_space -= (hsize_t)TEST_SECT_SIZE40; state.tot_sect_count -= 1; state.serial_sect_count -= 1; if(check_stats(f, frsp, &state)) @@ -2450,7 +2452,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE5, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -2470,7 +2472,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE40, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node2->sect_info.size; @@ -2481,8 +2483,10 @@ test_fs_sect_extend(hid_t fapl) TEST_ERROR /* Extend the block by requested-size */ - if(H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, (hsize_t)TEST_SECT_SIZE50) < 0) - TEST_ERROR + if((status = H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, (hsize_t)TEST_SECT_SIZE50)) < 0) + FAIL_STACK_ERROR + if(TRUE == status) + TEST_ERROR /* Not able to extend the block: free space info remains the same */ if(check_stats(f, frsp, &state)) @@ -2521,7 +2525,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE5, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -2541,7 +2545,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE40, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node2->sect_info.size; @@ -2552,8 +2556,10 @@ test_fs_sect_extend(hid_t fapl) TEST_ERROR /* Extend the block by requested-size */ - if(H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, (hsize_t)TEST_SECT_SIZE30) < 0) + if((status = H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE20, (hsize_t)TEST_SECT_SIZE30)) < 0) TEST_ERROR + if(FALSE == status) + TEST_ERROR /* Succeed in extending the block: total free space is decreased but other info remains the same */ state.tot_space -= 30; @@ -2593,7 +2599,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node1, (haddr_t)TEST_SECT_ADDR70, (hsize_t)TEST_SECT_SIZE5, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node1, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR HDmemset(&state, 0, sizeof(frspace_state_t)); @@ -2613,7 +2619,7 @@ test_fs_sect_extend(hid_t fapl) init_sect_node(sect_node2, (haddr_t)TEST_SECT_ADDR100, (hsize_t)TEST_SECT_SIZE40, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node2, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR state.tot_space += sect_node2->sect_info.size; @@ -2624,8 +2630,10 @@ test_fs_sect_extend(hid_t fapl) TEST_ERROR /* Extend the block by requested-size */ - if(H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE15, (hsize_t)TEST_SECT_SIZE40) < 0) + if((status = H5FS_sect_try_extend(f, H5P_DATASET_XFER_DEFAULT, frsp, (haddr_t)TEST_SECT_ADDR80, (hsize_t)TEST_SECT_SIZE15, (hsize_t)TEST_SECT_SIZE40)) < 0) TEST_ERROR + if(TRUE == status) + TEST_ERROR /* Not able to extend the block: free space manager info remains the same */ if(check_stats(f, frsp, &state)) @@ -2718,7 +2726,7 @@ test_fs_sect_iterate(hid_t fapl) init_sect_node(sect_node, (haddr_t)i*10, (hsize_t)sect_size, TEST_FSPACE_SECT_TYPE, H5FS_SECT_LIVE); if(H5FS_sect_add(f, H5P_DATASET_XFER_DEFAULT, frsp, (H5FS_section_info_t *)sect_node, - H5FS_ADD_RETURNED_SPACE, NULL)) + H5FS_ADD_RETURNED_SPACE, NULL) < 0) FAIL_STACK_ERROR } diff --git a/test/links.c b/test/links.c index fe9976a..7c32238 100644 --- a/test/links.c +++ b/test/links.c @@ -4452,7 +4452,7 @@ external_link_win1(hid_t fapl, hbool_t new_format) H5Fclose (fid); } H5E_END_TRY; return -1; -} /* end external_link_win2() */ +} /* end external_link_win1() */ /*------------------------------------------------------------------------- @@ -4919,6 +4919,272 @@ external_link_win6(hid_t fapl, hbool_t new_format) return -1; } /* end external_link_win6() */ + +/*------------------------------------------------------------------------- + * Function: external_link_win7 + * + * Purpose: + * 1. UNC target link: "\\127.0.01\c$/tmp/extlinks10" + * 2. main file: "extlinks0" + * 3. target file: "extlinks15" + * Should be able to find the target file via main file's local host/main drive/rel path + * + * Return: Success: 0 + * Failure: -1 + *------------------------------------------------------------------------- + */ +static int +external_link_win7(hid_t fapl, hbool_t new_format) +{ + hid_t fid = (-1); /* File ID */ + hid_t gid = (-1); /* Group IDs */ + char filename1[NAME_BUF_SIZE], + filename2[NAME_BUF_SIZE], + filename3[NAME_BUF_SIZE], + tmpname[NAME_BUF_SIZE], + cwdpath[NAME_BUF_SIZE]; + + if(new_format) + TESTING("external links via main file's UNC local host/main drive/rel path(windows)(w/new group format)") + else + TESTING("external links via main file's UNC local host/main drive/rel path(windows)") + + /* set up name for main file: "extlinks0" */ + h5_fixname(FILENAME[12], fapl, filename1, sizeof filename1); + + if (HDgetcwd(cwdpath, NAME_BUF_SIZE)==NULL) + TEST_ERROR + + /* set up name for target link: "\\127.0.0.1\c$/tmp/extlinks10" */ + HDstrcpy(tmpname, "\\\\127.0.0.1\\c$"); /* absolute path */ + HDstrcat(tmpname, "/"); + HDstrcat(tmpname, FILENAME[30]); + h5_fixname(tmpname, fapl, filename2, sizeof filename2); + + /* set up name for target file: "extlinks15" */ + h5_fixname(FILENAME[29], fapl, filename3, sizeof filename3); + + /* Create the target file */ + if((fid=H5Fcreate(filename3, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR + if((gid=H5Gcreate2(fid, "A", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR + + /* closing for target file */ + if(H5Gclose(gid) < 0) TEST_ERROR + if(H5Fclose(fid) < 0) TEST_ERROR + + + /* Create the main file */ + if((fid=H5Fcreate(filename1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR + + /* Create external link to target file */ + if(H5Lcreate_external(filename2, "/A", fid, "ext_link", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Open object through external link */ + H5E_BEGIN_TRY { + gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT); + } H5E_END_TRY; + + /* should be able to find the target file via main file's local host/main drive*/ + if (gid < 0) { + H5_FAILED(); + puts(" Should have found the file in local host/main drive."); + goto error; + } + + /* closing for main file */ + if(H5Gclose(gid) < 0) TEST_ERROR + if(H5Fclose(fid) < 0) TEST_ERROR + + PASSED(); + return 0; + + error: + H5E_BEGIN_TRY { + H5Gclose (gid); + H5Fclose (fid); + } H5E_END_TRY; + return -1; +} /* end external_link_win7() */ + + +/*------------------------------------------------------------------------- + * Function: external_link_win8 + * + * Purpose: + * 1. Long UNC target link: "\\?\:\CWD\extlinks10" + * 2. main file: "extlinks0" + * 3. target file: "extlinks10" + * Should be able to access the target file directly (abs drive/abs path) + * + * Return: Success: 0 + * Failure: -1 + * + *------------------------------------------------------------------------- + */ +static int +external_link_win8(hid_t fapl, hbool_t new_format) +{ + hid_t fid = (-1); /* File ID */ + hid_t gid = (-1); /* Group IDs */ + int drive=0; + char filename1[NAME_BUF_SIZE], + filename2[NAME_BUF_SIZE], + filename3[NAME_BUF_SIZE], + tmpname[NAME_BUF_SIZE], + cwdpath[NAME_BUF_SIZE]; + + if(new_format) + TESTING("external links via target's Long UNC abs drive/abs path directly (windows)(w/new group format)") + else + TESTING("external links via target's Long UNC abs drive/abs path directly (windows)") + + /* set up name for main file: "extlinks0" */ + h5_fixname(FILENAME[12], fapl, filename1, sizeof filename1); + + if (HDgetcwd(cwdpath, NAME_BUF_SIZE)==NULL) + TEST_ERROR + + /* create tmp directory */ + if (HDmkdir(TMPDIR, (mode_t)0755) < 0 && errno != EEXIST) + TEST_ERROR + + /* set up name for target link: ":\CWD\extlinks10" */ + drive = HDgetdrive(); + sprintf(tmpname, "\\\\?\\%c:%s\\%s", (drive+'A'-1), &cwdpath[2], FILENAME[30]); + h5_fixname(tmpname, fapl, filename2, sizeof filename2); + + /* set up name for target file: "extlinks10" */ + h5_fixname(FILENAME[30], fapl, filename3, sizeof filename3); + + /* Create the target file */ + if((fid=H5Fcreate(filename3, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR + if((gid=H5Gcreate2(fid, "A", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR + + /* closing for target file */ + if(H5Gclose(gid) < 0) TEST_ERROR + if(H5Fclose(fid) < 0) TEST_ERROR + + + /* Create the main file */ + if((fid=H5Fcreate(filename1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR + + /* Create external link to target file */ + if(H5Lcreate_external(filename2, "/A", fid, "ext_link", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Open object through external link */ + H5E_BEGIN_TRY { + gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT); + } H5E_END_TRY; + + /* should be able to find the target file directly */ + if (gid < 0) { + H5_FAILED(); + puts(" Should have found the file in tmp."); + goto error; + } + + /* closing for main file */ + if(H5Gclose(gid) < 0) TEST_ERROR + if(H5Fclose(fid) < 0) TEST_ERROR + + PASSED(); + return 0; + + error: + H5E_BEGIN_TRY { + H5Gclose (gid); + H5Fclose (fid); + } H5E_END_TRY; + return -1; +} /* end external_link_win8() */ + + +/*------------------------------------------------------------------------- + * Function: external_link_win9 + * + * Purpose: + * 1. Long UNC target link: "\\?\UNC\127.0.01\c$/tmp/extlinks10" + * 2. main file: "extlinks0" + * 3. target file: "extlinks15" + * Should be able to find the target file via main file's local host/main drive/rel path + * + * Return: Success: 0 + * Failure: -1 + *------------------------------------------------------------------------- + */ +static int +external_link_win9(hid_t fapl, hbool_t new_format) +{ + hid_t fid = (-1); /* File ID */ + hid_t gid = (-1); /* Group IDs */ + char filename1[NAME_BUF_SIZE], + filename2[NAME_BUF_SIZE], + filename3[NAME_BUF_SIZE], + tmpname[NAME_BUF_SIZE], + cwdpath[NAME_BUF_SIZE]; + + if(new_format) + TESTING("external links via main file's Long UNC local host/main drive/rel path(windows)(w/new group format)") + else + TESTING("external links via main file's Long UNC local host/main drive/rel path(windows)") + + /* set up name for main file: "extlinks0" */ + h5_fixname(FILENAME[12], fapl, filename1, sizeof filename1); + + if (HDgetcwd(cwdpath, NAME_BUF_SIZE)==NULL) + TEST_ERROR + + /* set up name for target link: "\\?\UNC\127.0.0.1\c$/tmp/extlinks10" */ + HDstrcpy(tmpname, "\\\\?\\UNC\127.0.0.1\\c$"); /* absolute path */ + HDstrcat(tmpname, "/"); + HDstrcat(tmpname, FILENAME[30]); + h5_fixname(tmpname, fapl, filename2, sizeof filename2); + + /* set up name for target file: "extlinks15" */ + h5_fixname(FILENAME[29], fapl, filename3, sizeof filename3); + + /* Create the target file */ + if((fid=H5Fcreate(filename3, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR + if((gid=H5Gcreate2(fid, "A", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR + + /* closing for target file */ + if(H5Gclose(gid) < 0) TEST_ERROR + if(H5Fclose(fid) < 0) TEST_ERROR + + + /* Create the main file */ + if((fid=H5Fcreate(filename1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR + + /* Create external link to target file */ + if(H5Lcreate_external(filename2, "/A", fid, "ext_link", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR + + /* Open object through external link */ + H5E_BEGIN_TRY { + gid = H5Gopen2(fid, "ext_link", H5P_DEFAULT); + } H5E_END_TRY; + + /* should be able to find the target file via main file's local host/main drive*/ + if (gid < 0) { + H5_FAILED(); + puts(" Should have found the file in local host/main drive."); + goto error; + } + + /* closing for main file */ + if(H5Gclose(gid) < 0) TEST_ERROR + if(H5Fclose(fid) < 0) TEST_ERROR + + PASSED(); + return 0; + + error: + H5E_BEGIN_TRY { + H5Gclose (gid); + H5Fclose (fid); + } H5E_END_TRY; + return -1; +} /* end external_link_win9() */ + #endif /* H5_HAVE_WINDOW_PATH */ @@ -12767,6 +13033,9 @@ main(void) nerrors += external_link_win4(my_fapl, new_format) < 0 ? 1 : 0; nerrors += external_link_win5(my_fapl, new_format) < 0 ? 1 : 0; nerrors += external_link_win6(my_fapl, new_format) < 0 ? 1 : 0; + nerrors += external_link_win7(my_fapl, new_format) < 0 ? 1 : 0; + nerrors += external_link_win8(my_fapl, new_format) < 0 ? 1 : 0; + nerrors += external_link_win9(my_fapl, new_format) < 0 ? 1 : 0; #endif /* These tests assume that external links are a form of UD links, * so assume that everything that passed for external links diff --git a/test/mf.c b/test/mf.c index c405694..3c88501 100644 --- a/test/mf.c +++ b/test/mf.c @@ -146,7 +146,6 @@ error: return(1); } /* check_stats() */ - /* * To verify that blocks are allocated from file allocation * diff --git a/test/ohdr.c b/test/ohdr.c index 905551d..df5f63b 100644 --- a/test/ohdr.c +++ b/test/ohdr.c @@ -60,8 +60,8 @@ test_cont(char *filename, hid_t fapl) H5O_info_t oinfo; H5O_loc_t oh_locA, oh_locB; time_t time_new; - char *short_name = "T"; - char *long_name = "This is the message"; + const char *short_name = "T"; + const char *long_name = "This is the message"; size_t nchunks; TESTING("object header continuation block"); @@ -100,7 +100,9 @@ test_cont(char *filename, hid_t fapl) if(H5O_msg_create(&oh_locA, H5O_NAME_ID, 0, 0, &short_name, H5P_DATASET_XFER_DEFAULT) < 0) FAIL_STACK_ERROR - if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT, TRUE) < 0) + if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT) < 0) + FAIL_STACK_ERROR + if(H5AC_expunge_entry(f, H5P_DATASET_XFER_DEFAULT, H5AC_OHDR, oh_locA.addr, H5AC__NO_FLAGS_SET) < 0) FAIL_STACK_ERROR if(H5O_get_info(&oh_locA, H5P_DATASET_XFER_DEFAULT, FALSE, &oinfo) < 0) @@ -210,7 +212,9 @@ main(void) time_new = 11111111; if(H5O_msg_create(&oh_loc, H5O_MTIME_NEW_ID, 0, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0) FAIL_STACK_ERROR - if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT, TRUE) < 0) + if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT) < 0) + FAIL_STACK_ERROR + if(H5AC_expunge_entry(f, H5P_DATASET_XFER_DEFAULT, H5AC_OHDR, oh_loc.addr, H5AC__NO_FLAGS_SET) < 0) FAIL_STACK_ERROR if(NULL == H5O_msg_read(&oh_loc, H5O_MTIME_NEW_ID, &ro, H5P_DATASET_XFER_DEFAULT)) FAIL_STACK_ERROR @@ -226,7 +230,9 @@ main(void) time_new = 33333333; if(H5O_msg_write(&oh_loc, H5O_MTIME_NEW_ID, 0, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0) FAIL_STACK_ERROR - if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT, TRUE) < 0) + if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT) < 0) + FAIL_STACK_ERROR + if(H5AC_expunge_entry(f, H5P_DATASET_XFER_DEFAULT, H5AC_OHDR, oh_loc.addr, H5AC__NO_FLAGS_SET) < 0) FAIL_STACK_ERROR if(NULL == H5O_msg_read(&oh_loc, H5O_MTIME_NEW_ID, &ro, H5P_DATASET_XFER_DEFAULT)) FAIL_STACK_ERROR @@ -255,7 +261,9 @@ main(void) if(H5O_msg_create(&oh_loc, H5O_MTIME_ID, 0, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0) FAIL_STACK_ERROR } /* end for */ - if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT, TRUE) < 0) + if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT) < 0) + FAIL_STACK_ERROR + if(H5AC_expunge_entry(f, H5P_DATASET_XFER_DEFAULT, H5AC_OHDR, oh_loc.addr, H5AC__NO_FLAGS_SET) < 0) FAIL_STACK_ERROR /* Make certain that chunk #0 in the object header will be encoded with a 2-byte size */ @@ -294,7 +302,9 @@ main(void) time_new = (i + 1) * 1000 + 10; if(H5O_msg_create(&oh_loc, H5O_MTIME_NEW_ID, 0, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0) FAIL_STACK_ERROR - if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT, TRUE) < 0) + if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT) < 0) + FAIL_STACK_ERROR + if(H5AC_expunge_entry(f, H5P_DATASET_XFER_DEFAULT, H5AC_OHDR, oh_loc.addr, H5AC__NO_FLAGS_SET) < 0) FAIL_STACK_ERROR } /* end for */ PASSED(); @@ -322,7 +332,9 @@ main(void) time_new = 22222222; if(H5O_msg_create(&oh_loc, H5O_MTIME_NEW_ID, H5O_MSG_FLAG_CONSTANT, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0) FAIL_STACK_ERROR - if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT, TRUE) < 0) + if(H5AC_flush(f, H5P_DATASET_XFER_DEFAULT) < 0) + FAIL_STACK_ERROR + if(H5AC_expunge_entry(f, H5P_DATASET_XFER_DEFAULT, H5AC_OHDR, oh_loc.addr, H5AC__NO_FLAGS_SET) < 0) FAIL_STACK_ERROR if(NULL == H5O_msg_read(&oh_loc, H5O_MTIME_NEW_ID, &ro, H5P_DATASET_XFER_DEFAULT)) FAIL_STACK_ERROR diff --git a/test/tsohm.c b/test/tsohm.c index 348677d..b5b489b 100644 --- a/test/tsohm.c +++ b/test/tsohm.c @@ -544,8 +544,12 @@ error: static hid_t close_reopen_file(hid_t file, const char* filename, hid_t fapl_id) { - if(H5Fclose(file) < 0) goto error; - return H5Fopen(filename, H5F_ACC_RDWR, fapl_id); + hid_t fid; + + if(H5Fclose(file) < 0) FAIL_STACK_ERROR + if((fid = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) FAIL_STACK_ERROR + + return(fid); error: return -1; @@ -598,19 +602,19 @@ size1_helper(hid_t file, const char* filename, hid_t fapl_id, int test_file_clos dim1[0] = 1; if((space_id=H5Screate_simple(1,dim1,NULL)) < 0) TEST_ERROR - if((dset_id = H5Dcreate2(file,DSETNAME[0],dtype1_id,space_id,H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR + if((dset_id = H5Dcreate2(file,DSETNAME[0],dtype1_id,space_id,H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR /* Test writing and reading */ - if(H5Dwrite(dset_id,dtype1_id,H5S_ALL,H5S_ALL,H5P_DEFAULT,&wdata) < 0) TEST_ERROR + if(H5Dwrite(dset_id,dtype1_id,H5S_ALL,H5S_ALL,H5P_DEFAULT,&wdata) < 0) FAIL_STACK_ERROR - if(H5Dread(dset_id,dtype1_id,H5S_ALL,H5S_ALL,H5P_DEFAULT,&rdata) < 0) TEST_ERROR + if(H5Dread(dset_id,dtype1_id,H5S_ALL,H5S_ALL,H5P_DEFAULT,&rdata) < 0) FAIL_STACK_ERROR if(rdata.i1!=wdata.i1 || rdata.i2!=wdata.i2 || HDstrcmp(rdata.str, wdata.str)) { H5_FAILED(); AT(); printf("incorrect read data\n"); goto error; } /* end if */ - if(H5Dclose(dset_id) < 0) TEST_ERROR + if(H5Dclose(dset_id) < 0) FAIL_STACK_ERROR /* Close and re-open the file if requested*/ if(test_file_closing) { @@ -618,8 +622,8 @@ size1_helper(hid_t file, const char* filename, hid_t fapl_id, int test_file_clos } /* Create more datasets with the same datatype */ - if((dset_id = H5Dcreate2(file,DSETNAME[1],dtype1_id,space_id,H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR - if(H5Dclose(dset_id) < 0) TEST_ERROR + if((dset_id = H5Dcreate2(file,DSETNAME[1],dtype1_id,space_id,H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) FAIL_STACK_ERROR + if(H5Dclose(dset_id) < 0) FAIL_STACK_ERROR /* Close and re-open the file if requested*/ if(test_file_closing) { diff --git a/testpar/t_cache.c b/testpar/t_cache.c index 4e1e5ba..9bf3a8d 100644 --- a/testpar/t_cache.c +++ b/testpar/t_cache.c @@ -5449,7 +5449,7 @@ trace_file_check(void) "H5AC_unpin_entry 4 0\n", "H5AC_rename 0 8a65 15 0\n", "H5AC_rename 8a65 0 15 0\n", - "H5AC_flush 0x0 0\n", + "H5AC_flush 0\n", NULL }; char buffer[256]; diff --git a/testpar/t_mdset.c b/testpar/t_mdset.c index f7d7ebb..51f06d7 100644 --- a/testpar/t_mdset.c +++ b/testpar/t_mdset.c @@ -458,7 +458,7 @@ void big_dataset(void) /* Check that file of the correct size was created */ file_size = h5_get_file_size(filename, fapl); - VRFY((file_size == 2147485696ULL), "File is correct size(~2GB)"); + VRFY((file_size == 2147485792ULL), "File is correct size(~2GB)"); /* * Create >4GB HDF5 file @@ -487,7 +487,7 @@ void big_dataset(void) /* Check that file of the correct size was created */ file_size = h5_get_file_size(filename, fapl); - VRFY((file_size == 4294969344ULL), "File is correct size(~4GB)"); + VRFY((file_size == 4294969440ULL), "File is correct size(~4GB)"); /* * Create >8GB HDF5 file @@ -516,7 +516,7 @@ void big_dataset(void) /* Check that file of the correct size was created */ file_size = h5_get_file_size(filename, fapl); - VRFY((file_size == 8589936640ULL), "File is correct size(~8GB)"); + VRFY((file_size == 8589936736ULL), "File is correct size(~8GB)"); /* Close fapl */ ret = H5Pclose(fapl); diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c index 175d159..4dabada 100644 --- a/testpar/testphdf5.c +++ b/testpar/testphdf5.c @@ -402,7 +402,7 @@ int main(int argc, char **argv) "collective group and dataset write", &collngroups_params); AddTest("ingrpr", independent_group_read, NULL, "independent group and dataset read", &collngroups_params); - AddTest("bigdset", big_dataset, NULL, + AddTest("bigdset", big_dataset, NULL, "big dataset test", PARATESTFILE); AddTest("fill", dataset_fillvalue, NULL, "dataset fill value", PARATESTFILE); @@ -463,35 +463,6 @@ int main(int argc, char **argv) "collective irregular complex chunk read",PARATESTFILE); -#if 0 - if((mpi_size > 3) && MAINPROCESS) { - printf("Collective irregular chunk IO tests haven't been tested \n"); - printf(" for the number of process greater than 3.\n"); - printf("Please try with the number of process \n"); - printf(" no greater than 3 for collective irregular chunk IO test.\n"); - printf("Collective irregular chunk tests will be skipped \n"); - } - AddTest((mpi_size > 3) ? "-ccontw" : "ccontw", - coll_irregular_cont_write,NULL, - "collective irregular contiguous write",PARATESTFILE); - AddTest((mpi_size > 3) ? "-ccontr" : "ccontr", - coll_irregular_cont_read,NULL, - "collective irregular contiguous read",PARATESTFILE); - AddTest((mpi_size > 3) ? "-cschunkw" : "cschunkw", - coll_irregular_simple_chunk_write,NULL, - "collective irregular simple chunk write",PARATESTFILE); - AddTest((mpi_size > 3) ? "-cschunkr" : "cschunkr", - coll_irregular_simple_chunk_read,NULL, - "collective irregular simple chunk read",PARATESTFILE); - AddTest((mpi_size > 3) ? "-ccchunkw" : "ccchunkw", - coll_irregular_complex_chunk_write,NULL, - "collective irregular complex chunk write",PARATESTFILE); - AddTest((mpi_size > 3) ? "-ccchunkr" : "ccchunkr", - coll_irregular_complex_chunk_read,NULL, - "collective irregular complex chunk read",PARATESTFILE); -#endif - - AddTest("null", null_dataset, NULL, "null dataset test", PARATESTFILE); diff --git a/tools/h5stat/h5stat.c b/tools/h5stat/h5stat.c index 75481ff..78fb4f5 100644 --- a/tools/h5stat/h5stat.c +++ b/tools/h5stat/h5stat.c @@ -80,14 +80,14 @@ typedef struct iter_t { ohdr_info_t dset_ohdr_info; /* Object header information for datasets */ hsize_t dset_storage_size; /* Size of raw data for datasets */ ohdr_info_t dtype_ohdr_info; /* Object header information for datatypes */ - hsize_t groups_btree_storage_size; /* btree size for group */ - hsize_t groups_heap_storage_size; /* heap size for group */ - hsize_t attrs_btree_storage_size; /* btree size for attributes (1.8) */ - hsize_t attrs_heap_storage_size; /* fractal heap size for attributes (1.8) */ - hsize_t SM_hdr_storage_size; /* header size for SOHM table (1.8) */ - hsize_t SM_index_storage_size; /* index (btree & list) size for SOHM table (1.8) */ - hsize_t SM_heap_storage_size; /* fractal heap size for SOHM table (1.8) */ - hsize_t super_ext_size; /* superblock extension size */ + hsize_t groups_btree_storage_size; /* btree size for group */ + hsize_t groups_heap_storage_size; /* heap size for group */ + hsize_t attrs_btree_storage_size; /* btree size for attributes (1.8) */ + hsize_t attrs_heap_storage_size; /* fractal heap size for attributes (1.8) */ + hsize_t SM_hdr_storage_size; /* header size for SOHM table (1.8) */ + hsize_t SM_index_storage_size; /* index (btree & list) size for SOHM table (1.8) */ + hsize_t SM_heap_storage_size; /* fractal heap size for SOHM table (1.8) */ + hsize_t super_ext_size; /* superblock extension size */ hsize_t datasets_btree_storage_size; /* btree size for chunked dataset */ unsigned long nexternal; /* Number of external files for a dataset */ int local; /* Flag to indicate iteration over the object*/ diff --git a/vms/tools/h5jam/check_h5jam.com b/vms/tools/h5jam/check_h5jam.com index a1e02f2..50be903 100644 --- a/vms/tools/h5jam/check_h5jam.com +++ b/vms/tools/h5jam/check_h5jam.com @@ -16,16 +16,23 @@ $ ! $ ! This command file tests h5jam and h5unjam utilities. The command file has to $ ! run in the [hdf5-top.tools.testfiles] directory. $ ! +$ type sys$input + +=================================== + Testing h5jam utiltity +=================================== + $ ! $ ! Define h5jam, h5unjam and h5dump symbols $ ! $! set message/notext/nofacility/noidentification/noseverity $ current_dir = F$DIRECTRY() $ len = F$LENGTH(current_dir) -$ temp = F$EXTRACT(0, len-10, current_dir) +$ temp = F$EXTRACT(0, len-16, current_dir) $ h5dump_dir = temp + "H5DUMP]" $ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe -$ h5jam_dir = temp + "H5JAM]" +$ temp2 = F$EXTRACT(0, len-11, current_dir) +$ h5jam_dir = temp2 + "]" $ h5jam :== $sys$disk:'h5jam_dir'h5jam.exe $ ! $ ! Define output for diff command that compares expected and actual diff --git a/windows/c++/examples/chunkstest/chunkstest.vcproj b/windows/c++/examples/chunkstest/chunkstest.vcproj index 3e80865..2cca3ae 100644 --- a/windows/c++/examples/chunkstest/chunkstest.vcproj +++ b/windows/c++/examples/chunkstest/chunkstest.vcproj @@ -397,48 +397,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj b/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj index 1a486de..fbce98e 100644 --- a/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj +++ b/windows/c++/examples/chunkstestdll/chunkstestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/compoundtest/compoundtest.vcproj b/windows/c++/examples/compoundtest/compoundtest.vcproj index 46662a4..922a69b 100644 --- a/windows/c++/examples/compoundtest/compoundtest.vcproj +++ b/windows/c++/examples/compoundtest/compoundtest.vcproj @@ -397,48 +397,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj b/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj index 0c1b2af..ff8985c 100644 --- a/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj +++ b/windows/c++/examples/compoundtestdll/compoundtestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/createtest/createtest.vcproj b/windows/c++/examples/createtest/createtest.vcproj index 12e9150..2395fbe 100644 --- a/windows/c++/examples/createtest/createtest.vcproj +++ b/windows/c++/examples/createtest/createtest.vcproj @@ -397,48 +397,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/createtestdll/createtestdll.vcproj b/windows/c++/examples/createtestdll/createtestdll.vcproj index cf3b0da..c6c2fc0 100644 --- a/windows/c++/examples/createtestdll/createtestdll.vcproj +++ b/windows/c++/examples/createtestdll/createtestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/extend_dstest/extend_dstest.vcproj b/windows/c++/examples/extend_dstest/extend_dstest.vcproj index b55fa73..faa82a7 100644 --- a/windows/c++/examples/extend_dstest/extend_dstest.vcproj +++ b/windows/c++/examples/extend_dstest/extend_dstest.vcproj @@ -397,48 +397,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj b/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj index dc61bee..0233322 100644 --- a/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj +++ b/windows/c++/examples/extend_dstestdll/extend_dstestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/h5grouptest/h5grouptest.vcproj b/windows/c++/examples/h5grouptest/h5grouptest.vcproj index 9e2007b..66c4014 100644 --- a/windows/c++/examples/h5grouptest/h5grouptest.vcproj +++ b/windows/c++/examples/h5grouptest/h5grouptest.vcproj @@ -397,48 +397,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj b/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj index 07d3b5b..8e87550 100644 --- a/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj +++ b/windows/c++/examples/h5grouptestdll/h5grouptestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/readdatatest/readdatatest.vcproj b/windows/c++/examples/readdatatest/readdatatest.vcproj index 1294387..dc575d5 100644 --- a/windows/c++/examples/readdatatest/readdatatest.vcproj +++ b/windows/c++/examples/readdatatest/readdatatest.vcproj @@ -397,48 +397,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj b/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj index b84f405..9da9b53 100644 --- a/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj +++ b/windows/c++/examples/readdatatestdll/readdatatestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/writedatatest/writedatatest.vcproj b/windows/c++/examples/writedatatest/writedatatest.vcproj index 2a8cf89..fac0c1c 100644 --- a/windows/c++/examples/writedatatest/writedatatest.vcproj +++ b/windows/c++/examples/writedatatest/writedatatest.vcproj @@ -398,48 +398,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj b/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj index cb1b009..0803e35 100644 --- a/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj +++ b/windows/c++/examples/writedatatestdll/writedatatestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/c++/test/dsets_cpp/dsets_cpp.vcproj b/windows/c++/test/dsets_cpp/dsets_cpp.vcproj index 9b968ff..7ecf8aa 100644 --- a/windows/c++/test/dsets_cpp/dsets_cpp.vcproj +++ b/windows/c++/test/dsets_cpp/dsets_cpp.vcproj @@ -399,94 +399,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/test/dsets_cppdll/dsets_cppdll.vcproj b/windows/c++/test/dsets_cppdll/dsets_cppdll.vcproj index 5c2f4aa..7d6c37b 100644 --- a/windows/c++/test/dsets_cppdll/dsets_cppdll.vcproj +++ b/windows/c++/test/dsets_cppdll/dsets_cppdll.vcproj @@ -399,94 +399,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj b/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj index 1b4b710..c795d28 100644 --- a/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj +++ b/windows/c++/test/testhdf5_cpp/testhdf5_cpp.vcproj @@ -398,508 +398,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/attributetestdll/attributetestdll.vcproj b/windows/examples/attributetestdll/attributetestdll.vcproj index ea0a36d..16c3867 100644 --- a/windows/examples/attributetestdll/attributetestdll.vcproj +++ b/windows/examples/attributetestdll/attributetestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/chunkread/chunkread.vcproj b/windows/examples/chunkread/chunkread.vcproj index 73c2fdb..e569f4e 100644 --- a/windows/examples/chunkread/chunkread.vcproj +++ b/windows/examples/chunkread/chunkread.vcproj @@ -393,46 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/chunkreaddll/chunkreaddll.vcproj b/windows/examples/chunkreaddll/chunkreaddll.vcproj index c6c1b52..fa6fecc 100644 --- a/windows/examples/chunkreaddll/chunkreaddll.vcproj +++ b/windows/examples/chunkreaddll/chunkreaddll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/compoundtest/compoundtest.vcproj b/windows/examples/compoundtest/compoundtest.vcproj index 9a64ed7..f346fd1 100644 --- a/windows/examples/compoundtest/compoundtest.vcproj +++ b/windows/examples/compoundtest/compoundtest.vcproj @@ -393,46 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/compoundtestdll/compoundtestdll.vcproj b/windows/examples/compoundtestdll/compoundtestdll.vcproj index 98e3d50..60879a8 100644 --- a/windows/examples/compoundtestdll/compoundtestdll.vcproj +++ b/windows/examples/compoundtestdll/compoundtestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/extendwritetest/extendwritetest.vcproj b/windows/examples/extendwritetest/extendwritetest.vcproj index 498ef97..0a6c711 100644 --- a/windows/examples/extendwritetest/extendwritetest.vcproj +++ b/windows/examples/extendwritetest/extendwritetest.vcproj @@ -393,46 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/extendwritetestdll/extendwritetestdll.vcproj b/windows/examples/extendwritetestdll/extendwritetestdll.vcproj index 6f2019b..e071136 100644 --- a/windows/examples/extendwritetestdll/extendwritetestdll.vcproj +++ b/windows/examples/extendwritetestdll/extendwritetestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/grouptest/grouptest.vcproj b/windows/examples/grouptest/grouptest.vcproj index 24d5926..3d45dc5 100644 --- a/windows/examples/grouptest/grouptest.vcproj +++ b/windows/examples/grouptest/grouptest.vcproj @@ -393,46 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/grouptestdll/grouptestdll.vcproj b/windows/examples/grouptestdll/grouptestdll.vcproj index e2edd07..8984767 100644 --- a/windows/examples/grouptestdll/grouptestdll.vcproj +++ b/windows/examples/grouptestdll/grouptestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/intermgrouptest/intermgrouptest.vcproj b/windows/examples/intermgrouptest/intermgrouptest.vcproj index a7db68e..f44db41 100644 --- a/windows/examples/intermgrouptest/intermgrouptest.vcproj +++ b/windows/examples/intermgrouptest/intermgrouptest.vcproj @@ -399,48 +399,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/examples/readtestdll/readtestdll.vcproj b/windows/examples/readtestdll/readtestdll.vcproj index 2328206..ce76191 100644 --- a/windows/examples/readtestdll/readtestdll.vcproj +++ b/windows/examples/readtestdll/readtestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/selectest/selectest.vcproj b/windows/examples/selectest/selectest.vcproj index f44c46f..58ea0bb 100644 --- a/windows/examples/selectest/selectest.vcproj +++ b/windows/examples/selectest/selectest.vcproj @@ -393,46 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/selectestdll/selectestdll.vcproj b/windows/examples/selectestdll/selectestdll.vcproj index fcb58de..9c8355d 100644 --- a/windows/examples/selectestdll/selectestdll.vcproj +++ b/windows/examples/selectestdll/selectestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/writetest/writetest.vcproj b/windows/examples/writetest/writetest.vcproj index 729ca30..bf25cd2 100644 --- a/windows/examples/writetest/writetest.vcproj +++ b/windows/examples/writetest/writetest.vcproj @@ -393,46 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/examples/writetestdll/writetestdll.vcproj b/windows/examples/writetestdll/writetestdll.vcproj index 4f3fc94..54b7149 100644 --- a/windows/examples/writetestdll/writetestdll.vcproj +++ b/windows/examples/writetestdll/writetestdll.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj b/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj index 4faafe4..4e9b47f 100644 --- a/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj +++ b/windows/fortran/test/libtest_cstubdll/libtest_cstubdll.vcproj @@ -400,94 +400,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj b/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj index 192ea03..883ce59 100644 --- a/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj +++ b/windows/hl/c++/test/hl_test_table_cppdll/hl_test_table_cppdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_ds1/ex_ds1.vcproj b/windows/hl/examples/ex_ds1/ex_ds1.vcproj index 2a5dd1a..fc86153 100644 --- a/windows/hl/examples/ex_ds1/ex_ds1.vcproj +++ b/windows/hl/examples/ex_ds1/ex_ds1.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj b/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj index 3c09612..ba345ce 100644 --- a/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj +++ b/windows/hl/examples/ex_ds1dll/ex_ds1dll.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_image1/ex_image1.vcproj b/windows/hl/examples/ex_image1/ex_image1.vcproj index b0fc124..2c0c393 100644 --- a/windows/hl/examples/ex_image1/ex_image1.vcproj +++ b/windows/hl/examples/ex_image1/ex_image1.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj b/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj index 2ae5f48..6d1f32a 100644 --- a/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj +++ b/windows/hl/examples/ex_image1dll/ex_image1dll.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite1/ex_lite1.vcproj b/windows/hl/examples/ex_lite1/ex_lite1.vcproj index 8561dc1..fe3d458 100644 --- a/windows/hl/examples/ex_lite1/ex_lite1.vcproj +++ b/windows/hl/examples/ex_lite1/ex_lite1.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj b/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj index bbc8748..a1d744f 100644 --- a/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj +++ b/windows/hl/examples/ex_lite1dll/ex_lite1dll.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table01/ex_table01.vcproj b/windows/hl/examples/ex_table01/ex_table01.vcproj index 9321c73..f5cf779 100644 --- a/windows/hl/examples/ex_table01/ex_table01.vcproj +++ b/windows/hl/examples/ex_table01/ex_table01.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj b/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj index 4fc14da..a70e5c4 100644 --- a/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj +++ b/windows/hl/examples/ex_table01dll/ex_table01dll.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj b/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj index 0ccd825..8dad97f 100644 --- a/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj +++ b/windows/hl/examples/ptExampleFL/ptExampleFL.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj b/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj index 1a99061..37f73df 100644 --- a/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj +++ b/windows/hl/examples/ptExampleFLdll/ptExampleFLdll.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_ds/hl_test_ds.vcproj b/windows/hl/test/hl_test_ds/hl_test_ds.vcproj index c9221a4..25854e3 100644 --- a/windows/hl/test/hl_test_ds/hl_test_ds.vcproj +++ b/windows/hl/test/hl_test_ds/hl_test_ds.vcproj @@ -396,48 +396,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj b/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj index bed1829..e6e7f6c 100644 --- a/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj +++ b/windows/hl/test/hl_test_imagedll/hl_test_imagedll.vcproj @@ -387,67 +387,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/hl/test/hl_test_lite/hl_test_lite.vcproj b/windows/hl/test/hl_test_lite/hl_test_lite.vcproj index 4f62982..8841f65 100644 --- a/windows/hl/test/hl_test_lite/hl_test_lite.vcproj +++ b/windows/hl/test/hl_test_lite/hl_test_lite.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj b/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj index 94a4fff..5074d2d 100644 --- a/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj +++ b/windows/hl/test/hl_test_litedll/hl_test_litedll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_packet/hl_test_packet.vcproj b/windows/hl/test/hl_test_packet/hl_test_packet.vcproj index 6d3d76c..71e45de 100644 --- a/windows/hl/test/hl_test_packet/hl_test_packet.vcproj +++ b/windows/hl/test/hl_test_packet/hl_test_packet.vcproj @@ -396,60 +396,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj b/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj index 752e3d3..433e436 100644 --- a/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj +++ b/windows/hl/test/hl_test_packetdll/hl_test_packetdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_table/hl_test_table.vcproj b/windows/hl/test/hl_test_table/hl_test_table.vcproj index eb63c2a..b42daa7 100644 --- a/windows/hl/test/hl_test_table/hl_test_table.vcproj +++ b/windows/hl/test/hl_test_table/hl_test_table.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj b/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj index a5aac31..c117cc4 100644 --- a/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj +++ b/windows/hl/test/hl_test_tabledll/hl_test_tabledll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconv/gif2h5.vcproj b/windows/hl/tools/gifconv/gif2h5.vcproj index 2e17a65..d01b269 100644 --- a/windows/hl/tools/gifconv/gif2h5.vcproj +++ b/windows/hl/tools/gifconv/gif2h5.vcproj @@ -398,244 +398,24 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconv/h52gif.vcproj b/windows/hl/tools/gifconv/h52gif.vcproj index 36bdb12..3f42ed5 100644 --- a/windows/hl/tools/gifconv/h52gif.vcproj +++ b/windows/hl/tools/gifconv/h52gif.vcproj @@ -398,106 +398,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconvdll/gif2h5dll.vcproj b/windows/hl/tools/gifconvdll/gif2h5dll.vcproj index 6b5fe77..4b285d1 100644 --- a/windows/hl/tools/gifconvdll/gif2h5dll.vcproj +++ b/windows/hl/tools/gifconvdll/gif2h5dll.vcproj @@ -390,244 +390,24 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/hl/tools/gifconvdll/h52gifdll.vcproj b/windows/hl/tools/gifconvdll/h52gifdll.vcproj index 01f9f79..2bef316 100644 --- a/windows/hl/tools/gifconvdll/h52gifdll.vcproj +++ b/windows/hl/tools/gifconvdll/h52gifdll.vcproj @@ -390,106 +390,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/misc/typegen/h5match_types/h5match_types.vcproj b/windows/misc/typegen/h5match_types/h5match_types.vcproj index c95b4ae..12d2dbc 100644 --- a/windows/misc/typegen/h5match_types/h5match_types.vcproj +++ b/windows/misc/typegen/h5match_types/h5match_types.vcproj @@ -396,58 +396,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/misc/typegen/h5tinit/h5tinit.vcproj b/windows/misc/typegen/h5tinit/h5tinit.vcproj index de79a1c..3bb725b 100644 --- a/windows/misc/typegen/h5tinit/h5tinit.vcproj +++ b/windows/misc/typegen/h5tinit/h5tinit.vcproj @@ -394,56 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/perform/perf_serial/perf_serial.vcproj b/windows/perform/perf_serial/perf_serial.vcproj index 6826366..2d614f5 100644 --- a/windows/perform/perf_serial/perf_serial.vcproj +++ b/windows/perform/perf_serial/perf_serial.vcproj @@ -393,134 +393,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/perform/perf_serialdll/perf_serialdll.vcproj b/windows/perform/perf_serialdll/perf_serialdll.vcproj index 309afbb..244c758 100644 --- a/windows/perform/perf_serialdll/perf_serialdll.vcproj +++ b/windows/perform/perf_serialdll/perf_serialdll.vcproj @@ -394,134 +394,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/proj/hdf5/hdf5.vcproj b/windows/proj/hdf5/hdf5.vcproj index d2b0b18..779b05c 100644 --- a/windows/proj/hdf5/hdf5.vcproj +++ b/windows/proj/hdf5/hdf5.vcproj @@ -311,954 +311,90 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -9407,10 +1442,6 @@ > - - @@ -9499,6 +1530,10 @@ > + + diff --git a/windows/proj/hdf5_cpp/hdf5_cpp.vcproj b/windows/proj/hdf5_cpp/hdf5_cpp.vcproj index 4fee06b..61b04de 100644 --- a/windows/proj/hdf5_cpp/hdf5_cpp.vcproj +++ b/windows/proj/hdf5_cpp/hdf5_cpp.vcproj @@ -327,1198 +327,106 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/windows/test/app_ref/app_ref.vcproj b/windows/test/app_ref/app_ref.vcproj index 96c58ad..52284d1 100644 --- a/windows/test/app_ref/app_ref.vcproj +++ b/windows/test/app_ref/app_ref.vcproj @@ -336,28 +336,10 @@ - - - - - - - - + diff --git a/windows/test/app_refdll/app_refdll.vcproj b/windows/test/app_refdll/app_refdll.vcproj index 480f29f..8d17f0a 100644 --- a/windows/test/app_refdll/app_refdll.vcproj +++ b/windows/test/app_refdll/app_refdll.vcproj @@ -336,28 +336,10 @@ - - - - - - - - + diff --git a/windows/test/big/big.vcproj b/windows/test/big/big.vcproj index ac6e79f..5b48027 100644 --- a/windows/test/big/big.vcproj +++ b/windows/test/big/big.vcproj @@ -394,52 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/bigdll/bigdll.vcproj b/windows/test/bigdll/bigdll.vcproj index 037ba5d..98f0bf4 100644 --- a/windows/test/bigdll/bigdll.vcproj +++ b/windows/test/bigdll/bigdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/bittests/bittests.vcproj b/windows/test/bittests/bittests.vcproj index 0bf0ac0..788f2e2 100644 --- a/windows/test/bittests/bittests.vcproj +++ b/windows/test/bittests/bittests.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/bittestsdll/bittestsdll.vcproj b/windows/test/bittestsdll/bittestsdll.vcproj index cdb3a5a..f998a1c 100644 --- a/windows/test/bittestsdll/bittestsdll.vcproj +++ b/windows/test/bittestsdll/bittestsdll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/test/btree2/btree2.vcproj b/windows/test/btree2/btree2.vcproj index 2e8c305..b6b25ca 100644 --- a/windows/test/btree2/btree2.vcproj +++ b/windows/test/btree2/btree2.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/btree2dll/btree2dll.vcproj b/windows/test/btree2dll/btree2dll.vcproj index 06df2ee..13c913b 100644 --- a/windows/test/btree2dll/btree2dll.vcproj +++ b/windows/test/btree2dll/btree2dll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/cache/cache.vcproj b/windows/test/cache/cache.vcproj index 16770d7..c4aea18 100644 --- a/windows/test/cache/cache.vcproj +++ b/windows/test/cache/cache.vcproj @@ -394,94 +394,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cache_api/cache_api.vcproj b/windows/test/cache_api/cache_api.vcproj index f0e56a5..509e998 100644 --- a/windows/test/cache_api/cache_api.vcproj +++ b/windows/test/cache_api/cache_api.vcproj @@ -398,106 +398,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cache_apidll/cache_apidll.vcproj b/windows/test/cache_apidll/cache_apidll.vcproj index 1b13d6d..2e794fd 100644 --- a/windows/test/cache_apidll/cache_apidll.vcproj +++ b/windows/test/cache_apidll/cache_apidll.vcproj @@ -394,106 +394,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/cachedll/cachedll.vcproj b/windows/test/cachedll/cachedll.vcproj index 33afa49..75e7e9e 100644 --- a/windows/test/cachedll/cachedll.vcproj +++ b/windows/test/cachedll/cachedll.vcproj @@ -390,94 +390,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/chunk/chunk.vcproj b/windows/test/chunk/chunk.vcproj index 0db8e11..fc1f032 100644 --- a/windows/test/chunk/chunk.vcproj +++ b/windows/test/chunk/chunk.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/chunk_info/chunk_info.vcproj b/windows/test/chunk_info/chunk_info.vcproj index 95ec24b..332fd1f 100644 --- a/windows/test/chunk_info/chunk_info.vcproj +++ b/windows/test/chunk_info/chunk_info.vcproj @@ -336,28 +336,10 @@ - - - - - - - - + diff --git a/windows/test/chunk_infodll/chunk_infodll.vcproj b/windows/test/chunk_infodll/chunk_infodll.vcproj index 097cb43..32a2635 100644 --- a/windows/test/chunk_infodll/chunk_infodll.vcproj +++ b/windows/test/chunk_infodll/chunk_infodll.vcproj @@ -336,28 +336,10 @@ - - - - - - - - + diff --git a/windows/test/chunkdll/chunkdll.vcproj b/windows/test/chunkdll/chunkdll.vcproj index 45e84c5..d8b9924 100644 --- a/windows/test/chunkdll/chunkdll.vcproj +++ b/windows/test/chunkdll/chunkdll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/test/cmpd_dset/cmpd_dset.vcproj b/windows/test/cmpd_dset/cmpd_dset.vcproj index 191c439..1901717 100644 --- a/windows/test/cmpd_dset/cmpd_dset.vcproj +++ b/windows/test/cmpd_dset/cmpd_dset.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj b/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj index 91cab97..62a2dc02 100644 --- a/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj +++ b/windows/test/cmpd_dsetdll/cmpd_dsetdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/cross_read/cross_read.vcproj b/windows/test/cross_read/cross_read.vcproj index 49c1f96..4498c8c 100644 --- a/windows/test/cross_read/cross_read.vcproj +++ b/windows/test/cross_read/cross_read.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/cross_readdll/cross_readdll.vcproj b/windows/test/cross_readdll/cross_readdll.vcproj index 70bafab..9f36be3 100644 --- a/windows/test/cross_readdll/cross_readdll.vcproj +++ b/windows/test/cross_readdll/cross_readdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/dangle/dangle.vcproj b/windows/test/dangle/dangle.vcproj index e4c7cd892..8d6b493 100644 --- a/windows/test/dangle/dangle.vcproj +++ b/windows/test/dangle/dangle.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dangledll/dangledll.vcproj b/windows/test/dangledll/dangledll.vcproj index 0425d31..45508c9 100644 --- a/windows/test/dangledll/dangledll.vcproj +++ b/windows/test/dangledll/dangledll.vcproj @@ -386,48 +386,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dsets/dsets.vcproj b/windows/test/dsets/dsets.vcproj index 8c02b7d..b95c27d 100644 --- a/windows/test/dsets/dsets.vcproj +++ b/windows/test/dsets/dsets.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dsetsdll/dsetsdll.vcproj b/windows/test/dsetsdll/dsetsdll.vcproj index e28260c..ba5330a 100644 --- a/windows/test/dsetsdll/dsetsdll.vcproj +++ b/windows/test/dsetsdll/dsetsdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dt_arith/dt_arith.vcproj b/windows/test/dt_arith/dt_arith.vcproj index 6b7406f..339d1d0 100644 --- a/windows/test/dt_arith/dt_arith.vcproj +++ b/windows/test/dt_arith/dt_arith.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/dt_arithdll/dt_arithdll.vcproj b/windows/test/dt_arithdll/dt_arithdll.vcproj index 090c2fb..d1aa496 100644 --- a/windows/test/dt_arithdll/dt_arithdll.vcproj +++ b/windows/test/dt_arithdll/dt_arithdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/dtransform/dtransform.vcproj b/windows/test/dtransform/dtransform.vcproj index 9a80ea0..65df3a9 100644 --- a/windows/test/dtransform/dtransform.vcproj +++ b/windows/test/dtransform/dtransform.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dtransformdll/dtransformdll.vcproj b/windows/test/dtransformdll/dtransformdll.vcproj index bddcdcf..9a39135 100644 --- a/windows/test/dtransformdll/dtransformdll.vcproj +++ b/windows/test/dtransformdll/dtransformdll.vcproj @@ -386,48 +386,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dtypes/dtypes.vcproj b/windows/test/dtypes/dtypes.vcproj index 2c1f08e..f794445 100644 --- a/windows/test/dtypes/dtypes.vcproj +++ b/windows/test/dtypes/dtypes.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/dtypesdll/dtypesdll.vcproj b/windows/test/dtypesdll/dtypesdll.vcproj index 17a3445..04b2935 100644 --- a/windows/test/dtypesdll/dtypesdll.vcproj +++ b/windows/test/dtypesdll/dtypesdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/earray/earray.vcproj b/windows/test/earray/earray.vcproj index 2af3404..986c46b 100644 --- a/windows/test/earray/earray.vcproj +++ b/windows/test/earray/earray.vcproj @@ -332,28 +332,10 @@ - - - - - - - - + diff --git a/windows/test/earraydll/earraydll.vcproj b/windows/test/earraydll/earraydll.vcproj index 8855c9a..faca079 100644 --- a/windows/test/earraydll/earraydll.vcproj +++ b/windows/test/earraydll/earraydll.vcproj @@ -332,28 +332,10 @@ - - - - - - - - + diff --git a/windows/test/enum/enum.vcproj b/windows/test/enum/enum.vcproj index 1bd458a..f2f9251 100644 --- a/windows/test/enum/enum.vcproj +++ b/windows/test/enum/enum.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/enumdll/enumdll.vcproj b/windows/test/enumdll/enumdll.vcproj index ca772fd..d05b3ba 100644 --- a/windows/test/enumdll/enumdll.vcproj +++ b/windows/test/enumdll/enumdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/err_compat/err_compat.vcproj b/windows/test/err_compat/err_compat.vcproj index 06223ab..badc2cd 100644 --- a/windows/test/err_compat/err_compat.vcproj +++ b/windows/test/err_compat/err_compat.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/err_compatdll/err_compatdll.vcproj b/windows/test/err_compatdll/err_compatdll.vcproj index a8faee3..b1d4995 100644 --- a/windows/test/err_compatdll/err_compatdll.vcproj +++ b/windows/test/err_compatdll/err_compatdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/error_test/error_test.vcproj b/windows/test/error_test/error_test.vcproj index e208dd6..75d802c 100644 --- a/windows/test/error_test/error_test.vcproj +++ b/windows/test/error_test/error_test.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/error_testdll/error_testdll.vcproj b/windows/test/error_testdll/error_testdll.vcproj index b3dab94..b1fd740 100644 --- a/windows/test/error_testdll/error_testdll.vcproj +++ b/windows/test/error_testdll/error_testdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/extend/extend.vcproj b/windows/test/extend/extend.vcproj index c54054c..0885791 100644 --- a/windows/test/extend/extend.vcproj +++ b/windows/test/extend/extend.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/extenddll/extenddll.vcproj b/windows/test/extenddll/extenddll.vcproj index 64ca1ae..665cdf0 100644 --- a/windows/test/extenddll/extenddll.vcproj +++ b/windows/test/extenddll/extenddll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/external/external.vcproj b/windows/test/external/external.vcproj index deb8c20..19dbb49 100644 --- a/windows/test/external/external.vcproj +++ b/windows/test/external/external.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/externaldll/externaldll.vcproj b/windows/test/externaldll/externaldll.vcproj index 8c6445d..4095427 100644 --- a/windows/test/externaldll/externaldll.vcproj +++ b/windows/test/externaldll/externaldll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/fheap/fheap.vcproj b/windows/test/fheap/fheap.vcproj index 9bed19a..7332814 100644 --- a/windows/test/fheap/fheap.vcproj +++ b/windows/test/fheap/fheap.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/fheapdll/fheapdll.vcproj b/windows/test/fheapdll/fheapdll.vcproj index b89a2b6..6da1230 100644 --- a/windows/test/fheapdll/fheapdll.vcproj +++ b/windows/test/fheapdll/fheapdll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/fillval/fillval.vcproj b/windows/test/fillval/fillval.vcproj index 74ef944..eb07dc6 100644 --- a/windows/test/fillval/fillval.vcproj +++ b/windows/test/fillval/fillval.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/fillvaldll/fillvaldll.vcproj b/windows/test/fillvaldll/fillvaldll.vcproj index 726a08b..d6a71a9 100644 --- a/windows/test/fillvaldll/fillvaldll.vcproj +++ b/windows/test/fillvaldll/fillvaldll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/flush1/flush1.vcproj b/windows/test/flush1/flush1.vcproj index d259e44..4daa45b 100644 --- a/windows/test/flush1/flush1.vcproj +++ b/windows/test/flush1/flush1.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/flush1dll/flush1dll.vcproj b/windows/test/flush1dll/flush1dll.vcproj index bf2e906..a0adb40 100644 --- a/windows/test/flush1dll/flush1dll.vcproj +++ b/windows/test/flush1dll/flush1dll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/flush2/flush2.vcproj b/windows/test/flush2/flush2.vcproj index 3505f03..211f8e1 100644 --- a/windows/test/flush2/flush2.vcproj +++ b/windows/test/flush2/flush2.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/flush2dll/flush2dll.vcproj b/windows/test/flush2dll/flush2dll.vcproj index ad093d0..d6b4cf6 100644 --- a/windows/test/flush2dll/flush2dll.vcproj +++ b/windows/test/flush2dll/flush2dll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/freespace/freespace.vcproj b/windows/test/freespace/freespace.vcproj index 4494a73..47a8dd1 100644 --- a/windows/test/freespace/freespace.vcproj +++ b/windows/test/freespace/freespace.vcproj @@ -332,28 +332,10 @@ - - - - - - - - + diff --git a/windows/test/freespacedll/freespacedll.vcproj b/windows/test/freespacedll/freespacedll.vcproj index 25c19ff..de935d9 100644 --- a/windows/test/freespacedll/freespacedll.vcproj +++ b/windows/test/freespacedll/freespacedll.vcproj @@ -332,28 +332,10 @@ - - - - - - - - + diff --git a/windows/test/getname/getname.vcproj b/windows/test/getname/getname.vcproj index cccab0d..87634d6 100644 --- a/windows/test/getname/getname.vcproj +++ b/windows/test/getname/getname.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/getnamedll/getnamedll.vcproj b/windows/test/getnamedll/getnamedll.vcproj index 1b1c0d5..72f7701 100644 --- a/windows/test/getnamedll/getnamedll.vcproj +++ b/windows/test/getnamedll/getnamedll.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/getub/getub.vcproj b/windows/test/getub/getub.vcproj index ed36571..3229f6f 100644 --- a/windows/test/getub/getub.vcproj +++ b/windows/test/getub/getub.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/gheap/gheap.vcproj b/windows/test/gheap/gheap.vcproj index ea9d6c8..45413e9 100644 --- a/windows/test/gheap/gheap.vcproj +++ b/windows/test/gheap/gheap.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/gheapdll/gheapdll.vcproj b/windows/test/gheapdll/gheapdll.vcproj index edcb78b..bf1d5a4 100644 --- a/windows/test/gheapdll/gheapdll.vcproj +++ b/windows/test/gheapdll/gheapdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/hyperslab/hyperslab.vcproj b/windows/test/hyperslab/hyperslab.vcproj index 69ef87e..c175e20 100644 --- a/windows/test/hyperslab/hyperslab.vcproj +++ b/windows/test/hyperslab/hyperslab.vcproj @@ -392,50 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/hyperslabdll/hyperslabdll.vcproj b/windows/test/hyperslabdll/hyperslabdll.vcproj index a798cdc..53d7c76 100644 --- a/windows/test/hyperslabdll/hyperslabdll.vcproj +++ b/windows/test/hyperslabdll/hyperslabdll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/test/iopipe/iopipe.vcproj b/windows/test/iopipe/iopipe.vcproj index 7622357..1c36adc 100644 --- a/windows/test/iopipe/iopipe.vcproj +++ b/windows/test/iopipe/iopipe.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/iopipedll/iopipedll.vcproj b/windows/test/iopipedll/iopipedll.vcproj index f283c88..0327d5b 100644 --- a/windows/test/iopipedll/iopipedll.vcproj +++ b/windows/test/iopipedll/iopipedll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/test/istore/istore.vcproj b/windows/test/istore/istore.vcproj index 57488a9..3aeeaf9 100644 --- a/windows/test/istore/istore.vcproj +++ b/windows/test/istore/istore.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/istoredll/istoredll.vcproj b/windows/test/istoredll/istoredll.vcproj index 7f56350..8d21753 100644 --- a/windows/test/istoredll/istoredll.vcproj +++ b/windows/test/istoredll/istoredll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/lheap/lheap.vcproj b/windows/test/lheap/lheap.vcproj index 59f0ad5..ed33cd6 100644 --- a/windows/test/lheap/lheap.vcproj +++ b/windows/test/lheap/lheap.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/lheapdll/lheapdll.vcproj b/windows/test/lheapdll/lheapdll.vcproj index 474649f..d942fd5 100644 --- a/windows/test/lheapdll/lheapdll.vcproj +++ b/windows/test/lheapdll/lheapdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/libtest/libtest.vcproj b/windows/test/libtest/libtest.vcproj index a0fd995..76c29f0 100644 --- a/windows/test/libtest/libtest.vcproj +++ b/windows/test/libtest/libtest.vcproj @@ -327,117 +327,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/libtestdll/libtestdll.vcproj b/windows/test/libtestdll/libtestdll.vcproj index 3067e14..41e3dd2 100644 --- a/windows/test/libtestdll/libtestdll.vcproj +++ b/windows/test/libtestdll/libtestdll.vcproj @@ -412,106 +412,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/links/links.vcproj b/windows/test/links/links.vcproj index 13ce8a6..4e1c849 100644 --- a/windows/test/links/links.vcproj +++ b/windows/test/links/links.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/linksdll/linksdll.vcproj b/windows/test/linksdll/linksdll.vcproj index 30e1ac1..bb20897 100644 --- a/windows/test/linksdll/linksdll.vcproj +++ b/windows/test/linksdll/linksdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/mf/mf.vcproj b/windows/test/mf/mf.vcproj index 1055f35..ae7ca56 100644 --- a/windows/test/mf/mf.vcproj +++ b/windows/test/mf/mf.vcproj @@ -332,28 +332,10 @@ - - - - - - - - + diff --git a/windows/test/mfdll/mfdll.vcproj b/windows/test/mfdll/mfdll.vcproj index f890f09..8806822 100644 --- a/windows/test/mfdll/mfdll.vcproj +++ b/windows/test/mfdll/mfdll.vcproj @@ -332,28 +332,10 @@ - - - - - - - - + diff --git a/windows/test/mount/mount.vcproj b/windows/test/mount/mount.vcproj index c097e7a..96b09ab 100644 --- a/windows/test/mount/mount.vcproj +++ b/windows/test/mount/mount.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/mountdll/mountdll.vcproj b/windows/test/mountdll/mountdll.vcproj index 71f6466..6fa9330 100644 --- a/windows/test/mountdll/mountdll.vcproj +++ b/windows/test/mountdll/mountdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/mtime/mtime.vcproj b/windows/test/mtime/mtime.vcproj index 1178cbb..baa7de3 100644 --- a/windows/test/mtime/mtime.vcproj +++ b/windows/test/mtime/mtime.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/mtimedll/mtimedll.vcproj b/windows/test/mtimedll/mtimedll.vcproj index b4aff47..9e25e22 100644 --- a/windows/test/mtimedll/mtimedll.vcproj +++ b/windows/test/mtimedll/mtimedll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/ntypes/ntypes.vcproj b/windows/test/ntypes/ntypes.vcproj index 1289bba..62f27cc 100644 --- a/windows/test/ntypes/ntypes.vcproj +++ b/windows/test/ntypes/ntypes.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/ntypesdll/ntypesdll.vcproj b/windows/test/ntypesdll/ntypesdll.vcproj index 29cb440..e38bf03 100644 --- a/windows/test/ntypesdll/ntypesdll.vcproj +++ b/windows/test/ntypesdll/ntypesdll.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/objcopy/objcopy.vcproj b/windows/test/objcopy/objcopy.vcproj index 3a1e2e5..58b39e9 100644 --- a/windows/test/objcopy/objcopy.vcproj +++ b/windows/test/objcopy/objcopy.vcproj @@ -396,60 +396,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/objcopydll/objcopydll.vcproj b/windows/test/objcopydll/objcopydll.vcproj index 2cbf3c1..7756ca4 100644 --- a/windows/test/objcopydll/objcopydll.vcproj +++ b/windows/test/objcopydll/objcopydll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/ohdr/ohdr.vcproj b/windows/test/ohdr/ohdr.vcproj index de92f41..004452d 100644 --- a/windows/test/ohdr/ohdr.vcproj +++ b/windows/test/ohdr/ohdr.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/ohdrdll/ohdrdll.vcproj b/windows/test/ohdrdll/ohdrdll.vcproj index 2f09aa2..bc2947e 100644 --- a/windows/test/ohdrdll/ohdrdll.vcproj +++ b/windows/test/ohdrdll/ohdrdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/overhead/overhead.vcproj b/windows/test/overhead/overhead.vcproj index 751f50f..b797467 100644 --- a/windows/test/overhead/overhead.vcproj +++ b/windows/test/overhead/overhead.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/overheaddll/overheaddll.vcproj b/windows/test/overheaddll/overheaddll.vcproj index 0b43f96..9b8ac8e 100644 --- a/windows/test/overheaddll/overheaddll.vcproj +++ b/windows/test/overheaddll/overheaddll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/test/pool/pool.vcproj b/windows/test/pool/pool.vcproj index ee12a83..47e4922 100644 --- a/windows/test/pool/pool.vcproj +++ b/windows/test/pool/pool.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/pooldll/pooldll.vcproj b/windows/test/pooldll/pooldll.vcproj index 309ed1c..70e2516 100644 --- a/windows/test/pooldll/pooldll.vcproj +++ b/windows/test/pooldll/pooldll.vcproj @@ -394,60 +394,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/reserved/reserved.vcproj b/windows/test/reserved/reserved.vcproj index 7d1387b..65ac4a8 100644 --- a/windows/test/reserved/reserved.vcproj +++ b/windows/test/reserved/reserved.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/test/reserveddll/reserveddll.vcproj b/windows/test/reserveddll/reserveddll.vcproj index ae66c6a..d49d97c 100644 --- a/windows/test/reserveddll/reserveddll.vcproj +++ b/windows/test/reserveddll/reserveddll.vcproj @@ -390,48 +390,6 @@ - - - - - - - - - - - - diff --git a/windows/test/set_extent/set_extent.vcproj b/windows/test/set_extent/set_extent.vcproj index e5a636a..4b95278 100644 --- a/windows/test/set_extent/set_extent.vcproj +++ b/windows/test/set_extent/set_extent.vcproj @@ -393,48 +393,6 @@ - - - - - - - - - - - - diff --git a/windows/test/set_extentdll/set_extentdll.vcproj b/windows/test/set_extentdll/set_extentdll.vcproj index fe3ab55..d1f0075 100644 --- a/windows/test/set_extentdll/set_extentdll.vcproj +++ b/windows/test/set_extentdll/set_extentdll.vcproj @@ -390,48 +390,6 @@ - - - - - - - - - - - - diff --git a/windows/test/stab/stab.vcproj b/windows/test/stab/stab.vcproj index 2f239b0..cc024ac 100644 --- a/windows/test/stab/stab.vcproj +++ b/windows/test/stab/stab.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/stabdll/stabdll.vcproj b/windows/test/stabdll/stabdll.vcproj index 5ba7a74..26f927e 100644 --- a/windows/test/stabdll/stabdll.vcproj +++ b/windows/test/stabdll/stabdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/tellub/tellub.vcproj b/windows/test/tellub/tellub.vcproj index 37e07a7..5f62717 100644 --- a/windows/test/tellub/tellub.vcproj +++ b/windows/test/tellub/tellub.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/testhdf5/testhdf5.vcproj b/windows/test/testhdf5/testhdf5.vcproj index f6c6d3a..8981304 100644 --- a/windows/test/testhdf5/testhdf5.vcproj +++ b/windows/test/testhdf5/testhdf5.vcproj @@ -392,1106 +392,102 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/testhdf5dll/testhdf5dll.vcproj b/windows/test/testhdf5dll/testhdf5dll.vcproj index ec5c2be..6291c6c 100644 --- a/windows/test/testhdf5dll/testhdf5dll.vcproj +++ b/windows/test/testhdf5dll/testhdf5dll.vcproj @@ -384,178 +384,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/ttsafedll/ttsafedll.vcproj b/windows/test/ttsafedll/ttsafedll.vcproj index 8781e90..cd4d98f 100644 --- a/windows/test/ttsafedll/ttsafedll.vcproj +++ b/windows/test/ttsafedll/ttsafedll.vcproj @@ -394,244 +394,24 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/test/unlink/unlink.vcproj b/windows/test/unlink/unlink.vcproj index ff9c239..a808bb3 100644 --- a/windows/test/unlink/unlink.vcproj +++ b/windows/test/unlink/unlink.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/test/unlinkdll/unlinkdll.vcproj b/windows/test/unlinkdll/unlinkdll.vcproj index f2d7556..3d0ae09 100644 --- a/windows/test/unlinkdll/unlinkdll.vcproj +++ b/windows/test/unlinkdll/unlinkdll.vcproj @@ -388,46 +388,6 @@ - - - - - - - - - - - - diff --git a/windows/test/vfd/vfd.vcproj b/windows/test/vfd/vfd.vcproj index d26fad7..eb397e3 100644 --- a/windows/test/vfd/vfd.vcproj +++ b/windows/test/vfd/vfd.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/test/vfddll/vfddll.vcproj b/windows/test/vfddll/vfddll.vcproj index 003fe84..ad50e46 100644 --- a/windows/test/vfddll/vfddll.vcproj +++ b/windows/test/vfddll/vfddll.vcproj @@ -398,60 +398,8 @@ - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5copy/h5copy.vcproj b/windows/tools/h5copy/h5copy.vcproj index 5c261ea..bc0a7cf 100644 --- a/windows/tools/h5copy/h5copy.vcproj +++ b/windows/tools/h5copy/h5copy.vcproj @@ -391,67 +391,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/h5debug/h5debug.vcproj b/windows/tools/h5debug/h5debug.vcproj index e5b7e88..8a3ad7a 100644 --- a/windows/tools/h5debug/h5debug.vcproj +++ b/windows/tools/h5debug/h5debug.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5debugdll/h5debugdll.vcproj b/windows/tools/h5debugdll/h5debugdll.vcproj index 0241df6..2fe2041 100644 --- a/windows/tools/h5debugdll/h5debugdll.vcproj +++ b/windows/tools/h5debugdll/h5debugdll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5diff/h5diff.vcproj b/windows/tools/h5diff/h5diff.vcproj index 868c28f..038f651 100644 --- a/windows/tools/h5diff/h5diff.vcproj +++ b/windows/tools/h5diff/h5diff.vcproj @@ -396,98 +396,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5diffdll/h5diffdll.vcproj b/windows/tools/h5diffdll/h5diffdll.vcproj index cc98daf..6310151 100644 --- a/windows/tools/h5diffdll/h5diffdll.vcproj +++ b/windows/tools/h5diffdll/h5diffdll.vcproj @@ -386,94 +386,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5dump/h5dump.vcproj b/windows/tools/h5dump/h5dump.vcproj index ebd07a4..38e38c3 100644 --- a/windows/tools/h5dump/h5dump.vcproj +++ b/windows/tools/h5dump/h5dump.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5dumpdll/h5dumpdll.vcproj b/windows/tools/h5dumpdll/h5dumpdll.vcproj index 4e31dca..db20eef 100644 --- a/windows/tools/h5dumpdll/h5dumpdll.vcproj +++ b/windows/tools/h5dumpdll/h5dumpdll.vcproj @@ -386,46 +386,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5import/h5import.vcproj b/windows/tools/h5import/h5import.vcproj index aba033c..c50e224 100644 --- a/windows/tools/h5import/h5import.vcproj +++ b/windows/tools/h5import/h5import.vcproj @@ -386,46 +386,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5importdll/h5importdll.vcproj b/windows/tools/h5importdll/h5importdll.vcproj index 5747032..175fe2d 100644 --- a/windows/tools/h5importdll/h5importdll.vcproj +++ b/windows/tools/h5importdll/h5importdll.vcproj @@ -378,46 +378,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5jam/h5jam.vcproj b/windows/tools/h5jam/h5jam.vcproj index f7f3a72..c27cd36 100644 --- a/windows/tools/h5jam/h5jam.vcproj +++ b/windows/tools/h5jam/h5jam.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5ls/h5ls.vcproj b/windows/tools/h5ls/h5ls.vcproj index 6c7ce9a..d843ba5 100644 --- a/windows/tools/h5ls/h5ls.vcproj +++ b/windows/tools/h5ls/h5ls.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5lsdll/h5lsdll.vcproj b/windows/tools/h5lsdll/h5lsdll.vcproj index 1b18c12..f6f280e 100644 --- a/windows/tools/h5lsdll/h5lsdll.vcproj +++ b/windows/tools/h5lsdll/h5lsdll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5mkgrp/h5mkgrp.vcproj b/windows/tools/h5mkgrp/h5mkgrp.vcproj index 57798f7..729ad04 100644 --- a/windows/tools/h5mkgrp/h5mkgrp.vcproj +++ b/windows/tools/h5mkgrp/h5mkgrp.vcproj @@ -387,67 +387,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/h5repack/h5repack.vcproj b/windows/tools/h5repack/h5repack.vcproj index 185af79..d251153 100644 --- a/windows/tools/h5repack/h5repack.vcproj +++ b/windows/tools/h5repack/h5repack.vcproj @@ -402,386 +402,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5repackdll/h5repackdll.vcproj b/windows/tools/h5repackdll/h5repackdll.vcproj index e3d8428..651e0a4 100644 --- a/windows/tools/h5repackdll/h5repackdll.vcproj +++ b/windows/tools/h5repackdll/h5repackdll.vcproj @@ -390,370 +390,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/h5repart/h5repart.vcproj b/windows/tools/h5repart/h5repart.vcproj index b26d252..09e2c80 100644 --- a/windows/tools/h5repart/h5repart.vcproj +++ b/windows/tools/h5repart/h5repart.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5repartdll/h5repartdll.vcproj b/windows/tools/h5repartdll/h5repartdll.vcproj index 1d082bf..aef32ab 100644 --- a/windows/tools/h5repartdll/h5repartdll.vcproj +++ b/windows/tools/h5repartdll/h5repartdll.vcproj @@ -384,46 +384,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/h5stat/h5stat.vcproj b/windows/tools/h5stat/h5stat.vcproj index f70b483..6c9bc8a 100644 --- a/windows/tools/h5stat/h5stat.vcproj +++ b/windows/tools/h5stat/h5stat.vcproj @@ -387,67 +387,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/h5statdll/h5statdll.vcproj b/windows/tools/h5statdll/h5statdll.vcproj index 88debf0..0312772 100644 --- a/windows/tools/h5statdll/h5statdll.vcproj +++ b/windows/tools/h5statdll/h5statdll.vcproj @@ -385,67 +385,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/h5unjam/h5unjam.vcproj b/windows/tools/h5unjam/h5unjam.vcproj index dbc7ce6..20c2f2c 100644 --- a/windows/tools/h5unjam/h5unjam.vcproj +++ b/windows/tools/h5unjam/h5unjam.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/talign/talign.vcproj b/windows/tools/talign/talign.vcproj index 8c09163..6ee5c64 100644 --- a/windows/tools/talign/talign.vcproj +++ b/windows/tools/talign/talign.vcproj @@ -394,48 +394,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/taligndll/taligndll.vcproj b/windows/tools/taligndll/taligndll.vcproj index 78eb22f..8c1ecce 100644 --- a/windows/tools/taligndll/taligndll.vcproj +++ b/windows/tools/taligndll/taligndll.vcproj @@ -390,48 +390,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/testfiles/binread/binread.vcproj b/windows/tools/testfiles/binread/binread.vcproj index eaeff7c..c839004 100644 --- a/windows/tools/testfiles/binread/binread.vcproj +++ b/windows/tools/testfiles/binread/binread.vcproj @@ -375,63 +375,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/testfiles/h5difftst/h5difftst.vcproj b/windows/tools/testfiles/h5difftst/h5difftst.vcproj index 61f46cd..b1dc72b 100644 --- a/windows/tools/testfiles/h5difftst/h5difftst.vcproj +++ b/windows/tools/testfiles/h5difftst/h5difftst.vcproj @@ -398,48 +398,6 @@ - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj b/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj index c2f20d1..4846853 100644 --- a/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj +++ b/windows/tools/testfiles/h5dumptst/h5dumptst.vcproj @@ -392,46 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5importtst/h5importtst.vcproj b/windows/tools/testfiles/h5importtst/h5importtst.vcproj index 8733b86..3152347 100644 --- a/windows/tools/testfiles/h5importtst/h5importtst.vcproj +++ b/windows/tools/testfiles/h5importtst/h5importtst.vcproj @@ -386,48 +386,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj b/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj index a1052b8..2673a6b 100644 --- a/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj +++ b/windows/tools/testfiles/h5jamtst/h5jamtst.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj b/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj index fee17bc..7607591 100644 --- a/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj +++ b/windows/tools/testfiles/h5repacktst/h5repacktst.vcproj @@ -398,386 +398,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj b/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj index d7bf2dd..9c14c8b 100644 --- a/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj +++ b/windows/tools/testfiles/h5repart_gentest/h5repart_gentest.vcproj @@ -387,67 +387,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj b/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj index 29df510..e9ac6b4 100644 --- a/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj +++ b/windows/tools/testfiles/h5reparttst/h5reparttst.vcproj @@ -387,67 +387,10 @@ - - - - - - - - - - - - - - - - - - - - + diff --git a/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj b/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj index e880935..def2581 100644 --- a/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj +++ b/windows/tools/testfiles/testh5repack_detect_szip/testh5repack_detect_szip.vcproj @@ -392,48 +392,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj b/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj index a54fc29..a11ff5f 100644 --- a/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj +++ b/windows/tools/testfiles/testh5repack_detect_szipdll/testh5repack_detect_szipdll.vcproj @@ -386,48 +386,6 @@ - - - - - - - - - - - - diff --git a/windows/tools/toolslib/toolslib.vcproj b/windows/tools/toolslib/toolslib.vcproj index 88db81c..d00a132 100644 --- a/windows/tools/toolslib/toolslib.vcproj +++ b/windows/tools/toolslib/toolslib.vcproj @@ -317,530 +317,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -