Compare commits

...

561 Commits

Author SHA1 Message Date
Elena Pourmal
18d990f26e [svn-r28752] Checking in files modified by the bin/release script in preparation for the alpha0 release.
Created tar ball was tested on platypus with C++ and Fortran wrappers.
2015-12-29 22:01:47 -05:00
Elena Pourmal
2a7bd2bddc [svn-r28749] Updated file with the new features suported in alpha0 and the list of the platforms alpha0 was tested on.
I intentionally tried to keep the file small. We will expand it with the "known problems", 
major bug fixed, etc. as we proceeed with the alpha and beta releases.
2015-12-29 21:16:29 -05:00
Dana Robinson
4954eb9a23 [svn-r28740] Disabled maintainer mode for the release and re-ran autogen.sh.
Tested on: 64-bit Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
           Autotools serial
2015-12-29 11:02:59 -05:00
Dana Robinson
26b8fa0d10 [svn-r28738] Updated a few Makefile.in files with new version numbers. 2015-12-29 09:32:15 -05:00
Dana Robinson
6db52ee61f [svn-r28737] Added generated files for branch release. 2015-12-29 09:21:16 -05:00
Dana Robinson
100404db91 [svn-r28735] Fix for incorrect chunk size setup with array types in new
chunk indices (extensible and fixed arrays, v2 B-trees)
which was reported by ITER (JIRA issue SWMR-99).

Tested on: 64-bit Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
           Autotools serial, parallel (MPICH 3.1.4)
2015-12-28 23:03:05 -05:00
Larry Knox
5bacc97055 [svn-r28734] Set soname versions for alpha0. 2015-12-28 22:49:10 -05:00
Dana Robinson
10cf31edc9 [svn-r28732] Merge of r8662-28680, 28692-28728 from revise_chunks.
Tested on: Unbuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
           Autotools serial w/ C++ and Fortran
           Autotools parallel w/ Fortran (MPICH 3.1.4)
           CMake serial (CMake 3.3.2)
2015-12-28 21:44:23 -05:00
Albert Cheng
712bbfff9a [svn-r28716] Restored the version from trunk that got wiped out by by mistake with
revise_chunks version.
2015-12-21 17:18:11 -05:00
Dana Robinson
1571a7ffc7 [svn-r28706] Merge of r28685 from revise_chunks.
Changes the CTest drop location from trunk to 1.10 alpha in CDash.
A minor update to test/tfile.c was also required since the revision
number of 0 was causing trouble.

Tested on: Unbuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
           CMake serial (CMake 3.3.2)
2015-12-17 18:33:00 -05:00
Albert Cheng
146e3223b5 [svn-r28704] Updated version number to 1.10.0-alpha0.
Tested: kituo with C only.
2015-12-17 15:04:58 -05:00
Dana Robinson
4fe9d56f78 [svn-r28658] Manual merge of revise_chunks and alpha branch.
Tested on: Unbuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
           Autotools serial (C++ Fortran)
           Autotools parallel (MPICH 3.1.4, Fortran)
           CMake serial (CMake 3.3.2)
2015-12-15 04:48:59 -05:00
Dana Robinson
e9da1c3460 [svn-r28656] Updated MANIFEST (merged r28655 from trunk) 2015-12-15 00:43:09 -05:00
Dana Robinson
61d3297477 [svn-r28652] Created HDF5 1.10.0 alpha branch 2015-12-14 14:56:25 -05:00
Dana Robinson
513ca62daa [svn-r28645] Minor normalization with trunk.
Also purged obsolete /*ARGSUSED*/ from the library.

Tested on:
    Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-14 14:18:50 -05:00
Quincey Koziol
ff548450c3 [svn-r28641] Description:
Minor code cleanups during review/review/merge of branch

Tested on:
    MacOSX/64 10.11.2 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-12-14 13:25:50 -05:00
Dana Robinson
0a54d7e9d0 [svn-r28630] Minor normalization with trunk.
Tested on:
    Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-14 05:51:30 -05:00
Dana Robinson
eb07968bfe [svn-r28622] Removed flush dependency code from local heaps.
Local heaps can't be used in SWMR due to a lack of checksums. The
flush dependency code has been removed as in the v1 B-trees.

Tested on:
    Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-14 02:07:55 -05:00
Dana Robinson
b3b7ed6300 [svn-r28618] Normalization of H5HL package with trunk.
Minor changes.

Tested on:
    Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-14 01:29:40 -05:00
Quincey Koziol
e9a3da63a4 [svn-r28605] Description:
Revisions to normalize revise chunks vs. trunk, plus push dataset metadata
changes into the cache immediately (instead of holding them within the dataset
data structures).

Tested on:
    MacOSX/64 10.11.2 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-12-13 00:42:10 -05:00
Dana Robinson
4b36b8271b [svn-r28587] Removed Perl check from configure.ac to bring in line with trunk.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-11 03:58:51 -05:00
Dana Robinson
46a9b495b4 [svn-r28585] Bring config/cmake/cacheinit.cmake in line with the trunk.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 w/ CMake 3.3.2
    serial only
2015-12-11 03:41:21 -05:00
Dana Robinson
2e6cce8485 [svn-r28582] Removed unused CMake file (align with trunk). 2015-12-11 03:27:29 -05:00
John Mainzer
6671139328 [svn-r28579] Checkin of fixes to more bugs uncovered by investigation of
SWMR-95 -- specifically:

1) Code in H5C__flush_single_entry() taking down all remaining 
   flush dependencies before an entry is destroyed.  

   Replaced this with code asserting that all flush dependencies 
   have been taken down by the cache client as required by the 
   protocol for managing flush dependencies.  This exposed:

2) Both the object header proxy and the object header continuation
   chunk cache clients were failing to track their flush dependency
   parents, and thus were relying on the above code in 
   H5C__flush_single_entry() to take down their flush dependencies
   instead of handling this issue in their notify callbacks.

Fixing item 2 for the object header continuation chunks was straight
forward, as each object header continuation chunk can have at most 
one flush dependency parent.

However, there is no upper bound on the number of flush dependency parents
for an object header proxy (one must be an object header -- any additional
flush dependency parents must be object header continuation chunks).
This said, in most cases object header proxies have only one flush 
dependency parent.

To handle this, I adapted Neil's code for tracking multiple flush 
dependency parents in the metadata cache for use in the object header
proxy, with the difference that I set the initial array size to 1 
(Neil uses 8).  To change this, modify H5O_FD_PAR_LIST_BASE in H5Opkg.h

Potential issues with this fix:

1) While the fix passes the existing regression tests, I don't believe
   these test the code for tracking multiple flush dependency parents
   in the object header proxy adequately.  

   From discussions with Quincey, I gather that the obvious way to 
   do this is to add and delete large numbers of properties to/from the 
   object header, forcing increases and decreases in the number of 
   object header continuation chunks.

   However, as I am unfamiliar with the layout of the SWMR test code,
   it seemed inefficient for me to address this issue -- hence I gather 
   that it will be handled elsewhere.

2) My fix tracks both pointers to flush dependency parents and their
   addresses.  As the addresses are used purely for sanity checking, 
   once we are reasonably confident of my fix, the code can be 
   modified to either to remove the address tracking and the associated 
   sanity checks completely, or to maintain the addresses in debug 
   builds only.

   Note that the address tracking code presumes that object headers 
   and object header continuation chunks cannot change addresses.  If
   this ever changes, the sanity checking code will complain.

Tested (debug only) serial and parallel on Mercury, serial on Jam.
2015-12-10 23:53:08 -05:00
Dana Robinson
68037d059e [svn-r28567] Merge of r28563 from trunk.
Minor bin/cmakehdf5 change

Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 w/ CMake 3.3.2
    serial only
2015-12-10 21:03:06 -05:00
Dana Robinson
015981435e [svn-r28551] Minor change to cache_logging test so it will pass on make check-vfd.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-09 17:54:57 -05:00
Dana Robinson
73292c21c7 [svn-r28548] Added missing HD in front of snprintf() in cache_logging test.
Tested on: 64-bit Windows 10 Pro w/ VS 2015 Pro & CMake 3.3.1
2015-12-09 16:24:28 -05:00
Vailin Choi
a43c8deca0 [svn-r28546] Fix: when the file is opened for SWMR read, skip file truncation check only if the file
is marked for SWMR writing mode and the file has version 3 superblock for SWMR support.
Tested on jam, platypus, osx1010test, moohan, ostrich, emu, kite.
2015-12-09 15:58:37 -05:00
Dana Robinson
58c96bded0 [svn-r28536] Brought r28533 from the trunk (minor change to H5Dvirtual.c)
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-08 09:55:35 -05:00
Dana Robinson
a4331cabde [svn-r28528] Added a similar test to the SWMR-95 test that uses version 2 B-tree
indexing. This passes with no further code changes.

Tested on: Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-07 04:03:42 -05:00
Dana Robinson
256d7a8443 [svn-r28526] Propagated the SWMR-95 extensible array changes to the fixed array
data structure.

Tested on: Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-07 03:48:00 -05:00
Dana Robinson
a5dce3f4b4 [svn-r28524] Updated the test macros in the SWMR-95 test.
Tested on: Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-07 02:11:22 -05:00
Dana Robinson
bf447f740f [svn-r28522] Added a simple regression test for the SWMR-95 bug.
Based on the original error report. Confirmed to fail in r28476
(pre-fix) and pass in the current version.

Tested on: Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-07 01:38:29 -05:00
Dana Robinson
681e118726 [svn-r28520] Re-enabled the cache_logging test and fixed it to pass on Windows.
Tested on: 64-bit Windows 10 Pro w/ VS2015 Pro & CMake 3.3.1
2015-12-05 17:08:04 -05:00
Dana Robinson
b419141463 [svn-r28518] Re-enabled the cork test and fixed it to pass on Windows.
Tested on: 64-bit Windows 10 Pro w/ VS2015 Pro & CMake 3.3.1
2015-12-05 15:20:39 -05:00
Dana Robinson
ee0ecca9d8 [svn-r28516] - Updated the SWMR unit test so that it passes on Windows.
- Re-disabled the cork test, which is still failing on Windows.

Tested on:
64-bit Windows 10 w/ VS 2015 Pro & CMake 3.3.1
Ubuntu 15.10 (Linux 4.2.0 x86_64) w/ gcc 5.2.1 & CMake 3.3.2
2015-12-05 08:18:00 -05:00
Quincey Koziol
3b46a9055e [svn-r28514] Description:
Correct error where dataset metadata wasn't getting tagged correctly when
brought into the cache through the get object info calls.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-12-05 00:03:27 -05:00
Allen Byrne
c9712b17eb [svn-r28510] Remove debugging if NOT WIN32 around file copy. Technique should work on windows. 2015-12-03 16:23:24 -05:00
Allen Byrne
f1660b3227 [svn-r28509] Corrected accum test file handling. The reader is static only.(Although it could be built shared - but this could make things more complicated). 2015-12-03 16:17:37 -05:00
Quincey Koziol
6a79201474 [svn-r28507] Description:
Clean up changes to extensible array flush dependencies.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-12-03 15:01:54 -05:00
Dana Robinson
cb79a1fd86 [svn-r28505] Merge of r28497 and 28499 from the trunk. Fixes a race condition in the build phase by separating the static and shared build directories.
Tested on: Windows 10 Pro w/ VS 2015 Pro and CMake 3.3.1.
2015-12-03 14:58:12 -05:00
Dana Robinson
51eb52dd63 [svn-r28503] Enabled the swmr and cork tests under CMake.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 CMake 3.3.2
    serial only
2015-12-03 14:35:34 -05:00
Dana Robinson
e82c9be897 [svn-r28495] Makes the internal HDF5 Windows file locking function Wflock() a no-op until a Win-32 based Windows VFD is available.
Tested on: Windows 10 Pro w/ VS 2015 Pro and CMake 3.3.1.
2015-12-03 08:54:08 -05:00
Dana Robinson
0f514236b0 [svn-r28492] Merge r28488 from trunk (AC_CHECK_SIZEOF macro fix).
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-03 07:26:03 -05:00
Dana Robinson
c7bf2f7d33 [svn-r28490] Cleaned up some warnings in the VDS test code.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-12-03 06:14:52 -05:00
Dana Robinson
1e935175fe [svn-r28479] Brought CMake Linux symbols in line with the Autotools.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 & CMake 3.3.2
    serial only
2015-12-02 07:30:37 -05:00
John Mainzer
281a8abd7f [svn-r28477] Checkin of fix to SWMR-95 -- bug in which two calls to
H5Oget_info_by_name() resulted in an assertion failure
in the metadata cache.

Investigation of this bug uncovered a number of issues,
only some of which are addressed in this checkin -- 
specifically incorrect takedown of the flush dependency
between the oject header proxy and the extensible array
header, and attempts to setup this flush dependency 
repeatedly.

tested (serial/debug only) on mercury and jam
2015-12-02 06:42:48 -05:00
Dana Robinson
8fa65b5cd3 [svn-r28469] Merge of r28467 from trunk (minor CMake fix).
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 & CMake 3.3.2
    serial only
2015-11-30 13:14:22 -05:00
Dana Robinson
c8db4b8f62 [svn-r28465] Cleaned up warnings in ohdr test.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-24 18:02:20 -05:00
Dana Robinson
8147b60d66 [svn-r28460] Removed -std=c99 from C++ flags in CMake (not valid in C++).
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-24 11:33:16 -05:00
Dana Robinson
b0cecfab04 [svn-r28457] Warning fixes in H5trace.c.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-24 11:24:53 -05:00
Dana Robinson
15eaced5b6 [svn-r28456] Merge 28371, 28377, and 28403 from trunk. (CMake changes)
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-24 11:24:06 -05:00
Quincey Koziol
4b64692187 [svn-r28454] Description:
Warning & code style cleanups, along with normalizations against trunk.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-23 16:11:58 -05:00
Dana Robinson
81d693a1d3 [svn-r28446] Cleaned up the remaining warnings in swmr.c.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-23 07:08:04 -05:00
Dana Robinson
31be2a676b [svn-r28445] Removed some code that checked to see if an unsigned value
was negative from H5Pset_append_flush() and the swmr.c test.

Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-23 07:01:36 -05:00
Dana Robinson
5913de51c2 [svn-r28443] Misc code cleanup and warning fixes.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-23 06:24:30 -05:00
Dana Robinson
4d2eb98622 [svn-r28441] Updated CMake files to correctly handle the changes to the accum test.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-22 22:57:28 -05:00
Dana Robinson
38bd287c8d [svn-r28439] Cleaned up some code and warnings in the accum test prior to a CMake fix.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-22 04:51:18 -05:00
Dana Robinson
406521079c [svn-r28436] Cleaned up warnings generated by gcc 5.2 in flex/bison code.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-21 20:21:24 -05:00
Dana Robinson
05b604da9a [svn-r28433] Misc warning and cleanup fixes.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-20 22:48:01 -05:00
Dana Robinson
c327c727cf [svn-r28431] Misc warning and cleanup fixes.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-20 18:33:24 -05:00
Dana Robinson
e8ad6b8a8d [svn-r28426] Fixed all maybe-uninitialized warnings from gcc 5.2.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-20 15:48:16 -05:00
Quincey Koziol
e8fb73f038 [svn-r28423] Description:
Normalize against trunk.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-20 15:25:05 -05:00
Quincey Koziol
f8fa4e9508 [svn-r28420] Description:
Bring r28388, 28393, 28397, 28416 from trunk to the revise_chunks branch.

Tested on:
    MacOSX/64 10.11.11 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-20 11:10:30 -05:00
Dana Robinson
d41e0e0b88 [svn-r28418] Fixes for minor warnings.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-20 10:45:27 -05:00
Quincey Koziol
55b1eb056e [svn-r28414] Description:
More cleanups and normalizations for merge to trunk.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-20 09:11:31 -05:00
Quincey Koziol
294f742823 [svn-r28412] Description:
Clean up warnings and align w/trunk.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-19 22:02:44 -05:00
Dana Robinson
44b932ed53 [svn-r28410] Removed a few TRUE/FALSE redefinitions in the tools.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-19 16:10:03 -05:00
Dana Robinson
03615fd68f [svn-r28408] Corrected some warnings in the file locking code.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-19 15:37:14 -05:00
Vailin Choi
e357598456 [svn-r28400] Fix for daily test failure on platypus for gcc 5.2 with -m32.
This is due to 32 bit overflow from swmr_*.c when random seed was computed from gettimeofday.
Tested on platypus (32bit and 64bit), emu, moohan, osx1010test.
2015-11-18 23:03:36 -05:00
Albert Cheng
fdab86b184 [svn-r28395] Merge r28393 from trunk.
HDFFV-9573: bin/h5vers failure, claiming reconfigure failed.
bin/reconfigure is replaced by autogen.sh.

Fixed h5vers to call autogen.sh instead.

Tested: Jam
2015-11-18 13:34:46 -05:00
Albert Cheng
88101388b7 [svn-r28389] Merge r28388 from Trunk.
HDFFV-9573: bin/chkmanifest did not like the missing generated file.

Changed bin/chkmanifest to generate the files if configure is missing.

Tested: jam
2015-11-18 12:42:48 -05:00
Elena Pourmal
4d5a53cade [svn-r28386] Maintenance: Bumped version number by setting suffix to swmr3 after creating a tar ball for DLS. 2015-11-17 21:17:02 -05:00
Albert Cheng
9332f6eef5 [svn-r28379] HDFFV-9573: Our helper tests bin/release and bin/h5vers are not working properly
bin/release uses the content of MANIFEST file to build the release tarball. But all the files generated by autogen had been removed. Therefore the release would not contain those needed generated files for a proper release.

Solution: Added all those generated files to the tail of MANIFEST and titled it accordingly. (Somehow bin/chkmanifest does not complain against these entries though they are not svn managed. This needs further investigation.)

Test: bin/release generated the release tarball in jam, then use it in Platypus to do a full build (--enable-fortran --enable-cxx). Build completed but some tests failed but that is likely a code problem than a release files problem.
2015-11-17 10:08:17 -05:00
Dana Robinson
be2ec038ab [svn-r28374] Added a script to automate the initial VDS + SWMR test.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-17 09:41:26 -05:00
Dana Robinson
8b3be42603 [svn-r28367] Putative fix for SWMR-95: The H5Pset_elink_acc_flags() API call rejects
H5F_ACC_SWMR_READ and H5F_ACC_SWMR_WRITE.

This has been tentatively fixed by updating the API call to accept
the SWMR flags. The only test at this time is a smoke test to 
ensure correct flag setting. The SWMR behavior of external links
will be tested later.

Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-16 17:23:42 -05:00
Dana Robinson
1a295b7082 [svn-r28365] Fixed trivial warnings in h5watch code.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial only
2015-11-16 16:30:42 -05:00
Dana Robinson
ec47333d65 [svn-r28362] Merge of r28234 to r28346 from the trunk.
This includes the flex/bison changes to both the autotools
and CMake.

Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1
    serial and parallel (MPICH 3.1.4)
2015-11-16 16:05:35 -05:00
Quincey Koziol
81ae1ef2c3 [svn-r28353] Description:
Checkpoint progress on code style & warning cleanups in new dataset code.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-15 22:19:49 -05:00
Quincey Koziol
472b94f49b [svn-r28351] Description:
Checkpoint refactoring work on chunked dataset indexing.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5comittest not required on this branch)
2015-11-15 15:39:58 -05:00
Quincey Koziol
495735e766 [svn-r28348] Description:
Checkpoint warning and coding style cleanups.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-15 00:55:17 -05:00
Quincey Koziol
f8e94704ea [svn-r28344] Description:
Clean up H5LD test code.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-14 22:30:04 -05:00
Vailin Choi
1b58261bc5 [svn-r28330] Implementation for version 3 superblock and latest version support.
Tested on quail, kite, osx1010test, platypus, ostrich, moohan, emu, jam.
2015-11-12 23:26:56 -05:00
Quincey Koziol
41a03ad8ed [svn-r28327] Description:
More progress on revise_chunks review/normalization

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-12 09:23:37 -05:00
Quincey Koziol
69194bdd68 [svn-r28324] Description:
Code cleanups during review/normalization pass.

Tested on:
    MacOSX/64 10.11.1 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-11-10 15:50:25 -05:00
Albert Cheng
54c7698788 [svn-r28322] SWMR-26: make check-vfd runs for a long time
The problem is in test/dsets which infinite looped when HDF5_DRIVER is "sec2" because
it had a for loop using a bool
type variable (compress) but the loop tried to increment to a third value. Changed the
type of compress to int allows the loop to run properly.

Secondly, the resas why it did not infinite loop when not in check-vfd is because the
getenv(HDF5_DRIVER) mistakenly assign driver as "nomatch" if it is not defined.
dsets skipped the test because "nomatch" is not one of the supported driver.
Fixed the code to assign "sec2" if $HDF5_DRIVER is not defined.

Tested: kituo, ostrich, osx1010dev
2015-11-10 13:17:05 -05:00
Elena Pourmal
e83c3a64e8 [svn-r28309] Changed prefix to swmr2 after creating a snapshot for DLS.
Tested on platypus. There were several issues with the bin/release and bin/h5vers scripts, but tar ball and versions look OK
after manual inspections.
2015-11-08 22:54:08 -05:00
Dana Robinson
048f77864f [svn-r28307] Updated the dataset refresh code so that VDS source datasets
are correctly updated.

Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) w/ gcc 5.2.1
    serial + parallel (MPICH 3.1.4)
2015-11-08 06:49:22 -05:00
John Mainzer
fef44254fe [svn-r28282] Fix for cache test failure in production mode only.
Cause of failure was stack corruption caused by type mismatch
between expected and actual return value type in the validate
checksum callback.

Tested serial (debug and production) on mercury and jam
       parallel (debug) on mercury.
2015-11-05 08:36:59 -05:00
Dana Robinson
aa1a5861a4 [svn-r28280] Removed dead code from H5O refresh function.
Tested on Ubuntu 15.10 (Linux 4.2.0 x86_64) w/ gcc 5.2.1
2015-11-04 19:54:58 -05:00
Allen Byrne
5e37fd739c [svn-r28275] Merge 28236 and 28241 from trunk to fix timezone and cmake issue on platypus. 2015-11-04 14:50:26 -05:00
Dana Robinson
84b1e9e137 [svn-r28237] Merge of r28228-9 from trunk.
accum test still has issues

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial autotools and CMake (3.3.2)
2015-10-27 10:24:56 -05:00
Dana Robinson
239882bd80 [svn-r28232] Updated MANIFEST 2015-10-26 17:12:51 -05:00
Dana Robinson
51b29b6ab4 [svn-r28218] Merge of r28138, 28196, and 28204 from trunk.
hbool_t changes

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial w/ Fortran and C++
           parallel (MPICH 3.1.4) w/ Fortran
2015-10-26 03:10:12 -05:00
Dana Robinson
8a1ca95768 [svn-r28216] Merge of r27969:28132, 28144:28193 from trunk.
Mostly CMake changes, but there's also a few minor library
changes.

Temporarily commented out the accum test. The test builds
but one of the sub-tests fails due to a file issue.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial w/autotools
           serial w/CMake (3.3.2, w/ fortran and C++)
2015-10-25 23:49:56 -05:00
Dana Robinson
c07ff78058 [svn-r28214] Merge of r28075, 28086, 28115, 28151 from trunk.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial and parallel (MPICH 3.1.4)
2015-10-25 22:47:10 -05:00
Dana Robinson
3f568b87d6 [svn-r28212] Add code from r28179 back to the branch. This allows h5watch
to open VDS files, though it won't pick up changes to source
files until they are closed. This is a library problem and
will be fixed later.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-25 18:21:08 -05:00
Vailin Choi
66e1eeffa7 [svn-r28206] 1) Implementation for Single Chunk indexing type.
2) Fix for changing h5format_convert testfiles for in-place build.
2015-10-23 18:02:54 -05:00
Dana Robinson
bea706880a [svn-r28197] Revert of 28179, which causes problems in the h5watch test. 2015-10-23 00:34:17 -05:00
Dana Robinson
66c1a254f0 [svn-r28179] h5watch can now open VDS files, though it will not detect changes
until the source files are closed.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial only
2015-10-21 23:49:49 -05:00
Dana Robinson
0caf00455f [svn-r28178] Updates to existing VDS + SWMR test code and added reader code.
NOTE: Tests are still manual for now and the reader does not
      reflect source dataset changes.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial only
2015-10-21 18:13:38 -05:00
Dana Robinson
30adc68b24 [svn-r28164] Added VDS SWMR test generator and writer files. These test files
are executed manually for now.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial only
2015-10-21 14:08:53 -05:00
Allen Byrne
2e7788f196 [svn-r28142] Add new test files to list 2015-10-20 10:43:42 -05:00
Dana Robinson
9a3b2c0b63 [svn-r28141] Minor edits of SWMR acceptance test files. 2015-10-20 10:04:21 -05:00
Allen Byrne
d03e8d183d [svn-r28122] Remove obsolete file from list 2015-10-19 11:39:03 -05:00
Quincey Koziol
b2f7a76bc6 [svn-r28109] Description:
Correct failure when using the family VFD, which requires that the '%'s be
parsed twice.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel (and make check-vfd)
    (h5committest not required on this branch)
2015-10-16 14:58:44 -05:00
Dana Robinson
da138d4e46 [svn-r28108] Removed src/H5Ostorage.c which was accidentally re-added
to the repository after removal.
2015-10-16 14:01:09 -05:00
Quincey Koziol
2132f1bdae [svn-r28099] Description:
Bring r27958 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-16 00:59:48 -05:00
Quincey Koziol
68af82280a [svn-r28095] Description:
Bring r27884, 27888, 27889, 27890, and 27891 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-15 22:57:10 -05:00
Quincey Koziol
b247127dc9 [svn-r28094] Description:
Bring r27849 & 27851 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-15 22:43:19 -05:00
Dana Robinson
84d6d40b57 [svn-r28093] Merge of r27768 and r27774 from trunk
Description:
    Complete revamp of package initialization/shutdown mechanism in the library.
Each package now has a single init/term routine.

    This new way should avoid packages being re-initialized during library
shutdown and is also be _much_ more proactive about giving feedback for
resource leaks internal to the library.

    Introduces a new "module" header file for packages in the library
(e.g src/H5Fmodule.h) which sets up some necessary package configuration macros
for the FUNC_ENTER/LEAVE macros.  (The VFL drivers have their own slightly
modified version of this header, src/H5FDdrvr_module.h)

    Also cleaned up a bunch of resources leaks all across the library and tests,
along with addressing many warnings, as I encountered them.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial and parallel (MPICH 3.1.4)
2015-10-15 21:19:11 -05:00
Quincey Koziol
31683703d9 [svn-r28092] Description:
Merge the storage message back into the layout message.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-15 20:19:09 -05:00
Dana Robinson
23a31f45b2 [svn-r28088] Fixed a mid-block declaration in the dsets test that only exists
when zlib compression is disabled.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-15 13:38:23 -05:00
Quincey Koziol
46d90a06de [svn-r28083] Description:
Revise code to factor out check for chunked datasets more clearly.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-15 11:18:58 -05:00
Quincey Koziol
13cc8ceb43 [svn-r28082] Description:
Switch to peek/poke for setting the chunk options.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-15 11:07:59 -05:00
Dana Robinson
31f99f4be8 [svn-r28078] Clean up warnings in objcopy test.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-15 07:51:23 -05:00
Allen Byrne
dcda111779 [svn-r28074] Merge from trunk CMake code.
Also two fortran source files were changed.
2015-10-14 16:27:13 -05:00
Dana Robinson
cc261eb5e5 [svn-r28068] Removed duplicated Perl check from configure.
Updated the testflushrefresh script to correctly use Perl.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-14 05:40:51 -05:00
Dana Robinson
2723efefd7 [svn-r28065] Clean up dcpls in the cork and flushrefresh tests.
Not cleaning them up was causing infinite closing loops with
the incoming init/shutdown changes from the trunk.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-13 18:20:17 -05:00
Dana Robinson
b767c1a0ae [svn-r28049] Merge of r27997-28047 from the trunk.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial w/ Fortran and C++
           parallel (MPICH 3.1.4) w/ Fortran
2015-10-13 04:33:03 -05:00
Quincey Koziol
76ff9fa1d2 [svn-r28043] Description:
Merge r27818 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-12 14:02:04 -05:00
John Mainzer
bb656dfc91 [svn-r28042] Bug fix for failure in testpar/t_cache
Problem appears to have been caused by new code which 
dirties a cache entry unexpectedly at file close.  This
in turn throws off the write counts maintained by the 
test, causing it to fail.

Solution was to manually flush the cache prior to file
close, verify the expected writes, and then de-register
the callback used to obtain write counts from the cache.
After cache shut down, I added additional code to verify
that no test entries were written during the shutdown
process.

The net effect is to insulate the t_cache test code from
the shutdown process -- albeit at the cost of writing 
all test entries prior to the shutdown via a manual flush.  
As the code involved should be the same either way, this 
seems an acceptable solution.  However, we may want to 
re-visit it once file close proceedure has been tamed.

Tested parallel on mercury.

Note that a failure showed up the h5format_convert tests
on all builds after my first.  As all my changes were in
testpar, this almost certainly is un-related.  At a guess,
there is an issue with make distclean.  At Quincey's 
direction, I am proceeding with the checkin.

Note also that the following files

   tools/h5format_convert/testfiles/h5fc_edge.h5
   tools/h5format_convert/testfiles/h5fc_all.h5
   tools/h5format_convert/testfiles/h5fc_new.h5

were modified by my build, and are included in the 
subversion archive.  I reverted changes to them prior
to this checkin.
2015-10-12 13:58:32 -05:00
Quincey Koziol
c5a9bb780f [svn-r28041] Description:
Merge r27811 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-12 13:48:27 -05:00
Dana Robinson
9863f8481f [svn-r28038] Minor fix to H5C.c that #includes H5ACpkg.h, which was accidentally
removed in r28034, breaking parallel builds.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial w/ Fortran and C++
           parallel (MPICH 3.1.4) w/ Fortran
2015-10-12 11:26:57 -05:00
Quincey Koziol
fa67588218 [svn-r28037] Description:
Bring r27806 from trunk to branch.  Also, some minor code cleanups.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-12 10:48:31 -05:00
Quincey Koziol
e8409e6ff1 [svn-r28036] Description:
Bring r27801 & r27809 from trunk to branch

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-12 09:07:21 -05:00
Quincey Koziol
2f2bca0e93 [svn-r28035] Description:
Bring r27767 & r27968 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-12 08:40:20 -05:00
Quincey Koziol
040d735887 [svn-r28034] Description:
Merge r27710 from trunk to branch.  (And some other minor cleanups)

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-11 23:39:55 -05:00
Quincey Koziol
4b3730011f [svn-r28029] Description:
Merge r27626 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-10 23:42:22 -05:00
Quincey Koziol
ec2c0bc6fe [svn-r28028] Description:
Merge r27339, 27372, 27412, 27432, 27511, 27551, 27622, 27690 from trunk
to branch (snapshots)

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial
    (h5committest not required on this branch)
2015-10-10 23:23:38 -05:00
Quincey Koziol
3705377c3c [svn-r28026] Description:
Merge r27707 from trunk to branch.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2015-10-10 21:56:00 -05:00
Dana Robinson
ed5b0214e9 [svn-r28023] Free dynamically-allocated addresses in H5C_cork.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial w/ fortran and C++
           parallel w/ fortran (MPICH 3.1.4)
2015-10-09 19:29:38 -05:00
Dana Robinson
11bb0eb6fe [svn-r28000] Added H5D_chunk_index_t to the list of traceable types.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           (serial only)
2015-10-07 22:38:35 -05:00
Dana Robinson
7779cf2c60 [svn-r27999] Merge of r27800 from the trunk.
Fixes warnings in the tests.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           (serial only)
2015-10-07 21:48:10 -05:00
Dana Robinson
288ae329aa [svn-r27994] Merge of r27799 from trunk.
High-level library warnings.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-07 12:34:09 -05:00
Dana Robinson
c0a19450a3 [svn-r27993] Merge of r27805 from trunk.
Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-07 12:21:34 -05:00
Dana Robinson
0acb80424e [svn-r27985] Minor fixes to get testflushrefresh.sh to work correctly:
- configure now checks for Perl (removed in the trunk and
  pushed here).

- Removed the svn:executable property from some .in scripts.

- Removed some bash-isms from a few test scripts.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
2015-10-07 10:22:14 -05:00
Dana Robinson
01eee8cabb [svn-r27982] Merge of r27939 from trunk.
Remove H5D__iterate and use H5S_select_iterate directly

Add internal library callback to H5S_select_iterate to avoid having
to pass hid_t objects internally

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) gcc 4.9.2
           serial w/ Fortran and C++ 
           parallel (MPICH 3.1.4) w/ Fortran
2015-10-07 00:13:15 -05:00
Dana Robinson
a7b463e9d4 [svn-r27980] Merge of r27969 and 27974 from trunk.
Removes _DO_NOT_DISTRIBUTE_ from a few files.

Tested on: bin/chkmanifest
2015-10-06 20:48:37 -05:00
Dana Robinson
aa9227c3ba [svn-r27979] Merge of r27961, 27962, and 27966 from trunk.
C++ changes to address HDFFV-9169 and HDFFV-9167.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64)
           gcc 4.9.2 (serial only)
2015-10-06 20:40:44 -05:00
Dana Robinson
5f024ec157 [svn-r27964] Merge of misc. changes from trunk
r27771, 27772, 27773, 27832, 27900

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64) w/ gcc 4.9.2
           (serial only)
2015-10-06 01:29:37 -05:00
Dana Robinson
e2d7bf541d [svn-r27963] Removed a few straggler Makefile.in, etc. from the repository.
Tested on: bin/chkmanifest
2015-10-05 23:45:07 -05:00
Dana Robinson
d8fe8a2681 [svn-r27960] Autogen merges from trunk.
r27794, 27795, 27802, 27812, 27819, 27826, 27828, 27829, 27878
 27880, 27898, 27902

Tested on: local Linux
2015-10-05 23:15:00 -05:00
Dana Robinson
36e9a8929c [svn-r27955] Merge of r27943 and 27945 from the trunk:
C++ changes

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64), gcc 4.9.2
    serial C++
2015-10-05 03:10:39 -05:00
Dana Robinson
b51f57fd85 [svn-r27954] Merge of smaller changes from the trunk:
r27807, 27810, 27834, 27847, 27854, 27892, 27938

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64), gcc 4.9.2, MPICH 3.1.4
    parallel w/ fortran
    serial w/ fortran and C++
2015-10-05 03:04:54 -05:00
Dana Robinson
14d1cc2a4f [svn-r27953] Merge of CMake files from the trunk.
r27796, 27803, 27808, 27817, 27823, 27831, 27836, 27846, 27858-27874,
27894-27897, 27901, 27903-27933

Not tested. CMake still basically broken in this branch.
2015-10-05 02:17:21 -05:00
Dana Robinson
376f8390b6 [svn-r27952] Merge of r27320 from the trunk
Fix uninitialized memory write valgrind errors in trunk.  Did this by modifying
metadata cache clients to clear unused memory in the buffer after serializing.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64), gcc 4.9.2, MPICH 3.1.4
    parallel w/ fortran
    serial w/ fortran and C++
2015-10-05 00:16:59 -05:00
Dana Robinson
06e02a2a81 [svn-r27951] Merge of r27298 from the trunk
Description:
    Separate H5AC layer from using package-scoped pieces of the H5C layer,
    moving from including H5Cpkg.h to H5Cprivate.h.

NOTE: H5AC still includes H5Cpkg.h since other code needs it.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64), gcc 4.9.2, MPICH 3.1.4
    parallel w/ fortran
    serial w/ fortran and C++
2015-10-04 23:22:10 -05:00
Dana Robinson
37c2195cfc [svn-r27950] Merge of r27296 from the trunk
Description:
    Correct error with braces around macro (in production builds), also clean
    up a few warnings.

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64), gcc 4.9.2, MPICH 3.1.4
    parallel w/ fortran
    serial w/ fortran and C++
2015-10-04 21:49:05 -05:00
Dana Robinson
b9c4183b5c [svn-r27948] Merge of r27427 from the trunk
Parallel resource cleanup:

- free comm keyval after setting atribute on comm_self
- free allocated buffer in t_file_image test

Tested on: Ubuntu 15.04 (Linux 3.19 x86_64)
           gcc 4.9.2 and MPICH 3.1.4 (parallel only)
2015-10-04 16:39:27 -05:00
Dana Robinson
b553ceaa71 [svn-r27883] Revert of r27881
The number of elements in a struct between the trunk and
revise_chunks differed, which confused Subversion. Interestingly,
only some of the compilers flagged this as an error.

Tested on: local linux
2015-09-26 12:34:05 -05:00
Dana Robinson
d7d2db33bc [svn-r27881] Merge of r27549 from trunk.
Update the file format debugging routines to match the recent changes to
    the metadata cache, along with a few other cleanups and miscellaneous
    enhancements.

Tested on: Ubuntu 15.04 w/ gcc 4.9.3
2015-09-25 23:29:48 -05:00
Dana Robinson
32f747588a [svn-r27877] Added fcntl and flock to list of functions checked by CMake.
This avoids redefinition of #defines in H5private.h when
flock and co. exist.

Tested on: Ubuntu 15.04 VM w/ gcc 4.9.3 and CMake 3.3.2
           NOTE: tests still fail, but compilation improves
2015-09-25 15:04:09 -05:00
Dana Robinson
ee1b751d2a [svn-r27867] The testpar/t_cache test now just prints a "skipped" message. It will
be a little while before the cache issue is fixed and the test
prevents other parallel tests from continuing.

Tested on: Ubuntu 15.04 VM w/ gcc 4.9.3 and MPI 3.1.4
2015-09-24 11:41:04 -05:00
Dana Robinson
8a170f1c61 [svn-r27859] Merged revisions
27625, 27627, 27647, 27648, 27661, 27668, 27670, 27671, 27674, 27676,
27703, 27716, 27720, 27747, 27754, 27755

from the trunk.

Mostly CMake and Fortran changes.

Tested on: jam (w/ gcc/gfortran 4.9.3)
2015-09-22 15:44:16 -05:00
Dana Robinson
a2f7a8f34b [svn-r27857] Merged revisions 27612-4, 27618, 27663, 27682, 27728 from the trunk.
Tested on: jam (w/ gcc/gfortran 4.9.3)
2015-09-22 14:25:12 -05:00
Vailin Choi
476b31d101 [svn-r27856] Fix the bug from revise_chunks daily test failure hl/test/ld.c: unable to open/lock the test file. 2015-09-22 12:09:04 -05:00
Dana Robinson
a2236b4e89 [svn-r27855] Merged revisions:
27509, 27515, 27517, 27521, 27524, 27525, 27537, 27555, 27570, 27575,
27585, 27586, 27590, 27591, 27592

from the trunk.

Minor CMake and Fortran changes

Tested on: jam (w/ gcc/gfortran 4.9.3)
2015-09-22 11:04:54 -05:00
Dana Robinson
57d670faa6 [svn-r27853] Merged r27488-27500 from the trunk.
Fortran 2003 changes

Tested on: jam serial (w/ gcc/gfortran 4.9.3)
           jam parallel (fortran tests, parallel tests have known failure)
2015-09-22 09:14:17 -05:00
Dana Robinson
510ac2e95e [svn-r27841] Merged r27346, r27407, r27459, r27460, r27467, r27468, r27485 from trunk.
These are all CMake-only or comment/whitespace changes.

Tested on: N/A CMake still fails in this branch.
2015-09-21 05:28:23 -05:00
Dana Robinson
46fb5b6ccb [svn-r27840] Merged r27313, r27332, r27364, r27428, r27465, r27466 from trunk.
These are all CMake-only changes.

Tested on: N/A CMake still fails in this branch.
2015-09-21 05:02:58 -05:00
Vailin Choi
c77dc57fda [svn-r27822] Bring revisions #27262 - 27294 from trunk to revise_chunks.
Tested on jam, ostrich, platypus, osx1010test, emu.
2015-09-17 22:34:04 -05:00
Vailin Choi
c96f6e6400 [svn-r27821] Bring revisions #27262 - 27294 from trunk to revise_chunks.
Tested on jam, ostrich, platypus, osx1010test, emu.
2015-09-17 22:26:14 -05:00
Albert Cheng
92f43d6687 [svn-r27791] corrected a spelling. 2015-09-15 09:42:11 -05:00
Vailin Choi
3b87c7a1f7 [svn-r27786] Bring revisions #27237 - 27262 from trunk to revise_chunks.
Tested on jam, moohan, kite, platypus.
2015-09-14 17:42:14 -05:00
Dana Robinson
32e30e06a2 [svn-r27766] Merge of r27292 from trunk:
Bring 'fail if unknown always' object header message flag from the
avoid_truncate branch, strengthen error checking for unknown messages, and try
to catch object header code configurations at compile time (instead of runtime).

Tested on: koala
2015-09-12 21:53:33 -05:00
Dana Robinson
b3b06d2703 [svn-r27765] Merges from trunk:
- VMS code removal: 27572

- Dataspace memory error: 27605

- Extraneous dataset flush: 27615

- Warning quieting: 27623

- Hyperslab error clarity: 27631

- Duplicate attribute macros: 27753

Tested on: koala w/ C++ and Fortran
2015-09-12 13:09:08 -05:00
Dana Robinson
806a3bfa73 [svn-r27764] Merges r27415 from trunk:
Fix potential error with H5I_clear_type which could occur when a callback closed
a different ID in the same type.  Added a new skiplist routine,
H5SL_try_free_safe, which iterates over items, freeing some of them, and which
intercepts and defers attempts to remove from the list outside of the main
iteration.  Changed H5I_clear_type to use this function.

Tested on: ostrich and koala (h5committest)
2015-09-12 10:26:07 -05:00
Dana Robinson
801f6a504c [svn-r27763] Merges from trunk:
- tools: 27238, 27252, 27267, 27656

- inline markup: 27278

- bin/bbrelease: 27280, 27283, 27624

- h5vers: 27475

- C++ Doxygen: 27494-6

- FUNC_ENTER macro bug: 27581

- H5is_library_threadsafe: 27587, 27601

- release_docs: 27597

- Autotools freshening: 27641, 27653, 27675, 27686, 27692, 27699, 27722
                        27731, 27734, 27752

- MANIFEST comments: 27642

Tested on: ostrich & koala
           various combinations of --enable-threadsafe
2015-09-12 07:05:05 -05:00
Dana Robinson
e5fa6451ca [svn-r27762] Merge of r27243 from trunk
fix problem with encoding/decoding external fapl for lapls.

Tested on: koala (LE), ostrich (BE)
2015-09-12 03:32:44 -05:00
Vailin Choi
aa62b729d6 [svn-r27761] Fix the bug uncovered by daily test failure: configure --with-default-api-version=v16.
Tested on jam and moohan.
2015-09-11 15:26:34 -05:00
Vailin Choi
a4e730506f [svn-r27758] Implementation for "h5format_convert" tool to convert a chunked dataset's indexing type to v1 B-tree indexing type.
Code review pending.
2015-09-10 23:39:09 -05:00
Dana Robinson
86b03d3ef8 [svn-r27713] Added -qflag=w:w to config/ibm-flags. This will suppress informational flags
on AIX, suppressing thousands of "__attribute__ is non-portable" messages
in the AIX nightly test output.

Tested on: Nothing. I have no access to an AIX machine.
2015-09-09 06:28:23 -05:00
Albert Cheng
b1ff8f3fde [svn-r27712] The symbol NGROUPS is defined in /usr/include/sys/param.h in some systems.
Change it to N_GROUPS to avoid the conflict.

Tested: AIX ADA
2015-09-09 02:59:46 -05:00
Albert Cheng
a7c8af2fc8 [svn-r27711] The symbol NOFILE is defined in /usr/include/sys/param.h in some systems.
Change it to NO_FILE to avoid the conflict.

Tested: AIX ADA
2015-09-09 02:58:35 -05:00
Albert Cheng
37e43905ea [svn-r27695] HDFFV-0: Bug fix.
Problem: #if-#the-#else-#endif were added incorrectly to test_file_lock_concur()
such that the test would fail but did not execute a return statment. So, some
arbitary value is returned, causing confusion in the routine that called it.

Solution:
The #if-#the-#elif-... is unncessary. Fixed the #if-#endif so that they
are much shorter in scope and allowed the original return code to be
executed.

Tested: AIX ADA where it was discovered.
2015-09-08 00:27:53 -05:00
Albert Cheng
ad9f6f5e7e [svn-r27694] HDFFV-9521: arithmetic on a void* flagged as error by AIX XL compiler
Problem: image is a *void and xlc rejected the code of image+len.
Arithmentic on a void* is not legal in C but GCC extension allows it.

Solution: define image as a *uint_8 according to how it is used in the
code.

Tested: passed in AIX ADA machine.
2015-09-08 00:20:29 -05:00
Albert Cheng
e4a22c1957 [svn-r27693] HDFFV-0: bug fix
Problem: the script tried to launch the test command as "a.out" but not all userss
would have "." included in their $PATH for safety concerns.
Solution: Changed the mere "a.out" to "./a.out" so that the script knows how to launch
the test program.

Tested: AIX Ada (where I don't have '.' in my $PATH)
2015-09-07 22:21:41 -05:00
Vailin Choi
b6f4eee12f [svn-r27688] Bring version 3 metadata cache from trunk + adding retries.
Tested on jam, kite, platypus, quail, moohan, ostrich, osx1010test, emu.
2015-09-06 14:55:20 -05:00
Vailin Choi
c102869b66 [svn-r27672] Bug fix: for a swmr_write, remove file lock after flushing status_flags in superblock. 2015-09-03 14:39:10 -05:00
Dana Robinson
3218e2bc88 [svn-r27633] Removed pid check from Pflock() in H5system.c. This field is only
used when getting lock status.

tested on: emu (only system that uses fcntl in lieu of flock)
2015-08-31 17:30:15 -05:00
Dana Robinson
400fafafc9 [svn-r27617] Fixed some messed-up #ifdefs from the flock commit.
Tested on: jam
2015-08-29 16:28:35 -05:00
Dana Robinson
30021a9579 [svn-r27604] Added (putative) Windows and fcntl-based flock implementations.
Fixes SWMR-18

Tested on: jam and emu (Windows pending CMake changes)
2015-08-28 10:16:36 -05:00
Dana Robinson
9e50696cbd [svn-r27583] Fixed some minor warnings in tsohm.c.
Tested on: jam
2015-08-25 22:41:27 -05:00
Dana Robinson
6b600373d7 [svn-r27582] Fixed some minor warnings in links.c.
Tested on: jam
2015-08-25 21:02:09 -05:00
Dana Robinson
5f14a860da [svn-r27571] - h5watch tests are now skipped when the test VFD does not support SWMR.
- General improvements to the h5watch Makefile.am.

Tested on: jam w/ HDF5_DRIVER=stdio and sec2
2015-08-24 14:35:43 -05:00
Dana Robinson
015670ef67 [svn-r27567] Added flush commands around lock functions in the stdio VFD.
Tested on: jam w/ HDF5_DRIVER=stdio
2015-08-24 13:12:12 -05:00
Dana Robinson
d54ff9d140 [svn-r27544] Updated MANIFEST
Tested on: bin/chkmanifest
2015-08-21 10:18:54 -05:00
Dana Robinson
2333fd7d82 [svn-r27536] Partial implementation of CMake fixes. Library and tests now build on Windows.
config/cmake/H5pubconf.h.in has been brought up to date.
2015-08-19 23:27:38 -05:00
Dana Robinson
8abfc02bb1 [svn-r27535] Fixed some minor warnings discovered when building with CMake.
Tested on: jam
2015-08-19 19:56:34 -05:00
Dana Robinson
4611df2cb0 [svn-r27534] Changed some instances of snprintf to HDsnprintf.
Tested on: jam
2015-08-19 16:44:32 -05:00
Dana Robinson
191aa42940 [svn-r27529] Added an #ifdef around the sys/file.h include in H5FDstdio.c.
sys/file.h does not exist on Windows.

Tested on: jam
2015-08-19 13:47:57 -05:00
Dana Robinson
09faa86b63 [svn-r27526] Added new files to CMake in src and test.
Tested on: NONE (CMake is still broken on this branch)
2015-08-19 10:14:30 -05:00
Dana Robinson
bdf3967ae7 [svn-r27523] Updated the autotools to clean up a few test files under
'make clean'

Tested on: jam
2015-08-19 07:38:55 -05:00
Dana Robinson
291bf20529 [svn-r27522] CMake files match those of the trunk but still need to be updated with changes in this branch.
Tested on: NONE (CMake is still broken in this branch)
2015-08-19 05:54:48 -05:00
Allen Byrne
eb9fda6709 [svn-r27518] Correct CDash urls 2015-08-18 09:05:07 -05:00
Dana Robinson
6c66d7db0a [svn-r27490] Disable flushrefresh test when VFD does not support SWMR.
Part of SWMR-23 and SWMR-25.

Tested on: Linux (jam), Darwin (wren) w/ threadsafe & autotools
2015-08-11 03:28:29 -05:00
Dana Robinson
f5cf503dbd [svn-r27487] Minor code cleanup to remove warnings.
Tested on: local linux VM (minor changes)
2015-08-10 16:16:11 -05:00
Dana Robinson
a6cbcabeb8 [svn-r27486] Changed the "unsupported" VFD in test/swmr.c to be the stdio VFD.
We were previously using the family VFD and that should be
supported soon. I'd also like to explicitly test that the stdio
VFD is unsupported since it can never be supported under SWMR
due to the unpredictable nature of the buffering layer.

Added a comment to the stdio VFD query function to indicate
why SWMR is not supported.

Tested on: local linux VM (very minor change)
2015-08-10 15:31:39 -05:00
Vailin Choi
0908350a64 [svn-r27482] Fixes for revise_chunks daily test failures:
(1) test/swmr.c: test for H5_HAVE_FORK in test_file_lock_swmr_concur() as in test_file_lock_concur().
(2) test/cache_logging.c: (a) fix to catch proper return from the test (b) use h5_fixname() so check-vfd won't fail.
2015-08-07 23:38:05 -05:00
Dana Robinson
8fb670338e [svn-r27477] Fixed out-of-date MANIFEST.
Tested on: bin/chkmanifest
2015-08-07 10:20:15 -05:00
Vailin Choi
53b4670997 [svn-r27476] Fixes:
1. Fix for SWMR-88: move the 4 tests for file locking from tfile.c to swmr.c
2. H5SMcache.c: restore a line that got removed from previous merges.
3. H5Dproxy.c: delete; not needed
4. Refactor coding in H5C.c: H5C_make space_in_cache() and H5C_evict_tagged_entries()
Tested on jam, koala, ostrich, platypus, moohan, quail.
2015-08-06 22:03:43 -05:00
Dana Robinson
1c57b2f174 [svn-r27461] Merge of r27460 from trunk.
Minor code cleanup of test/trefer.c

Tested on: jam
2015-08-03 23:01:14 -05:00
Albert Cheng
e95208c87d [svn-r27439] Merged r27428 from trunk.
Bug fix: DAILYTEST-170
Description:
    XL compilers in ostrich (PowerPC64 linux) fail in test/dt_arith
    because of the removal of the LLONG_TO_LDOUBLE_CORRECT (removed in
    r26625) and LDOUBLE_TO_LLONG_ACCURATE (removed in r26623).

Solution:
    Reverse revisions
	r26623: bring back LDOUBLE_TO_LLONG_ACCURATE configure macro
	r26625: bring back LLONG_TO_LDOUBLE_CORRECT configure macro
	r26627: bring back WANT_DATA_ACCURACY configure macro which is
	    used together with the above two macros. This also brings
	    back the enable-dconv-accuracy configure option.

Tested: platypus & kituo, using --enable-fortran, --enable-cxx. Also in Ostrich using
both GCC and XL compilers.
2015-07-28 18:20:23 -05:00
Dana Robinson
0bf2b76c6d [svn-r27414] Added platform-independent flock wrappers. When flock is not present on
the system, HDflock becomes a no-op. No Windows implementation of flock
has been included. Wflock is currently an empty function.

Only the Autotools are supported. CMake in this branch still needs a lot
of work.

Also fixed a few implicitly defined function warnings due to missing
headers.

Tested on:  jam, emu (Solaris passes make check now)
2015-07-20 10:16:34 -05:00
Dana Robinson
92d23d1b8f [svn-r27411] Fixes some issues in the source:
- Renamed a few "h5tri_t extended" variables to "h5tri_t was_extended".
  Apparently, "extended" is a typedef name someplace in the headers used
  on Solaris, which causes potentially confusing warnings to be emitted.

- Added a missing H5F_get_vfd_handle() declaration to H5Fprivate.h.

- Fixed an error condition value in H5C.c.

Tested on: jam (passes)
           emu (behaves correctly, but flock issues prevent building in this
           branch)
2015-07-19 07:29:11 -05:00
Albert Cheng
9fdcd4b3dc [svn-r27409] Post release maintenance: increase version number to 1.9.222-swmr1.
Tested: platypus and moohan (CentOS 6 & 7)
2015-07-18 11:09:58 -05:00
Dana Robinson
6cf0ff17c2 [svn-r27408] Merge of r27407 from the trunk.
Updated the H5_ATTR_* macros.

- Updated the preprocessor logic that defines the H5_ATTR_* macros. The Solaris
  Studio compiler understands __attribute__ but not the specific attributes
  that we use. The H5_ATTR_* macros are now defined as blank with that
  compiler which significantly cleans up the warnings, making debugging
  easier.

- Replaced a few lingering __attribute__ macros with H5_ATTR_* markup.

Tested on: jam (passes)
           emu (behaves correctly, but flock issues prevent building in this
           branch)
2015-07-18 09:25:25 -05:00
Albert Cheng
8be9d9a7e8 [svn-r27402] HDF5 version 1.9.222-swmr0 released on 2015-07-15. 2015-07-17 11:41:27 -05:00
Vailin Choi
abecd36aa3 [svn-r27370] (1) Fix for test/dsets.c failure when enable-debug=all
(2) Modify message when file failed to open due to file consistency flag
Tested on jam, ostrich, koala, platypus.
2015-07-11 12:39:57 -05:00
Vailin Choi
c948f9f3f9 [svn-r27367] Fix the test failure exposed when --disable-sharelib-rpath.
Tested on jam, koala, ostrich, moohan, platypus, quail.
2015-07-09 16:07:08 -05:00
Vailin Choi
d90da43810 [svn-r27356] Fixes for revise_chunks daily test failures:
(1) Clear status flag for th5s.h5
(2) Close dataset/file in test_file_image.c
Tested on jam, koala, ostrich, moohan, quail.
2015-07-08 23:39:48 -05:00
Dana Robinson
3cd1ab20e5 [svn-r27348] Fixed a manifest issue.
Tested on: bin/chkmanifest
2015-07-08 10:10:57 -05:00
Vailin Choi
b1b903ac3f [svn-r27345] Bring revision #24678 from revise_chksum_retry branch to revise_chunks.
Tested on jam, koala, ostrich, moohan.
2015-07-07 22:06:03 -05:00
Dana Robinson
29bb203283 [svn-r27344] Updated the SWMR acceptance tests to use h5_fileaccess() to obtain
a VFD-specific file access property list when running 'make check-vfd'.

Tested on: OS X 10.10.2 (Yosemite) w/ clang 6.1.0 (Xcode 6.3.2)
2015-07-07 17:39:16 -05:00
Dana Robinson
234cbe5c25 [svn-r27343] Changed test/test_swmr.c to swmr.c to be more in line with other test
names to and to make it more obvious that this is a unit test and not
run via the testswmr.sh script.

The H5FD.c changes are due to updated trace statements when reconfiguring.

Tested on: jam
2015-07-07 15:34:23 -05:00
Vailin Choi
cb7214b2f7 [svn-r27342] Bring revision #26569 from revise_chksum_retry branch to revise_chunks.
Tested on koala, jam, ostrich, moohan.
2015-07-07 13:04:33 -05:00
Vailin Choi
3d62944b04 [svn-r27341] Bring revisions #25493 - #25786 from revise_chksum_retry branch to revise_chunks.
Tested on jam, koala, ostrich, moohan.
2015-07-06 23:07:39 -05:00
Vailin Choi
26e403a521 [svn-r27340] Bring revisions #24766 - #24807 (i.e. #24805, #24806, #24807) from revise_chksum_retry branch to revise_chunks.
Tested on jam, koala, ostrich, moohan.
2015-07-06 16:49:32 -05:00
Vailin Choi
6d36ca2303 [svn-r27338] Bring revision #24747 from revise_chksum_retry branch to revise_chunks.
Plus couple fixes:
1) test/test_swmr.c: fix to use H5Dopen2()
2) test/noencoder.h5: clear status_flags in superblock
2015-07-05 17:33:57 -05:00
Vailin Choi
f3b42904a5 [svn-r27335] Bring revisions #24679, #24736 from revise_chksum_retry branch to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2015-07-03 19:42:34 -05:00
Vailin Choi
0fc7dc5b75 [svn-r27331] Bring revison #24675 from revise_chksum_retry branch to revise_chunks.
h5committested.
2015-07-02 15:56:21 -05:00
Vailin Choi
b4bf98a126 [svn-r27329] Fixes for daily test failures for revise_chunks:
1) Clear status_flags for h5repack_szip.h5
2) Use H5Dopen2() in test/dsets.c, test/test_swmr.c, hl/test/test_dset_append.c
Tested on jam, koala, platypus.
2015-07-02 15:17:29 -05:00
Vailin Choi
6257e2d29a [svn-r27290] Bring revisions #24622 - #24669 (i.e. #24624, #24663, #24669) from revise_chksum_retry branch to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2015-06-26 21:28:25 -05:00
Vailin Choi
130e77f4fa [svn-r27288] Bring revision #24622 from revise_chksum_retry branch to revise_chunks. h5committested.
#test-p fails but will be fixed with merges later: #26569 (revise_chksum_retry) + v3 metadata cache #27237 (trunk).
2015-06-26 13:44:27 -05:00
Vailin Choi
39b99473ea [svn-r27281] Bring revision #24478 from revise_chksum_retry branch to revise_chunks. h5committested. 2015-06-24 18:47:24 -05:00
Vailin Choi
e36e886cf7 [svn-r27277] Bring revision #24353 from revise_chksum_retry branch to revise_chunks. h5committested. 2015-06-24 12:22:38 -05:00
Dana Robinson
85166660d6 [svn-r27275] Corrected C++-style comments.
Tested on: jam (compile only)
2015-06-24 11:35:57 -05:00
Vailin Choi
e5581d39a5 [svn-r27273] Bring revision #24331 from revise_chksum_retry branch to revise_chunks. h5committested. 2015-06-24 01:05:11 -05:00
Vailin Choi
d043c9c265 [svn-r27272] Bring revision #24263 from revise_chksum_retry branch to revise_chunks. h5committested. 2015-06-23 18:06:30 -05:00
Vailin Choi
e642d17a4d [svn-r27263] Bring revisions #27198 - #27216 from trunk to revise_chunks. h5committested. 2015-06-22 00:11:23 -05:00
Vailin Choi
6570de93dc [svn-r27258] Bring revisions #27142 - #27198 from trunk to revise_chunks. h5committested. 2015-06-20 17:26:22 -05:00
Vailin Choi
2dfc4a7ac6 [svn-r27257] Bring revisions #27084 - #27142 from trunk to revise_chunks. Tested on jam, koala, ostrich. 2015-06-20 02:00:11 -05:00
Vailin Choi
87bb643dbb [svn-r27247] Bring revisions #27072 - #27084 from trunk to revise_chunks. h5committested. 2015-06-18 23:12:36 -05:00
Vailin Choi
524d0abc13 [svn-r27241] Bring revisions #27058 - #27072 from trunk to revise_chunks. h5committested. 2015-06-18 10:38:29 -05:00
Vailin Choi
287b1fe70f [svn-r27156] Bring revisions #27003 - #27058 from trunk to revise_chunks. h5committested. 2015-06-06 17:42:54 -05:00
Vailin Choi
442946d6c9 [svn-r27016] Bring revisions #26986 - #27003 from trunk to revise_chunks. h5committested. 2015-05-05 12:06:07 -05:00
Vailin Choi
7eca206b77 [svn-r27007] Bring revisions #26843:26986 from trunk to revise_chunks. h5committested. 2015-05-04 11:56:57 -05:00
Vailin Choi
d65747d78b [svn-r27001] Bring revisions #26837 - #26843 from trunk to revise_chunks.
h5committested.
2015-05-04 09:35:59 -05:00
Vailin Choi
a2aa6d4e64 [svn-r26992] Bring revisions #26785 - #26837 from trunk to revise_chunks.
h5committested.
2015-05-01 14:51:47 -05:00
Vailin Choi
e0e28a7aae [svn-r26894] Bring revisions #26459 - #26785 from trunk to revise_chunks.
h5committested.
2015-04-22 17:31:12 -05:00
Vailin Choi
65b3bc2a93 [svn-r26861] Bring revisions #26401 - #26459 from trunk to revise_chunks.
h5committested.
2015-04-21 09:58:43 -05:00
Vailin Choi
3f36df51d8 [svn-r26859] Bring revisions #26324 - #26843 from trunk to revise_chunks.
h5committested.
2015-04-20 21:52:07 -05:00
Vailin Choi
76d509dd6f [svn-r26378] Bring revisions #26220 - #26324 from trunk to revise_chunks. h5committested. 2015-03-06 00:13:47 -05:00
Vailin Choi
50c38a5733 [svn-r26372] Bring revisions #26195:#26219 from trunk to revise_chunks.
h5committested.
2015-03-05 15:31:34 -05:00
Vailin Choi
f6fbd4ab36 [svn-r26364] Bring revisions #26188 - #26195 from trunk to revise_chunks.
h5committested.
2015-03-05 00:04:06 -05:00
Vailin Choi
3a1c1caa0e [svn-r26362] Bring revisions #26109 - 26188 from trunk to revise_chunks.
h5committested.
2015-03-04 16:03:12 -05:00
Vailin Choi
e5e96cf1fd [svn-r26356] Bring revisions #25971 - 26109 from trunk to revise_chunks.
Also move check for swmr_read in each driver on reading beyond file eoa to H5FD_read()--
in sync with changes for revision #26002 in trunk.
h5committested.
2015-03-04 11:05:27 -05:00
Vailin Choi
394f6f50bf [svn-r26345] Bring revisions #25902 - #25971 from trunk to revise_chunks.
h5committested.
2015-03-03 00:08:02 -05:00
Vailin Choi
690b832ce1 [svn-r26344] Bring revisions #25870 - #25902 from trunk to revise_chunks.
h5committested.
2015-03-02 18:10:57 -05:00
Vailin Choi
b53d5c485c [svn-r26334] Bring revision #25818 - #25870 from trunk to revise_chunks.
h5committested.
2015-03-01 22:34:28 -05:00
Neil Fortner
f8f7c0dfaa [svn-r25941] Fix uninitialized memory error with v2 b-tree shadow pointers
Fix swmr_writer and swmr_remove_writer to handle user-supplied seed values
greater than 2^31-1
2015-01-02 11:24:14 -05:00
Vailin Choi
073252b22a [svn-r25844] Fix for SWMR-15: eliminate the "Terminated" message from kill when testing h5watch:
--Use signal handler to catch SIGTERM and SIGINT.
Also remove redundant tests to lessen the possibility of failures due to timing in catching h5watch output.
2014-11-25 15:26:56 -05:00
Quincey Koziol
5d23fe9d97 [svn-r25828] Description:
Check in Vailin's performance improvements:

- Track min+max for v2 B-trees, so we can more quickly answer queries

- Refactor chunk index/hash value computation so that it doesn't have to be
    updated on cached chunks every time the dataset's dimension sizes change.

Tested on:
    Mac OSX/64 10.10.0 (amazon) w/gcc 4.9, FORTRAN, C++ & parallel
    (h5committest not required on this branch)
2014-11-20 15:25:07 -05:00
Vailin Choi
a0acf1329d [svn-r25826] Bring revisions #25771 - #25818 from trunk to revise_chunks.
h5committested.
(Revision #25766 is skipped since it reverts #25273, #25283, #25439.)
2014-11-19 10:25:46 -05:00
Vailin Choi
a00ad64f46 [svn-r25825] Bring revisions #25509 - #25762 from trunk to revise_chunks.
h5committested.
2014-11-18 19:29:26 -05:00
Vailin Choi
5a3e6cf080 [svn-r25824] Bring revision #25508 - #25509 from trunk to revise_chunks.
h5committested.
2014-11-18 18:19:14 -05:00
Vailin Choi
4ddc3c769e [svn-r25823] Bring revisions #25484 - 25508 from trunk to revise_chunks.
h5committested.
2014-11-18 12:57:48 -05:00
Quincey Koziol
5cf77a2a7b [svn-r25822] Description:
Clean up warnings
2014-11-18 11:10:08 -05:00
Quincey Koziol
a956537fd3 [svn-r25821] Description:
Clean up formatting and remove unused variables.
2014-11-18 11:05:46 -05:00
Vailin Choi
fc31e90ca5 [svn-r25819] Bring revisions #25440 - #25484 from trunk to revise_chunks.
h5committested.
(Revision #25439 is skipped because it was backed out later on 11/3/2104.)
2014-11-17 17:21:40 -05:00
Quincey Koziol
44c62d3d0a [svn-r25817] Description:
Fix minor formatting issue.
2014-11-17 12:03:49 -05:00
Quincey Koziol
153725d4ba [svn-r25816] Description:
Minor formatting cleanup
2014-11-17 09:33:31 -05:00
Quincey Koziol
b678f28f71 [svn-r25815] Description:
Minor formatting cleanup
2014-11-17 08:51:19 -05:00
Vailin Choi
7ec8fad952 [svn-r25814] Bring revisions #25284 - #25434 from trunk to revise_chunks.
(Revision #25283 is skipped since it was backed out later on 11/3/2015.)
h5committested.
2014-11-13 17:32:19 -05:00
Quincey Koziol
5818a3045d [svn-r25812] Description:
Add a few missing comments.
2014-11-12 15:27:43 -05:00
Quincey Koziol
d906619ed2 [svn-r25810] Description:
Clean up some unused parameters to v2 B-tree internal routines.

Tested on:
    Mac OSX/64 10.10.0 (amazon) w/serial & parallel
    (h5committest not required on this branch)
2014-11-12 12:58:49 -05:00
Vailin Choi
ca609fa9a6 [svn-r25809] Merge revisions #25274, #25282 from trunk to revise_chunks.
(Revision #25273 is skipped because it was backed out later on 11/3/2014.)
h5committested.
2014-11-12 12:35:38 -05:00
Vailin Choi
3f839063e3 [svn-r25588] Bring revisions #25383, #25388 from revise_chksum_retry to revise_chunks.
h5committested.
2014-09-11 14:38:41 -05:00
Vailin Choi
7e5823d742 [svn-r25585] Merge revisions #24517, #24766 from revise_chksum_retry back to revise_chunks.
h5committested.
2014-09-10 16:11:32 -05:00
Vailin Choi
4890c5327e [svn-r25491] Correct package/version conflicts that were missed out from previous merge.
Tested on jam, koala, ostrich, platypus.
2014-07-29 17:21:21 -05:00
Quincey Koziol
8640a90adb [svn-r25486] Description:
ifdef out the debugging code for detecting keypresses

Tested on:
    Mac OSX/64 10.9.3 (amazon) w/C++ & FORTRAN
    (h5committest not required on this branch)
2014-07-28 14:08:07 -05:00
Quincey Koziol
a1701cb901 [svn-r25429] Description:
Add code to ld_monitor test so that a keypress will stop it (instead of
ctrl-c, which was messing up valgrind).

Tested on:
    Mac OSX/64 10.9.3 (amazon) w/valgrind
    (h5committest not required on this branch)
2014-07-17 17:38:07 -05:00
Quincey Koziol
08590f3759 [svn-r25428] Description:
Initialize ID variables, so they aren't invalid when attempting to close
them.

Tested on:
    Mac OSX/64 10.9.3 (amazon) w/valgrind
    (h5committest not required on this branch)
2014-07-17 17:36:38 -05:00
Vailin Choi
9158e8aa03 [svn-r25342] Bring revisions #25120 - #25266 from trunk to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2014-06-23 15:24:08 -05:00
Vailin Choi
67ba5eb6e8 [svn-r25333] Bring revisions #24948 - #25120 from trunk to revise_chunks.
Tested on jam, ostrich, koala, platypus.
2014-06-19 15:09:06 -05:00
Vailin Choi
02eab2eb72 [svn-r25328] Bring revisions #24851 - 24948 from trunk to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2014-06-18 19:01:55 -05:00
Vailin Choi
99ceb100fe [svn-r25309] Bring revisions #24783 - #24851 from trunk to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2014-06-17 17:26:28 -05:00
Vailin Choi
611d2c89af [svn-r25307] Bring revisions #24698 - #24783 from trunk to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2014-06-17 15:40:01 -05:00
Vailin Choi
720e0c7623 [svn-r25250] Bring revisions #24670 - $24698 from trunk to revise_chunks.
Tested on jam, koala, ostrich, platypus.
2014-06-10 11:22:12 -05:00
Vailin Choi
519e231710 [svn-r25242] Bring revisions #24505 - #24670 from trunk to revise_chunks.
Tested on jam, ostrich, koala, platypus.
2014-06-09 11:19:26 -05:00
Vailin Choi
94d9aa2d31 [svn-r24609] Bring revisions #24480 - #24505 from trunk. 2014-01-03 12:45:26 -05:00
Vailin Choi
07e3ae1f52 [svn-r24608] Bring revisions #24432 - #24480 from trunk.
h5committested.
2014-01-03 09:23:28 -05:00
Quincey Koziol
43845ae14d [svn-r24475] Description:
Remove duplicate "intent" flags from top & shared file structures, leaving
them only in the shared file structure.

Tested on:
    Mac OSX/64 10.9.0 (amazon) w/gcc 4.8
2013-11-30 00:50:55 -05:00
Quincey Koziol
c31111a5f0 [svn-r24473] Description:
Correct error with speculative read buffers being incompletely cleared, and
use separate buffer.
2013-11-27 15:15:46 -05:00
Albert Cheng
33d24d6314 [svn-r24470] Merged from Chunksum branch.
POSIX Order Write Test report.
2013-11-27 08:25:28 -05:00
Vailin Choi
9dfe3e854f [svn-r24457] Bring revisions #24333 - #24432 from trunk to revise_chunks.
h5committested.
2013-11-19 18:00:19 -05:00
Vailin Choi
612faec1ac [svn-r24454] Checkin for bug fix SWMR-11: used message file to coordinate test runs for h5watch.
The changes were initially done as part of the file locking implementation.

In addition, fixes for the following:
A) Bug fix when enable-production in test/tfile.c--
   --test_swmr_write(): use latest format in creating the test files

B) Bug fixes to sync up with revise_chksum_retry branch:
   1) test/accum.c--fix to use new_argv/new_envp for execve() and clean out compilation warnings
   2) hl/src/H5HLprivate2.h--put the defines in alphabetical order
   3) hl/tools/h5watch/h5watch.c--h5watch test exit code error due to error stack
   4) hl/tools/h5watch/extend_dset.c--clean up some compilation warnings

Tested on jam, ostrich, koala, platypus, emu, aix.
2013-11-15 12:58:00 -05:00
Albert Cheng
f5b8c0b3e8 [svn-r24444] Removed the need to include getopt.h which is already defined in POSIX.2.
unistd.h includes getopt definitions.

Test: h5committested--all passed except cmake which is expected.
2013-11-14 16:34:55 -05:00
Dana Robinson
f498b5ef45 [svn-r24415] Merged 2414 from branches/revise_chksum_retry
Fixed failure of dsets test when --enable-production is set.  Fixes SWMR-12.

Also fixed a few minor warnings in dsets.c.

Tested on: jam (very minor test code change)
2013-11-07 15:23:09 -05:00
Vailin Choi
f09d3e86b3 [svn-r24337] Bring revisions #24200 - #24333 from trunk. 2013-10-21 16:48:48 -05:00
Vailin Choi
2b18e934c6 [svn-r24336] Bring revisions #24118 - #24200 from trunk. 2013-10-21 11:12:33 -05:00
Vailin Choi
0a9249a401 [svn-r24330] Bring revisions 24098 - #24118 from trunk to revise_chunks.
h5committested.
2013-10-18 13:05:54 -05:00
Albert Cheng
8748d808b2 [svn-r24328] Changed the version subrelease string to "swmr0" so that this
branch can be identified with this unique string.

Tested: Koala passed.
2013-10-17 20:29:37 -05:00
Vailin Choi
cab8a28fe4 [svn-r24326] Do "svn propdel svn:mergeinfo" on these files so they won't appear as modified.
Also, update MANIFEST with "test/SWMR_POSIX_Order_UG.txt".
h5committested.
2013-10-17 17:54:48 -05:00
Albert Cheng
3d78e8e656 [svn-r24323] Created a user instruction for running the POSIX Order test. 2013-10-17 16:49:08 -05:00
Albert Cheng
0af52a0cd7 [svn-r24322] Removed the iteration (-i) option since it does not make sense to for
the writer process to rewrite the data file while the reader process
may still be reading linked blocks of the previous iteration.

Tested: koala
2013-10-17 16:47:52 -05:00
Albert Cheng
93fa2ba196 [svn-r24295] Add the write order test here temporary.
Need to move it to a permenant place later.

Tested: koala
2013-10-15 15:30:14 -05:00
Albert Cheng
46595a3276 [svn-r24294] Add option parsing support to allow running with different parameter values.
Tested: Linux (jam, koala, playpus, ostrich), Mac (duck), Solaris (emu)
2013-10-15 14:23:00 -05:00
Vailin Choi
308880e894 [svn-r24293] Bring revisions #24058 - #24098 from trunk to revise_chunks.
h5committested.
2013-10-15 14:16:05 -05:00
Dana Robinson
febb17322b [svn-r24278] Purpose: Block v-1 B-tree writes under SWMR write semantics
Description:
Modified the MD cache so that v-1 B-tree node writes are prohibited
under SWMR semantics.

Testing changes:
testswmr
Removed the -i b1 option from the test.
NOTE: The testswmr.sh test performs operations that are not currently
supported under our current level of SWMR implementation.

links
Modified an external link test so that a close/reopen w/ SWMR write
test is not performed when the v-1 B-trees are used.

dsets
Chunk tests don't run when using SWMR and the old file formt (i.e.
v-1 B-tree chunk indexes).  Also added a new test that fails when
trying to write v-1 B-tree nodes. Makefile updated to clean up
all test files created by this test.

flushrefresh
Modified the test to use the latest file format.

Tested on:
    jam         (32-bit LE linux)
    koala       (64-bit LE linux)
    ostrich     (64-bit BE linux)
2013-10-10 07:07:56 -05:00
Albert Cheng
b212ce0d85 [svn-r24096] A first implementation of the POSIX order tests.
Tests: passed in jam and koala.
2013-09-04 07:21:05 -05:00
Dana Robinson
3271e8f53a [svn-r24094] Removed WATCH.h5 from source control. It's regenerated by the script
and is causing problems since it's "modified" on each run of make check.

Tested on: jam (minor change)
2013-09-03 09:48:01 -05:00
Albert Cheng
2e5abcc03a [svn-r24067] Creating the test program of order of writes.
For now, it is just a dummy program. Checking it in
so that I can check them out for my Mac laptop to work on offsite.

Tested: koala
2013-08-24 02:10:36 -05:00
Dana Robinson
20b35ab1eb [svn-r24064] Purpose:
Updates the use_append_mmchunks test to use the most recent file
	format.  This switches the chunk index type from version 1 B-tree
	(which is not SWMR-safe due to the lack of a checksum) to 
	extensible array.

	This fixes the SWMR-6 issue in JIRA.

	Also cleaned up the code a little so it compiles without warnings.

Tested on:
	jam (32-bit linux)
2013-08-23 11:11:00 -05:00
Vailin Choi
d8a0a14591 [svn-r24062] Bring revisions #24030 - 24058 from trunk to revise_chunks.
h5committested.
2013-08-22 23:55:15 -05:00
Vailin Choi
66921438dd [svn-r24061] Bring revisions # 24029 - 24030 from trunk to revise_chunks.
h5committested.
2013-08-22 18:57:27 -05:00
Vailin Choi
1220779c31 [svn-r24060] Bring revisions #24002 - 24029 from trunk to revise_chunks.
h5committested.
2013-08-22 15:44:25 -05:00
Vailin Choi
4df44aafaf [svn-r24049] Bring revisions #23988 - 24002 from trunk to revise_chunks.
h5committested.
2013-08-21 14:26:31 -05:00
Vailin Choi
f9486b531f [svn-r24048] Bring revisions #23986 - 23988 from trunk to revise_chunks.
h5committested.
2013-08-21 13:10:25 -05:00
Vailin Choi
c701a6e452 [svn-r24040] Bring revisions #23984 - 23986 from trunk to revise_chunks.
h5committested.
2013-08-20 16:53:50 -05:00
Vailin Choi
a829c8b69c [svn-r24034] Bring revisions #23977 - 23984 from trunk to revise_chunks.
h5committested.
2013-08-20 13:10:51 -05:00
Vailin Choi
46b8a32c6e [svn-r24031] Bring revisions #23950 - 23977 from trunk to revise_chunks.
h5committested.
2013-08-19 18:29:35 -05:00
Vailin Choi
b8a8b54fda [svn-r23961] Bring revisions #23862 - 23953 from trunk to revise_chunks.
h5committested.
2013-08-01 12:54:31 -05:00
Vailin Choi
e78fbfd2a2 [svn-r23959] Bring revisions #23745 - 23862 from trunk to revise_chunks.
h5committested.
2013-07-31 18:49:47 -05:00
Vailin Choi
3146ddb5c2 [svn-r23954] Bring revisions #23715 - 23745 from trunk to revise_chunks.
h5committested.
2013-07-31 12:21:24 -05:00
Vailin Choi
6631036834 [svn-r23951] Bring revisions #23713 - 23715 from trunk to revise_chunks.
h5committested.
2013-07-31 10:01:53 -05:00
Vailin Choi
147522bb61 [svn-r23948] Bring revisions #23670 - 23713 from trunk to revise_chunks.
h5committested.
2013-07-30 16:41:23 -05:00
Vailin Choi
4d080e50f6 [svn-r23946] Bring revisions #23597 - #23670 from trunk to revise_chunks.
h5committested.
2013-07-30 15:18:27 -05:00
Albert Cheng
8e9a3a200b [svn-r23857] Updated with ./test/AtomicWriterReader.txt. 2013-07-02 13:30:55 -05:00
Albert Cheng
d5923ee4ca [svn-r23852] Added a user instruction of the atomic test. 2013-06-30 18:14:01 -05:00
Albert Cheng
080a7ebb37 [svn-r23851] Bug fix: after printing usage for -h option, it should have ended the program.
Solution: added exit(0) after usage().  This is not a good fix but will work
for now.

Test: jam.
2013-06-30 18:12:38 -05:00
Albert Cheng
297ed85ea1 [svn-r23848] Bug fix:
The script execute the program by just $program which will not work if the
user does not have "." in the $PATH.
Changed it to "./$program" to avoid this problem.

Tested: koala.
2013-06-29 16:45:59 -05:00
Vailin Choi
5845fed5cb [svn-r23828] Fix 2 bugs for SWMR access:
1) H5O_load() in H5Ocache.c: when reading a block that is > spec_read siez, read the whole block in again and possibly decode the header.
2) H5F_accum_write() in H5Faccum.c: for a large write that is >= H5F_ACCUM_MAX_SIZE, flush the metadata in the accumulator first before the write.
Tests are added to test/ohdr.c and test/accum.c. h5committested.
2013-06-26 15:35:42 -05:00
Albert Cheng
d9517c14af [svn-r23802] Added use case 1.9, Appending n-1 dimensional planes. 2013-06-20 19:21:10 -05:00
Albert Cheng
4cccb339bc [svn-r23792] Added use case 1.8, use_append_mchunks. 2013-06-18 18:45:17 -05:00
Albert Cheng
e1e913f87c [svn-r23777] Implement SWMR-5:
Replace H5Fflush in writer with H5Dflush and file close/reopen with
H5Drefresh.  Use cases seem to run faster.  Keeping the old code so that
later on, I may test the performance between the two.

Tested: koala.
2013-06-15 11:46:48 -05:00
Vailin Choi
eae9a5c1ce [svn-r23776] Add the two new files to MANIFEST for the previous checkin. 2013-06-14 16:55:54 -05:00
Albert Cheng
b3526d3b90 [svn-r23775] Implement SWMR-5:
Implemented use case 1.9: Appending n-1 dimensional planes

Adding the option "-y" which allows chunks to be thicker
(more than 1 plane). This supports use case 1.9 which have chunks
of multiple planes but writing is still appending one plane at a time.
Using -y with "use_append_chunk", would provide the use case
of writing a plane to a partial chunk.
Using -y with "use_append_mchunks", would provide the use case
of writing a plane to multiple partial chunks.

Also added the option -n which specifies how many planes to write
instead of the defaults of chunksize number of planes. This allows
the final dataset to be other than a cube.

test/use_append_mchunks.c:
test/use_common.c:
test/use.h:
test/use_append_chunk.c:
I also overhauled code in use_append_mchunks and use_append_chunk:
    1. creating a set_parameter() to customize individual use case;
    2. combine the create_uc_file(), read_uc_file() and write_uc_file()
       of both use cases appending one plane per chunks and one plane per
       multiple chunks.  Moved these combined create/read/write functions
       into use_common.c to make future modification and maintence easier.
test/test_usecases.sh.in:
Added a simple test to demonstarte how to use -y to run use case 1.9.

Tested: h5committest, except cmake, passed. Hand tested in Koala for various options.
2013-06-14 16:55:01 -05:00
Vailin Choi
6e46183e35 [svn-r23774] The standalone writer & reader tests that check atomic read-write operation on the system. 2013-06-14 15:52:54 -05:00
Albert Cheng
d01b40e439 [svn-r23760] Implement SWMR-5:
Implemented use case 1.8 program--SWRM read/write multiple chunks at a time.

test/use_append_mchunks.c:
    The program.
test/Makefile.am:
test/Makefile.in:
    Added program use_append_mchunks.
test/test_usecases.sh.in:
    Added simple tests for use_append_mchunks.
MANIFEST:
    Updated for new file.

Tested: h5committest, except cmake, passed. Hand tested in Koala for various options.
2013-06-12 11:29:09 -05:00
Albert Cheng
a33955d60f [svn-r23757] Simple clean up--removed couple old commented line.
Tested: h5committested.
2013-06-11 20:49:16 -05:00
Albert Cheng
72931be7e8 [svn-r23750] Bug fix: SWMR-hh1 and SWMR-2
When zlib is not available (use "configure --without-zlib"), some tests
failed to not using compression features.

Solution:
test/dsets.c:
    Conditional blocked out use of zlib compression code.
tools/h5ls/testh5ls.sh.in:
    Temporary commented out test code that uses datafile that has zlib
    compressed data.

Tested: h5committest (cmake does not work but that is ignored for now.) Also,
hand tested in koala using "configure --without-zlib".
2013-06-10 16:17:21 -05:00
Albert Cheng
908c946a23 [svn-r23749] Updated with the newly added test/SWMR_UseCase_UG.txt entry. 2013-06-10 16:02:20 -05:00
Albert Cheng
5802eec5d4 [svn-r23730] Fixed a typo (size should be 256) and some formatting. 2013-06-01 23:24:55 -05:00
Albert Cheng
e962355bda [svn-r23729] First edition of User Guide of SWMR Use Case programs. 2013-06-01 21:23:42 -05:00
Albert Cheng
a35d6c95a9 [svn-r23728] Updated the comments of create, write, and read process.
Tested: koala.
2013-06-01 20:55:23 -05:00
Albert Cheng
c7b5d11320 [svn-r23727] Added test/test_usecases.sh for testing use cases.
Tested: h5committest.
2013-06-01 19:05:29 -05:00
Albert Cheng
30cd06b6e1 [svn-r23726] Changed use case programs to more descriptive names.
usecase1_7.c -> use_append_chunk;
usecase_common.c -> use_common.c;
usecase.h -> use.h.

MANIFEST updated with new names.

Tested: h5committest.
2013-06-01 13:35:04 -05:00
Albert Cheng
39a3d4aa3e [svn-r23725] Added two new features:
1. "-f filename" can create the test file somewhere other than
the current directory or <progname>.h5.  This allows running tests in different
filesystems, for example.
2. "-l w|r" can launch only the writer or the reader (default does both).
This allows launching writer (includes the "create file") in one process and
launching the reader somewhere else. (The "-f" helps too.)

Tested: h5committested.
2013-05-31 18:20:21 -05:00
Albert Cheng
d8b37d28a3 [svn-r23724] Add use case 1.7--SWRM read/write one chunk at a time.
Tested: h5committest.
2013-05-31 12:56:57 -05:00
Albert Cheng
3413c2e10f [svn-r23722] Remove duplicated entries of hl/test/gen_test_ds.c.
Resort the hl/test/* entries to be alphabetical order, easier to detect
duplicates like this.
2013-05-31 12:13:12 -05:00
Vailin Choi
0e1e79f0e0 [svn-r23601] Bring revisions #23341 - 23597 from trunk to revise_chunks.
h5committtested.
2013-04-19 12:24:43 -05:00
Vailin Choi
14d8e1c2b5 [svn-r23600] Bring revisions #23085 - #23341 from trunk to revise_chunks.
h5committested.
2013-04-19 10:23:01 -05:00
Vailin Choi
6ee0e05fb9 [svn-r23599] Bring revisions 22802 : 23085 from trunk to revise_chunks.
h5committested.
2013-04-18 13:23:51 -05:00
Vailin Choi
94f8991154 [svn-r23582] Bring revisions 22708:22730 from trunk to revise_chunks.
h5committested.
2013-04-12 17:36:34 -05:00
Vailin Choi
4ce17c9aa6 [svn-r23577] Bring revisions 22708:22730 from trunk to revise_chunks.
h5committested.
2013-04-11 17:12:12 -05:00
Vailin Choi
5185d3a76a [svn-r23574] Bring revisions 22690 - 22708 from trunk to revise_chunks.
h5committested.
2013-04-10 23:33:01 -05:00
Vailin Choi
f56cc4156e [svn-r23568] Bring revision 22634:22690 from trunk to revise_chunks.
h5committested.
2013-04-09 18:18:29 -05:00
Neil Fortner
0b7490e7e4 [svn-r23135] Purpose: Fix bug in SWMR object header code
Descriptions:
When removing object header messages, it is possible for object header
continuation messages to move to a different chunk.  When this happens, flush
dependencies need to be updated to reflect the new structure.  This change adds
code to update the flush dependencies, and a test for this.

Also fixed a bug where the flush dependency no the object header proxy was not
being destroyed when an object header chunk was deleted.

Tested: ummon
2013-01-04 15:32:18 -05:00
Neil Fortner
ea1e90f95a [svn-r23109] Add cmake support to r23104
Tested: ummon
2012-12-17 11:33:47 -05:00
Neil Fortner
ebebe2dd93 [svn-r23104] Purpose: Add object header flush dependencies
Description:
Added flush dependencies between object header chunks.  Also added a new object
header proxy object, which is a child dependency of all object header chunks.
All objects which are child dependencies of an object header should set up a
flush dependency on the object header proxy, so the dependency applies to all
object header chunks.

Tested: ummon; jam (fails ph5diff -v, unrelated), koala, ostrich (h5committest)
2012-12-14 12:33:18 -05:00
Neil Fortner
cec83436f2 [svn-r23101] Minor corrections to r23095
Tested: ummon
2012-12-13 16:40:19 -05:00
Neil Fortner
adc36c3b4b [svn-r23095] Purpose: Refactor flush dependency code, add support for multiple parents
Description:
Reworked how flush dependencies worked internally, allowing multiple flush
dependency parents, and removing the notion of flush dependency heights, instead
keeping track of the number of dirty descendents to determine if parents can be
flushed.  Also removed the requirement that cache clients destroy flush
dependencies before eviction (this is now handled by the cache) and removed the
maximum number of passes (the cache should detect infinite loops elsewhere).
Added test cases for this.

Tested: durandal
2012-12-12 16:31:27 -05:00
Dana Robinson
c481032c1b [svn-r22965] Purpose:
Add missing skip list header to H5AC.c

Tested on:
	jam (trivial change)
2012-10-25 13:08:26 -05:00
Dana Robinson
ac0f446734 [svn-r22955] Purpose:
Removed legacy Visual Studio solutions and projects, which will
	no longer be supported after HDF5 1.8.10.
2012-10-23 13:40:51 -05:00
Neil Fortner
a2aba62fe0 [svn-r22950] Purpose: Fix testflushrefresh failures
Description:
Since the "flush me last" code was introduced, it was no longer possible for the
superblock to be flushed to disk without flushing the entire file.  This made it
impossible to open a file concurrently, even after calling H5Gflush on the root
group.  The superblock was originally supposed to be flushed every time any
object was explicitly flushed with H5*flush.

Modified H5C_flush_cache to ignore flush me last flag if the entry is marked for
flush (which is done either by a tag for H5*flush or to free up space in cache)
and the flush marked entries flag is set.

Tested: ummon
2012-10-23 11:05:06 -05:00
Dana Robinson
55d3172d22 [svn-r22949] Purpose:
Updated CMakelists.txt to include H5FSint.c

Tested on:
	jam
2012-10-23 10:38:43 -05:00
Dana Robinson
751eb7610b [svn-r22928] Purpose:
Updated CMakelists.txt to include H5FSint.c

Tested on:
	jam
2012-10-19 11:56:18 -05:00
Dana Robinson
b624395cca [svn-r22922] Purpose:
Moved the file open/close back inside the loop in the SWMR reader
	code.  Without the open/close, the cache never refreshes so we
	always see the initial amount.

	Made a couple of other minor changes to the SWMR code.

Tested on:
	jam
2012-10-18 16:14:35 -05:00
Dana Robinson
ddced9ab1d [svn-r22919] Purpose:
Converted an H5E_THROW to HGOTO_ERROR in the free space manager
	code.

Tested on:
	jam
2012-10-18 11:22:49 -05:00
Dana Robinson
7a6c0fc682 [svn-r22918] Purpose:
- Added comments to files, functions, etc.
	- Some readers changed to keep the file open throughout the
          life of the program instead of closing it before sleeping.
          This is in the hopes that there will be more opportunities for
          cache issues without the close.
	- Other minor changes.

Tested on:
	jam
2012-10-17 19:43:42 -05:00
Dana Robinson
5683217169 [svn-r22901] Purpose:
Fixes a bug in H5Fsuper_cache.c where a logical AND was
	used instead of a bitwise AND.

Tested on:
	miette (Mac OS-X 10.8 / clang) (very minor change)
2012-10-15 21:17:17 -05:00
Dana Robinson
0725d04506 [svn-r22900] Purpose:
Create/destroy flush dependency between the fractal
	heap header and the 'huge' v2 B-tree.

Tested on:
	jam (still has flush refresh test error)
2012-10-15 18:26:20 -05:00
Dana Robinson
ad18b90759 [svn-r22898] Purpose:
Updates the SWMR testing
	- All readers/writers now consume and emit their random seeds
	  for debugging.
	- Output uses unbuffered I/O for more readable output.
	- The random seeds are now based on a more fine-grained time
	  measurement to ensure each reader has a different random
	  seed.

Tested on:
	jam
2012-10-12 23:19:20 -05:00
Dana Robinson
dd2207f210 [svn-r22894] Purpose:
Very minor change to an error reporting routine in the extensible
	array code.

Tested on:
	jam (very minor change)
2012-10-12 15:02:19 -05:00
Dana Robinson
75cdc2dedf [svn-r22887] Purpose:
Fixes a variety of compile warnings and issues in the B-tree
	and heap code.

Tested on:
	jam
2012-10-11 22:23:08 -05:00
Dana Robinson
d2f3c1b991 [svn-r22885] Purpose:
Adds some additional flush dependency plumbing and fixes some minor
	issues with the v2 B-tree code.

Tested on:
	local Ubuntu VM
2012-10-11 14:10:26 -05:00
Dana Robinson
d179489d46 [svn-r22833] Purpose:
Basic SWMR and flush dependency plumbing for fractal heaps.  Does not include
flush dependency creation code.

Changes to the H5EA* code were just some indenting issues.

Tested on jam
2012-09-27 16:32:35 -05:00
Dana Robinson
f5afdf8e2a [svn-r22813] Purpose:
Add H5FSint.c file missing from last check-in.

Tested on: jam
2012-09-26 10:19:22 -05:00
Dana Robinson
6edac6e2df [svn-r22812] Purpose:
Mainly to add SWMR flush dependencies to the free space manager (H5FS) code.
Also fixes a few issues with the local heap and the fixed array code, and
brings the MANIFEST up to date.

Tested on: jam
2012-09-25 16:29:40 -05:00
Dana Robinson
6de27c1497 [svn-r22794] Purpose:
Merge r22694 and r22700 from the trunk.  These are minor fractal
    heap edits.

Tested:
    jam (minor change, has baked in trunk)
2012-09-20 11:51:32 -05:00
Dana Robinson
200ff7fa83 [svn-r22792] Purpose:
Add flush dependencies to the fixed array code.

Description:
    Updated MANIFEST.

Tested:
    jam (there is an existing flush/refresh test error)
2012-09-20 10:36:30 -05:00
Dana Robinson
88ebfc6dcd [svn-r22790] Purpose:
Add flush dependencies to the fixed array code.

Description:
    Updated CMakeLists.txt for new H5FAint.c file.

Tested:
    jam (there is an existing flush/refresh test error)
2012-09-19 10:52:12 -05:00
Dana Robinson
2ada9c8628 [svn-r22789] Purpose:
Add flush dependencies to the fixed array code.

Description:
    Forgot to add new file.

Tested:
    jam (there is an existing flush/refresh test error)
2012-09-19 10:15:39 -05:00
Dana Robinson
3427f6b172 [svn-r22784] Purpose:
Add flush dependencies to the fixed array code.

Description:
    Added basic flush dependency wiring to the fixed array code.  Does not
    include the test code, which will be added soon.

    NOTE: The Makefile.in change in test/ is not due to any changes made
    here.  It appears to be from a missing bin/reconfigure in a prior
    checkin.

Tested:
    jam (there is an existing flush/refresh test error)
2012-09-18 16:10:36 -05:00
Neil Fortner
495b8de002 [svn-r22761] Purpose: Fix testswmr failures
Description:
Patched H5B2 shadowed list implementation to remove nodes from the shadowed list
when they are evicted, and added some missing initializations.  Also removed
inadvertent temporary changes to the tests that disabled srandom, added
assertions and fixed formatting.

Tested: ummon
2012-09-13 14:18:45 -05:00
Quincey Koziol
4e44c3b7e2 [svn-r22680] Description:
Correct H5P_init_def_layout() to H5P__init_def_layout(), per Windows
daily test failure

Tested on:
    Windows daily test
2012-08-15 09:11:54 -05:00
Allen Byrne
515d6ccc8e [svn-r22678] Replace regex char deleted from last checkin 2012-08-14 08:40:19 -05:00
Allen Byrne
f517376cca [svn-r22672] Remove extraneous text 2012-08-13 08:38:03 -05:00
Quincey Koziol
cd5ad177a2 [svn-r22669] Description:
Merge r22634:2266 from trunk to revise_chunks branch

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/debug, gcc-4.7.x, C++, FORTRAN and threadsafe
    (h5committest not needed on this branch)
2012-08-11 21:20:43 -05:00
Quincey Koziol
cd3f42096b [svn-r22636] Description:
Bring r22599:22634 from trunk to revise_chunks branch

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/gcc 4.7.x, C++ & FORTRAN
    (No need for h5committest yet on this branch)
2012-08-06 14:42:49 -05:00
Quincey Koziol
434643dd4d [svn-r22600] Description:
Bring r22251:22599 from trunk to revise_chunks branch.

Tested on:
    Mac OSX/64 10.7.4 (amazon) w/gcc 4.7.1, C++ & FORTRAN
    (Not h5committested yet, as this branch doesn't require it)
2012-07-25 14:56:18 -05:00
Allen Byrne
f0e0137b61 [svn-r22530] The changes in these files added dangling links.
Tested: local cmake
2012-07-09 14:33:00 -05:00
Allen Byrne
e0319e8423 [svn-r22529] Change parameter to use options->follow_links instead of TRUE
Tested: local cmake - h5diff_472 and _475 now pass
2012-07-09 14:17:53 -05:00
Allen Byrne
046f1d7b1f [svn-r22522] Merge trunk revision 22520 cmake files and h5dump/h5diff and configure to branch 2012-07-06 14:16:07 -05:00
Dana Robinson
3fef275c89 [svn-r22521] Forgot to check in new source files. 2012-07-06 13:10:22 -05:00
Dana Robinson
2d3bf69c77 [svn-r22520] Made a few changes to error comparisons.
Tested on jam.  This branch still has h5diff errors.  The library tests
all pass, though.
2012-07-05 17:18:56 -05:00
Dana Robinson
35f98ad8b6 [svn-r22518] Added flush dependencies for SWMR to the local heap code.
Tested on jam.  This branch still has h5diff errors.  The library tests
all pass, though.
2012-07-05 16:14:37 -05:00
Dana Robinson
ce04965208 [svn-r22515] Converted local heap (H5HL) code to use the new enter/leave/error macro
scheme.  Also created separate prefix and data block files so that the
local heap code more closely resembles the rest of the data structures.

Tested on jam.  This branch still has h5diff errors.  The library tests
all pass, though.
2012-07-05 14:07:42 -05:00
Dana Robinson
c21ceb956c [svn-r22512] Added BEGIN_FUNC_VOID and END_FUNC_VOID macros to support void functions
under the new error handling macro scheme.

Also added some helpful comments and cleaned up some formatting.

Tested on jam, which has h5diff errors at this time.  The library tests
all pass so I'm going to check this in.
2012-07-03 16:19:53 -05:00
Dana Robinson
f5ebc95d0d [svn-r22508] Minor comment edit to correct return type. 2012-07-02 15:07:16 -05:00
Neil Fortner
9786c0e5cb [svn-r22422] Purpose: Add support for SWMR with v2 b-trees
Description:
Adds SWMR support to the v2 b-trees when used as a chunk index.  Because each
node keeps track of the total number of records reachable through each of its
children, nodes must be shadowed every time a descendent record is inserted or
removed.  This implementation prevents this from happening, however, if the node
has already been shadowed since the last time the v2 b-tree header was flushed.
Also modified SWMR test to include v2 b-trees.

Tested: jam, koala, ostrich (h5committest), durandal
  Note: There is a preexisting failure in the ph5diff (-v) test
2012-05-30 17:01:00 -05:00
Neil Fortner
1f6cb6f84a [svn-r22421] Misc enhancements for revise_chunks branch noticed while working on v2 b-trees,
but not related to v2 b-trees.

Tested: durandal
2012-05-30 16:44:06 -05:00
Allen Byrne
edebad0e78 [svn-r22255] Fix windows compile errors:
vs2008 needed H5private.h in H5Oflush.c
   VS needs windows export decoration (H5DLLVAR) in header used by source file of origin

Tested: windows
2012-04-06 12:08:37 -05:00
Quincey Koziol
d5a6223958 [svn-r22254] Description:
Bring r22085:22251 from trunk to revise_chunks branch.

	Also tackle some testing issues in test/objcopy.c test and clean up
some warnings.

Tested on:
        FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
        FreeBSD/64 8.2 (freedom) w/gcc4.6, w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (koala) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (ostrich) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (ember) w/Intel compilers, w/paralle, C++ & FORTRAN,
                in production mode
        Mac OS X/32 10.7.3 (amazon) in debug mode
        Mac OS X/32 10.7.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.7.3 (amazon) w/parallel, in debug mode
2012-04-05 21:57:06 -05:00
Dana Robinson
ebf3d99b95 [svn-r22251] Added missing files to CMake configuration file. 2012-04-04 17:10:40 -05:00
Vailin Choi
d41e30a716 [svn-r22241] Fix the failures for h5watch due to format indentation. 2012-04-02 13:28:14 -05:00
Neil Fortner
bd26865f7d [svn-r22187] Purpose: Fix dsets failure on ostrich
Description:
The "support" and "unsupport" chunk index callbacks took H5D_chunk_common_ud_t
udata pointers, which seems reasonable because the udata is only needed to
locate the chunk, and does not need to return anything to the callers.  However,
for v1 b-trees, H5D_btree_found must be called in order to locate the chunk, and
this function assumes that the udata is an H5D_chunk_ud_t and writes to fields
that are not in H5D_chunk_common_ud_t.  Modified the support and unsupport
callbacks to take H5D_chunk_ud_t.

Note: h5watch still fails

Tested: durandal, ostrich
2012-03-29 11:50:49 -05:00
Neil Fortner
5a722a152a [svn-r22172] Fix uninitialized return values.
Tested: jam
2012-03-28 15:38:57 -05:00
Quincey Koziol
0083cfc35b [svn-r22132] Description:
Add missing testfile.  (Branch still not passing all tests)

Tested on:
	Mac OSX/64 10.7.3 (amazon) w/debug)
2012-03-23 05:57:34 -05:00
Neil Fortner
542acd43b8 [svn-r22127] Purpose: Fix earray failure
Description:
In H5Dearray.c, functions would "swizzle" the chunk offset and "down" number of
chunks in order to more the unlimited dimension to be the first dimension, but
they would not swizzle the chunk dimensions.  This could cause two chunks to
have the same index, causing problems.  Modified code to swizzle the chunk
dimensions, and added a test.

Note: There is still a problem with h5watch that appears to be unrelated.

Tested: durandal
2012-03-22 18:29:10 -05:00
Quincey Koziol
eb89d7b53a [svn-r22105] Description:
Bring r20557:22085 from trunk to this branch, also fixing some other
issues/failures in the branch simultaneously.  The h5repack tests are still
failing, but Neil will be checking into those, so the branch can be fully
functional again.

Tested on:
	Mac OSX/64 10.7.3 (amazon) w/debug
2012-03-21 10:10:17 -05:00
Neil Fortner
3e468e6ff6 [svn-r22062] Purpose: Fix bugs in chunk cache's SWMR implementation
Description:
Two issues were found with the chunk cache's SWMR implementation:

1. Some places were not properly setting the rdcc field in the index udata
   struct.  Fixed.  May eventually need to add an rdcc field to the idx_info
   struct.

2. While recalculating the indices for chunks in a dataset being resized, it was
   possible for the chunk cache to attempt to flush a chunk before all the
   indices were updated, which caused problems when a node split and flush
   dependencies needed to be updated, because the child nodes could not be found
   in the chunk cache due to the index being out of date.  Modified algorithm in
   H5D_chunk_update_cache to keep a temporary list of entries that got "bumped",
   and only evict them after all chunks have updated indices.  Also modified
   H5D_chunk_update_flush_dep and H5D_chunk_update_flush_dep to search this
   temporary list when looking for the child chunk entry.  As a side effect,
   chunks are now more likely to remain in cache after a call to H5Dset_extent
   (even without SWMR), so performance should improve slightly.
2012-03-13 10:58:47 -05:00
Neil Fortner
73c139e29b [svn-r21989] Purpose: Add SWMR capability to v1 b-tree
Description:
Adds SWMR capability to v1 b-trees, and the chunk index using v1 b-trees.  With
this implementation, flush dependencies are always on when in the cache.  This
will allow attritbutes to be used for "checkpointing" data when object header
dependencies are fixed - i.e. if a writer writes data before an attribute in
that dataset's object header, then if a reader sees the updated attribute the
written data is guaranteed to be visible, as long as that dataset's b-tree nodes
are evicted from the reader's cache.

Also adds support for compression with SWMR.

Also fixes earray implementation to not free (reuse) the file space for deleted
chunks and outdated versions of compressed chunks when doing SWMR writes.  These
should eventually be added to a timeout list.

Adds testing for these cases.

Tested: durandal
2012-02-27 11:34:55 -05:00
Dana Robinson
e2cd000552 [svn-r21938] Fix for bad makefile clean code that removes hl/test/test_ld and hl/tools/h5watch .h5 files. These files are never regenerated and subsequent make checks after a clean will fail. This is just a temporary fix as the generator code and autotools files need a revisit. 2012-02-13 17:13:35 -05:00
Quincey Koziol
099b37d073 [svn-r20559] Description:
Bring r20407:20557 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (ember) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
2011-04-19 15:15:21 -05:00
Neil Fortner
94cf912176 [svn-r20555] Purpose: Improve performance when edge chunk filters are disabled with no chunk
cache.

Description:
When edge chunk filters and the chunk cache are disabled, the library would
previously go through the lock/unlock routines then immediately evict the chunk
as is done for filtered datasets, even for the unfiltered edge chunks.  This
forced the entire chunk to be read/written, even if only part of the chunk was
selected.  Modified the chunk cache to detect this case, and read/write only the
selected portion directly from/to the unfiltered chunk.

Tested: jam, amani (h5committest, heiwa down), fedora
2011-04-19 10:54:43 -05:00
Quincey Koziol
d6ecc0d448 [svn-r20408] Description:
Bring r20382:20407 from trunk to revise_chunks branch.

Tested on:
	Linux/32 2.6 (chicago) w/C++
2011-04-03 23:35:33 -05:00
Quincey Koziol
f4e7559bd2 [svn-r20383] Description:
Bring r19714:20382 from trunk to revise_chunks branch

Tested:
    Linux 2.6/64 (chicago)
2011-03-31 15:39:18 -05:00
Vailin Choi
9c0a2b2145 [svn-r20236] Add new files to MANIFEST.
h5committested.
2011-03-13 23:44:56 -05:00
Vailin Choi
79757db4c2 [svn-r20196] This checkin consists of the following:
A) - Changes to add the new tool "h5watch" to High Level
   - Changes to add three new High Level public routines for retrieving elements appended to a dataset

B) A patch from Mike M. to fix the H5Dflush/refresh problem:
src/H5Dpkg.h
src/H5Dint.c
src/H5D.c

C) Fix for an assertion failure in H5FS_sect_link_size() in H5FSsection.c
src/H5Dbtree2.c

h5committested; tested also on linew, duty, fred.
2011-03-07 11:37:49 -05:00
Quincey Koziol
727b687ae6 [svn-r20146] Description:
Bring r19714:20145 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.6 (amazon) in debug mode
        Mac OS X/32 10.6.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2011-02-22 14:37:06 -05:00
Mike McGreevy
25486d5089 [svn-r19879] Purpose:
Improve portability of flushrefresh test.

Description:

    The flush/refresh API test was hanging on linew because 
    Solaris's 'date' tool does not recognize the "+%s" option,
    which returns time since the epoch on other UNIXes.

    There doesn't seem to be a good way to unify the tools,
    however, Perl can be easily used for this function. I've
    modified configure to always check for the existence of
    Perl (previously it only did so if GNU compilers were being
    used), and the flush/refresh test script now uses perl to
    perform this timestamping functionality rather than date,
    by default. (if Perl is not detected by configure, the
    script will use date as it did prior to this modification).

    Fixed a few other compatibility issues w/ Solaris in passing:
    - fixed 'head' and 'tail' parameters to be more portable
    - avoid passing NULL to an fprintf call in flushrefresh.c

Tested:

    - Tested testflushrefresh.sh on jam, linew, heiwa, liberty, 
      duty, ember, and abe.
2010-12-08 15:56:28 -05:00
Quincey Koziol
fc38cc4d36 [svn-r19864] Description:
Add new source file for implicit chunk indexing.
2010-12-02 06:44:05 -05:00
Quincey Koziol
8205a888cb [svn-r19840] Description:
Check in Vailin's "implicit" chunk indexing code.

Tested on:
    Mac OS X/32 10.6.5 (amazon) w/debug & production
    (further testing upcoming shortly)
2010-11-24 10:56:09 -05:00
Mike McGreevy
1b8033b594 [svn-r19765] Purpose:
fix a few minor issues related to flush/refresh code

Description:

    - Replaced the globality macros with an enum typedef, to
      better encapsulate of the values that can be assigned
      to the variable.
    - Combined 'tag' and 'globality' properties into a single
      property by creating a new structure housing both values,
      since they are always accessed at the same time anyways.
    - Added an extra parameter check to H5Tflush/H5Trefresh
      routines to make sure the supplied datatype is a committed
      datatype.
    - Renamed and reworked some code to move "metadata" (H5AC)
      specific things out of the generic cache (H5C) level of code.

Tested:

    h5committest
2010-11-11 16:10:30 -05:00
Mike McGreevy
a32d6d79a3 [svn-r19739] Purpose:
Adjust flush/refresh tests to allow more time 
    for completion, and fix a bug that caused a 
    race condition between the test script and a 
    process it invokes.

Description:

    Flush/refresh testing slows down considerably
    with multiple (other) processes running in the 
    background, such as the case when -j option is
    supplied to gmake when running the test suite. 
    I've extended the amount of time before the test 
    times out due to not receiving a signal, and 
    modified the script so that the timer now resets 
    after receiving a signal so it is not a cumulative 
    timer for the entire test, but rather only per 
    verification process that the script needs to spawn.

    Additionally, I changed the way the test script
    detected that a signal from a process was ready by
    changing detection from 'file exists' to 'non-empty
    file exists'.

    This test may need to undergo further tweaking once 
    we get a feeling for how well it currently runs in 
    a number of different scenarios, particularly with 
    regards to how the script and the processes it spawns
    communicate with each other.

Tested:

    amani, using 'gmake -j 8 check'.
    h5committest
2010-11-05 16:48:17 -05:00
Quincey Koziol
c7dd9dfb50 [svn-r19716] Description;
Correct use of default API calls to v2 API calls in test code.

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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
2010-11-02 15:17:45 -05:00
Quincey Koziol
315eb0a168 [svn-r19715] Description:
Bring r19697:19714 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
2010-11-02 15:14:08 -05:00
Mike McGreevy
a9ca88d156 [svn-r19714] Purpose:
Add API and supporting code to allow single object flushes and refreshes.

Description:

    Added the following API calls:

    H5Dflush / H5Drefresh
    H5Gflush / H5Grefresh
    H5Tflush / H5Trefresh
    H5Oflush / H5Orefresh

    Each H5*flush API flushes the targeted object's metadata, 
    while each H5*refresh evicts all metadata related to an object 
    and reopens the object (re-loading needed metadata from disk).

    New files include src/H5Oflush.c, containing new internal H5O_* 
    functions used by the above API calls. Also, a test file and test 
    script template have been added, test/flushrefresh.c and 
    test/testflushrefresh.sh.in. There is not (yet) a corresponding 
    test script for windows as the current one isn't quite portable.

    Several H5C and H5AC-level functions have been added to support 
    single object flushing and eviction, and the previously committed 
    'metadata tagging' code has been tweaked slightly to pull H5AC__* 
    macros out of H5C.c and a few other fixes as necessary as well.

    Tag globality has been added to better encapsulate the meaning of 
    global tags in the H5C layer of the code. 

Tested:

    h5committested.
2010-11-02 14:00:56 -05:00
Quincey Koziol
8e04644abd [svn-r19698] Description:
Bring r19668:19697 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
2010-10-29 10:43:31 -05:00
Quincey Koziol
059db7a4f2 [svn-r19672] Description:
Make certain that the SWMR read & write file access flags get passed to
externally linked file.

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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-10-26 20:56:23 -05:00
Quincey Koziol
d3958ee85c [svn-r19669] Description:
Bring r19658:19668 from trunk to revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	Linux/32 2.6 (jam) w/debug
	(h5committest not required on this branch)
2010-10-26 15:33:43 -05:00
Quincey Koziol
cf7f386fd4 [svn-r19659] Description:
Bring r19639:19658 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-10-21 18:12:56 -05:00
Quincey Koziol
f1c8df81fa [svn-r19658] Description:
Fix incorrect placement of 'swmr_read' flag from write routine to
read routine. :-/

Tested on:
	Mac OS X/32 10.6.4 (amazon) w/debug, production & parallel
	(h5committest not required on this branch)
2010-10-21 17:23:39 -05:00
Quincey Koziol
63ebb100e4 [svn-r19641] Description:
Bring r19542:19639 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-10-19 14:11:23 -05:00
Quincey Koziol
3c470c9db6 [svn-r19543] Description:
Bring r19411:19542 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-10-07 20:55:21 -05:00
Quincey Koziol
6747ebd985 [svn-r19413] Description:
Bring r19349:19411 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-09-17 07:45:55 -05:00
Vailin Choi
9de3a84f91 [svn-r19390] Added files missing from CMakeLists.txt:
H5Dbtree2.c, H5Dearray.c, H5Dfarray.c, H5Dproxy.c
2010-09-15 13:41:59 -05:00
Quincey Koziol
ab8cc1c511 [svn-r19380] Description:
Minor code cleanups.

Tested on:
    Mac OS X/32 10.6.4 (amazon) w/debug & production
    (h5committest not required on this branch)
2010-09-14 05:28:53 -05:00
Vailin Choi
ae7d45d612 [svn-r19378] Modifications to using v2 B-tree as index for chunked datasets with >1 unlimited dimensions.
h5committested.
2010-09-13 16:57:00 -05:00
Quincey Koziol
c348f9405e [svn-r19351] Description:
Minor code cleanups to align w/trunk.

Tested on:
    Mac OS X/32 10.6.4 (amazon) w/debug & production
    (h5committest not required on this branch)
2010-09-03 22:43:08 -05:00
Quincey Koziol
d68991eec0 [svn-r19350] Description:
Bring r19328:19349 from trunk to revise_chunks branch.

Tested on:
    Mac OS X/32 10.6.4 (amazon) w/debug & production
    (h5committest not needed on this branch)
2010-09-03 21:57:04 -05:00
Mike McGreevy
1a119d500a [svn-r19338] Purpose:
Fix bug in super-block load during SWMR read case.

Description:

    This patch skips over the file truncation check whilst loading
    the super-block when the intent is set to SWMR read. The single writer
    process may have only partially flushed the file that one of the readers
    is trying to open, and this check for truncation would fail in that case.

Tested:

    jam
2010-09-01 13:01:58 -05:00
Quincey Koziol
642f392ba3 [svn-r19330] Description:
Bring r19109:19328 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-09-01 05:27:45 -05:00
Quincey Koziol
c034336452 [svn-r19323] Description:
Remove unneeded prototype.

Tested on:
    None - eyeballed only, too minor.
2010-08-31 14:29:27 -05:00
Quincey Koziol
6742cba572 [svn-r19322] Description:
Misc. minor formatting issues, etc.

Tested on:
    Mac OS X/32 10.6.4 (amazon) w/debug
    (h5committest not required on this branch)
2010-08-31 14:21:59 -05:00
Vailin Choi
abb9cc9cd8 [svn-r19296] 1) Modifications to h5debug and related coding so that it will handle Fixed Array/Extensible Array meta data.
2) Moved Extensible/Fixed array type to be right after MAGIC # and version
so that h5debug can determine the array class type.
2010-08-25 11:17:38 -05:00
Vailin Choi
8b07a4a214 [svn-r19267] Modifications to use Fixed Array Indexing for extendible chunked dataset
(fixed max. dim. setting but exclude H5S_UNLIMITED)
2010-08-20 14:25:49 -05:00
Neil Fortner
9c218ea879 [svn-r19137] Purpose: Add support for disabling filters on partial edge chunks.
Added two new API functions, H5Pset_chunk_opts and H5Pget_chunk_ops.  When the
set function is passed H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS, datasets created
with that property list will not apply filters to partially used chunks on the
edge of the dataspace.  Datasets created in this manner will not be readable by
1.8 or older.

Tested: jam, linew, amani (h5committest)
2010-07-28 10:56:28 -05:00
Quincey Koziol
bcbf482347 [svn-r19111] Description:
Bump the alpha release number for the revise_chunks branch, after
distributing private snapshot.

Tested on:
	N/A - only changes from 'bin/h5vers -i'
2010-07-20 12:36:47 -05:00
Quincey Koziol
de3a870bcd [svn-r19110] Description:
Bring r19049:19109 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-07-20 11:51:49 -05:00
Quincey Koziol
98754fa9d1 [svn-r19050] Description:
Bring r18704:19049 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.3 (amazon) in debug mode
        Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-07-06 14:45:35 -05:00
Mike McGreevy
29321bcafa [svn-r19018] Purpose:
Minor code cleanup

Description:

    Add missing declaration of H5AC_ignore_tags()
    to H5ACprivate.h

    Clean up some warnings in cache_tagging.c
    test file.

Tested:

    jam, gandalf
2010-06-17 12:28:44 -05:00
Mike McGreevy
47073183e3 [svn-r19011] Purpose:
Clean up code.

Description:

    Reorganize to remove mixed declarations and 
    code (which should satisfy windows compile).

Tested:

    jam, blue print, gandalf
    Windows 7 w/ VS Express 2008 (on VMware)
2010-06-16 14:28:24 -05:00
Mike McGreevy
747e7945f9 [svn-r19009] Purpose:
Fix some tagging issues.

Description:

    - change H5Gcreate to H5Gcreate2 in the cache_tagging.c
      test file to work properly with 1.6 API default 
      mapping turned on.

    - Added FUNC_ENTER/LEAVE_*TAG macros to the 
      H5G_stab_valid function.

Tested:

    gandalf, jam, amani (w/production mode, 1.6 API mapping)
2010-06-16 10:19:57 -05:00
Mike McGreevy
9b4163af53 [svn-r19004] Purpose:
Commit metadata tagging framework.

Description:

    This check-in contains a new framework whose goal is to apply
    a tag value to each new entry in the metadata cache as it is created. 
    This tag value is such that it relates each piece of metadata to the 
    HDF5 object that it belongs to (dataset, group, et cetera).

    This changeset includes the framework that applies the tags as 
    well as a suite of tests to verify correct tag application, though does
    not yet make use of the tag values to flush/evict individual objects.

    Please refer to the "flush/evict individual objects" RFC for further
    discussion of these changes.

Tested:

    jam, amani, linew (h5committest)
    liberty, abe, blue print
2010-06-15 14:58:26 -05:00
Quincey Koziol
ca7fc8e96a [svn-r18708] Description:
Bring r18638:18704 from trunk to revise_chunks branch.

Tested on:
	Mac OS X/32 10.6.3 (amazon) w/debug & production
	(h5committest not required on this branch)
2010-05-05 12:18:50 -05:00
Quincey Koziol
b24e2d4dd8 [svn-r18649] Description:
Minor tweaks to align w/code on trunk better.

Tested on:
	Mac OS X/32 10.6.3 (amazon) w/debug & production
	(too minor to require h5committest)
2010-04-27 16:59:38 -05:00
Quincey Koziol
9542a0e212 [svn-r18639] Description:
Bring r18619:18638 from trunk to revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committest not required on this branch)
2010-04-27 15:06:15 -05:00
Quincey Koziol
4518875853 [svn-r18638] Description:
Lock the dataspace message into object header chunk #0 (so that the
flush dependency between the extensible array and the object header works and
has the correct semantics).

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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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.6.3 (amazon) in debug mode
        Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-04-27 14:28:55 -05:00
Quincey Koziol
954c91c551 [svn-r18620] Description:
Bring r18600:18619 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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.6.3 (amazon) in debug mode
        Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-04-22 17:57:20 -05:00
Quincey Koziol
8a27e4f4a6 [svn-r18601] Description:
Bring r18581:18600 from trunk to revise_chunks branch.

Tested on:
	Mac OS X/32 10.6.3 (amazon) w/debug
	(h5committest not required on this branch)
2010-04-20 15:20:35 -05:00
Quincey Koziol
97f8b83e2d [svn-r18582] Description:
Bring r18533:18581 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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.6.3 (amazon) in debug mode
        Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2010-04-15 18:05:51 -05:00
Quincey Koziol
13d61651f8 [svn-r18534] Description:
Bring r18446:18533 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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
2010-04-08 10:30:10 -05:00
Quincey Koziol
42efc1c2b5 [svn-r18451] Description:
Bring r18172:18446 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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
2010-03-24 22:51:41 -05:00
Quincey Koziol
3360c3af0c [svn-r18175] Description:
Bring r17986:18172 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/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) 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
2010-01-28 08:11:38 -05:00
Quincey Koziol
5b4d327909 [svn-r17988] Description:
Run bin/reconfigure to regenerate autotools files.
2009-12-10 12:46:15 -05:00
Quincey Koziol
9d06256018 [svn-r17987] Description:
Bring r17945:17986 from trunk to revise_chunks branch
	(needs to have autotools files regenerated before testing, those will
be checked in in a few minutes)
2009-12-10 12:43:14 -05:00
Quincey Koziol
a4750dfae7 [svn-r17946] Description:
Bring r17899:17945 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/default API=1.8.x,
                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
        Mac OS X/32 10.6.2 (amazon) in debug mode
        Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-12-01 13:34:23 -05:00
Quincey Koziol
dfd01b8331 [svn-r17901] Description:
Final(?) update to expected output after data file updates.

Tested on:
	FreeBSD/32 (6.3) duty
	(h5committest not required on this branch)
2009-11-16 23:07:50 -05:00
Quincey Koziol
15703817a9 [svn-r17900] Description:
Bring r17895:17899 from trunk to revise_chunks branch.

Tesed on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-11-16 22:08:08 -05:00
Quincey Koziol
d2b87ec47e [svn-r17896] Description:
Bring r17546:17895 from trunk to revise_chunks branch.  Changes to
fixed and extensible array dataset chunk indexing code to accommodate changes
to private APIs in those interfaces.  Also, other adjustments to source code
and expected output in response to changes on the trunk.

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/default API=1.8.x,
                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.6.2 (amazon) in debug mode
        Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-11-16 15:45:05 -05:00
Quincey Koziol
ee5a1e0735 [svn-r17547] Description:
Bring r17518:17546 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
2009-09-29 10:21:35 -05:00
Quincey Koziol
feed868771 [svn-r17523] Description:
Correct output from h5diff for files w/fixed array indices

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
2009-09-24 17:48:07 -05:00
Quincey Koziol
426a3c1204 [svn-r17522] Description:
Bring in the rest of Vailin's changes for testing fixed array chunk
indices, across the range of range of all the tools and the appropriate dataset
tests.

Tested on:
	Mac OS X/32 10.5.8 (amazon) w/debug & production
	(h5committest not required for this branch)
2009-09-24 17:14:50 -05:00
Quincey Koziol
a2a61197aa [svn-r17521] Description:
Bring r17514:17518 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
2009-09-24 16:54:09 -05:00
Quincey Koziol
f1360e4d06 [svn-r17515] Description:
Bring r17496:17514 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
2009-09-24 06:25:37 -05:00
Quincey Koziol
dfa5cb68c0 [svn-r17506] Bump branch release version after making private snapshot 2009-09-22 14:29:37 -05:00
Quincey Koziol
f75166dd98 [svn-r17505] Description:
Bring r17416:17496 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
2009-09-22 12:49:17 -05:00
Quincey Koziol
859507f757 [svn-r17421] Description:
Change internal mechanism for disabling EOA checks when the SWMR read
flag is set from setting the EOA to 'maxaddr' to setting a flag in the VFDs
that talk to storage, since setting the EOA to 'maxaddr' causes problems when
using the multi (and family, I think) VFDs.

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, check-vfd
        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
2009-08-25 11:57:11 -05:00
Quincey Koziol
b043ee1241 [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
2009-08-25 09:14:21 -05:00
Quincey Koziol
6c5e37a593 [svn-r17366] Description:
Bring r17346:17365 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
        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
2009-08-15 02:03:44 -05:00
Quincey Koziol
58067df6c7 [svn-r17348] Description:
Fix missed change to constant that only the Solaris build detected.

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-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2009-08-12 17:25:37 -05:00
Quincey Koziol
328d540a34 [svn-r17347] Description:
Bring r17299:17346 from trunk to revise_chunks branch (including
rerunning bin/reconfigure, after the autotools update in the trunk)

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-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2009-08-12 17:04:35 -05:00
Quincey Koziol
7a1fcfa419 [svn-r17309] Bump version number on branch, after snapshot 2009-08-06 14:13:07 -05:00
Quincey Koziol
ff0e403315 [svn-r17307] Description:
Add SWMR tests to manifest

Tested with:
	bin/chkmanifest
2009-08-06 10:10:49 -05:00
Quincey Koziol
2f0dd6b249 [svn-r17306] Description:
Stabilize file format changes for layout object header message and add
new "storage" object header message.  This version of the layout message
(& future ones) will contain the constant information for a dataset's layout
and the new storage message will contain information that can change over the
course of a dataset's lifetime.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-08-06 09:40:36 -05:00
Quincey Koziol
53f99e0966 [svn-r17300] Description:
Bring r17284:17299 from trunk to revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	h5committest not required on this branch
2009-08-04 17:04:45 -05:00
Quincey Koziol
fb984423fc [svn-r17285] Description:
Bring r17281:17284 from trunk to revise_chunks branch

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug
    h5committest not required on this branch
2009-07-30 23:34:50 -05:00
Quincey Koziol
dafe255d8a [svn-r17283] Description:
Bring r17276:17281 from trunk to revise_chunks branch

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug
    h5committest not required on this branch
2009-07-30 23:00:25 -05:00
Quincey Koziol
52df94498e [svn-r17278] Description:
Bring r17272:17276 from trunk to revise_chunks branch.

tested on:
	FreeBSD/32 6.3 (duty)
	h5committest not required on this branch
2009-07-30 14:51:19 -05:00
Quincey Koziol
eceb405b87 [svn-r17273] Description:
Bring r17269:17272 from trunk to revise_chunks branch

Tested on:
	FreeBSD/32 6.3 (duty) w/debug
	(h5committest not required for this branch)
2009-07-29 22:36:09 -05:00
Quincey Koziol
238950487f [svn-r17270] Description:
Bring r17265:17269 from trunk to revise_chunks branch

Tested on
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-07-29 21:55:33 -05:00
Quincey Koziol
7c22743e8e [svn-r17267] Description:
Bring r17262:17265 from trunk to revise_chunks brach.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-29 19:55:45 -05:00
Quincey Koziol
2a07e56c05 [svn-r17263] Description:
Bring r17244:17262 from trunk to revise_chunks branch

Tested on:
	Mac OS X/32 10.5.7 (amazon) w/debug & production
	FreeBSD/32 6.3 (duty) w/debug
	h5committest not needed on this branch
2009-07-29 17:14:42 -05:00
Quincey Koziol
a7372ec352 [svn-r17246] Description:
Correct error for H5D_chunk_flush_entry() prototype.

Tested on:
	FreeBSD/32 6.3 (duty)
2009-07-27 17:43:48 -05:00
Quincey Koziol
996c2f8d3b [svn-r17245] Description:
Bring r17230:17244 from trunk to revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty)
	Mac OS X/32 10.5.7 (amazon)
2009-07-27 17:36:04 -05:00
Quincey Koziol
2d7fcc8553 [svn-r17242] Description:
Minor tweaks to format of new version of layout message.

Tested on:
	FreeBSD/32 6.3 (duty)
	Mac OS X/32 10.5.7 (amazon)
2009-07-27 14:49:04 -05:00
Quincey Koziol
7bc9c34c55 [svn-r17240] Description:
Interim checkin, before switching to use layout index message for
storing layout message v4 chunk index addresses.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-27 10:42:52 -05:00
Quincey Koziol
21f8fa203a [svn-r17236] Description:
Add full support for any [single] dimension being unlimited when using
extensible arrays as a chunk index.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-24 22:30:19 -05:00
Albert Cheng
acd5a4278a [svn-r17234] Improvement:
Added code to catch the exit code of the Generator.

Bug fixes:
Was doing "exit $nerrors" which is bad since Unix exit size
is defined as a small unsigned value.  Changed it to exit 0
if no error, exit 1 if errors found.

Cosmetic change:
Rearrange some code locations so that it is cleaner and more
logical.

Tested:
Jam and Linew.
2009-07-23 18:47:51 -05:00
Quincey Koziol
51fd7c574f [svn-r17233] Description:
Bring r17209:17230 from trunk to revise_chunks branch.

Tested on:
    Mac OS X/32 10.5.7 (amazon) debug
    h5committest not required on this branch
2009-07-23 18:10:30 -05:00
Albert Cheng
239c45e0f5 [svn-r17232] Code improvement:
Added control variable to control the debugging output.
Changed default writer records to 200,000 since 1 million
took a long time to run in Linew. 200,000 still take 1.5minutes
to finish for linew to run.
Verified the error detection does work by making swrm_writer to
fail by setting the number of records to 10000.o

Tested:
Jam, amani and linew
2009-07-23 17:55:13 -05:00
Albert Cheng
0d41b14350 [svn-r17225] Added code to detect the exit code of each of the writer and readers processes
and set nerrors accordingly. It still has a bunch of debug statements which
will be cleaned out in the next round.

Tested:
Jam.
2009-07-23 03:27:31 -05:00
Albert Cheng
be4c660148 [svn-r17224] Installed SWMR testings.
Tested:
amani.
2009-07-22 15:17:42 -05:00
Quincey Koziol
0c8e622e1a [svn-r17210] Description:
Bring r17157:17209 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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-21 14:39:40 -05:00
Quincey Koziol
f383c2a622 [svn-r17209] Description:
Intermediate checkin for getting extensible array code working with
2+ dimension datasets that have only 1 unlimited dimension.  This code is
working with n-dimension cases, but only when the slowest changing dimension
is unlimited.  Generalization to n-dimension with any [single] dimension being
unlimited is forthcoming.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-21 14:28:34 -05:00
Quincey Koziol
e117aee161 [svn-r17184] Description:
Add "SWMR read" file access flag, for applications that are
concurrently reading from a file open with the "SWMR write" access flag.

	This flag relaxes the internal checks for reading beyond the 'eoa'
for the file (since the eoa for the file could be out of date until the
SWMR write application flushes or closes the file)

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-14 16:13:50 -05:00
Quincey Koziol
b5c82e2e41 [svn-r17157] Description:
Bring r17152 from trunk to revise_chunks branch & re-run
bin/reconfigure. (next merge from trunk to revise_chunks branch should start
with r17157)

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committested on trunk)
2009-07-03 00:08:11 -05:00
Quincey Koziol
441b270234 [svn-r17156] Description:
Hook fixed array data structure up to dataset code as a chunk index when
there are 0 unlimited dimensions.

Tested on:
    Mac OS X/32 10.5.7 (amazon)
    (h5committest not required on this branch)
2009-07-02 23:24:25 -05:00
Quincey Koziol
41220f0911 [svn-r17154] Description:
Add fixed array data structure.  (For initial use as a chunk index)

Tested on:
    Mac OS X/32 10.5.7 (amazon)
    (h5committest not required on this branch)
2009-07-02 22:36:44 -05:00
Quincey Koziol
84728ecf74 [svn-r17151] Description:
Bring r17142:17150 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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-07-02 19:01:05 -05:00
Quincey Koziol
918973d9fc [svn-r17143] Description:
Bring r17084:17142 from trunk to revise_chunks brach

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-07-02 14:22:12 -05:00
Quincey Koziol
763e6be682 [svn-r17142] Description:
Correct some typos and missing comments.

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-07-02 12:25:36 -05:00
Quincey Koziol
13fde5a0b1 [svn-r17141] Description:
Change name of public 'H5D_CHUNK_BTREE' symbol (indicating the type
of index used for locating chunks) to 'H5D_CHUNK_IDX_BTREE', putting old name
in "deprecated symbols" section.  This will make adding new indices (like
extensible and fixed arrays) more nicely named.

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5commitest not required on branch)
2009-07-02 12:14:54 -05:00
Quincey Koziol
ed7658df79 [svn-r17085] Description:
Bring r17002:17084 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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-18 13:37:49 -05:00
Quincey Koziol
879d58b86b [svn-r17009] Description:
Bump version number for branch to "alpha2" (a2)
2009-06-04 15:06:09 -05:00
Quincey Koziol
94594831a9 [svn-r17007] Description:
Final stage of connecting all the pieces of a chunked dataset with
an extensible array index together to fully enable SWMR-write access properly.
This change makes the dataset's object header depend on the extensible array
header, so that the extensible array must be fully synchronized to disk before
the object header (which contains possibly updated dimensions for the dataset)
is written to disk.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-04 14:24:21 -05:00
Quincey Koziol
3972bca340 [svn-r17005] Description:
Correct error in unpinning an entry from outside the cache to correctly
unpin the entry only when it is not being used for a flush dependency relation.

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.7 (amazon) in debug mode
        Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-06-04 14:11:15 -05:00
Quincey Koziol
3ac720455a [svn-r17003] Description:
Bring r16997:17002 from trunk into revise_chunks branch

Tested on:
	Mac OS X/32 10.5.7 (amazon)
	h5committest not required on this branch
2009-06-04 10:21:57 -05:00
Quincey Koziol
b941208aa1 [svn-r16998] Description:
Bring r16982:16997 from trunk into revise_chunks branch.

Tested on:
	Mac OS X/32 10.5.7 (amazon)
	h5committest not needed on this branch
2009-06-02 16:17:26 -05:00
Quincey Koziol
bae373c322 [svn-r16988] Description:
Refactor layout initialization so that chunk index information can be
set for extensible array indices.

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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-05-27 18:21:24 -05:00
Quincey Koziol
29d45ed0d1 [svn-r16985] Description:
Interim checkin of work toward closing race condition window which can
cause errors when reading a file that is used for SWMR-write access.

	This change introduces a chunk proxy in the metadata cache, which
participates in the metadata cache's flush dependencies while representing a
raw data chunk in a dataset's chunk cache.

	Also, the extensible array's SWMR behavior is only invoked when the
file is opened for SWMR-write access, allowing more flexibility in flushing
extensible array data structure pieces when SWMR-write is not enabled.

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
        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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-05-27 12:00:29 -05:00
Quincey Koziol
e5d0555815 [svn-r16983] Description:
Bring r16977:16982 from trunk to revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-05-26 18:22:27 -05:00
Quincey Koziol
e3d0563a73 [svn-r16978] Description:
Bring r16976:16977 from trunk back to revise_chunks branch.

Tested on:
	Mac OS X/32 10.5.7 (amazon)
	(h5committest not required on this branch)
2009-05-21 15:15:08 -05:00
Quincey Koziol
55fbd675c6 [svn-r16976] Description:
Merge r16960:16975 from trunk into revise_chunks branch.

Tested on:
	Mac OS X/32 10.5.7 (amazon)
	(h5committest not required on this branch)
2009-05-21 14:29:40 -05:00
Quincey Koziol
38e7d90442 [svn-r16975] Description:
Bring r16973 back from trunk to 1.8 branch:

         Refactor chunk cache entry information to remove some [actually] unused
fields.

Tested on:
        <tested on trunk>
2009-05-21 14:02:16 -05:00
Quincey Koziol
3417e79f88 [svn-r16961] Description:
Merge r16901:16960 from trunk into 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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-05-19 10:53:05 -05:00
Quincey Koziol
ebe57002d6 [svn-r16960] Description:
Add a new H5F_ACC_SWMR_WRITE flag for H5Fcreate/H5Fopen, so that an
application can indicate that it is modifying the file in a SWMR scenario and
internal algorithms can make appropriate adjustments to order their I/O
operations to meet the constraints necessary for ensuring SWMR consistency.

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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-05-19 09:43:31 -05:00
Quincey Koziol
0917096d34 [svn-r16902] Description:
Bring r16875:16901 from trunk to revise_chunks branch.

Tested on:
	FreebSD/32 6.3 (duty)
	(h5committest not required for this branch)
2009-04-30 20:21:28 -05:00
Quincey Koziol
cb0c04e1d4 [svn-r16888] Description:
Bring r16821:16875 back 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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-04-29 06:39:38 -05:00
Quincey Koziol
08677fc32a [svn-r16877] Description:
Remove these files in preparation for merging them from the trunk.

Tested on:
	(no test yet, this is just repository management)
2009-04-28 15:32:10 -05:00
Quincey Koziol
284d51f650 [svn-r16850] Description:
Add some extra tests for when we are using extensible array as chunk
index.

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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-04-23 16:57:26 -05:00
Quincey Koziol
db82e34584 [svn-r16848] Description:
Add test (and bugfixes) for detecting if a filter makes a chunk size
larger than can be encoded in a 32-bit variable (in the file).

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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-04-23 16:08:09 -05:00
Quincey Koziol
4c3073f955 [svn-r16846] Description:
Fix broken (for how long?) H5_ASSIGN_OVERFLOW macro to actually detect
overflows during assignments, along with several errors it [now] detected.

	Cleaned up a fix minor warnings and/or pieces of code also.

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.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-04-23 13:02:41 -05:00
Quincey Koziol
5bb857476f [svn-r16825] Description:
Bring revisions 16636:16821 from trunk to revise_chunks branch

Tested on:
	FreeBSD/32 6.3 (duty)
	Mac OS X/32 10.5.6 (amazon)
	(h5committest not needed on this branch)
2009-04-21 17:46:38 -05:00
Vailin Choi
35bbc743d4 [svn-r16764] To fix a bug in extensible arrays as chunk index:
When the dataset is closed in H5D_close(), the pointer
to the extensible array struct in the layout message
is copied via H5D_flush_real() before H5D_chunk_dest().
This causes an abort from "Assertion `ea->hdr' failed"
later when the dataset is re-opened and read.
The bug was fixed by adding a flag to the reset function 
for indexed storage to set/not set the address of the indexed
array. H5O_layout_copy() calls H5D_chunk_idx_reset() to reset
only the pointer of the array struct for the chunked index storage.
2009-04-16 10:21:01 -05:00
Quincey Koziol
52fed52f9c [svn-r16640] Description:
Bump version string after making snapshot

Tested on:
	FreeBSD/32 6.3 (duty)
	h5committest not required on this branch
2009-03-31 16:00:59 -05:00
Quincey Koziol
f4a6b264fd [svn-r16639] Description:
Encode size of filtered chunks in a more compact way.

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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-03-31 15:15:31 -05:00
Quincey Koziol
1b0aacf4c8 [svn-r16638] Description:
When using the "latest" version of the layout message (i.e. version 4),
encode the dimension sizes in smaller way.

Tested on:
	FreeBSD/32 6.3 (duty)
	h5committest not required for this branch
2009-03-31 14:33:06 -05:00
Quincey Koziol
0051ab6330 [svn-r16637] Description:
Bring r16633:16636 back from trunk to revise_chunks branch.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
	Too minor to require h5committest
2009-03-31 14:28:06 -05:00
Quincey Koziol
b19fbb9e4e [svn-r16635] Description:
Change subrelease string to 'FA_a0', so that snapshots can be more
easily distinguished.

Tested on:
	FreeBSD/32 6.3 (duty)
	Too minor to require h5committest
2009-03-31 12:46:53 -05:00
Quincey Koziol
a29e811343 [svn-r16634] Description:
Bring r16618:16633 back 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-03-31 12:32:54 -05:00
Quincey Koziol
505b31ee08 [svn-r16619] Description:
Bring r16606:16618 from trunk to the revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty)
	h5committest not necessary on this branch
2009-03-26 13:31:00 -05:00
Quincey Koziol
5f2e591745 [svn-r16607] Description:
Bring r16600:16606 back trom trunk to revise_chunks branch.

Tested:
	Mac OS X/32 10.5.6 (amazon)
	Too minor to require h5committest
2009-03-24 15:14:07 -05:00
Quincey Koziol
53e4b5b90b [svn-r16601] Description:
Bring r16536:16600 from trunk back into 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-03-24 14:23:11 -05:00
Quincey Koziol
65dc3358db [svn-r16537] Description:
Merge r16500:16536 from trunk into 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 production mode
       Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
       Mac OS X/32 10.5.6 (amazon) in debug mode
       Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                               in production mode
2009-03-03 10:54:16 -05:00
Quincey Koziol
33a65add7d [svn-r16514] Description:
Merge r16440:16500 from trunk into 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-02-24 12:59:14 -05:00
Quincey Koziol
e63f0baf7e [svn-r16448] Description:
Fix additional breakage of 'make check-vfd' for this test

Tested on:
	Linux/64 2.6 (smirom) w/make check-vfd
2009-02-05 19:44:56 -05:00
Quincey Koziol
90c3d4e0ca [svn-r16447] Description:
Add support for using I/O pipeline filters with extensible array
chunked dataset indices.

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
        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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-02-05 19:08:38 -05:00
Quincey Koziol
3c882637c2 [svn-r16444] Description:
Bring r16412:16440 from trunk into revise_chunks branch.

Tested on:
	FreeBSD/32 6.3(duty)
	(h5committest not required on this branch)
2009-02-05 15:21:31 -05:00
Quincey Koziol
4adbc1e1db [svn-r16435] Description:
Expand object copy tests for chunked datasets to include 1-D datasets
with an unlimited dimension.  (Fix typo in comment for test/links.c)

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
        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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
2009-02-05 10:26:25 -05:00
Quincey Koziol
72b4a68953 [svn-r16416] Description:
Bring closer to standard standalone test format, add checks for using
the latest file format and close dataset ID leaked.

Tested on:
	Mac OS X/32 10.5.6 (duty)
	(h5committest not required on this branch)
2009-02-03 19:00:21 -05:00
Quincey Koziol
7e67d1f00d [svn-r16413] Description:
Bring r16402:16412 from trunk back to revise_chunks branch

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required for this branch)
2009-02-03 18:26:42 -05:00
Quincey Koziol
5436f45bd1 [svn-r16403] Description:
Bring r16395:16402 back from trunk (and adjust slightly for layout
version changes).

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-02-03 07:11:07 -05:00
Quincey Koziol
cde7807ceb [svn-r16396] Description:
Bring r16391:16395 back from trunk

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-01-31 21:42:10 -05:00
Quincey Koziol
2aa344d77a [svn-r16393] Description:
Connect extensible array as index for 1-D unlimited datasets (although
datasets w/filters are not yet supported).

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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-01-31 15:21:43 -05:00
Quincey Koziol
2d74d46d3f [svn-r16392] Description:
Bring r16367:16391 back from trunk into revise_chunks branch.

Tested on:
	FreeBSD 6.3/32 (duty)
	(h5committest not required on this branch)
2009-01-31 13:19:49 -05:00
Quincey Koziol
7191f26717 [svn-r16369] Description:
Bring r16347:16367 from trunk into revise_chunks branch.

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-01-27 21:11:39 -05:00
Quincey Koziol
2cbd7f1b3c [svn-r16357] Description:
Bring r16307:16347 back from trunk into revise_chunks branch

Tested on:
	FreeBSD/32 6.3 (duty)
	(h5committest not required on this branch)
2009-01-27 10:26:05 -05:00
Quincey Koziol
f7ae23e639 [svn-r16353] Description:
Refactor internal layout information, making it easier to add another
type of chunk index.

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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-01-27 08:49:16 -05:00
Quincey Koziol
0894356a3c [svn-r16311] Description:
Bring revisions 16280:16307 back from trunk.

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
        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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-01-14 11:29:10 -05:00
Quincey Koziol
e0bb475838 [svn-r16305] Description:
Add detection of C99 "designated initializers" to configure script and
use new H5_HAVE_C99_DESIGNATED_INITIALIZER macro to conditionally compile
default layout variables in src/H5Pdcpl.c

	Also, minor code cleanups, etc.

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
        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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-01-14 07:10:53 -05:00
Quincey Koziol
2ac77da499 [svn-r16283] Description:
Bring revisions 16218:16280 back from trunk.

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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-01-08 13:37:24 -05:00
Quincey Koziol
596f9b4327 [svn-r16278] Description:
Update layout information in DCPL to unify all information in one
underlying property and switch to using H5O_layout_t for storing it, which
simplifies things considerably.

	Also, fix many compiler warnings.

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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.6 (amazon) in debug mode
        Mac OS X/32 10.5.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-01-08 11:54:49 -05:00
Quincey Koziol
de5e1d93e4 [svn-r16219] Description:
Bring revisions 16206:16218 back from trunk

Tested on:
    Mac OS X/32 10.5.6 (amazon)
2008-12-23 17:29:51 -05:00
Quincey Koziol
26a82c3575 [svn-r16206] Creating a branch of hdf5/trunk for working on using new data structures for indexing chunks 2008-12-18 09:16:03 -05:00
Quincey Koziol
8625a8bd6b [svn-r14247] Description:
- Refactored H5D_flush to use H5I_search for iterating through
		datasets, instead of building array of dataset IDs.
	- Cache dataset's dataspace modifications (from calls to
		H5Dset_extent) until flush/close.

    	These changes give an ~15% improvement in speed for my "append records
		to lots of 1-D datasets" benchmark.

Tested on:
        Mac OS X/32 10.4.10 (amazon) in debug mode
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) 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 production mode
2007-11-10 09:47:51 -05:00
Quincey Koziol
0e367c3715 [svn-r14246] ported revisions 14240:14245 from trunk 2007-11-10 09:26:43 -05:00
492 changed files with 191020 additions and 5844 deletions

View File

@@ -10,10 +10,10 @@ set (CTEST_NIGHTLY_START_TIME "18:00:00 CST")
set (CTEST_DROP_METHOD "http")
if (CDASH_LOCAL)
set (CTEST_DROP_SITE "10.10.10.82")
set (CTEST_DROP_LOCATION "/submit.php?project=HDF5Trunk")
set (CTEST_DROP_LOCATION "/submit.php?project=HDF5110")
else (CDASH_LOCAL)
set (CTEST_DROP_SITE "cdash.hdfgroup.org")
set (CTEST_DROP_LOCATION "/submit.php?project=HDF5+Trunk")
set (CTEST_DROP_LOCATION "/submit.php?project=HDF5110")
endif (CDASH_LOCAL)
set (CTEST_DROP_SITE_CDASH TRUE)

168
MANIFEST
View File

@@ -442,6 +442,7 @@
./src/H5Aprivate.h
./src/H5Apublic.h
./src/H5AC.c
./src/H5AClog.c
./src/H5ACmodule.h
./src/H5ACmpio.c
./src/H5ACpkg.h
@@ -475,24 +476,29 @@
./src/H5CSprivate.h
./src/H5D.c
./src/H5Dbtree.c
./src/H5Dbtree2.c
./src/H5Dchunk.c
./src/H5Dcompact.c
./src/H5Dcontig.c
./src/H5Ddbg.c
./src/H5Ddeprec.c
./src/H5Dearray.c
./src/H5Defl.c
./src/H5Dfarray.c
./src/H5Dfill.c
./src/H5Dint.c
./src/H5Dio.c
./src/H5Dlayout.c
./src/H5Dmodule.h
./src/H5Dmpio.c
./src/H5Dnone.c
./src/H5Doh.c
./src/H5Dpkg.h
./src/H5Dprivate.h
./src/H5Dpublic.h
./src/H5Dscatgath.c
./src/H5Dselect.c
./src/H5Dsingle.c
./src/H5Dtest.c
./src/H5Dvirtual.c
./src/H5E.c
@@ -542,6 +548,7 @@
./src/H5FAdblkpage.c
./src/H5FAdblock.c
./src/H5FAhdr.c
./src/H5FAint.c
./src/H5FAmodule.h
./src/H5FApkg.h
./src/H5FAprivate.h
@@ -573,6 +580,7 @@
./src/H5FDspace.c
./src/H5FDstdio.c
./src/H5FDstdio.h
./src/H5FDtest.c
./src/H5FDwindows.c
./src/H5FDwindows.h
./src/H5FL.c
@@ -583,6 +591,7 @@
./src/H5FS.c
./src/H5FScache.c
./src/H5FSdbg.c
./src/H5FSint.c
./src/H5FSmodule.h
./src/H5FSpkg.h
./src/H5FSprivate.h
@@ -621,6 +630,7 @@
./src/H5HFhdr.c
./src/H5HFhuge.c
./src/H5HFiblock.c
./src/H5HFint.c
./src/H5HFiter.c
./src/H5HFman.c
./src/H5HFmodule.h
@@ -695,6 +705,7 @@
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Ofill.c
./src/H5Oflush.c
./src/H5Ofsinfo.c
./src/H5Oginfo.c
./src/H5Olayout.c
@@ -708,6 +719,7 @@
./src/H5Opkg.h
./src/H5Opline.c
./src/H5Oprivate.h
./src/H5Oproxy.c
./src/H5Opublic.h
./src/H5Orefcount.c
./src/H5Osdspace.c
@@ -830,25 +842,37 @@
./src/libhdf5.settings.in
./src/H5win32defs.h
./test/AtomicWriterReader.txt
./test/COPYING
./test/H5srcdir.h
./test/H5srcdir_str.h.in
./test/Makefile.am
./test/POSIX_Order_Write_Test_Report.docx
./test/POSIX_Order_Write_Test_Report.pdf
./test/SWMR_POSIX_Order_UG.txt
./test/SWMR_UseCase_UG.txt
./test/accum.c
./test/accum_swmr_reader.c
./test/app_ref.c
./test/atomic_reader.c
./test/atomic_writer.c
./test/bad_compound.h5
./test/be_data.h5
./test/be_extlink1.h5
./test/be_extlink2.h5
./test/big.c
./test/bittests.c
./test/btree_idx_1_6.h5
./test/btree_idx_1_8.h5
./test/btree2.c
./test/cache.c
./test/cache_api.c
./test/cache_common.c
./test/cache_common.h
./test/cache_logging.c
./test/cache_tagging.c
./test/cmpd_dset.c
./test/cork.c
./test/corrupt_stab_msg.h5
./test/cross_read.c
./test/dangle.c
@@ -887,6 +911,7 @@
./test/filter_fail.c
./test/flush1.c
./test/flush2.c
./test/flushrefresh.c
./test/gen_bad_ohdr.c
./test/gen_bad_compound.c
./test/gen_bogus.c
@@ -894,6 +919,7 @@
./test/gen_deflate.c
./test/gen_file_image.c
./test/gen_filespace.c
./test/gen_idx.c
./test/gen_mergemsg.c
./test/gen_new_array.c
./test/gen_new_fill.c
@@ -941,6 +967,19 @@
# ====end distribute this for now. See HDFFV-8236====
./test/specmetaread.h5
./test/stab.c
./test/swmr.c
./test/swmr_addrem_writer.c
./test/swmr_check_compat_vfd.c
./test/swmr_common.c
./test/swmr_common.h
./test/swmr_generator.c
./test/swmr_reader.c
./test/swmr_remove_reader.c
./test/swmr_remove_writer.c
./test/swmr_sparse_reader.c
./test/swmr_sparse_writer.c
./test/swmr_start_write.c
./test/swmr_writer.c
./test/tarray.c
./test/tarrold.h5
./test/tattr.c
@@ -953,12 +992,16 @@
./test/testcheck_version.sh.in
./test/testerror.sh.in
./test/testlinks_env.sh.in
./test/testflushrefresh.sh.in
./test/testframe.c
./test/testhdf5.c
./test/testhdf5.h
./test/testlibinfo.sh.in
./test/test_plugin.sh.in
./test/test_usecases.sh.in
./test/testmeta.c
./test/testswmr.sh.in
./test/testvdsswmr.sh.in
./test/tfile.c
./test/tgenprop.c
./test/th5o.c
@@ -989,14 +1032,24 @@
./test/tunicode.c
./test/tvlstr.c
./test/tvltypes.c
./test/twriteorder.c
./test/unlink.c
./test/unregister.c
./test/use_append_chunk.c
./test/use_append_mchunks.c
./test/use_common.c
./test/use_disable_mdc_flushes.c
./test/use.h
./test/vfd.c
./test/test_filters_le.h5
./test/test_filters_be.h5
./test/gen_filters.c
./test/chunk_info.c
./test/vds.c
./test/vds_swmr.h
./test/vds_swmr_gen.c
./test/vds_swmr_reader.c
./test/vds_swmr_writer.c
./test/testfiles/err_compat_1
./test/testfiles/err_compat_2
@@ -1210,6 +1263,29 @@
./tools/h5diff/testh5diff.sh.in
./tools/h5diff/testph5diff.sh.in
# h5format_convert sources
./tools/h5format_convert/Makefile.am
./tools/h5format_convert/h5fc_chk_idx.c
./tools/h5format_convert/h5fc_gentest.c
./tools/h5format_convert/h5format_convert.c
./tools/h5format_convert/testfiles/h5fc_v_n_all.ddl
./tools/h5format_convert/testfiles/h5fc_v_bt1.ddl
./tools/h5format_convert/testfiles/h5fc_v_non_chunked.ddl
./tools/h5format_convert/testfiles/h5fc_d_file.ddl
./tools/h5format_convert/testfiles/h5fc_v_ndata_bt1.ddl
./tools/h5format_convert/testfiles/h5fc_dname.ddl
./tools/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl
./tools/h5format_convert/testfiles/h5fc_help.ddl
./tools/h5format_convert/testfiles/h5fc_v_all.ddl
./tools/h5format_convert/testfiles/h5fc_nooption.ddl
./tools/h5format_convert/testfiles/h5fc_v_n_1d.ddl
./tools/h5format_convert/testfiles/h5fc_nonexistfile.ddl
./tools/h5format_convert/testfiles/h5fc_non_v3.h5
./tools/h5format_convert/testfiles/h5fc_latest_v3.h5
./tools/h5format_convert/testfiles/h5fc_edge_v3.h5
./tools/h5format_convert/testfiles/h5fc_v1.h5
./tools/h5format_convert/testh5fc.sh.in
# h5repack sources
./tools/h5repack/Makefile.am
./tools/h5repack/dynlib_rpk.c
@@ -1269,6 +1345,10 @@
./tools/misc/Makefile.am
./tools/misc/h5cc.in
./tools/misc/h5clear.c
./tools/misc/h5clear_gentest.c
./tools/misc/clear_open_chk.c
./tools/misc/testh5clear.sh.in
./tools/misc/h5debug.c
./tools/misc/h5mkgrp.c
./tools/misc/h5redeploy.in
@@ -1318,6 +1398,8 @@
./tools/h5stat/testfiles/h5stat_filters.h5
./tools/h5stat/testfiles/h5stat_help1.ddl
./tools/h5stat/testfiles/h5stat_help2.ddl
./tools/h5stat/testfiles/h5stat_idx.h5
./tools/h5stat/testfiles/h5stat_idx.ddl
./tools/h5stat/testfiles/h5stat_links1.ddl
./tools/h5stat/testfiles/h5stat_links2.ddl
./tools/h5stat/testfiles/h5stat_links3.ddl
@@ -1457,6 +1539,9 @@
./tools/testfiles/tdset-3s.ddl
./tools/testfiles/tdset.h5
./tools/testfiles/tdset2.h5
./tools/testfiles/tdset_idx.ls
./tools/testfiles/tdset_idx.ddl
./tools/testfiles/tdset_idx.h5
./tools/testfiles/tempty.ddl
./tools/testfiles/tempty.h5
./tools/testfiles/tenum.h5
@@ -2058,6 +2143,7 @@
./tools/h5diff/testfiles/h5diff_457.txt
./tools/h5diff/testfiles/h5diff_458.txt
./tools/h5diff/testfiles/h5diff_459.txt
./tools/h5diff/testfiles/h5diff_idx.txt
./tools/h5diff/testfiles/h5diff_465.txt
./tools/h5diff/testfiles/h5diff_466.txt
./tools/h5diff/testfiles/h5diff_467.txt
@@ -2106,6 +2192,8 @@
./tools/h5diff/testfiles/h5diff_basic2.h5
./tools/h5diff/testfiles/h5diff_dset1.h5
./tools/h5diff/testfiles/h5diff_dset2.h5
./tools/h5diff/testfiles/h5diff_dset_idx1.h5
./tools/h5diff/testfiles/h5diff_dset_idx2.h5
./tools/h5diff/testfiles/h5diff_dtypes.h5
./tools/h5diff/testfiles/h5diff_empty.h5
./tools/h5diff/testfiles/h5diff_hyper1.h5
@@ -2218,6 +2306,8 @@
./tools/h5copy/testfiles/h5copy_extlinks_trg.h5
./tools/h5copy/testfiles/h5copy_extlinks_src.out.ls
./tools/h5copy/testfiles/h5copy_misc1.out
./tools/h5copy/testfiles/h5copytst_new.h5
./tools/h5copy/testfiles/h5copytst_new.out.ls
# test files for h5mkgrp
./tools/testfiles/h5mkgrp_nested_p.ls
@@ -2294,6 +2384,9 @@
./hl/src/H5IM.c
./hl/src/H5IMprivate.h
./hl/src/H5IMpublic.h
./hl/src/H5LD.c
./hl/src/H5LDprivate.h
./hl/src/H5LDpublic.h
./hl/src/H5LT.c
./hl/src/H5LTanalyze.c
./hl/src/H5LTanalyze.l
@@ -2310,34 +2403,38 @@
./hl/src/H5TBpublic.h
./hl/src/hdf5_hl.h
./hl/test/COPYING
./hl/test/H5srcdir_str.h.in
./hl/test/Makefile.am
./hl/test/dectris_hl_perf.c
./hl/test/dsdata.txt
./hl/test/dslat.txt
./hl/test/dslon.txt
./hl/test/dtype_file.txt
./hl/test/dtype_file_readable.txt
./hl/test/dtype_file.txt
./hl/test/earth.pal
./hl/test/gen_test_ds.c
./hl/test/gen_test_ld.c
./hl/test/h5hltest.h
./hl/test/image8.txt
./hl/test/H5srcdir_str.h.in
./hl/test/image24pixel.txt
./hl/test/image24plane.txt
./hl/test/image8.txt
./hl/test/Makefile.am
./hl/test/pal_rgb.h
./hl/test/sepia.pal
./hl/test/dectris_hl_perf.c
./hl/test/gen_test_ds.c
./hl/test/test_ds_be.h5
./hl/test/test_ds.c
./hl/test/test_dset_append.c
./hl/test/test_dset_opt.c
./hl/test/test_ds_le.h5
./hl/test/test_file_image.c
./hl/test/test_image.c
./hl/test/test_ld.c
./hl/test/test_ld.h5
./hl/test/test_lite.c
./hl/test/test_packet.c
./hl/test/test_table.c
./hl/test/test_ds_le.h5
./hl/test/test_ds_be.h5
./hl/test/test_table_le.h5
./hl/test/test_table_be.h5
./hl/test/test_table.c
./hl/test/test_table_cray.h5
./hl/test/test_table_le.h5
./hl/test/usa.wri
# tools
@@ -2358,7 +2455,53 @@
./hl/tools/gif2h5/testfiles/ex_image2.h5
./hl/tools/gif2h5/testfiles/image1.gif
./hl/tools/gif2h5/testfiles/h52giftst.h5
#
./hl/tools/h5watch/Makefile.am
./hl/tools/h5watch/extend_dset.c
./hl/tools/h5watch/h5watch.c
./hl/tools/h5watch/h5watchgentest.c
./hl/tools/h5watch/swmr_check_compat_vfd.c
./hl/tools/h5watch/testh5watch.sh.in
# expected test output from testing h5watch
#
./hl/tools/testfiles/w-err-cmpd1.ddl
./hl/tools/testfiles/w-err-cmpd2.ddl
./hl/tools/testfiles/w-err-cmpd3.ddl
./hl/tools/testfiles/w-err-cmpd4.ddl
./hl/tools/testfiles/w-err-cmpd5.ddl
./hl/tools/testfiles/w-err-dset1.ddl
./hl/tools/testfiles/w-err-dset2.ddl
./hl/tools/testfiles/w-err-dset-nomax.ddl
./hl/tools/testfiles/w-err-dset-none.ddl
./hl/tools/testfiles/w-err-file.ddl
./hl/tools/testfiles/w-err-poll0.ddl
./hl/tools/testfiles/w-err-poll.ddl
./hl/tools/testfiles/w-err-width.ddl
./hl/tools/testfiles/w-ext-cmpd.ddl
./hl/tools/testfiles/w-ext-cmpd-esc.ddl
./hl/tools/testfiles/w-ext-cmpd-esc-f1.ddl
./hl/tools/testfiles/w-ext-cmpd-esc-f3.ddl
./hl/tools/testfiles/w-ext-cmpd-esc-ff2.ddl
./hl/tools/testfiles/w-ext-cmpd-f1.ddl
./hl/tools/testfiles/w-ext-cmpd-f2.ddl
./hl/tools/testfiles/w-ext-cmpd-ff3.ddl
./hl/tools/testfiles/w-ext-cmpd-label.ddl
./hl/tools/testfiles/w-ext-cmpd-two.ddl
./hl/tools/testfiles/w-ext-cmpd-two-f1.ddl
./hl/tools/testfiles/w-ext-cmpd-two-f3.ddl
./hl/tools/testfiles/w-ext-cmpd-two-ff2.ddl
./hl/tools/testfiles/w-ext-early.ddl
./hl/tools/testfiles/w-ext-late.ddl
./hl/tools/testfiles/w-ext-one-d.ddl
./hl/tools/testfiles/w-ext-one.ddl
./hl/tools/testfiles/w-ext-one-simple.ddl
./hl/tools/testfiles/w-ext-two-d.ddl
./hl/tools/testfiles/w-ext-two.ddl
./hl/tools/testfiles/w-ext-two-width.ddl
./hl/tools/testfiles/w-help1.ddl
#
# hl fortran
./hl/fortran/COPYING
./hl/fortran/Makefile.am
@@ -2530,9 +2673,6 @@
# Files generated by autogen
./aclocal.m4
./autom4te.cache/output.0
./autom4te.cache/requests
./autom4te.cache/traces.0
./bin/compile
./bin/config.guess
./bin/config.sub
@@ -2565,6 +2705,7 @@
./hl/src/Makefile.in
./hl/test/Makefile.in
./hl/tools/gif2h5/Makefile.in
./hl/tools/h5watch/Makefile.in
./hl/tools/Makefile.in
./m4/libtool.m4
./m4/lt~obsolete.m4
@@ -2585,6 +2726,7 @@
./tools/h5copy/Makefile.in
./tools/h5diff/Makefile.in
./tools/h5dump/Makefile.in
./tools/h5format_convert/Makefile.in
./tools/h5import/Makefile.in
./tools/h5jam/Makefile.in
./tools/h5ls/Makefile.in

1146
Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
HDF5 version 1.9.233 released on 2015-10-06
HDF5 version 1.10.0-alpha0 released on 2015-12-29
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------

1195
aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

347
bin/compile Executable file
View File

@@ -0,0 +1,347 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2012-10-14.11; # UTC
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

1420
bin/config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

1799
bin/config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

791
bin/depcomp Executable file
View File

@@ -0,0 +1,791 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2013-05-30.07; # UTC
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by 'PROGRAMS ARGS'.
object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
# Get the directory component of the given path, and save it in the
# global variables '$dir'. Note that this directory component will
# be either empty or ending with a '/' character. This is deliberate.
set_dir_from ()
{
case $1 in
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
*) dir=;;
esac
}
# Get the suffix-stripped basename of the given path, and save it the
# global variable '$base'.
set_base_from ()
{
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
}
# If no dependency file was actually created by the compiler invocation,
# we still have to create a dummy depfile, to avoid errors with the
# Makefile "include basename.Plo" scheme.
make_dummy_depfile ()
{
echo "#dummy" > "$depfile"
}
# Factor out some common post-processing of the generated depfile.
# Requires the auxiliary global variable '$tmpdepfile' to be set.
aix_post_process_depfile ()
{
# If the compiler actually managed to produce a dependency file,
# post-process it.
if test -f "$tmpdepfile"; then
# Each line is of the form 'foo.o: dependency.h'.
# Do two passes, one to just change these to
# $object: dependency.h
# and one to simply output
# dependency.h:
# which is needed to avoid the deleted-header problem.
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
} > "$depfile"
rm -f "$tmpdepfile"
else
make_dummy_depfile
fi
}
# A tabulation character.
tab=' '
# A newline character.
nl='
'
# Character ranges might be problematic outside the C locale.
# These definitions help.
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower=abcdefghijklmnopqrstuvwxyz
digits=0123456789
alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Avoid interferences from the environment.
gccflag= dashmflag=
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
# This is just like msvc7 but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvc7
fi
if test "$depmode" = xlc; then
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
gccflag=-qmakedep=gcc,-MF
depmode=gcc
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say). Also, it might not be
## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The second -e expression handles DOS-style file names with drive
# letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
| tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
aix_post_process_depfile
;;
tcc)
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
# FIXME: That version still under development at the moment of writing.
# Make that this statement remains true also for stable, released
# versions.
# It will wrap lines (doesn't matter whether long or short) with a
# trailing '\', as in:
#
# foo.o : \
# foo.c \
# foo.h \
#
# It will put a trailing '\' even on the last line, and will use leading
# spaces rather than leading tabs (at least since its commit 0394caf7
# "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
# We have to change lines of the first kind to '$object: \'.
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
# And for each line of the second kind, we have to emit a 'dep.h:'
# dummy dependency, to avoid the deleted-header problem.
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
## The order of this option in the case statement is important, since the
## shell code in configure will try each of these formats in the order
## listed in this file. A plain '-MD' option would be understood by many
## compilers, so we must ensure this comes after the gcc and icc options.
pgcc)
# Portland's C compiler understands '-MD'.
# Will always output deps to 'file.d' where file is the root name of the
# source file under compilation, even if file resides in a subdirectory.
# The object file name does not affect the name of the '.d' file.
# pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
set_base_from "$source"
tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
lockdir=$base.d-lock
trap "
echo '$0: caught signal, cleaning up...' >&2
rmdir '$lockdir'
exit 1
" 1 2 13 15
numtries=100
i=$numtries
while test $i -gt 0; do
# mkdir is a portable test-and-set.
if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
rmdir "$lockdir"
break
else
# If the lock is being held by a different process, wait
# until the winning process is done or we timeout.
while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
fi
i=`expr $i - 1`
done
trap - 1 2 13 15
if test $i -le 0; then
echo "$0: failed to acquire lock after $numtries attempts" >&2
echo "$0: check lockdir '$lockdir'" >&2
exit 1
fi
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
# Libtool generates 2 separate objects for the 2 libraries. These
# two compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir$base.o.d # libtool 1.5
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
# Same post-processing that is required for AIX mode.
aix_post_process_depfile
;;
msvc7)
if test "$libtool" = yes; then
showIncludes=-Wc,-showIncludes
else
showIncludes=-showIncludes
fi
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The first sed program below extracts the file names and escapes
# backslashes for cygpath. The second sed program outputs the file
# name when reading, but also accumulates all include files in the
# hold buffer in order to output them again at the end. This only
# works with sed implementations that can handle large buffers.
sed < "$tmpdepfile" -n '
/^Note: including file: *\(.*\)/ {
s//\1/
s/\\/\\\\/g
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
s/\(.*\)/'"$tab"'\1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
s/.*/'"$tab"'/
G
p
}' >> "$depfile"
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
msvc7msys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this sed invocation
# correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process the last invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed '1,2d' "$tmpdepfile" \
| tr ' ' "$nl" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E \
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
| sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

501
bin/install-sh Executable file
View File

@@ -0,0 +1,501 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2013-12-25.23; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
tab=' '
nl='
'
IFS=" $tab$nl"
# Set DOITPROG to "echo" to test this script.
doit=${DOITPROG-}
doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
-T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names problematic for 'test' and other utilities.
case $src in
-* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
oIFS=$IFS
IFS=/
set -f
set fnord $dstdir
shift
set +f
IFS=$oIFS
prefixes=
for d
do
test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

9661
bin/ltmain.sh Normal file

File diff suppressed because it is too large Load Diff

215
bin/missing Executable file
View File

@@ -0,0 +1,215 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2013-10-28.13; # UTC
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
case $1 in
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=http://www.perl.org/
flex_URL=http://flex.sourceforge.net/
gnu_software_URL=http://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

148
bin/test-driver Executable file
View File

@@ -0,0 +1,148 @@
#! /bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2013-07-13.22; # UTC
# Copyright (C) 2011-2014 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# Make unconditional expansion of undefined variables an error. This
# helps a lot in preventing typo-related bugs.
set -u
usage_error ()
{
echo "$0: $*" >&2
print_usage >&2
exit 2
}
print_usage ()
{
cat <<END
Usage:
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
[--expect-failure={yes|no}] [--color-tests={yes|no}]
[--enable-hard-errors={yes|no}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
END
}
test_name= # Used for reporting.
log_file= # Where to save the output of the test script.
trs_file= # Where to save the metadata of the test run.
expect_failure=no
color_tests=no
enable_hard_errors=yes
while test $# -gt 0; do
case $1 in
--help) print_usage; exit $?;;
--version) echo "test-driver $scriptversion"; exit $?;;
--test-name) test_name=$2; shift;;
--log-file) log_file=$2; shift;;
--trs-file) trs_file=$2; shift;;
--color-tests) color_tests=$2; shift;;
--expect-failure) expect_failure=$2; shift;;
--enable-hard-errors) enable_hard_errors=$2; shift;;
--) shift; break;;
-*) usage_error "invalid option: '$1'";;
*) break;;
esac
shift
done
missing_opts=
test x"$test_name" = x && missing_opts="$missing_opts --test-name"
test x"$log_file" = x && missing_opts="$missing_opts --log-file"
test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
if test x"$missing_opts" != x; then
usage_error "the following mandatory options are missing:$missing_opts"
fi
if test $# -eq 0; then
usage_error "missing argument"
fi
if test $color_tests = yes; then
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
red='' # Red.
grn='' # Green.
lgn='' # Light green.
blu='' # Blue.
mgn='' # Magenta.
std='' # No color.
else
red= grn= lgn= blu= mgn= std=
fi
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
trap "st=129; $do_exit" 1
trap "st=130; $do_exit" 2
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
# Test script is run here.
"$@" >$log_file 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
tweaked_estatus=1
else
tweaked_estatus=$estatus
fi
case $tweaked_estatus:$expect_failure in
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
0:*) col=$grn res=PASS recheck=no gcopy=no;;
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
esac
# Report the test outcome and exit status in the logs, so that one can
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
echo "$res $test_name (exit status: $estatus)" >>$log_file
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
# Register the test result, and other relevant metadata.
echo ":test-result: $res" > $trs_file
echo ":global-test-result: $res" >> $trs_file
echo ":recheck: $recheck" >> $trs_file
echo ":copy-in-global-log: $gcopy" >> $trs_file
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

1398
c++/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1352
c++/examples/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1551
c++/src/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -38,7 +38,7 @@ PROJECT_NAME = "HDF5 C++ API"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = "1.9.233 currently under development"
PROJECT_NUMBER = "1.10.0-alpha0 currently under development"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

1403
c++/test/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -732,7 +732,7 @@ static void test_libver_bounds()
/* Run the tests */
test_libver_bounds_real(H5F_LIBVER_EARLIEST, H5O_VERSION_1, H5F_LIBVER_LATEST, H5O_VERSION_2);
test_libver_bounds_real(H5F_LIBVER_LATEST, H5O_VERSION_2, H5F_LIBVER_EARLIEST, H5O_VERSION_1);
test_libver_bounds_real(H5F_LIBVER_LATEST, H5O_VERSION_2, H5F_LIBVER_EARLIEST, H5O_VERSION_2);
PASSED();
} /* end test_libver_bounds() */

Binary file not shown.

View File

@@ -18,8 +18,8 @@
# See libtool versioning documentation online.
# After making changes, run bin/reconfigure to update other configure related
# files like Makefile.in.
LT_VERS_INTERFACE = 6
LT_VERS_REVISION = 223
LT_VERS_INTERFACE = 100
LT_VERS_REVISION = 900
LT_VERS_AGE = 0
## If the API changes *at all*, increment LT_VERS_INTERFACE and

33930
configure vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,7 @@ AC_PREREQ([2.69])
## NOTE: Do not forget to change the version number here when we do a
## release!!!
##
AC_INIT([HDF5], [1.9.232], [help@hdfgroup.org])
AC_INIT([HDF5], [1.10.0-alpha0], [help@hdfgroup.org])
AC_CONFIG_SRCDIR([src/H5.c])
AC_CONFIG_HEADERS([src/H5config.h])
@@ -50,7 +50,10 @@ AM_SILENT_RULES([yes])
##
## By default, it is enabled. Users can configure with
## --disable-maintainer-mode to prevent running the autotools.
AM_MAINTAINER_MODE([enable])
## AM_MAINTAINER_MODE([enable])
##
## Maintainer mode is disabled in releases.
AM_MAINTAINER_MODE
## ----------------------------------------------------------------------
## Set prefix default (install directory) to a directory in the build area.
@@ -3058,10 +3061,14 @@ AC_CONFIG_FILES([src/libhdf5.settings
test/Makefile
test/testcheck_version.sh
test/testerror.sh
test/testflushrefresh.sh
test/H5srcdir_str.h
test/testlibinfo.sh
test/testlinks_env.sh
test/testswmr.sh
test/test_plugin.sh
test/test_usecases.sh
test/testvdsswmr.sh
testpar/Makefile
tools/Makefile
tools/h5dump/Makefile
@@ -3087,11 +3094,14 @@ AC_CONFIG_FILES([src/libhdf5.settings
tools/lib/Makefile
tools/misc/Makefile
tools/misc/h5cc
tools/misc/testh5clear.sh
tools/misc/testh5mkgrp.sh
tools/misc/testh5repart.sh
tools/misc/vds/Makefile
tools/h5stat/testh5stat.sh
tools/h5stat/Makefile
tools/h5format_convert/Makefile
tools/h5format_convert/testh5fc.sh
tools/perform/Makefile
examples/Makefile
examples/run-c-ex.sh
@@ -3120,6 +3130,8 @@ AC_CONFIG_FILES([src/libhdf5.settings
hl/tools/Makefile
hl/tools/gif2h5/Makefile
hl/tools/gif2h5/h52giftest.sh
hl/tools/h5watch/Makefile
hl/tools/h5watch/testh5watch.sh
hl/examples/Makefile
hl/examples/run-hlc-ex.sh
hl/c++/Makefile

1394
examples/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -288,8 +288,9 @@ main (void)
/* Read all VDS data */
//EIP We should be able to do it by using H5S_ALL instead of making selection
// or using H5Sselect_all from vspace.
/* EIP We should be able to do it by using H5S_ALL instead of making selection
* or using H5Sselect_all from vspace.
*/
start[0] = 0;
start[1] = 0;
start[2] = 0;

1407
fortran/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1382
fortran/examples/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1643
fortran/src/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1577
fortran/test/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1362
fortran/testpar/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1408
hl/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1398
hl/c++/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1316
hl/c++/examples/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1444
hl/c++/src/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1372
hl/c++/test/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1355
hl/examples/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1402
hl/fortran/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1535
hl/fortran/src/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1414
hl/fortran/test/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -97,3 +97,187 @@ done:
return(ret_value);
} /* end H5DOwrite_chunk() */
/*
* Function: H5DOappend()
*
* Purpose: To append elements to a dataset.
* axis: the dataset dimension (zero-based) for the append
* extension: the # of elements to append for the axis-th dimension
* memtype: the datatype
* buf: buffer with data for the append
*
* Return: Non-negative on success/Negative on failure
*
* Programmer: Vailin Choi; Jan 2014
*
* Note:
* This routine is copied from the fast forward feature branch: features/hdf5_ff
* src/H5FF.c:H5DOappend() with the following modifications:
* 1) Remove and replace macro calls such as
* FUNC_ENTER_API, H5TRACE, HGOTO_ERROR
* accordingly because hl does not have these macros
* 2) Replace H5I_get_type() by H5Iget_type()
* 3) Replace H5P_isa_class() by H5Pisa_class()
* 4) Fix a bug in the following: replace extension by size[axis]
* if(extension < old_size) {
* ret_value = FAIL;
* goto done;
* }
*/
herr_t
H5DOappend(hid_t dset_id, hid_t dxpl_id, unsigned axis, size_t extension,
hid_t memtype, const void *buf)
{
hsize_t size[H5S_MAX_RANK]; /* The new size (after extension */
hsize_t old_size = 0; /* The size of the dimension to be extended */
int sndims; /* Number of dimensions in dataspace (signed) */
unsigned ndims; /* Number of dimensions in dataspace */
hid_t space_id = FAIL; /* Old file space */
hid_t new_space_id = FAIL; /* New file space (after extension) */
hid_t mem_space_id = FAIL; /* Memory space for data buffer */
hssize_t snelmts; /* Number of elements in selection (signed) */
hsize_t nelmts; /* Number of elements in selection */
hid_t dapl = FAIL; /* Dataset access property list */
hsize_t start[H5S_MAX_RANK]; /* H5Sselect_Hyperslab: starting offset */
hsize_t count[H5S_MAX_RANK]; /* H5Sselect_hyperslab: # of blocks to select */
hsize_t stride[H5S_MAX_RANK]; /* H5Sselect_hyperslab: # of elements to move when selecting */
hsize_t block[H5S_MAX_RANK]; /* H5Sselect_hyperslab: # of elements in a block */
hsize_t *boundary = NULL; /* Boundary set in append flush property */
H5D_append_cb_t append_cb; /* Callback function set in append flush property */
void *udata; /* User data set in append flush property */
hbool_t hit = FALSE; /* Boundary is hit or not */
hsize_t k; /* Local index variable */
unsigned u; /* Local index variable */
herr_t ret_value = FAIL; /* Return value */
/* check arguments */
if(H5I_DATASET != H5Iget_type(dset_id))
goto done;
/* Get the default dataset transfer property list if the user didn't provide one */
if(H5P_DEFAULT == dxpl_id)
dxpl_id = H5P_DATASET_XFER_DEFAULT;
else
if(TRUE != H5Pisa_class(dxpl_id, H5P_DATASET_XFER))
goto done;
/* Get the dataspace of the dataset */
if(FAIL == (space_id = H5Dget_space(dset_id)))
goto done;
/* Get the rank of this dataspace */
if((sndims = H5Sget_simple_extent_ndims(space_id)) < 0)
goto done;
ndims = (unsigned)sndims;
/* Verify correct axis */
if(axis >= ndims)
goto done;
/* Get the dimensions sizes of the dataspace */
if(H5Sget_simple_extent_dims(space_id, size, NULL) < 0)
goto done;
/* Adjust the dimension size of the requested dimension,
but first record the old dimension size */
old_size = size[axis];
size[axis] += extension;
if(size[axis] < old_size)
goto done;
/* Set the extent of the dataset to the new dimension */
if(H5Dset_extent(dset_id, size) < 0)
goto done;
/* Get the new dataspace of the dataset */
if(FAIL == (new_space_id = H5Dget_space(dset_id)))
goto done;
/* Select a hyperslab corresponding to the append operation */
for(u = 0 ; u < ndims ; u++) {
start[u] = 0;
stride[u] = 1;
count[u] = size[u];
block[u] = 1;
if(u == axis) {
count[u] = extension;
start[u] = old_size;
} /* end if */
} /* end for */
if(FAIL == H5Sselect_hyperslab(new_space_id, H5S_SELECT_SET, start, stride, count, block))
goto done;
/* The # of elemnts in the new extended dataspace */
if((snelmts = H5Sget_select_npoints(new_space_id)) < 0)
goto done;
nelmts = (hsize_t)snelmts;
/* create a memory space */
mem_space_id = H5Screate_simple(1, &nelmts, NULL);
/* Write the data */
if(H5Dwrite(dset_id, memtype, mem_space_id, new_space_id, dxpl_id, buf) < 0)
goto done;
/* Obtain the dataset's access property list */
if((dapl = H5Dget_access_plist(dset_id)) < 0)
goto done;
/* Allocate the boundary array */
boundary = (hsize_t *)HDmalloc(ndims * sizeof(hsize_t));
/* Retrieve the append flush property */
if(H5Pget_append_flush(dapl, ndims, boundary, &append_cb, &udata) < 0)
goto done;
/* No boundary for this axis */
if(boundary[axis] == 0)
goto done;
/* Determine whether a boundary is hit or not */
for(k = start[axis]; k < size[axis]; k++)
if(!((k + 1) % boundary[axis])) {
hit = TRUE;
break;
}
if(hit) { /* Hit the boundary */
/* Invoke callback if there is one */
if(append_cb && append_cb(dset_id, size, udata) < 0)
goto done;
/* Do a dataset flush */
if(H5Dflush(dset_id) < 0)
goto done;
} /* end if */
/* Indicate success */
ret_value = SUCCEED;
done:
/* Close old dataspace */
if(space_id != FAIL && H5Sclose(space_id) < 0)
ret_value = FAIL;
/* Close new dataspace */
if(new_space_id != FAIL && H5Sclose(new_space_id) < 0)
ret_value = FAIL;
/* Close memory dataspace */
if(mem_space_id != FAIL && H5Sclose(mem_space_id) < 0)
ret_value = FAIL;
/* Close the dataset access property list */
if(dapl != FAIL && H5Pclose(dapl) < 0)
ret_value = FAIL;
if(boundary)
HDfree(boundary);
return ret_value;
} /* H5DOappend() */

View File

@@ -22,17 +22,16 @@ extern "C" {
/*-------------------------------------------------------------------------
*
* Direct chunk write function
* "Optimized dataset" routines.
*
*-------------------------------------------------------------------------
*/
H5_HLDLL herr_t H5DOwrite_chunk(hid_t dset_id,
hid_t dxpl_id,
uint32_t filters,
const hsize_t *offset,
size_t data_size,
const void *buf);
H5_HLDLL herr_t H5DOwrite_chunk(hid_t dset_id, hid_t dxpl_id, uint32_t filters,
const hsize_t *offset, size_t data_size, const void *buf);
H5_HLDLL herr_t H5DOappend(hid_t dset_id, hid_t dxpl_id, unsigned axis,
size_t extension, hid_t memtype, const void *buf);
#ifdef __cplusplus
}

639
hl/src/H5LD.c Normal file
View File

@@ -0,0 +1,639 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include "H5LDprivate.h"
/*-------------------------------------------------------------------------
*
* internal functions
*
*-------------------------------------------------------------------------
*/
static herr_t H5LD_construct_info(H5LD_memb_t *memb, hid_t par_tid);
static herr_t H5LD_get_dset_dims(hid_t did, hsize_t *cur_dims);
static size_t H5LD_get_dset_type_size(hid_t did, const char *fields);
static herr_t H5LD_get_dset_elmts(hid_t did, const hsize_t *prev_dims,
const hsize_t *cur_dims, const char *fields, void *buf);
/*-------------------------------------------------------------------------
* Function: H5LD_clean_vector
*
* Purpose: Process the vector of info:
* 1) free the array of pointers to member names in listv[n]
* 2) close the type id of the last member in listv[n]
* 3) free the H5LD_memb_t structure itself as pointed to by listv[n]
*
* Return: void
*
* Programmer: Vailin Choi; Aug 2010
*
*-------------------------------------------------------------------------
*/
void
H5LD_clean_vector(H5LD_memb_t *listv[])
{
unsigned n; /* Local index variable */
HDassert(listv);
/* Go through info for each field stored in listv[] */
for(n = 0; listv[n] != NULL; n++) {
if(listv[n]->names) {
HDfree(listv[n]->names);
listv[n]->names = NULL;
} /* end if */
/* Close the type id of the last member in the field */
if(!(listv[n]->last_tid < 0)) {
H5Tclose(listv[n]->last_tid);
listv[n]->last_tid = -1;
} /* end if */
/* Free the H5LD_memb_t structure for the field */
HDfree(listv[n]);
listv[n] = NULL;
} /* end for */
} /* H5LD_clean_vector() */
/*-------------------------------------------------------------------------
* Function: H5LD_construct_info()
*
* Purpose: Get the remaining info for a field:
* 1) Get the type id of the last member in the field
* 2) Get the total offset of all the members in the field
* 3) Get the type size of the last member in the field
*
* Return: Success: 0
* Failure: negative
*
* Programmer: Vailin Choi; Aug 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
H5LD_construct_info(H5LD_memb_t *memb, hid_t par_tid)
{
hid_t tmp_tid = -1; /* Dataset type id */
unsigned i; /* Local index variable */
herr_t ret_value = FAIL; /* Return value */
/* Make a copy of the incoming datatype */
tmp_tid = H5Tcopy(par_tid);
/* Validate all the members in a field */
for(i = 0; memb->names[i] != NULL; i++) {
hid_t memb_tid; /* Type id for a member in a field */
int idx; /* Index # of a member in a compound datatype */
/* Get the member index and member type id */
if((idx = H5Tget_member_index(tmp_tid, memb->names[i])) < 0)
goto done;
if((memb_tid = H5Tget_member_type(tmp_tid, (unsigned)idx)) < 0)
goto done;
/* Sum up the offset of all the members in the field */
memb->tot_offset += H5Tget_member_offset(tmp_tid, (unsigned)idx);
if(H5Tclose(tmp_tid) < 0)
goto done;
tmp_tid = memb_tid;
} /* end for */
/* Get the type size of the last member in the field */
memb->last_tsize = H5Tget_size(tmp_tid);
/* Save the type id of the last member in the field */
memb->last_tid = H5Tcopy(tmp_tid);
/* Indicate success */
ret_value = SUCCEED;
done:
H5E_BEGIN_TRY
H5Tclose(tmp_tid);
H5E_END_TRY
return(ret_value);
} /* H5LD_construct_info() */
/*-------------------------------------------------------------------------
* Function: H5LD_construct_vector
*
* Purpose: Process the comma-separated list of fields in "fields" as follows:
* Example:
* "fields": "a.b.c,d"
* listv[0]->tot_offset = total offset of "a" & "b" & "c"
* listv[0]->last_tid = type id of "c"
* listv[0]->last_tsize = type size of "c"
* listv[0]->names[0] = "a"
* listv[0]->names[1] = "b"
* listv[0]->names[2] = "c"
* listv[0]->names[3] = NULL
*
* listv[1]->tot_offset = offset of "d"
* listv[1]->last_tid = type id of "d"
* listv[1]->last_tsize = type size of "d"
* listv[1]->names[0] = "d"
* listv[1]->names[1] = NULL
*
* Return: Success: # of comma-separated fields in "fields"
* Failure: negative value
*
* Programmer: Vailin Choi; Aug 2010
*
*-------------------------------------------------------------------------
*/
int
H5LD_construct_vector(char *fields, H5LD_memb_t *listv[]/*OUT*/, hid_t par_tid)
{
int nfields; /* The # of comma-separated fields in "fields" */
hbool_t end_of_fields = FALSE; /* end of "fields" */
char *fields_ptr; /* Pointer to "fields" */
int ret_value = FAIL; /* Return value */
HDassert(listv);
HDassert(fields);
fields_ptr = fields;
nfields = 0;
/* Process till end of "fields" */
while(!end_of_fields) {
H5LD_memb_t *memb = NULL; /* Pointer to structure for storing a field's info */
char *cur; /* Pointer to a member in a field */
size_t len; /* Estimated # of members in a field */
hbool_t gotcomma = FALSE; /* A comma encountered */
hbool_t gotmember = FALSE; /* Getting member in a field */
hbool_t valid = TRUE; /* Whether a field being processed is valid or not */
int j = 0; /* The # of members in a field */
len = (HDstrlen(fields_ptr) / 2) + 2;
/* Allocate memory for an H5LD_memb_t for storing a field's info */
if(NULL == (memb = (H5LD_memb_t *)HDcalloc((size_t)1, sizeof(H5LD_memb_t))))
goto done;
/* Allocate memory for an array of pointers to member names */
if(NULL == (memb->names = (char **)HDcalloc(len, sizeof(char *))))
goto done;
memb->names[j] = fields_ptr;
memb->last_tid = -1;
cur = fields_ptr;
/* Continue processing till: not valid or comma encountered or "fields" ended */
while(valid && !gotcomma && !end_of_fields) {
switch(*fields_ptr) {
case '\0': /* end of list */
if(gotmember) { /* getting something and end of "fields" */
*cur++ = '\0';;
memb->names[++j] = NULL;
} /* end if */
else /* getting nothing but end of list */
valid = FALSE;
end_of_fields = TRUE;
break;
case '\\': /* escape character */
++fields_ptr; /* skip it */
if(*fields_ptr == '\0')
valid = FALSE;
else {
*cur++ = *fields_ptr++;
gotmember = TRUE;
} /* end else */
break;
case '.': /* nested field separator */
*fields_ptr++ = *cur++ = '\0';;
if(gotmember) {
memb->names[++j] = cur;
gotmember = FALSE;
} /* end if */
else
valid = FALSE;
break;
case ',': /* field separator */
*fields_ptr++ = *cur++ = '\0';;
if(gotmember) {
memb->names[++j] = NULL;
gotmember = FALSE;
} /* end if */
else
valid = FALSE;
gotcomma = TRUE;
break;
default:
*cur++ = *fields_ptr++;
gotmember = TRUE;
break;
} /* end switch */
} /* while (valid && !gotcomma && !end_of_fields) */
/* If valid, put into listv and continue processing further info */
if(valid) {
listv[nfields++] = memb;
if(H5LD_construct_info(memb, par_tid) < 0)
goto done;
} /* end if */
else {
if(memb)
HDfree(memb);
goto done;
} /* end else */
} /* while !end_of_fields */
/* Indicate success */
ret_value = nfields;
done:
listv[nfields] = NULL;
if(ret_value == FAIL)
H5LD_clean_vector(listv);
return(ret_value);
} /* H5LD_construct_vector() */
/*-------------------------------------------------------------------------
* Function: H5LD_get_dset_dims
*
* Purpose: To return the current size for each dimension of the
* dataset's dataspace
*
* Return: Success: 0
* Failure: negative value
*
* Programmer: Vailin Choi; March 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
H5LD_get_dset_dims(hid_t did, hsize_t *cur_dims)
{
hid_t sid = -1; /* Dataspace ID */
herr_t ret_value = FAIL; /* Return Value */
/* Verify parameter */
if(cur_dims == NULL)
goto done;
/* Get the dataset's dataspace */
if((sid = H5Dget_space(did)) < 0)
goto done;
/* Get the current dimension size */
if(H5Sget_simple_extent_dims(sid, cur_dims, NULL) < 0)
goto done;
/* Indicate success */
ret_value = SUCCEED;
done:
H5E_BEGIN_TRY {
H5Sclose(sid);
} H5E_END_TRY;
return(ret_value);
} /* H5LD_get_dset_dims() */
/*-------------------------------------------------------------------------
* Function: H5LD_get_dset_type_size
*
* Purpose: To return the size of the dataset's datatype in bytes
* null "fields": return the size of the dataset's datatype
* non-null "fields": return the size of the dataset's datatype
* with respect to the selection in "fields"
*
* Return: Success: size of the dataset's datatype
* Failure: 0 (valid datatypes are never zero size)
*
* Programmer: Vailin Choi; March 2010
*
*-------------------------------------------------------------------------
*/
static size_t
H5LD_get_dset_type_size(hid_t did, const char *fields)
{
hid_t dset_tid = -1; /* Dataset's type identifier */
hid_t tid = -1; /* Native Type identifier */
H5LD_memb_t **listv = NULL; /* Vector for storing information in "fields" */
char *dup_fields = NULL; /* A copy of "fields" */
size_t ret_value = 0; /* Return value */
/* Get the datatype of the dataset */
if((dset_tid = H5Dget_type(did)) < 0)
goto done;
if((tid = H5Tget_native_type(dset_tid, H5T_DIR_DEFAULT)) < 0)
goto done;
if(fields == NULL) /* If no "fields" is specified */
ret_value = H5Tget_size(tid);
else { /* "fields" are specified */
size_t len; /* Estimate the number of comma-separated fields in "fields" */
size_t tot = 0; /* Data type size of all the fields in "fields" */
int n = 0, num = 0; /* Local index variables */
HDassert(fields && *fields);
/* Should be a compound datatype if "fields" exists */
if(H5Tget_class(dset_tid) != H5T_COMPOUND)
goto done;
/* Get a copy of "fields" */
if(NULL == (dup_fields = HDstrdup(fields)))
goto done;
/* Allocate memory for a list of H5LD_memb_t pointers to store "fields" info */
len = (HDstrlen(fields) / 2) + 2;
if(NULL == (listv = (H5LD_memb_t **)HDcalloc(len, sizeof(H5LD_memb_t *))))
goto done;
/* Process and store info for "fields" */
if((num = H5LD_construct_vector(dup_fields, listv/*OUT*/, tid)) < 0)
goto done;
/* Sum up the size of all the datatypes in "fields" */
for(n = 0; n < num; n++)
tot += listv[n]->last_tsize;
/* Clean up the vector of H5LD_memb_t structures */
H5LD_clean_vector(listv);
/* Return the total size */
ret_value = tot;
} /* end else */
done:
H5E_BEGIN_TRY
H5Tclose(tid);
H5Tclose(dset_tid);
H5E_END_TRY
/* Free the array of H5LD_memb_t pointers */
if(listv)
HDfree(listv);
/* Free memory */
if(dup_fields)
HDfree(dup_fields);
return(ret_value);
} /* H5LD_get_dset_type_size() */
/*-------------------------------------------------------------------------
* Function: H5LD_get_dset_elmts
*
* Purpose: To retrieve selected data from the dataset
*
* Return: Success: 0
* Failure: negative
*
* Programmer: Vailin Choi; August 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
H5LD_get_dset_elmts(hid_t did, const hsize_t *prev_dims, const hsize_t *cur_dims,
const char *fields, void *buf)
{
hid_t dtid = -1, tid = -1; /* Dataset type id */
hid_t sid = -1, mid = -1; /* Dataspace and memory space id */
hssize_t snum_elmts; /* Number of dataset elements in the selection (signed) */
hsize_t num_elmts; /* Number of dataset elements in the selection */
hsize_t start[H5S_MAX_RANK];/* Starting offset */
hsize_t count[H5S_MAX_RANK];/* ??offset */
H5LD_memb_t **listv = NULL; /* Vector for storing information in "fields" */
char *dup_fields = NULL; /* A copy of "fields" */
char *sav_buf = NULL; /* Saved pointer temporary buffer */
unsigned ctr; /* Counter for # of curr_dims > prev_dims */
int ndims; /* Number of dimensions for the dataset */
int i; /* Local index variable */
herr_t ret_value = FAIL; /* Return value */
/* Verify parameters */
if(prev_dims == NULL || cur_dims == NULL || buf == NULL)
goto done;
/* Get dataset's dataspace */
if((sid = H5Dget_space(did)) < 0)
goto done;
/* Get the number of dimensions */
if((ndims = H5Sget_simple_extent_ndims(sid)) < 0)
goto done;
/* Verify that cur_dims must have one dimension whose size is greater than prev_dims */
HDmemset(start, 0, sizeof start);
HDmemset(count, 0, sizeof count);
ctr = 0;
for(i = 0; i < ndims; i++)
if(cur_dims[i] > prev_dims[i]) {
++ctr;
count[i] = cur_dims[i] - prev_dims[i];
start[i] = prev_dims[i];
} /* end if */
else { /* < or = */
start[i] = 0;
count[i] = MIN(prev_dims[i], cur_dims[i]);
} /* end else */
if(!ctr)
goto done;
if(ctr == 1) { /* changes for only one dimension */
/* Make the selection in the dataset based on "cur_dims" and "prev_dims" */
if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, NULL, count, NULL) < 0)
goto done;
} /* end if */
else { /* changes for more than one dimensions */
HDmemset(start, 0, sizeof start);
/* Make the selection in the dataset based on "cur_dims" and "prev_dims" */
if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, NULL, cur_dims, NULL) < 0)
goto done;
if(H5Sselect_hyperslab(sid, H5S_SELECT_NOTB, start, NULL, prev_dims, NULL) < 0)
goto done;
} /* end else */
/* Get the number of elements in the selection */
if(0 == (snum_elmts = H5Sget_select_npoints(sid)))
goto done;
num_elmts = (hsize_t)snum_elmts;
/* Create the memory space for the selection */
if((mid = H5Screate_simple(1, &num_elmts, NULL)) < 0)
goto done;
/* Get the native datatype size */
if((dtid = H5Dget_type(did)) < 0)
goto done;
if((tid = H5Tget_native_type(dtid, H5T_DIR_DEFAULT)) < 0)
goto done;
if(fields == NULL) { /* nothing in "fields" */
/* Read and store all the elements in "buf" */
if(H5Dread(did, tid, mid, sid, H5P_DEFAULT, buf) < 0)
goto done;
} /* end if */
else { /* "fields" is specified */
unsigned char *buf_p = (unsigned char *)buf; /* Pointer to the destination buffer */
char *tmp_buf; /* Temporary buffer for data read */
size_t tot_tsize; /* Total datatype size */
size_t len; /* Estimate the number of comma-separated fields in "fields" */
/* should be a compound datatype if "fields" exists */
if(H5Tget_class(tid) != H5T_COMPOUND)
goto done;
/* Get the total size of the dataset's datatypes */
if(0 == (tot_tsize = H5LD_get_dset_type_size(did, NULL)))
goto done;
/* Allocate memory for reading in the elements in the dataset selection */
if(NULL == (sav_buf = tmp_buf = (char *)HDcalloc((size_t)num_elmts, tot_tsize)))
goto done;
/* Read the dataset elements in the selection */
if(H5Dread(did, tid, mid, sid, H5P_DEFAULT, tmp_buf) < 0)
goto done;
/* Make a copy of "fields" */
if(NULL == (dup_fields = HDstrdup(fields)))
goto done;
/* Allocate memory for the vector of H5LD_memb_t pointers */
len = (HDstrlen(fields) / 2) + 2;
if(NULL == (listv = (H5LD_memb_t **)HDcalloc(len, sizeof(H5LD_memb_t *))))
goto done;
/* Process and store information for "fields" */
if(H5LD_construct_vector(dup_fields, listv, tid) < 0)
goto done;
/* Copy data for each dataset element in the selection */
for(i = 0; i < (int)num_elmts; i++) {
int j; /* Local index variable */
/* Copy data for "fields" to the input buffer */
for(j = 0; listv[j] != NULL; j++) {
HDmemcpy(buf_p, tmp_buf + listv[j]->tot_offset, listv[j]->last_tsize);
buf_p += listv[j]->last_tsize;
} /* end for */
tmp_buf += tot_tsize;
} /* end for */
/* Clean up the vector of H5LD_memb_t structures */
H5LD_clean_vector(listv);
} /* end else */
/* Indicate success */
ret_value = SUCCEED;
done:
H5E_BEGIN_TRY
H5Tclose(dtid);
H5Tclose(tid);
H5Sclose(sid);
H5Sclose(mid);
H5E_END_TRY
/* Free the array of H5LD_memb_t pointers */
if(listv)
HDfree(listv);
/* Free memory */
if(dup_fields)
HDfree(dup_fields);
if(sav_buf)
HDfree(sav_buf);
return(ret_value);
} /* H5LD_get_dset_elmts() */
/*-------------------------------------------------------------------------
*
* Public functions
*
*-------------------------------------------------------------------------
*/
/*-------------------------------------------------------------------------
* Function: H5LDget_dset_dims
*
* Purpose: To retrieve the current dimension sizes for a dataset
*
* Return: Success: 0
* Failure: negative value
*
* Programmer: Vailin Choi; March 2010
*
*-------------------------------------------------------------------------
*/
herr_t
H5LDget_dset_dims(hid_t did, hsize_t *cur_dims)
{
return(H5LD_get_dset_dims(did, cur_dims));
} /* H5LDget_dset_dims() */
/*-------------------------------------------------------------------------
* Function: H5LDget_dset_type_size
*
* Purpose: To return the size in bytes of the datatype for the dataset
*
* Return: Success: size in bytes of the dataset's datatype
* Failure: 0 (valid datatypes are never zero size)
*
* Programmer: Vailin Choi; March 2010
*
*-------------------------------------------------------------------------
*/
size_t
H5LDget_dset_type_size(hid_t did, const char *fields)
{
return(H5LD_get_dset_type_size(did, fields));
} /* H5LDget_dset_type_size() */
/*-------------------------------------------------------------------------
* Function: H5LDget_dset_elmts
*
* Purpose: To retrieve selected data from the dataset
*
* Return: Success: 0
* Failure: negative value
*
* Programmer: Vailin Choi; March 2010
*
*-------------------------------------------------------------------------
*/
herr_t
H5LDget_dset_elmts(hid_t did, const hsize_t *prev_dims, const hsize_t *cur_dims, const char *fields, void *buf)
{
return(H5LD_get_dset_elmts(did, prev_dims, cur_dims, fields, buf) );
} /* H5LDget_dset_elmts() */

49
hl/src/H5LDprivate.h Normal file
View File

@@ -0,0 +1,49 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5LDprivate_H
#define _H5LDprivate_H
/* High-level library internal header file */
#include "H5HLprivate2.h"
#include "H5LDpublic.h"
/* Store information for a field in <list_of_fields> for a compound data type */
/*
* Note: This data structure is used by both H5LD.c and hl/tools/h5watch
* This declaration is repeated in tools/lib/h5tools_str.c
*/
typedef struct H5LD_memb_t {
size_t tot_offset;
size_t last_tsize;
hid_t last_tid;
char **names;
} H5LD_memb_t;
/*
* Note that these two private routines are called by hl/tools/h5watch.
* Have considered the following options:
* 1) Repeat the coding in both H5LD.c and h5watch
* 2) Make these public routines
* 3) Break the rule "to avoid tools calling private routines in the library"
* #1: not good for maintenance
* #2: these two routines are too specific to be made as public routines
* Decide to do #3 at this point of time after some discussion.
*/
void H5LD_clean_vector(H5LD_memb_t *listv[]);
int H5LD_construct_vector(char *fields, H5LD_memb_t *listv[], hid_t par_tid);
#endif /* end _H5LDprivate_H */

33
hl/src/H5LDpublic.h Normal file
View File

@@ -0,0 +1,33 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _H5LDpublic_H
#define _H5LDpublic_H
#ifdef __cplusplus
extern "C" {
#endif
H5_HLDLL herr_t H5LDget_dset_dims(hid_t did, hsize_t *cur_dims);
H5_HLDLL size_t H5LDget_dset_type_size(hid_t did, const char *fields);
H5_HLDLL herr_t H5LDget_dset_elmts(hid_t did, const hsize_t *prev_dims,
const hsize_t *cur_dims, const char *fields, void *buf);
#ifdef __cplusplus
}
#endif
#endif /* _H5LDpublic_H */

View File

@@ -3248,7 +3248,7 @@ out:
*
*-------------------------------------------------------------------------
*/
static
H5_ATTR_PURE static
hbool_t H5TB_find_field(const char *field, const char *field_list)
{
const char *start = field_list;

View File

@@ -31,12 +31,12 @@ lib_LTLIBRARIES=libhdf5_hl.la
libhdf5_hl_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
# List sources to include in the HDF5 HL Library.
libhdf5_hl_la_SOURCES=H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c
libhdf5_hl_la_SOURCES=H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c H5LD.c
# HDF5 HL library depends on HDF5 Library.
libhdf5_hl_la_LIBADD=$(LIBHDF5)
# Public header files (to be installed)
include_HEADERS=hdf5_hl.h H5DOpublic.h H5IMpublic.h H5LTpublic.h H5TBpublic.h H5DSpublic.h H5PTpublic.h
include_HEADERS=hdf5_hl.h H5DOpublic.h H5IMpublic.h H5LTpublic.h H5TBpublic.h H5DSpublic.h H5PTpublic.h H5LDpublic.h
include $(top_srcdir)/config/conclude.am

1450
hl/src/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -28,6 +28,7 @@
#include "H5IMpublic.h" /* image */
#include "H5TBpublic.h" /* table */
#include "H5PTpublic.h" /* packet table */
#include "H5LDpublic.h" /* lite dataset */
#endif /*H5_INCLUDE_HL*/

View File

@@ -1,4 +1,3 @@
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
@@ -29,7 +28,8 @@ LDADD=$(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5)
# Test programs. These are our main targets. They should be listed in the
# order to be executed, generally most specific tests to least specific tests.
TEST_PROG=test_lite test_image test_file_image test_table test_ds test_packet test_dset_opt
TEST_PROG=test_lite test_image test_file_image test_table test_ds test_packet test_dset_opt \
test_ld test_dset_append
check_PROGRAMS=$(TEST_PROG)
# These programs generate test files for the tests. They don't need to be
@@ -37,7 +37,7 @@ check_PROGRAMS=$(TEST_PROG)
# them in a conditional causes automake to generate rules so that they
# can be built by hand. They can also be built by specifying
# --enable-build-all at configure time.
BUILD_ALL_PROGS=gen_test_ds
BUILD_ALL_PROGS=gen_test_ds gen_test_ld
if BUILD_ALL_CONDITIONAL
noinst_PROGRAMS=$(BUILD_ALL_PROGS)
@@ -47,6 +47,6 @@ endif
CHECK_CLEANFILES+=combine_tables[1-2].h5 test_ds[1-9].h5 test_ds10.h5 \
test_image[1-3].h5 file_img[1-2].h5 test_lite[1-4].h5 test_table.h5 \
test_packet_table.h5 test_packet_compress.h5 test_detach.h5 \
test_dectris.h5
test_dectris.h5 test_append.h5
include $(top_srcdir)/config/conclude.am

1553
hl/test/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

379
hl/test/gen_test_ld.c Normal file
View File

@@ -0,0 +1,379 @@
#include "hdf5.h"
#include "H5LDprivate.h"
#include <time.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <stdlib.h>
/*
* WATCH.h5: file with various types of datasets for testing--
*
* The following datasets are chunked, H5D_ALLOC_TIME_INCR, max. dimensional setting:
* DSET_ONE: one-dimensional dataset
* DSET_TWO: two-dimensional dataset
* DSET_CMPD: one-dimensional dataset with compound type
* DSET_CMPD_ESC: one-dimensional dataset with compound type and member names with
* escape/separator characters
* DSET_CMPD_TWO: two-dimensional dataset with compound type
*
* The following datasets are one-dimensional, chunked, max. dimension setting:
* DSET_ALLOC_EARLY: dataset with H5D_ALLOC_TIME_EARLY
* DSET_ALLOC_LATE: dataset H5D_ALLOC_TIME_LATE
*
* The following datasets are one-dimensional:
* DSET_NONE: fixed dimension setting, contiguous, H5D_ALLOC_TIME_LATE
* DSET_NOMAX: fixed dimension setting, chunked, H5D_ALLOC_TIME_INCR
*/
#define ONE_DIMS0 10
#define MAX_ONE_DIMS0 100
#define DSET_ONE "DSET_ONE"
#define DSET_NONE "DSET_NONE"
#define DSET_NOMAX "DSET_NOMAX"
#define DSET_ALLOC_LATE "DSET_ALLOC_LATE"
#define DSET_ALLOC_EARLY "DSET_ALLOC_EARLY"
#define DSET_CMPD "DSET_CMPD"
#define DSET_CMPD_ESC "DSET_CMPD_ESC"
#define DSET_NULL "DSET_NULL"
#define DSET_SCALAR "DSET_SCALAR"
#define TWO_DIMS0 4
#define TWO_DIMS1 10
#define MAX_TWO_DIMS0 60
#define MAX_TWO_DIMS1 100
#define DSET_TWO "DSET_TWO"
#define DSET_CMPD_TWO "DSET_CMPD_TWO"
#define CHUNK_SIZE 2
#define FILE "test_ld.h5"
/* Data structures for datasets with compound types */
typedef struct sub22_t {
unsigned int a;
unsigned int b;
unsigned int c;
} sub22_t;
typedef struct sub2_t {
unsigned int a;
sub22_t b;
unsigned int c;
} sub2_t;
typedef struct sub4_t {
unsigned int a;
unsigned int b;
} sub4_t;
typedef struct set_t {
unsigned int field1;
sub2_t field2;
double field3;
sub4_t field4;
} set_t;
/*
**************************************************************************************
*
* Create a dataset with the given input parameters
* Write to the dataset with the given "data"
*
**************************************************************************************
*/
static int
generate_dset(hid_t fid, const char *dname, int ndims, hsize_t *dims,
hsize_t *maxdims, hid_t dtid, void *data)
{
hid_t dcpl = -1; /* Dataset creation property */
hid_t did = -1; /* Dataset id */
hid_t sid = -1; /* Dataspace id */
int i; /* Local index variable */
/* Create the dataspace */
if((sid = H5Screate_simple(ndims, dims, maxdims)) < 0)
goto done;
/* Set up dataset's creation properties */
if(!HDstrcmp(dname, DSET_NONE))
dcpl = H5P_DEFAULT;
else {
hsize_t chunk_dims[H5S_MAX_RANK]; /* Dimension sizes for chunks */
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0)
goto done;
for(i = 0; i < ndims; i++)
chunk_dims[i] = CHUNK_SIZE;
if(H5Pset_chunk(dcpl, ndims, chunk_dims) < 0)
goto done;
} /* end else */
if(!HDstrcmp(dname, DSET_ALLOC_LATE)) {
if(H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_LATE) < 0)
goto done;
} /* end if */
else if(!HDstrcmp(dname, DSET_ALLOC_EARLY)) {
if(H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_EARLY) < 0)
goto done;
} /* end if */
/* Create the dataset */
if((did = H5Dcreate2(fid, dname, dtid, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
goto done;
/* Write to the dataset */
if(H5Dwrite(did, dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, data) < 0)
goto done;
/* Closing */
if(H5Pclose(dcpl) < 0)
goto done;
if(H5Sclose(sid) < 0)
goto done;
if(H5Dclose(did) < 0)
goto done;
return(SUCCEED);
done:
H5E_BEGIN_TRY
H5Sclose(sid);
H5Pclose(dcpl);
H5Dclose(did);
H5E_END_TRY
return(FAIL);
} /* generate_dset() */
int
main(void)
{
hid_t fid; /* File id */
hid_t fapl; /* File access property list */
hsize_t cur_dims[1]; /* Dimension sizes */
hsize_t max_dims[1]; /* Maximum dimension sizes */
hsize_t cur2_dims[2]; /* Current dimension sizes */
hsize_t max2_dims[2]; /* Maximum dimension sizes */
hid_t set_tid, esc_set_tid; /* Compound type id */
hid_t sub22_tid; /* Compound type id */
hid_t sub2_tid, esc_sub2_tid; /* Compound type id */
hid_t sub4_tid, esc_sub4_tid; /* Compound type id */
hid_t null_did, null_sid; /* H5S_NULL dataset & dataspace ids */
hid_t scalar_did, scalar_sid; /* H5S_SCALAR dataset & dataspace ids */
int one_data[ONE_DIMS0]; /* Buffer for data */
int two_data[TWO_DIMS0*TWO_DIMS1]; /* Buffer for data */
set_t one_cbuf[ONE_DIMS0]; /* Buffer for data with compound type */
set_t two_cbuf[TWO_DIMS0*TWO_DIMS1]; /* Buffer for data with compound type */
int i; /* Local index variable */
/* Create a file access property list */
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
goto done;
/* Set to use latest library format */
if((H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST)) < 0)
goto done;
/* Create a file */
if((fid = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
goto done;
/* Initialization for one-dimensional dataset */
cur_dims[0] = ONE_DIMS0;
max_dims[0] = MAX_ONE_DIMS0;
for(i = 0; i < ONE_DIMS0; i++)
one_data[i] = i;
/* Generate DSET_ONE, DSET_NONE, DSET_NOMAX, DSET_ALLOC_LATE, DSET_EARLY */
if(generate_dset(fid, DSET_ONE, 1, cur_dims, max_dims, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_NONE, 1, cur_dims, NULL, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_NOMAX, 1, cur_dims, NULL, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_ALLOC_LATE, 1, cur_dims, max_dims, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_ALLOC_EARLY, 1, cur_dims, max_dims, H5T_NATIVE_INT, one_data) < 0)
goto done;
/* Initialization for two-dimensional dataset */
cur2_dims[0] = TWO_DIMS0;
cur2_dims[1] = TWO_DIMS1;
max2_dims[0] = MAX_TWO_DIMS0;
max2_dims[1] = MAX_TWO_DIMS1;
for(i = 0; i < (TWO_DIMS0 * TWO_DIMS1); i++)
two_data[i] = i;
/* Generate DSET_TWO */
if(generate_dset(fid, DSET_TWO, 2, cur2_dims, max2_dims, H5T_NATIVE_INT, two_data) < 0)
goto done;
/* Initialization for one-dimensional compound typed dataset */
cur_dims[0] = ONE_DIMS0;
max_dims[0] = MAX_ONE_DIMS0;
for (i = 0; i < ONE_DIMS0; i++) {
one_cbuf[i].field1 = 1;
one_cbuf[i].field2.a = 2;
one_cbuf[i].field2.c = 4;
one_cbuf[i].field2.b.a = 20;
one_cbuf[i].field2.b.b = 40;
one_cbuf[i].field2.b.c = 80;
one_cbuf[i].field3 = 3.0f;
one_cbuf[i].field4.a = 4;
one_cbuf[i].field4.b = 8;
} /* end for */
/* Create the compound type */
if((sub22_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub22_t))) < 0)
goto done;
if(H5Tinsert(sub22_tid, "a", HOFFSET(sub22_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub22_tid, "b", HOFFSET(sub22_t, b), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub22_tid, "c", HOFFSET(sub22_t, c), H5T_NATIVE_INT) < 0)
goto done;
if((sub2_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub2_t))) < 0)
goto done;
if(H5Tinsert(sub2_tid, "a", HOFFSET(sub2_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub2_tid, "b", HOFFSET(sub2_t, b), sub22_tid) < 0)
goto done;
if(H5Tinsert(sub2_tid, "c", HOFFSET(sub2_t, c), H5T_NATIVE_INT) < 0)
goto done;
if((sub4_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub4_t))) < 0)
goto done;
if(H5Tinsert(sub4_tid, "a", HOFFSET(sub4_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub4_tid, "b", HOFFSET(sub4_t, b), H5T_NATIVE_INT) < 0)
goto done;
if((set_tid = H5Tcreate(H5T_COMPOUND, sizeof(set_t))) < 0)
goto done;
if(H5Tinsert(set_tid, "field1", HOFFSET(set_t, field1), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(set_tid, "field2", HOFFSET(set_t, field2), sub2_tid) < 0)
goto done;
if(H5Tinsert(set_tid, "field3", HOFFSET(set_t, field3), H5T_NATIVE_DOUBLE) < 0)
goto done;
if(H5Tinsert(set_tid, "field4", HOFFSET(set_t, field4), sub4_tid) < 0)
goto done;
/* Create the compound type with escape/separator characters */
if((esc_sub2_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub2_t))) < 0)
goto done;
if(H5Tinsert(esc_sub2_tid, ".a", HOFFSET(sub2_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(esc_sub2_tid, ",b", HOFFSET(sub2_t, b), sub22_tid) < 0)
goto done;
if(H5Tinsert(esc_sub2_tid, "\\c", HOFFSET(sub2_t, c), H5T_NATIVE_INT) < 0)
goto done;
if((esc_sub4_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub4_t))) < 0)
goto done;
if(H5Tinsert(esc_sub4_tid, "a.", HOFFSET(sub4_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(esc_sub4_tid, "b,", HOFFSET(sub4_t, b), H5T_NATIVE_INT) < 0)
goto done;
if((esc_set_tid = H5Tcreate(H5T_COMPOUND, sizeof(set_t))) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field,1", HOFFSET(set_t, field1), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field2.", HOFFSET(set_t, field2), esc_sub2_tid) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field\\3", HOFFSET(set_t, field3), H5T_NATIVE_DOUBLE) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field4,", HOFFSET(set_t, field4), esc_sub4_tid) < 0)
goto done;
/* Generate DSET_CMPD, DSET_CMPD_ESC */
if(generate_dset(fid, DSET_CMPD, 1, cur_dims, max_dims, set_tid, one_cbuf) < 0)
goto done;
if(generate_dset(fid, DSET_CMPD_ESC, 1, cur_dims, max_dims, esc_set_tid, one_cbuf) < 0)
goto done;
/* Initialization for two-dimensional compound typed dataset */
cur2_dims[0] = TWO_DIMS0;
cur2_dims[1] = TWO_DIMS1;
max2_dims[0] = MAX_TWO_DIMS0;
max2_dims[0] = MAX_TWO_DIMS1;
for (i = 0; i < (TWO_DIMS0 * TWO_DIMS1); i++) {
two_cbuf[i].field1 = 1;
two_cbuf[i].field2.a = 2;
two_cbuf[i].field2.c = 4;
two_cbuf[i].field2.b.a = 20;
two_cbuf[i].field2.b.b = 40;
two_cbuf[i].field2.b.c = 80;
two_cbuf[i].field3 = 3.0f;
two_cbuf[i].field4.a = 4;
two_cbuf[i].field4.b = 8;
} /* end for */
/* Generate DSET_CMPD_TWO */
if(generate_dset(fid, DSET_CMPD_TWO, 2, cur2_dims, max2_dims, set_tid, two_cbuf) < 0)
goto done;
/* Create NULL dataspace */
if((null_sid = H5Screate(H5S_NULL)) < 0)
goto done;
/* Create the NULL dataset */
if((null_did = H5Dcreate2(fid, DSET_NULL, H5T_NATIVE_UINT, null_sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
goto done;
/* Create SCALAR dataspace */
if((scalar_sid = H5Screate(H5S_SCALAR)) < 0)
goto done;
/* Create the SCALAR dataset */
if((scalar_did = H5Dcreate2(fid, DSET_SCALAR, H5T_NATIVE_INT, scalar_sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0)
goto done;
/* Closing */
if(H5Dclose(scalar_did) < 0) goto done;
if(H5Sclose(scalar_sid) < 0) goto done;
if(H5Dclose(null_did) < 0) goto done;
if(H5Sclose(null_sid) < 0) goto done;
if(H5Tclose(sub22_tid) < 0) goto done;
if(H5Tclose(sub2_tid) < 0) goto done;
if(H5Tclose(sub4_tid) < 0) goto done;
if(H5Tclose(set_tid) < 0) goto done;
if(H5Tclose(esc_sub2_tid) < 0) goto done;
if(H5Tclose(esc_sub4_tid) < 0) goto done;
if(H5Tclose(esc_set_tid) < 0) goto done;
if(H5Pclose(fapl) < 0) goto done;
if(H5Fclose(fid) < 0) goto done;
exit(EXIT_SUCCESS);
done:
H5E_BEGIN_TRY
H5Tclose(sub22_tid);
H5Tclose(sub2_tid);
H5Tclose(sub4_tid);
H5Tclose(set_tid);
H5Tclose(esc_sub2_tid);
H5Tclose(esc_sub4_tid);
H5Tclose(esc_set_tid);
H5Dclose(null_did);
H5Sclose(null_sid);
H5Dclose(scalar_did);
H5Sclose(scalar_sid);
H5Pclose(fapl);
H5Fclose(fid);
H5E_END_TRY
exit(EXIT_FAILURE);
} /* main() */

1196
hl/test/test_dset_append.c Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -41,7 +41,7 @@
#define CHUNK_NX 4
#define CHUNK_NY 4
#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001F)+12)
#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*(double)1.001F)+12)
/* Temporary filter IDs used for testing */
#define H5Z_FILTER_BOGUS1 305

View File

@@ -20,6 +20,12 @@
#define RANK 2
/* For superblock version 0, 1: the offset to "file consistency flags" is 20 with size of 4 bytes */
/* The file consistency flags is the "status_flags" field in H5F_super_t */
/* Note: the offset and size will be different when using superblock version 2 for the test file */
#define SUPER_STATUS_FLAGS_OFF_V0_V1 20
#define SUPER_STATUS_FLAGS_SIZE_V0_V1 4
/* Test of file image operations.
The following code provides a means to thoroughly test the file image
@@ -214,10 +220,32 @@ test_file_image(size_t open_images, size_t nflags, unsigned *flags)
else
VERIFY(*core_buf_ptr_ptr != buf_ptr[i], "vfd buffer and user buffer should be different");
/* test whether the contents of the user buffer and driver buffer */
/* are equal. */
if (HDmemcmp(*core_buf_ptr_ptr, buf_ptr[i], (size_t)buf_size[i]) != 0)
FAIL_PUTS_ERROR("comparison of vfd and user buffer failed");
/*
* When the vfd and user buffers are different and H5LT_FILE_IMAGE_OPEN_RW is enabled,
* status_flags in the superblock needs to be cleared in the vfd buffer for
* the comparison to proceed as expected. The user buffer as returned from H5Fget_file_image()
* has already cleared status_flags. The superblock's status_flags is used for the
* implementation of file locking.
*/
if(input_flags[i] & H5LT_FILE_IMAGE_OPEN_RW && !(input_flags[i] & H5LT_FILE_IMAGE_DONT_COPY)) {
void *tmp_ptr = HDmalloc((size_t)buf_size[i]);
/* Copy vfd buffer to a temporary buffer */
HDmemcpy(tmp_ptr, (void *)*core_buf_ptr_ptr, (size_t)buf_size[i]);
/* Clear status_flags in the superblock for the vfd buffer: file locking is using status_flags */
HDmemset((uint8_t *)tmp_ptr + SUPER_STATUS_FLAGS_OFF_V0_V1, (int)0, (size_t)SUPER_STATUS_FLAGS_SIZE_V0_V1);
/* Does the comparision */
if(HDmemcmp(tmp_ptr, buf_ptr[i], (size_t)buf_size[i]) != 0)
FAIL_PUTS_ERROR("comparison of TMP vfd and user buffer failed");
/* Free the temporary buffer */
if(tmp_ptr) HDfree(tmp_ptr);
} else {
/* test whether the contents of the user buffer and driver buffer */
/* are equal. */
if (HDmemcmp(*core_buf_ptr_ptr, buf_ptr[i], (size_t)buf_size[i]) != 0)
FAIL_PUTS_ERROR("comparison of vfd and user buffer failed");
}
} /* end else */
} /* end for */

1430
hl/test/test_ld.c Normal file

File diff suppressed because it is too large Load Diff

BIN
hl/test/test_ld.h5 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -21,7 +21,9 @@
include $(top_srcdir)/config/commence.am
CONFIG=ordered
# All subdirectories
SUBDIRS=gif2h5
SUBDIRS=gif2h5 h5watch
include $(top_srcdir)/config/conclude.am

1385
hl/tools/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1455
hl/tools/gif2h5/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,44 @@
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html. COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page. It can also be found at
# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
# access to either file, you may request a copy from help@hdfgroup.org.
##
## Makefile.am
## Run automake to generate a Makefile.in from this file.
#
# HDF5 Library Makefile(.in)
#
include $(top_srcdir)/config/commence.am
# Include src and tools/lib directories
AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/tools/lib -I$(top_srcdir)/hl/src
# These are our main targets, the tools
TEST_SCRIPT=testh5watch.sh
check_SCRIPTS=$(TEST_SCRIPT)
SCRIPT_DEPEND=swmr_check_compat_vfd$(EXEEXT) extend_dset$(EXEEXT) h5watch$(EXEEXT)
bin_PROGRAMS=h5watch
noinst_PROGRAMS=swmr_check_compat_vfd h5watchgentest extend_dset
# Add h5watch specific linker flags here
h5watch_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
# Programs all depend on the hdf5 library, the tools library, and the HL
# library.
LDADD=$(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
#
CHECK_CLEANFILES+=*.h5
DISTCLEANFILES=testh5watch.sh
include $(top_srcdir)/config/conclude.am

1458
hl/tools/h5watch/Makefile.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,489 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "H5HLprivate2.h"
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
/*
* Extending datasets in WATCH.h5 generated by h5watchgentest.c
*/
#define DSET_ONE "DSET_ONE"
#define DSET_TWO "DSET_TWO"
#define DSET_CMPD "DSET_CMPD"
#define DSET_CMPD_ESC "DSET_CMPD_ESC"
#define DSET_CMPD_TWO "DSET_CMPD_TWO"
#define DSET_ALLOC_LATE "DSET_ALLOC_LATE"
#define DSET_ALLOC_EARLY "DSET_ALLOC_EARLY"
/* The message sent by this process (extend_dset) to the test script to start "h5watch" */
#define WRITER_MESSAGE "writer_message"
/* The message received from the test script to start extending dataset */
#define READER_MESSAGE "reader_message"
/* Message timeout in seconds */
#define MESSAGE_TIMEOUT 300
/* Size of data buffer */
#define TEST_BUF_SIZE 100
/*
* Test variations (incremental) for one-dimensional dataset:
* Varies from 10->13->12->12->1->3
*/
#define ONE_NTESTS 5
int one_tests[ONE_NTESTS] = {3, -1, 0, -11, 2};
/*
* Test variations (incremental) for two-dimensional dataset:
* Varies from {4,10}->{6,12}->{8,1}->{10,1}->
* {3,3}->{2,2}->{1,2}->
* {1,4}->{1,3}->{1,3}
*/
#define TWO_NTESTS 9
int two_tests[TWO_NTESTS][2] = { {2, 2}, {2, -11}, {2, 0},
{-7, 2}, {-1, -1}, {-1, 0},
{0, 2}, {0, -1}, {0, 0}
};
static int extend_dset_two(const char *file, char *dname);
static int extend_dset_one(const char *file, char *dname);
void send_message(const char *file);
static int wait_message(const char *file);
/* Data structures for datasets with compound data type */
typedef struct sub22_t {
unsigned int a;
unsigned int b;
unsigned int c;
} sub22_t;
typedef struct sub2_t {
unsigned int a;
sub22_t b;
unsigned int c;
} sub2_t;
typedef struct sub4_t {
unsigned int a;
unsigned int b;
} sub4_t;
typedef struct set_t {
unsigned int field1;
sub2_t field2;
double field3;
sub4_t field4;
} set_t;
/*
* To send a message by creating the file.
*/
void
send_message(const char *file)
{
FILE *id;
id = fopen(file, "w+");
fclose(id);
} /* send_message() */
/*
*
* Repeatedly check for the message file.
* It will stop when the file exists or exceeds the timeout limit.
*/
static int
wait_message(const char *file)
{
FILE *id; /* File pointer */
time_t t0, t1; /* Time info */
/* Start timer */
time(&t0);
/* Wait for message from test script to start work */
while((id = fopen(file, "r")) == NULL) {
/* Get current time */
time(&t1);
/*
* Determine time difference--
* if waiting too long for the message, then it is
* unlikely the message will get sent, then fail rather
* than loop forever.
*/
if(difftime(t1, t0) > MESSAGE_TIMEOUT)
goto done;
}
fclose(id);
unlink(file);
return(SUCCEED);
done:
return(FAIL);
} /* wait_message() */
/*
***********************************************************************
*
* Extending a two-dimensional dataset:
* dims[0] dims[1]
* ------- -------
* case #1: increase increase
* case #2: increase decrease
* case #3: increase same
* case #4: decrease increase
* case #5: decrease decrease (no action)
* case #6: decrease same (no action)
* case #7: same increase
* case #8: same decrease (no action)
* case #9: same same (no action)
*
* two_tests[TWO_NTESTS][2] = { {2,2}, {2,-11}, {2,0},
* {-7,2}, {-1,-1}, {-1,0},
* {0,2}, {0,-1}, {0,0} }
* varies from {4,10}->{6,12}->{8,1}->{10,1}->
* {3,3}->{2,2}->{1,2}->
* {1,4}->{1,3}->{1,3}
***********************************************************************
*/
static int
extend_dset_two(const char *file, char *dname)
{
hid_t fid = -1; /* file id */
hid_t fapl = -1; /* file access property list id */
hid_t did = -1; /* dataset id */
hid_t sid = -1; /* dataspace id */
hid_t dtid = -1; /* dataset's datatype id */
int ndims; /* # of dimension sizes */
unsigned i, j; /* local index variable */
hsize_t ext_dims[2]; /* new dimension sizes after extension */
hsize_t cur_dims[2]; /* current dimension sizes */
size_t dtype_size; /* size of the dataset's datatype */
unsigned num_elmts; /* number of elements in the dataset */
int ibuf[TEST_BUF_SIZE]; /* buffer for storing retrieved elements (integer) */
set_t cbuf[TEST_BUF_SIZE]; /* buffer for storing retrieved elemnets (compound) */
/* Create a copy of file access property list */
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
return -1;
/* Set to use the latest library format */
if(H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
return -1;
/* Open the file and dataset with SWMR write */
if((fid = H5Fopen(file, H5F_ACC_RDWR|H5F_ACC_SWMR_WRITE, fapl)) < 0)
goto done;
if((did = H5Dopen2(fid, dname, H5P_DEFAULT)) < 0)
goto done;
/* Send message to the test script to start "h5watch" */
send_message(WRITER_MESSAGE);
if((sid = H5Dget_space(did)) < 0)
goto done;
if((ndims = H5Sget_simple_extent_ndims(sid)) < 0)
goto done;
/* Get the size of the dataset's datatype */
if((dtype_size = H5LDget_dset_type_size(did, NULL)) == 0)
goto done;
/* Get the dataset's data type */
if((dtid = H5Tget_native_type(H5Dget_type(did), H5T_DIR_DEFAULT)) < 0)
goto done;
/* Wait for message from the test script to start extending dataset */
if(wait_message(READER_MESSAGE) < 0)
goto done;
/* Loop through different variations of extending the dataset */
for(i = 0; i < TWO_NTESTS; i++) {
/* sleep to emulate about 2 seconds of application operation */
sleep(2);
/* Get current dimension sizes */
if(H5LDget_dset_dims(did, cur_dims) < 0)
goto done;
/* Set up the new extended dimension sizes */
ext_dims[0] = cur_dims[0] + (hsize_t)two_tests[i][0];
ext_dims[1] = cur_dims[1] + (hsize_t)two_tests[i][1];
/* Extend the dataset */
if(H5Dset_extent(did, ext_dims) < 0)
goto done;
num_elmts = 1;
for(j = 0; j < (unsigned)ndims; j++)
num_elmts *= (unsigned)ext_dims[j];
/* Compound type */
if(!HDstrcmp(dname, DSET_CMPD_TWO)) {
HDmemset(cbuf, 0, sizeof(cbuf));
for(j = 0; j < num_elmts; j++) {
cbuf[j].field1 = i + 1;
cbuf[j].field2.a = i + 1;
cbuf[j].field2.c = i + 1;
cbuf[j].field2.b.a = i + 1;
cbuf[j].field2.b.b = i + 1;
cbuf[j].field2.b.c = i + 1;
cbuf[j].field3 = i + 1;
cbuf[j].field4.a = i + 1;
cbuf[j].field4.b = i + 1;
}
/* Write to the dataset */
if(H5Dwrite(did, dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, cbuf) < 0)
goto done;
} else { /* Integer type */
HDmemset(ibuf, 0, sizeof(ibuf));
for(j = 0; j < num_elmts; j++)
ibuf[j] = (int)(i + 1);
/* Write to the dataset */
if(H5Dwrite(did, dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, ibuf) < 0)
goto done;
}
if(H5Dflush(did) < 0)
goto done;
} /* end for TWO_NTESTS */
/* Closing */
if(H5Tclose(dtid) < 0) goto done;
if(H5Dclose(did) < 0) goto done;
if(H5Pclose(fapl) < 0) goto done;
if(H5Fclose(fid) < 0) goto done;
return(SUCCEED);
done:
H5E_BEGIN_TRY
H5Tclose(dtid);
H5Dclose(did);
H5Pclose(fapl);
H5Fclose(fid);
H5E_END_TRY
return(FAIL);
} /* extend_dset_two() */
/*
***********************************************************************
*
* Extending a one-dimensional dataset
* Test cases:
* #1: increase
* #2: decrease
* #3: same
* #4: decrease
* #5: increase
*
* one_tests[ONE_NTESTS] = {3, -1, 0, -11, 2}
* varies from 10->13->12->12->1->3
*
***********************************************************************
*/
static int
extend_dset_one(const char *file, char *dname)
{
hid_t fid = -1; /* file id */
hid_t fapl = -1; /* file access property list id */
hid_t did = -1; /* dataset id */
hid_t dtid = -1; /* dataset's datatype id */
hid_t sid = -1; /* dataspace id */
hid_t mid = -1; /* memory space id */
unsigned i, j; /* local index variable */
int ibuf[TEST_BUF_SIZE]; /* buffer for storing retrieved elements (integer) */
set_t cbuf[TEST_BUF_SIZE]; /* buffer for storing retrieved elemnets (compound) */
hsize_t cur_dims[1]; /* current dimension sizes */
hsize_t ext_dims[1]; /* new dimension sizes after extension */
hsize_t offset[1]; /* starting offsets of appended data */
hsize_t count[1]; /* dimension sizes of appended data */
size_t dtype_size; /* size of the dataset's datatype */
/* Create a copy of file access property list */
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
return -1;
/* Set to use the latest library format */
if(H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
return -1;
/* Open the file and dataset with SWMR write */
if((fid = H5Fopen(file, H5F_ACC_RDWR|H5F_ACC_SWMR_WRITE, fapl)) < 0)
goto done;
/* Send message to the test script to start "h5watch" */
send_message(WRITER_MESSAGE);
if((did = H5Dopen2(fid, dname, H5P_DEFAULT)) < 0)
goto done;
/* Get size of the dataset's datatype */
if((dtype_size = H5LDget_dset_type_size(did, NULL)) == 0)
goto done;
/* Get dataset's datatype */
if((dtid = H5Tget_native_type(H5Dget_type(did), H5T_DIR_DEFAULT)) < 0)
goto done;
/* Wait for message from the test script to start extending dataset */
wait_message(READER_MESSAGE);
/* Loop through different variations of extending the dataset */
for(i = 0; i < ONE_NTESTS; i++) {
/* sleep to emulate about 2 seconds of application operation */
sleep(2);
/* Get current dimension sizes */
if(H5LDget_dset_dims(did, cur_dims) < 0)
goto done;
/* Set up the new extended dimension sizes */
ext_dims[0] = cur_dims[0] + (hsize_t)one_tests[i];
/* Extend the dataset */
if(H5Dset_extent(did, ext_dims) < 0)
goto done;
/* Write to the new appended region of the dataset */
if(one_tests[i] > 0) {
/* Select the extended region */
offset[0] = cur_dims[0];
count[0] = (hsize_t)one_tests[i];
if((sid = H5Dget_space(did)) < 0)
goto done;
if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
goto done;
/* Set up memory space and get dataset's datatype */
if((mid = H5Screate_simple(1, count, NULL)) < 0)
goto done;
/* Initialize data for the extended region of the dataset */
/* Compound type */
if(!HDstrcmp(dname, DSET_CMPD) || !HDstrcmp(dname, DSET_CMPD_ESC)) {
HDmemset(cbuf, 0, sizeof(cbuf));
for(j = 0; j < (unsigned)one_tests[i]; j++) {
cbuf[j].field1 = j + 1;
cbuf[j].field2.a = j + 2;
cbuf[j].field2.b.a = j + 2;
cbuf[j].field2.b.b = j + 2;
cbuf[j].field2.b.c = j + 2;
cbuf[j].field2.c = j + 2;
cbuf[j].field3 = j + 3;
cbuf[j].field4.a = j + 4;
cbuf[j].field4.b = j + 4;
} /* end for */
/* Write to the extended region of the dataset */
if(H5Dwrite(did, dtid, mid, sid, H5P_DEFAULT, cbuf) < 0)
goto done;
} else { /* Integer type */
for(j = 0; j < (unsigned)one_tests[i]; j++)
ibuf[j] = (int)j;
/* Write to the extended region of the dataset */
if(H5Dwrite(did, dtid, mid, sid, H5P_DEFAULT, ibuf) < 0)
goto done;
}
/* Closing */
if(H5Sclose(sid) < 0) goto done;
if(H5Sclose(mid) < 0) goto done;
} /* end if */
if(H5Dflush(did) < 0)
goto done;
} /* end for ONE_NTESTS */
/* Closing */
if(H5Tclose(dtid) < 0) goto done;
if(H5Dclose(did) < 0) goto done;
if(H5Pclose(fapl) < 0) goto done;
if(H5Fclose(fid) < 0) goto done;
return(SUCCEED);
done:
H5E_BEGIN_TRY
H5Sclose(sid);
H5Sclose(mid);
H5Tclose(dtid);
H5Dclose(did);
H5Pclose(fapl);
H5Fclose(fid);
H5E_END_TRY
return(FAIL);
} /* extend_dset_one() */
/* Usage: extend_dset xx.h5 dname */
int
main(int argc, const char *argv[])
{
char *dname = NULL;
char *fname = NULL;
if(argc != 3) {
fprintf(stderr, "Should have file name and dataset name to be extended...\n");
goto done;
}
/* Get the dataset name to be extended */
fname = strdup(argv[1]);
dname = strdup(argv[2]);
if(!HDstrcmp(dname, DSET_CMPD) || !HDstrcmp(dname, DSET_CMPD_ESC)) {
if(extend_dset_one(fname, dname) < 0)
goto done;
} else if(!HDstrcmp(dname, DSET_ONE) ||
!HDstrcmp(dname, DSET_ALLOC_LATE) ||
!HDstrcmp(dname, DSET_ALLOC_EARLY)) {
if(extend_dset_one(fname, dname) < 0)
goto done;
} else if(!HDstrcmp(dname, DSET_TWO) || !HDstrcmp(dname, DSET_CMPD_TWO)) {
if(extend_dset_two(fname, dname) < 0)
goto done;
} else {
fprintf(stdout, "Dataset cannot be extended...\n");
goto done;
}
exit(EXIT_SUCCESS);
done:
if(dname) HDfree(dname);
if(fname) HDfree(fname);
exit(EXIT_FAILURE);
} /* main() */

977
hl/tools/h5watch/h5watch.c Normal file
View File

@@ -0,0 +1,977 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <unistd.h>
#include <float.h>
#include "h5tools.h"
#include "h5tools_dump.h"
#include "H5LDprivate.h"
/*
* Note: This tool used private routine
*/
#define PROGRAMNAME "h5watch" /* Name of tool */
#define FIELD_SEP "," /* nested field separator */
#define DEFAULT_RETRY 50 /* number of times to try opening the file */
/*
* Note:(see comments in hl/src/H5LDprivate.h)
* This tool uses private routines H5LD_construct_vector()and H5LD_clean_vector()
* This tool uses H5LD_memb_t data structure declared in H5LDprivate.h
*/
const char *progname = "h5watch"; /* tool name */
static char *g_list_of_fields = NULL; /* command line input for "list_of_fields" */
static char *g_dup_fields = NULL; /* copy of "list_of_fields" */
static H5LD_memb_t **g_listv = NULL; /* vector info for "list_of_fields" */
static hbool_t g_monitor_size_only = FALSE; /* monitor changes in dataset dimension sizes */
static unsigned g_polling_interval = 1; /* polling interval to check appended data */
static hbool_t g_label = FALSE; /* label compound values */
static int g_display_width = 80; /* output width in characters */
static hbool_t g_simple_output = FALSE; /* make output more machine-readable */
static unsigned g_retry = DEFAULT_RETRY; /* # of times to try opening the file if somehow file is unstable */
static hbool_t g_display_hex = FALSE; /* display data in hexadecimal format : LATER */
static herr_t doprint(hid_t did, hsize_t *start, hsize_t *block, int rank);
static herr_t slicendump(hid_t did, hsize_t *prev_dims, hsize_t *cur_dims,
hsize_t *start, hsize_t *block, int rank, int subrank);
static herr_t monitor_dataset(hid_t fid, char *dsetname);
static herr_t process_cmpd_fields(hid_t fid, char *dsetname);
static herr_t check_dataset(hid_t fid, char *dsetname);
static void leave(int ret);
static void usage(const char *prog);
static void parse_command_line(int argc, const char *argv[]);
/*
* Command-line options: The user can only specify long-named parameters.
* The long-named ones can be partially spelled. When
* adding more, make sure that they don't clash with each other.
*/
static const char *s_opts ="?";
static struct long_options l_opts[] = {
{ "help", no_arg, 'h' },
{ "hel", no_arg, 'h' },
{ "dim", no_arg, 'd' },
{ "di", no_arg, 'd' },
{ "label", no_arg, 'l' },
{ "labe", no_arg, 'l' },
{ "lab", no_arg, 'l' },
{ "la", no_arg, 'l' },
{ "simple", no_arg, 'S' },
{ "simpl", no_arg, 'S' },
{ "simp", no_arg, 'S' },
{ "sim", no_arg, 'S' },
{ "si", no_arg, 'S' },
{ "hexdump", no_arg, 'x' },
{ "hexdum", no_arg, 'x' },
{ "hexdu", no_arg, 'x' },
{ "hexd", no_arg, 'x' },
{ "hex", no_arg, 'x' },
{ "width", require_arg, 'w' },
{ "widt", require_arg, 'w' },
{ "wid", require_arg, 'w' },
{ "wi", require_arg, 'w' },
{ "polling", require_arg, 'p' },
{ "pollin", require_arg, 'p' },
{ "polli", require_arg, 'p' },
{ "poll", require_arg, 'p' },
{ "pol", require_arg, 'p' },
{ "po", require_arg, 'p' },
{ "fields", require_arg, 'f' },
{ "field", require_arg, 'f' },
{ "fiel", require_arg, 'f' },
{ "fie", require_arg, 'f' },
{ "fi", require_arg, 'f' },
{ "version", no_arg, 'V' },
{ "versio", no_arg, 'V' },
{ "versi", no_arg, 'V' },
{ "vers", no_arg, 'V' },
{ "ver", no_arg, 'V' },
{ "ve", no_arg, 'V' },
{ NULL, 0, '\0' }
};
/*-------------------------------------------------------------------------
* Function: doprint()
*
* Purpose: Prepare to print the dataset's appended data.
* Call the tools library routine h5tools_dump_dset() to do the printing.
* (This routine is mostly copied from dump_dataset_values() in tools/h5ls/h5ls.c
* and modified accordingly).
*
* Return: 0 on success; negative on failure
*
* Programmer: Vailin Choi; August 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
doprint(hid_t did, hsize_t *start, hsize_t *block, int rank)
{
h5tools_context_t ctx; /* print context */
h5tool_format_t info; /* Format info for the tools library */
static char fmt_double[16], fmt_float[16]; /* Format info */
struct subset_t subset; /* Subsetting info */
hsize_t ss_start[H5S_MAX_RANK]; /* Info for hyperslab */
hsize_t ss_stride[H5S_MAX_RANK]; /* Info for hyperslab */
hsize_t ss_block[H5S_MAX_RANK]; /* Info for hyperslab */
hsize_t ss_count[H5S_MAX_RANK]; /* Info for hyperslab */
int i; /* Local index variable */
herr_t ret_value = SUCCEED; /* Return value */
/* Subsetting information for the tools library printing routines */
subset.start.data = ss_start;
subset.stride.data = ss_stride;
subset.block.data = ss_block;
subset.count.data = ss_count;
/* Initialize subsetting information */
for(i = 0; i < rank; i++) {
subset.stride.data[i] = 1;
subset.count.data[i] = 1;
subset.start.data[i] = start[i];
subset.block.data[i] = block[i];
}
HDmemset(&ctx, 0, sizeof(ctx));
/* Set to all default values and then override */
HDmemset(&info, 0, sizeof info);
if(g_simple_output) {
info.idx_fmt = "";
info.line_ncols = 65535; /*something big*/
info.line_per_line = 1;
info.line_multi_new = 0;
info.line_pre = " ";
info.line_cont = " ";
info.arr_pre = "";
info.arr_suf = "";
info.arr_sep = " ";
info.cmpd_pre = "";
info.cmpd_suf = "";
info.cmpd_sep = " ";
/* The "fields" selected by the user */
info.cmpd_listv = (const struct H5LD_memb_t **)g_listv;
if(g_label) info.cmpd_name = "%s=";
info.elmt_suf1 = " ";
info.str_locale = ESCAPE_HTML;
} else {
info.idx_fmt = "(%s)";
if(!g_display_width) {
info.line_ncols = 65535;
info.line_per_line = 1;
}
else
info.line_ncols = (unsigned)g_display_width;
info.line_multi_new = 1;
/* The "fields" selected by the user */
info.cmpd_listv = (const struct H5LD_memb_t **)g_listv;
if(g_label) info.cmpd_name = "%s=";
info.line_pre = " %s ";
info.line_cont = " %s ";
info.str_repeat = 8;
}
/* Floating point types should display full precision */
sprintf(fmt_float, "%%1.%dg", FLT_DIG);
info.fmt_float = fmt_float;
sprintf(fmt_double, "%%1.%dg", DBL_DIG);
info.fmt_double = fmt_double;
info.dset_format = "DSET-%s ";
info.dset_hidefileno = 0;
info.obj_format = "-%lu:"H5_PRINTF_HADDR_FMT;
info.obj_hidefileno = 0;
info.dset_blockformat_pre = "%sBlk%lu: ";
info.dset_ptformat_pre = "%sPt%lu: ";
info.line_indent = "";
if(g_display_hex) {
/* Print all data in hexadecimal format if the `-x' or `--hexdump'
* command line switch was given. */
info.raw = TRUE;
}
/* Print the values. */
if((ret_value = h5tools_dump_dset(stdout, &info, &ctx, did, &subset)) < 0)
error_msg("unable to print data\n");
HDfprintf(stdout, "\n");
return(ret_value);
} /* doprint() */
/*-------------------------------------------------------------------------
* Function: slicendump
*
* Purpose: To dump the slice for each dimension
* For example: prev_dims[2] = {5, 4}; cur_dims[2] = {7, 8}
* This routine will dump data as follows:
* {0, 3} to {0, 7} (1x4 elements)
* {1, 3} to {0, 7} (1x4 elements)
* {2, 3} to {0, 7} (1x4 elements)
* {3, 3} to {0, 7} (1x4 elements)
* {4, 3} to {0, 7} (1x4 elements)
* {5, 0} to {6, 7} (2x8 elements)
*
* Return: Non-negative on success
* Negative on failure
*
* Programmer: Vailin Choi; August 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
slicendump(hid_t did, hsize_t *prev_dims, hsize_t *cur_dims, hsize_t *start, hsize_t *block, int rank, int subrank)
{
int i; /* Local index variable */
int ind; /* Index for the current rank */
herr_t ret_value = SUCCEED; /* Return value */
ind = rank - subrank;
if((subrank - 1) > 0) {
/* continue onto the next dimension */
for (i = 0; i < (hssize_t)MIN(prev_dims[ind], cur_dims[ind]); i++){
start[ind] = (hsize_t)i;
if((ret_value = slicendump(did, prev_dims, cur_dims, start, block, rank, subrank-1)) < 0)
goto done;
}
}
/* this dimension remains the same or shrinking */
if(cur_dims[ind] <= prev_dims[ind])
goto done;
/* select first the slice for the faster changing dimension */
/* select later the whole slice for the slower changing dimension */
start[ind] = prev_dims[ind];
block[ind] = cur_dims[ind] - prev_dims[ind];
for(i = ind + 1; i < rank; i++){
start[i] = 0;
block[i] = cur_dims[i];
}
/* Print the appended data */
ret_value = doprint(did, start, block, rank);
done:
return(ret_value);
} /* slicendump() */
/*-------------------------------------------------------------------------
* Function: monitor_dataset
*
* Purpose: To poll a dataset periodically for changes in dimension sizes.
* For dataset with unchanged and/or decreased dimension sizes:
* it just prints the dimension size changes
* For dataset with increase in at least one of its dimension sizes:
* it will print the new appended data to the dataset
*
* Return: Non-negative on success: dataset can be monitored
* Negative on failure: dataset cannot be monitored
*
* Programmer: Vailin Choi; August 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
monitor_dataset(hid_t fid, char *dsetname)
{
hid_t did; /* dataset id */
hid_t sid; /* dataspace id */
int ndims; /* # of dimensions in the dataspace */
int i, u; /* local index variable */
hsize_t prev_dims[H5S_MAX_RANK]; /* current dataspace dimensions */
hsize_t cur_dims[H5S_MAX_RANK]; /* previous dataspace dimensions */
herr_t ret_value = SUCCEED; /* return value */
HDfprintf(stdout, "Monitoring dataset %s...\n", dsetname);
/* Open the dataset for minitoring */
if((did = H5Dopen2(fid, dsetname, H5P_DEFAULT)) < 0) {
error_msg("error in opening dataset \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
if((sid = H5Dget_space(did)) < 0) {
error_msg("error in getting dataspace id for dataset \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Get the dataset's dimension sizes */
if((ndims = H5Sget_simple_extent_dims(sid, prev_dims, NULL)) < 0) {
error_msg("unable to get dimensions sizes for \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
while(1) {
/* Refreshes the dataset */
if(H5Drefresh(did) < 0) {
ret_value = FAIL;
goto done;
}
/* Get the dataset's current dimension sizes */
if(H5LDget_dset_dims(did, cur_dims) < 0) {
error_msg("unable to get dimension sizes for \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Check the dimension sizes */
for(i = 0; i < ndims; i++)
if(cur_dims[i] != prev_dims[i])
break;
/* at least one dimension has changed */
if(i != ndims) {
/* Printing changes in dimension sizes */
for(u = 0; u < ndims; u++) {
HDfprintf(stdout, "dimension %u: %Hu->%Hu", (unsigned)u, prev_dims[u], cur_dims[u]);
if(cur_dims[u] > prev_dims[u])
HDfprintf(stdout, " (increases)\n");
else if(cur_dims[u] < prev_dims[u])
HDfprintf(stdout, " (decreases)\n");
else
HDfprintf(stdout, " (unchanged)\n");
}
/* Printing elements appended to the dataset if there is */
if(!g_monitor_size_only) {
/* See if at least one dimension size has increased */
for(u = 0; u < ndims; u++) {
int j;
hsize_t start[H5S_MAX_RANK];
hsize_t block[H5S_MAX_RANK];
/* Print the new appended data to the dataset */
if(cur_dims[u] > prev_dims[u]) {
HDfprintf(stdout, " Data:\n");
for(j = 0; j < ndims; j++) {
start[j] = 0;
block[j] = 1;
}
if((ret_value = slicendump(did, prev_dims, cur_dims, start, block, ndims, ndims)) < 0)
goto done;
break;
}
} /* end for */
}
HDfflush(stdout);
}
/* Save the current dimension sizes */
HDmemcpy(prev_dims, cur_dims, (size_t)ndims * sizeof(hsize_t));
/* Sleep before next monitor */
HDsleep(g_polling_interval);
} /* end while */
done:
/* Closing */
H5E_BEGIN_TRY
H5Dclose(did);
H5E_END_TRY
return(ret_value);
} /* monitor_dataset() */
/*-------------------------------------------------------------------------
* Function: process_cmpd_fields
*
* Purpose: To check whether the fields selected in "g_list_of_fields"
* are valid fields associated with the dataset.
*
* Return: 0 on success; negative on failure
*
* Programmer: Vailin Choi; August 2010
*
*-------------------------------------------------------------------------
*/
static herr_t
process_cmpd_fields(hid_t fid, char *dsetname)
{
hid_t did=-1; /* dataset id */
hid_t dtid=-1, tid=-1; /* dataset's data type id */
size_t len; /* number of comma-separated fields in "g_list_of_fields" */
herr_t ret_value = SUCCEED; /* Return value */
HDassert(g_list_of_fields && *g_list_of_fields);
/* Open the dataset */
if((did = H5Dopen2(fid, dsetname, H5P_DEFAULT)) < 0) {
error_msg("error in opening dataset \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Get the dataset's datatype */
if(((dtid = H5Dget_type(did)) < 0) || (tid = H5Tget_native_type(dtid, H5T_DIR_DEFAULT)) < 0) {
error_msg("error in getting dataset's datatype\n");
ret_value = FAIL;
goto done;
}
/* Check to make sure that the dataset's datatype is compound type */
if(H5Tget_class(dtid) != H5T_COMPOUND) {
error_msg("dataset should be compound type for <list_of_fields>\n");
ret_value = FAIL;
goto done;
}
/* Make a copy of "g_list_of_fields" */
if((g_dup_fields = HDstrdup(g_list_of_fields)) == NULL) {
error_msg("error in duplicating g_list_of_fields\n");
ret_value = FAIL;
goto done;
}
/* Estimate the number of comma-separated fields in "g_list of_fields" */
len = HDstrlen(g_list_of_fields)/2 + 2;
/* Allocate memory for a list vector of H5LD_memb_t structures to store "g_list_of_fields" info */
if((g_listv = (H5LD_memb_t **)HDcalloc(len, sizeof(H5LD_memb_t *))) == NULL) {
error_msg("error in allocating memory for H5LD_memb_t\n");
ret_value = FAIL;
goto done;
}
/* Process and store info for "g_listv" */
if(H5LD_construct_vector(g_dup_fields, g_listv, tid) < 0) {
error_msg("error in processing <list_of_fields>\n");
ret_value = FAIL;
goto done;
}
/* Will free memory for g_listv and g_dup_fields when exiting from h5watch */
done:
/* Closing */
H5E_BEGIN_TRY
H5Tclose(dtid);
H5Tclose(tid);
H5Dclose(did);
H5E_END_TRY
return(ret_value);
} /* process_cmpd_fields() */
/*-------------------------------------------------------------------------
* Function: check_dataset
*
* Purpose: To check whether a dataset can be monitored:
A chunked dataset with unlimited or max. dimension setting
*
* Return: Non-negative on success: dataset can be monitored
* Negative on failure: dataset cannot be monitored
*
* Programmer: Vailin Choi; August 2010
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static herr_t
check_dataset(hid_t fid, char *dsetname)
{
hid_t did=-1; /* Dataset id */
hid_t dcp=-1; /* Dataset creation property */
hid_t sid=-1; /* Dataset's dataspace id */
int ndims; /* # of dimensions in the dataspace */
unsigned u; /* Local index variable */
hsize_t cur_dims[H5S_MAX_RANK]; /* size of dataspace dimensions */
hsize_t max_dims[H5S_MAX_RANK]; /* maximum size of dataspace dimensions */
hbool_t unlim_max_dims = FALSE; /* whether dataset has unlimited or max. dimension setting */
void *edata;
H5E_auto2_t func;
H5D_layout_t layout;
herr_t ret_value = SUCCEED; /* Return value */
/* Disable error reporting */
H5Eget_auto2(H5E_DEFAULT, &func, &edata);
H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
/* Open the dataset */
if((did = H5Dopen2(fid, dsetname, H5P_DEFAULT)) < 0) {
error_msg("unable to open dataset \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Get dataset's creation property list */
if((dcp = H5Dget_create_plist(did)) < 0) {
error_msg("unable to get dataset's creation property list \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Query dataset's layout; the layout should be chunked or virtual */
if((layout = H5Pget_layout(dcp)) < 0) {
error_msg("unable to get dataset layout \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
if(layout != H5D_CHUNKED && layout != H5D_VIRTUAL) {
error_msg("\"%s\" should be a chunked or virtual dataset\n", dsetname);
ret_value = FAIL;
goto done;
}
HDmemset(cur_dims, 0, sizeof cur_dims);
HDmemset(max_dims, 0, sizeof max_dims);
/* Get dataset's dataspace */
if((sid = H5Dget_space(did)) < 0) {
error_msg("can't get dataset's dataspace\"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Get dimension size of dataset's dataspace */
if((ndims = H5Sget_simple_extent_dims(sid, cur_dims, max_dims)) < 0) {
error_msg("can't get dataspace dimensions for dataset \"%s\"\n", dsetname);
ret_value = FAIL;
goto done;
}
/* Check whether dataset has unlimited dimension or max. dimension setting */
for(u = 0; u < (unsigned)ndims; u++)
if(max_dims[u] == H5S_UNLIMITED || cur_dims[u] != max_dims[u]) {
unlim_max_dims = TRUE;
break;
}
if(!unlim_max_dims) {
error_msg("\"%s\" should have unlimited or max. dimension setting\n", dsetname);
ret_value = FAIL;
}
done:
H5Eset_auto2(H5E_DEFAULT, func, edata);
/* Closing */
H5E_BEGIN_TRY
H5Sclose(sid);
H5Pclose(dcp);
H5Dclose(did);
H5E_END_TRY
return(ret_value);
} /* check_dataset() */
/*-------------------------------------------------------------------------
* Function: leave
*
* Purpose: Close the H5 Tools library and exit
*
* Return: Does not return
*
* Programmer: Vailin Choi; August 2010
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static void
leave(int ret)
{
h5tools_close();
exit(ret);
}
/*-------------------------------------------------------------------------
* Function: usage
*
* Purpose: Print the usage message about h5watch (only long options)
*
* Return: void
*
* Programmer: Vailin Choi; August 2010
*
* Modifications:
*-------------------------------------------------------------------------
*/
static void
usage(const char *prog)
{
HDfflush(stdout);
HDfprintf(stdout, "Usage: %s [OPTIONS] [OBJECT]\n", prog);
HDfprintf(stdout, "\n");
HDfprintf(stdout, " OPTIONS\n");
HDfprintf(stdout, " --help Print a usage message and exit.\n");
HDfprintf(stdout, " --version Print version number and exit.\n");
HDfprintf(stdout, " --label Label members of compound typed dataset.\n");
HDfprintf(stdout, " --simple Use a machine-readable output format.\n");
HDfprintf(stdout, " --dim Monitor changes in size of dataset dimensions only.\n");
HDfprintf(stdout, " --width=N Set the number of columns to N for output.\n");
HDfprintf(stdout, " A value of 0 sets the number of columns to the\n");
HDfprintf(stdout, " maximum (65535). The default width is 80 columns.\n");
HDfprintf(stdout, " --polling=N Set the polling interval to N (in seconds) when the\n");
HDfprintf(stdout, " dataset will be checked for appended data. The default\n");
HDfprintf(stdout, " polling interval is 1.\n");
HDfprintf(stdout, " --fields=<list_of_fields>\n");
HDfprintf(stdout, " Display data for the fields specified in <list_of_fields>\n");
HDfprintf(stdout, " for a compound data type. <list_of_fields> can be\n");
HDfprintf(stdout, " specified as follows:\n");
HDfprintf(stdout, " 1) A comma-separated list of field names in a\n");
HDfprintf(stdout, " compound data type. \",\" is the separator\n");
HDfprintf(stdout, " for field names while \".\" is the separator\n");
HDfprintf(stdout, " for a nested field.\n");
HDfprintf(stdout, " 2) A single field name in a compound data type.\n");
HDfprintf(stdout, " Can use this option multiple times.\n");
HDfprintf(stdout, " Note that backslash is the escape character to avoid\n");
HDfprintf(stdout, " characters in field names that conflict with the tool's\n");
HDfprintf(stdout, " separators.\n");
HDfprintf(stdout, "\n");
HDfprintf(stdout, " OBJECT is specified as [<filename>/<path_to_dataset>/<dsetname>]\n");
HDfprintf(stdout, " <filename> Name of the HDF5 file. It may be preceded by path\n");
HDfprintf(stdout, " separated by slashes to the specified HDF5 file.\n");
HDfprintf(stdout, " <path_to_dataset> Path separated by slashes to the specified dataset\n");
HDfprintf(stdout, " <dsetname> Name of the dataset\n");
HDfprintf(stdout, "\n");
HDfprintf(stdout, " User can end the h5watch process by ctrl-C (SIGINT) or kill the process (SIGTERM).\n");
} /* usage() */
/*-------------------------------------------------------------------------
* Function: parse_command_line
*
* Purpose: Parse the command line for h5watch (take only long options)
*
* Return: Success: Set the corresponding command flags and return void
* Failure: Exits program with EXIT_FAILURE value.
*
* Programmer: Vailin Choi; August 2010
*
* Modifications:
*
*-------------------------------------------------------------------------
*/
static void
parse_command_line(int argc, const char *argv[])
{
int opt; /* Command line option */
int tmp;
/* no arguments */
if (argc == 1) {
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
/* parse command line options */
while ((opt = get_option(argc, argv, s_opts, l_opts)) != EOF) {
switch ((char)opt) {
case '?':
case 'h': /* --help */
usage(h5tools_getprogname());
leave(EXIT_SUCCESS);
case 'V': /* --version */
print_version(progname);
leave(EXIT_SUCCESS);
break;
case 'w': /* --width=N */
g_display_width = (int)HDstrtol(opt_arg, NULL, 0);
if(g_display_width < 0) {
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
break;
case 'd': /* --dim */
g_monitor_size_only = TRUE;
break;
case 'S': /* --simple */
g_simple_output = TRUE;
break;
case 'l': /* --label */
g_label = TRUE;
break;
case 'p': /* --polling=N */
/* g_polling_interval = HDstrtod(opt_arg, NULL); */
if((tmp = (int)HDstrtol(opt_arg, NULL, 10)) <= 0) {
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
g_polling_interval = (unsigned)tmp;
break;
case 'f': /* --fields=<list_of_fields> */
if(g_list_of_fields == NULL) {
if((g_list_of_fields = HDstrdup(opt_arg)) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n",
__FILE__, __LINE__);
leave(EXIT_FAILURE);
}
} else {
char *str;
if((str = HDstrdup(opt_arg)) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n",
__FILE__, __LINE__);
leave(EXIT_FAILURE);
}
if((g_list_of_fields = (char *)HDrealloc(g_list_of_fields, HDstrlen(g_list_of_fields) + HDstrlen(str) + 2)) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n",
__FILE__, __LINE__);
leave(EXIT_FAILURE);
}
HDstrcat(g_list_of_fields, FIELD_SEP);
HDstrcat(g_list_of_fields, str);
}
break;
default:
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
}
/* check for object to be processed */
if (argc <= opt_ind) {
error_msg("missing dataset name\n");
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
} /* parse_command_line() */
/*-------------------------------------------------------------------------
* Function: catch_signal
*
* Purpose: The signal handler to catch the signals:
* SIGTERM and SIGINT and exit from h5watch
*
* Return: No return
*
* Programmer: Vailin Choi; November 2014
*
*-------------------------------------------------------------------------
*/
static void catch_signal(int H5_ATTR_UNUSED signo)
{
/* Exit from h5watch */
leave(EXIT_SUCCESS);
} /* catch_signal() */
/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: h5watch
*
* Return: Success: 0
* Failure: 1
*
* Programmer: Vailin Choi; August 2010
*
*-------------------------------------------------------------------------
*/
int
main(int argc, const char *argv[])
{
char drivername[50];
char *fname = NULL;
char *dname = NULL;
void *edata;
H5E_auto2_t func;
char *x;
hid_t fid = -1;
hid_t fapl = -1;
/* Set up tool name and exit status */
h5tools_setprogname(PROGRAMNAME);
h5tools_setstatus(EXIT_SUCCESS);
/* Disable error reporting */
H5Eget_auto2(H5E_DEFAULT, &func, &edata);
H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
/* Initialize h5tools lib */
h5tools_init();
/* To exit from h5watch for SIGTERM signal */
if(HDsignal(SIGTERM, catch_signal) == SIG_ERR) {
error_msg("An error occurred while setting a signal handler.\n");
leave(EXIT_FAILURE);
}
/* To exit from h5watch for SIGINT signal */
if(HDsignal(SIGINT, catch_signal) == SIG_ERR) {
error_msg("An error occurred while setting a signal handler.\n");
leave(EXIT_FAILURE);
}
/* parse command line options */
parse_command_line(argc, argv);
if(argc <= opt_ind) {
error_msg("missing dataset name\n");
usage(h5tools_getprogname());
leave(EXIT_FAILURE);
}
/* Mostly copied from tools/h5ls coding & modified accordingly */
/*
* [OBJECT] is specified as
* [<filename>/<path_to_dataset>/<dsetname>]
*
* Example: ../dir1/foo/bar/dset
* \_________/\______/
* file obj
*
* The dichotomy is determined by calling H5Fopen() repeatedly until it
* succeeds. The first call uses the entire name and each subsequent call
* chops off the last component. If we reach the beginning of the name
* then there must have been something wrong with the file (perhaps it
* doesn't exist).
*/
if((fname = HDstrdup(argv[opt_ind])) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n",
__FILE__, __LINE__);
h5tools_setstatus(EXIT_FAILURE);
}
/* Create a copy of file access property list */
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
return -1;
/* Set to use the latest library format */
if(H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
return -1;
do {
while(fname && *fname) {
fid = h5tools_fopen(fname, H5F_ACC_RDONLY|H5F_ACC_SWMR_READ, fapl, NULL, drivername, sizeof drivername);
if(fid >= 0) {
HDfprintf(stdout, "Opened \"%s\" with %s driver.\n", fname, drivername);
break; /*success*/
} /* end if */
/* Shorten the file name; lengthen the object name */
x = dname;
dname = HDstrrchr(fname, '/');
if(x)
*x = '/';
if(!dname)
break;
*dname = '\0';
} /* end while */
/* Try opening the file again if somehow unstable */
} while(g_retry-- > 0 && fid == FAIL);
if(fid < 0) {
error_msg("unable to open file \"%s\"\n", fname);
if(fname) HDfree(fname);
if(fapl >= 0) H5Pclose(fapl);
leave(EXIT_FAILURE);
}
if(!dname) {
error_msg("no dataset specified\n");
h5tools_setstatus(EXIT_FAILURE);
} else {
*dname = '/';
x = dname;
if((dname = HDstrdup(dname)) == NULL) {
error_msg("memory allocation failed (file %s:line %d)\n",
__FILE__, __LINE__);
h5tools_setstatus(EXIT_FAILURE);
} else {
*x = '\0';
/* Validate dataset */
if(check_dataset(fid, dname) < 0)
h5tools_setstatus(EXIT_FAILURE);
/* Validate input "fields" */
else if(g_list_of_fields && *g_list_of_fields)
if(process_cmpd_fields(fid, dname) < 0)
h5tools_setstatus(EXIT_FAILURE);
}
}
/* If everything is fine, start monitoring the datset */
if(h5tools_getstatus() != EXIT_FAILURE)
if(monitor_dataset(fid, dname) < 0)
h5tools_setstatus(EXIT_FAILURE);
/* Free spaces */
if(fname) HDfree(fname);
if(dname) HDfree(dname);
if(g_list_of_fields) HDfree(g_list_of_fields);
if(g_listv) {
H5LD_clean_vector(g_listv);
HDfree(g_listv);
}
if(g_dup_fields) HDfree(g_dup_fields);
/* Close the file access property list */
if(fapl >= 0 && H5Pclose(fapl) < 0) {
error_msg("unable to close file access property list\n");
h5tools_setstatus(EXIT_FAILURE);
}
/* Close the file */
if(H5Fclose(fid) < 0) {
error_msg("unable to close file\n");
h5tools_setstatus(EXIT_FAILURE);
}
H5Eset_auto2(H5E_DEFAULT, func, edata);
/* exit */
leave(h5tools_getstatus());
} /* main() */

View File

@@ -0,0 +1,355 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "hdf5.h"
#include "H5HLprivate2.h"
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <string.h>
/*
* WATCH.h5: file with various types of datasets for testing--
*
* The following datasets are chunked, H5D_ALLOC_TIME_INCR, max. dimensional setting:
* DSET_ONE: one-dimensional dataset
* DSET_TWO: two-dimensional dataset
* DSET_CMPD: one-dimensional dataset with compound type
* DSET_CMPD_ESC: one-dimensional dataset with compound type and member names with
* escape/separator characters
* DSET_CMPD_TWO: two-dimensional dataset with compound type
*
* The following datasets are one-dimensional, chunked, max. dimension setting:
* DSET_ALLOC_EARLY: dataset with H5D_ALLOC_TIME_EARLY
* DSET_ALLOC_LATE: dataset H5D_ALLOC_TIME_LATE
*
* The following datasets are one-dimensional:
* DSET_NONE: fixed dimension setting, contiguous, H5D_ALLOC_TIME_LATE
* DSET_NOMAX: fixed dimension setting, chunked, H5D_ALLOC_TIME_INCR
*/
#define ONE_DIMS0 10
#define MAX_ONE_DIMS0 100
#define DSET_ONE "DSET_ONE"
#define DSET_NONE "DSET_NONE"
#define DSET_NOMAX "DSET_NOMAX"
#define DSET_ALLOC_LATE "DSET_ALLOC_LATE"
#define DSET_ALLOC_EARLY "DSET_ALLOC_EARLY"
#define DSET_CMPD "DSET_CMPD"
#define DSET_CMPD_ESC "DSET_CMPD_ESC"
#define TWO_DIMS0 4
#define TWO_DIMS1 10
#define MAX_TWO_DIMS0 60
#define MAX_TWO_DIMS1 100
#define DSET_TWO "DSET_TWO"
#define DSET_CMPD_TWO "DSET_CMPD_TWO"
#define CHUNK_SIZE 2
#define FILE "WATCH.h5"
/* Data structures for datasets with compound types */
typedef struct sub22_t {
unsigned int a;
unsigned int b;
unsigned int c;
} sub22_t;
typedef struct sub2_t {
unsigned int a;
sub22_t b;
unsigned int c;
} sub2_t;
typedef struct sub4_t {
unsigned int a;
unsigned int b;
} sub4_t;
typedef struct set_t {
unsigned int field1;
sub2_t field2;
double field3;
sub4_t field4;
} set_t;
/*
**************************************************************************************
*
* Create a dataset with the given input parameters
* Write to the dataset with the given "data"
*
**************************************************************************************
*/
static int
generate_dset(hid_t fid, const char *dname, int ndims, hsize_t *dims, hsize_t *maxdims, hid_t dtid, void *data)
{
hid_t dcpl=-1; /* Dataset creation property */
hid_t did=-1; /* Dataset id */
hid_t sid=-1; /* Dataspace id */
int i; /* Local index variable */
hsize_t chunk_dims[H5S_MAX_RANK]; /* Dimension sizes for chunks */
/* Create the dataspace */
if((sid = H5Screate_simple(ndims, dims, maxdims)) < 0)
goto done;
/* Set up dataset's creation properties */
if(!HDstrcmp(dname, DSET_NONE))
dcpl = H5P_DEFAULT;
else {
if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0)
goto done;
for(i = 0; i < ndims; i++)
chunk_dims[i] = CHUNK_SIZE;
if(H5Pset_chunk(dcpl, ndims, chunk_dims) < 0)
goto done;
}
if(!HDstrcmp(dname, DSET_ALLOC_LATE)) {
if(H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_LATE) < 0)
goto done;
} else if(!HDstrcmp(dname, DSET_ALLOC_EARLY)) {
if(H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_EARLY) < 0)
goto done;
}
/* Create the dataset */
if((did = H5Dcreate2(fid, dname, dtid, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0)
goto done;
/* Write to the dataset */
if(H5Dwrite(did, dtid, H5S_ALL, H5S_ALL, H5P_DEFAULT, data) < 0)
goto done;
/* Closing */
if(H5Pclose(dcpl) < 0) goto done;
if(H5Sclose(sid) < 0) goto done;
if(H5Dclose(did) < 0) goto done;
return(SUCCEED);
done:
H5E_BEGIN_TRY
H5Sclose(sid);
H5Pclose(dcpl);
H5Dclose(did);
H5E_END_TRY
return(FAIL);
} /* generate_dset() */
int
main(void)
{
hid_t fid=-1; /* File id */
hid_t fapl=-1; /* File access property list id */
hsize_t cur_dims[1]; /* Dimension sizes */
hsize_t max_dims[1]; /* Maximum dimension sizes */
hsize_t cur2_dims[2]; /* Current dimension sizes */
hsize_t max2_dims[2]; /* Maximum dimension sizes */
hid_t set_tid=-1, esc_set_tid=-1; /* Compound type id */
hid_t sub22_tid=-1; /* Compound type id */
hid_t sub2_tid=-1, esc_sub2_tid=-1; /* Compound type id */
hid_t sub4_tid=-1, esc_sub4_tid=-1; /* Compound type id */
int one_data[ONE_DIMS0]; /* Buffer for data */
int two_data[TWO_DIMS0*TWO_DIMS1]; /* Buffer for data */
set_t one_cbuf[ONE_DIMS0]; /* Buffer for data with compound type */
set_t two_cbuf[TWO_DIMS0*TWO_DIMS1]; /* Buffer for data with compound type */
int i; /* Local index variable */
/* Create a copy of file access property list */
if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)
return -1;
/* Set to use the latest library format */
if(H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0)
return -1;
/* Create a file with the latest format */
if((fid = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
goto done;
/* Initialization for one-dimensional dataset */
cur_dims[0] = ONE_DIMS0;
max_dims[0] = MAX_ONE_DIMS0;
for(i = 0; i < ONE_DIMS0; i++)
one_data[i] = i;
/* Generate DSET_ONE, DSET_NONE, DSET_NOMAX, DSET_ALLOC_LATE, DSET_EARLY */
if(generate_dset(fid, DSET_ONE, 1, cur_dims, max_dims, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_NONE, 1, cur_dims, NULL, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_NOMAX, 1, cur_dims, NULL, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_ALLOC_LATE, 1, cur_dims, max_dims, H5T_NATIVE_INT, one_data) < 0)
goto done;
if(generate_dset(fid, DSET_ALLOC_EARLY, 1, cur_dims, max_dims, H5T_NATIVE_INT, one_data) < 0)
goto done;
/* Initialization for two-dimensional dataset */
cur2_dims[0] = TWO_DIMS0;
cur2_dims[1] = TWO_DIMS1;
max2_dims[0] = MAX_TWO_DIMS0;
max2_dims[1] = MAX_TWO_DIMS1;
for(i = 0; i < (TWO_DIMS0 * TWO_DIMS1); i++)
two_data[i] = i;
/* Generate DSET_TWO */
if(generate_dset(fid, DSET_TWO, 2, cur2_dims, max2_dims, H5T_NATIVE_INT, two_data) < 0)
goto done;
/* Initialization for one-dimensional compound typed dataset */
cur_dims[0] = ONE_DIMS0;
max_dims[0] = MAX_ONE_DIMS0;
for (i = 0; i < ONE_DIMS0; i++) {
one_cbuf[i].field1 = 1;
one_cbuf[i].field2.a = 2;
one_cbuf[i].field2.c = 4;
one_cbuf[i].field2.b.a = 20;
one_cbuf[i].field2.b.b = 40;
one_cbuf[i].field2.b.c = 80;
one_cbuf[i].field3 = 3.0F;
one_cbuf[i].field4.a = 4;
one_cbuf[i].field4.b = 8;
}
/* Create the compound type */
if((sub22_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub22_t))) < 0)
goto done;
if(H5Tinsert(sub22_tid, "a", HOFFSET(sub22_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub22_tid, "b", HOFFSET(sub22_t, b), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub22_tid, "c", HOFFSET(sub22_t, c), H5T_NATIVE_INT) < 0)
goto done;
if((sub2_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub2_t))) < 0)
goto done;
if(H5Tinsert(sub2_tid, "a", HOFFSET(sub2_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub2_tid, "b", HOFFSET(sub2_t, b), sub22_tid) < 0)
goto done;
if(H5Tinsert(sub2_tid, "c", HOFFSET(sub2_t, c), H5T_NATIVE_INT) < 0)
goto done;
if((sub4_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub4_t))) < 0)
goto done;
if(H5Tinsert(sub4_tid, "a", HOFFSET(sub4_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(sub4_tid, "b", HOFFSET(sub4_t, b), H5T_NATIVE_INT) < 0)
goto done;
if((set_tid = H5Tcreate(H5T_COMPOUND, sizeof(set_t))) < 0)
goto done;
if(H5Tinsert(set_tid, "field1", HOFFSET(set_t, field1), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(set_tid, "field2", HOFFSET(set_t, field2), sub2_tid) < 0)
goto done;
if(H5Tinsert(set_tid, "field3", HOFFSET(set_t, field3), H5T_NATIVE_DOUBLE) < 0)
goto done;
if(H5Tinsert(set_tid, "field4", HOFFSET(set_t, field4), sub4_tid) < 0)
goto done;
/* Create the compound type with escape/separator characters */
if((esc_sub2_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub2_t))) < 0)
goto done;
if(H5Tinsert(esc_sub2_tid, ".a", HOFFSET(sub2_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(esc_sub2_tid, ",b", HOFFSET(sub2_t, b), sub22_tid) < 0)
goto done;
if(H5Tinsert(esc_sub2_tid, "\\K", HOFFSET(sub2_t, c), H5T_NATIVE_INT) < 0)
goto done;
if((esc_sub4_tid = H5Tcreate(H5T_COMPOUND, sizeof(sub4_t))) < 0)
goto done;
if(H5Tinsert(esc_sub4_tid, "a.", HOFFSET(sub4_t, a), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(esc_sub4_tid, "b,", HOFFSET(sub4_t, b), H5T_NATIVE_INT) < 0)
goto done;
if((esc_set_tid = H5Tcreate(H5T_COMPOUND, sizeof(set_t))) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field,1", HOFFSET(set_t, field1), H5T_NATIVE_INT) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field2.", HOFFSET(set_t, field2), esc_sub2_tid) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field\\3", HOFFSET(set_t, field3), H5T_NATIVE_DOUBLE) < 0)
goto done;
if(H5Tinsert(esc_set_tid, "field4,", HOFFSET(set_t, field4), esc_sub4_tid) < 0)
goto done;
/* Generate DSET_CMPD, DSET_CMPD_ESC */
if(generate_dset(fid, DSET_CMPD, 1, cur_dims, max_dims, set_tid, one_cbuf) < 0)
goto done;
if(generate_dset(fid, DSET_CMPD_ESC, 1, cur_dims, max_dims, esc_set_tid, one_cbuf) < 0)
goto done;
/* Initialization for two-dimensional compound typed dataset */
cur2_dims[0] = TWO_DIMS0;
cur2_dims[1] = TWO_DIMS1;
max2_dims[0] = MAX_TWO_DIMS0;
max2_dims[0] = MAX_TWO_DIMS1;
for (i = 0; i < (TWO_DIMS0 * TWO_DIMS1); i++) {
two_cbuf[i].field1 = 1;
two_cbuf[i].field2.a = 2;
two_cbuf[i].field2.c = 4;
two_cbuf[i].field2.b.a = 20;
two_cbuf[i].field2.b.b = 40;
two_cbuf[i].field2.b.c = 80;
two_cbuf[i].field3 = 3.0F;
two_cbuf[i].field4.a = 4;
two_cbuf[i].field4.b = 8;
}
/* Generate DSET_CMPD_TWO */
if(generate_dset(fid, DSET_CMPD_TWO, 2, cur2_dims, max2_dims, set_tid, two_cbuf) < 0)
goto done;
/* Closing */
if(H5Tclose(sub22_tid) < 0) goto done;
if(H5Tclose(sub2_tid) < 0) goto done;
if(H5Tclose(sub4_tid) < 0) goto done;
if(H5Tclose(set_tid) < 0) goto done;
if(H5Tclose(esc_sub2_tid) < 0) goto done;
if(H5Tclose(esc_sub4_tid) < 0) goto done;
if(H5Tclose(esc_set_tid) < 0) goto done;
if(H5Pclose(fapl) < 0) goto done;
if(H5Fclose(fid) < 0) goto done;
exit(EXIT_SUCCESS);
done:
H5E_BEGIN_TRY
H5Tclose(sub22_tid);
H5Tclose(sub2_tid);
H5Tclose(sub4_tid);
H5Tclose(set_tid);
H5Tclose(esc_sub2_tid);
H5Tclose(esc_sub4_tid);
H5Tclose(esc_set_tid);
H5Pclose(fapl);
H5Fclose(fid);
H5E_END_TRY
exit(EXIT_FAILURE);
} /* main() */

View File

@@ -0,0 +1,59 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at the *
* root level of an installed copy of the electronic HDF5 document set and *
* is linked from the top-level documents page. It can also be found at *
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Purpose: This is a small program that checks if the HDF5_DRIVER
* environment variable is set to a value that supports SWMR.
*
* It is intended for use in shell scripts.
*/
#include <stdlib.h>
#include "H5private.h"
/* This file needs to access the file driver testing code */
#define H5FD_FRIEND /*suppress error about including H5FDpkg */
#define H5FD_TESTING
#include "H5FDpkg.h" /* File drivers */
/*-------------------------------------------------------------------------
* Function: main
*
* Purpose: Inspects the HDF5_DRIVER environment variable, which
* determines the VFD that the test harness will use with
* the majority of the tests.
*
* Return: VFD supports SWMR: EXIT_SUCCESS
*
* VFD does not support SWMR
* or failure: EXIT_FAILURE
*
*-------------------------------------------------------------------------
*/
int
main(void)
{
char *driver = NULL;
driver = HDgetenv("HDF5_DRIVER");
if(H5FD_supports_swmr_test(driver))
return EXIT_SUCCESS;
else
return EXIT_FAILURE;
} /* end main() */

View File

@@ -0,0 +1,395 @@
#! /bin/sh
#
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html. COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page. It can also be found at
# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
# access to either file, you may request a copy from help@hdfgroup.org.
#
# Tests for the h5watch tool
#
# Check to see if the VFD specified by the HDF5_DRIVER environment variable
# supports SWMR.
./swmr_check_compat_vfd
rc=$?
if [[ $rc != 0 ]] ; then
echo
echo "The VFD specified by the HDF5_DRIVER environment variable"
echo "does not support SWMR."
echo
echo "h5watch tests skipped"
echo
exit 0
fi
H5WATCH=h5watch # The tool name
H5WATCH_BIN=`pwd`/$H5WATCH # The path of H5WATCH
EXTEND_DSET=extend_dset # Routine to extend the dataset when watching
EXTEND_BIN=`pwd`/$EXTEND_DSET # The path of EXTEND_DSET
#
EXIT_SUCCESS=0
EXIT_FAILURE=1
#
GEN_TEST=h5watchgentest # Generate HDF5 file with various datasets
GEN_TEST_BIN=`pwd`/$GEN_TEST # Path of the binary GEN_TEST
WATCHFILE=`pwd`/WATCH.h5 # The HDF5 file generated to test h5watch
TESTFILE=TEST.h5 # The temporary file (a copy of WATCH.h5) used by tests
#
# These 3 defines should be the same as the defines in ./extend_dset.c
WRITER_MESSAGE=writer_message # The message file created by the "extend" process
READER_MESSAGE=reader_message # The message file created by the "watch" process
MESSAGE_TIMEOUT=300 # Message timeout length in secs
#
CMP='cmp -s'
DIFF='diff -c'
NLINES=20 # Max. lines of output to display if test fails
#
# Mac OS: just to make sure echo "backslash backslash" behaves properly
if test `uname -s` = 'Darwin'; then
ECHO='/bin/echo'
else
ECHO='echo'
fi
#
# Global variables
nerrors=0
verbose=yes
# The build (current) directory might be different than the source directory.
if test -z "$srcdir"; then
srcdir=.
fi
test -d ../testfiles || mkdir ../testfiles
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
TESTING() {
SPACES=" "
$ECHO "Testing $* $SPACES" |cut -c1-70 |tr -d '\012'
}
#
# Overall algorithm:
#
# Run a test and print PASSED or FAILED
# If a test did not return with the expected return code,
# increment the `nerrors' global variable and (if $verbose is set) display up to $NLINES
# lines of the actual output from the test.
# If the test did return the expected code,
# compare the actual output with the expected output;
# If the outputs are the same, print PASSED,
# Otherwise print FAILED and the difference between the two outputs.
# The output files are not removed if $HDF5_NOCLEANUP has a non-zero value.
#
#
# TOOLTEST():
#
# Arguments:
#
# $1 -- expected output
# $2 -- expected return code
# $3 and on -- arguments for h5watch
TOOLTEST() {
expect="$srcdir/../testfiles/$1"
actual="../testfiles/`basename $1 .ddl`.out"
actual_err="../testfiles/`basename $1 .ddl`.err"
shift
retvalexpect=$1
shift
# Run test.
# Stderr is included in stdout so that the diff can detect
# any unexpected output from that stream too.
TESTING $H5WATCH $@
(
$ECHO "#############################"
$ECHO " output for '$H5WATCH $@'"
$ECHO "#############################"
$RUNSERIAL $H5WATCH_BIN "$@"
) > $actual 2>$actual_err
exitcode=$?
cat $actual_err >> $actual
if [ $exitcode -ne $retvalexpect ]; then
$ECHO "*FAILED*"
nerrors="`expr $nerrors + 1`"
if [ yes = "$verbose" ]; then
$ECHO "test returned with exit code $exitcode"
$ECHO "test output: (up to $NLINES lines)"
head -$NLINES $actual
$ECHO "***end of test output***"
$ECHO ""
fi
elif $CMP $expect $actual; then
$ECHO " PASSED"
else
$ECHO "*FAILED*"
$ECHO " Expected result differs from actual result"
nerrors="`expr $nerrors + 1`"
test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/ /'
fi
# Clean up output file
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual $actual_err
fi
}
#
#
#
# TEST_WATCH():
#
# Arguments:
# $1 -- the specified dataset to watch and to extend
# $2 -- the options to h5watch (can be NULL)
# $3 -- expected output from watching the object
#
TEST_WATCH() {
cp $WATCHFILE $TESTFILE # Copy the file being watched/extended to a temporary file
actual="../testfiles/`basename $3 .ddl`.out" # The actual output
expect="$srcdir/../testfiles/$3" # The expected output
#
# Set up options and object to h5watch
if test -z "$2"; then
OBJ="$TESTFILE/$1" # Empty options, just object to h5watch
else
OBJ="$2 $TESTFILE/$1" # Options + object to h5watch
fi
rm -f $WRITER_MESSAGE # Remove the file just to be sure
rm -f $READER_MESSAGE # Remove the file just to be sure
#
$EXTEND_BIN $TESTFILE $1 & # Extend the dataset; put in background
extend_pid=$! # Get "extend" process ID
#
# Wait for message from "extend_dset" process to start h5watch--
# To wait for the writer message file or till the maximum # of seconds is reached
# This performs similar function as the routine h5_wait_message() in test/h5test.c
mexist=0 # Indicate whether the message file is found
t0=`date +%s` # Get current time in seconds
difft=0 # Initialize the time difference
while [ $difft -lt $MESSAGE_TIMEOUT ] ; # Loop till message times out
do
t1=`date +%s` # Get current time in seconds
difft=`expr $t1 - $t0` # Calculate the time difference
if [ -e $WRITER_MESSAGE ]; then # If message file is found:
mexist=1 # indicate the message file is found
rm $WRITER_MESSAGE # remove the message file
break # get out of the while loop
fi
done;
#
# If message file from "extend" process is found--
# start h5watch
# send message to "extend" process to start work
# wait for "extend" process to complete, then kill h5watch
# determine test result
# If message file from "extend" process is not found--
# there is some problem; the test fails
#
if test $mexist -eq 0; then
$ECHO "*FAILED*"
$ECHO "Problem with extend_dset...this test failed."
else
#
# Run h5watch; put in background; collect output to a file
TESTING $H5WATCH $OBJ
head -n 3 $expect > $actual # copy the first 3 lines from $expect (just the command line)
$RUNSERIAL $H5WATCH_BIN $2 "$TESTFILE/$1" >> $actual &
watch_pid=$! # Get h5watch process ID
cp /dev/null $READER_MESSAGE # Send message to "extend" process to start work
wait $extend_pid # Wait for "extend" process to complete
extend_exit=$? # Collect "extend" process' exit code
sleep 1 # Sleep to make sure output is flushed
kill $watch_pid # Kill h5watch
wait $watch_pid # Wait for "h5watch" process to complete
#
if [ $extend_exit -ne 0 ]; then # Error returned from "extend" process
$ECHO "*FAILED*"
nerrors="`expr $nerrors + 1`"
if [ yes = "$verbose" ]; then
$ECHO "extend test returned with exit code $extend_exit"
$ECHO "test output: (up to $NLINES lines)"
head -$NLINES $actual
$ECHO "***end of test output***"
$ECHO ""
fi
elif $CMP $expect $actual; then # Compare actual output with expected output
$ECHO " PASSED"
else
$ECHO "*FAILED*" # Actual and expected outputs are different
$ECHO " Expected result differs from actual result"
nerrors="`expr $nerrors + 1`"
if test yes = "$verbose"; then
$DIFF $expect $actual |sed 's/^/ /'
fi
fi
#
# Cleaning
rm -f $TESTFILE
if test -z "$HDF5_NOCLEANUP"; then
rm -f $actual
fi
fi
}
##############################################################################
##############################################################################
### T H E T E S T S ###
##############################################################################
##############################################################################
#
#
#################################################################################################
# #
# WATCH.h5: file with various types of datasets for testing-- #
# The following datasets are chunked, H5D_ALLOC_TIME_INCR, max. dimensional setting: #
# DSET_ONE: one-dimensional dataset #
# DSET_TWO: two-dimensional dataset #
# DSET_CMPD: one-dimensional dataset with compound type #
# DSET_CMPD_ESC: one-dimensional dataset with compound type & escape/separator characters #
# DSET_CMPD_TWO: two-dimensional dataset with compound type #
# #
# The following datasets are one-dimensional, chunked, max. dimension setting: #
# DSET_ALLOC_EARLY: dataset with H5D_ALLOC_TIME_EARLY #
# DSET_ALLOC_LATE: dataset H5D_ALLOC_TIME_LATE #
# #
# The following datasets are one-dimensional: #
# DSET_NONE: fixed dimension setting, contiguous, H5D_ALLOC_TIME_LATE #
# DSET_NOMAX: fixed dimension setting, chunked, H5D_ALLOC_TIME_INCR #
# #
#################################################################################################
#
#
#################################################################################################
# #
# Tests on expected failures: #
# Invalid file name #
# Unable to find dataset, invalid dataset #
# DSET_NONE and DSET_NOMAX #
# Invalid input to options --width and --polling #
# Invalid field names for -f option #
# #
#################################################################################################
#
# Generate file with various types of datasets
$GEN_TEST_BIN
# Test on --help options
TOOLTEST w-help1.ddl 0 --help
#
# Tests on expected failures
TOOLTEST w-err-dset1.ddl 1 WATCH.h5
TOOLTEST w-err-dset2.ddl 1 WATCH.h5/group/DSET_CMPD
TOOLTEST w-err-dset-none.ddl 1 WATCH.h5/DSET_NONE
TOOLTEST w-err-dset-nomax.ddl 1 WATCH.h5/DSET_NOMAX
TOOLTEST w-err-file.ddl 1 ../WATCH.h5/DSET_CMPD
TOOLTEST w-err-width.ddl 1 --width=-8 WATCH.h5/DSET_ONE
TOOLTEST w-err-poll.ddl 1 --polling=-8 WATCH.h5/DSET_ONE
TOOLTEST w-err-poll0.ddl 1 --polling=0 WATCH.h5/DSET_ONE
#
# Tests on invalid field names via --fields option for a compound typed dataset: DSET_CMPD
TOOLTEST w-err-cmpd1.ddl 1 --fields=fieldx WATCH.h5/DSET_CMPD
TOOLTEST w-err-cmpd2.ddl 1 --fields=field1,field2. WATCH.h5/DSET_CMPD
TOOLTEST w-err-cmpd3.ddl 1 --fields=field1,field2, WATCH.h5/DSET_CMPD
TOOLTEST w-err-cmpd4.ddl 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD
TOOLTEST w-err-cmpd5.ddl 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD
#
echo "DONE WITH 1st SET OF TESTS"
#
#
#
#################################
# Tests without options #
#################################
#
# Generate file WATCH.h5 with various types of datasets,
$GEN_TEST_BIN
#
# Watching and extending: (TEST.h5 is a copy of WATCH.h5)
# TEST.h5/DSET_ONE
# TEST.h5/DSET_ALLOC_EARLY
# TEST.h5/DSET_ALLOC_LATE
# TEST.h5/DSET_CMPD
# TEST.h5/DSET_TWO
# TEST.h5/DSET_CMPD_TWO
# TEST.h5/DSET_CMPD_ESC
#
TEST_WATCH DSET_ONE '' w-ext-one.ddl
TEST_WATCH DSET_ALLOC_EARLY '' w-ext-early.ddl
TEST_WATCH DSET_ALLOC_LATE '' w-ext-late.ddl
TEST_WATCH DSET_CMPD '' w-ext-cmpd.ddl
TEST_WATCH DSET_TWO '' w-ext-two.ddl
TEST_WATCH DSET_CMPD_TWO '' w-ext-cmpd-two.ddl
TEST_WATCH DSET_CMPD_ESC '' w-ext-cmpd-esc.ddl
#
echo "DONE WITH 2nd SET OF TESTS"
#
#
#
#################################
# Tests on --fields option #
#################################
#
# Watching and extending: (TEST.h5 is a copy of WATCH.h5)
# TEST.h5/DSET_CMPD with --fields=field1,field2
# TEST.h5/DSET_CMPD with --fields=field2.b,field4
# TEST.h5/DSET_CMPD with --fields=field2.b.a --fields=field2.c
TEST_WATCH DSET_CMPD --fields=field1,field2 w-ext-cmpd-f1.ddl
TEST_WATCH DSET_CMPD --fields=field2.b,field4 w-ext-cmpd-f2.ddl
TEST_WATCH DSET_CMPD '--fields=field2.b.a --fields=field2.c' w-ext-cmpd-ff3.ddl
#
#
# TEST.h5/DSET_CMP_TWO with --fields=field1,field2
# TEST.h5/DSET_CMPD_TWO with --fields=field2.b --fields=field4
# TEST.h5/DSET_CMPD_TWO with --fields=field2.b.a,field2.c
TEST_WATCH DSET_CMPD_TWO --fields=field1,field2 w-ext-cmpd-two-f1.ddl
TEST_WATCH DSET_CMPD_TWO '--fields=field2.b --fields=field4' w-ext-cmpd-two-ff2.ddl
TEST_WATCH DSET_CMPD_TWO --fields=field2.b.a,field2.c w-ext-cmpd-two-f3.ddl
#
#
# TEST.h5/DSET_CMPD_ESC with --fields=field\,1,field2\.
# TEST.h5/DSET_CMPD_ESC with --fields=field2\..\,b --fields=field4\,
# TEST.h5/DSET_CMPD_ESC with --fields=field2\..\,b.a,field2\..\\K
TEST_WATCH DSET_CMPD_ESC '--fields=field\,1,field2\.' w-ext-cmpd-esc-f1.ddl
TEST_WATCH DSET_CMPD_ESC '--fields=field2\..\,b --fields=field4\,' w-ext-cmpd-esc-ff2.ddl
TEST_WATCH DSET_CMPD_ESC '--fields=field2\..\,b.a,field2\..\\K' w-ext-cmpd-esc-f3.ddl
#
#
echo "DONE WITH 3rd SET OF TESTS"
#
#
#
#################################################
# Tests on options: #
# --dim #
# --width, --label, --simple, --help #
#################################################
#
# Watching and extending: (TEST.h5 is a copy of WATCH.h5)
# TEST.h5/DSET_ONE with -d option
# TEST.h5/DSET_TWO with --dim option
# TEST.h5/DSET_TWO with --width=60 option
# TEST.h5/DSET_CMPD with --label option
# TEST.h5/DSET_ONE with --simple option
TEST_WATCH DSET_ONE --dim w-ext-one-d.ddl
TEST_WATCH DSET_TWO --dim w-ext-two-d.ddl
TEST_WATCH DSET_TWO --width=30 w-ext-two-width.ddl
TEST_WATCH DSET_CMPD --label w-ext-cmpd-label.ddl
TEST_WATCH DSET_ONE --simple w-ext-one-simple.ddl
#
echo "DONE WITH 4th SET OF TESTS"
#
#
#
if test $nerrors -eq 0 ; then
$ECHO "All h5watch tests passed."
exit $EXIT_SUCCESS
else
$ECHO "h5watch tests failed with $nerrors errors."
exit $EXIT_FAILURE
fi

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch --fields=fieldx WATCH.h5/DSET_CMPD'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch --fields=field1,field2. WATCH.h5/DSET_CMPD'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch --fields=field1,field2, WATCH.h5/DSET_CMPD'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch --fields=field1,field2.b.k WATCH.h5/DSET_CMPD'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch WATCH.h5/DSET_NOMAX'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: "/DSET_NOMAX" should have unlimited or max. dimension setting

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch WATCH.h5/DSET_NONE'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: "/DSET_NONE" should be a chunked or virtual dataset

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch WATCH.h5'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: no dataset specified

View File

@@ -0,0 +1,5 @@
#############################
output for 'h5watch WATCH.h5/group/DSET_CMPD'
#############################
Opened "WATCH.h5" with sec2 driver.
h5watch error: unable to open dataset "/group/DSET_CMPD"

View File

@@ -0,0 +1,4 @@
#############################
output for 'h5watch ../WATCH.h5/DSET_CMPD'
#############################
h5watch error: unable to open file "../WATCH.h5/DSET_CMPD"

View File

@@ -0,0 +1,38 @@
#############################
output for 'h5watch --polling=-8 WATCH.h5/DSET_ONE'
#############################
Usage: h5watch [OPTIONS] [OBJECT]
OPTIONS
--help Print a usage message and exit.
--version Print version number and exit.
--label Label members of compound typed dataset.
--simple Use a machine-readable output format.
--dim Monitor changes in size of dataset dimensions only.
--width=N Set the number of columns to N for output.
A value of 0 sets the number of columns to the
maximum (65535). The default width is 80 columns.
--polling=N Set the polling interval to N (in seconds) when the
dataset will be checked for appended data. The default
polling interval is 1.
--fields=<list_of_fields>
Display data for the fields specified in <list_of_fields>
for a compound data type. <list_of_fields> can be
specified as follows:
1) A comma-separated list of field names in a
compound data type. "," is the separator
for field names while "." is the separator
for a nested field.
2) A single field name in a compound data type.
Can use this option multiple times.
Note that backslash is the escape character to avoid
characters in field names that conflict with the tool's
separators.
OBJECT is specified as [<filename>/<path_to_dataset>/<dsetname>]
<filename> Name of the HDF5 file. It may be preceded by path
separated by slashes to the specified HDF5 file.
<path_to_dataset> Path separated by slashes to the specified dataset
<dsetname> Name of the dataset
User can end the h5watch process by ctrl-C (SIGINT) or kill the process (SIGTERM).

View File

@@ -0,0 +1,38 @@
#############################
output for 'h5watch --polling=0 WATCH.h5/DSET_ONE'
#############################
Usage: h5watch [OPTIONS] [OBJECT]
OPTIONS
--help Print a usage message and exit.
--version Print version number and exit.
--label Label members of compound typed dataset.
--simple Use a machine-readable output format.
--dim Monitor changes in size of dataset dimensions only.
--width=N Set the number of columns to N for output.
A value of 0 sets the number of columns to the
maximum (65535). The default width is 80 columns.
--polling=N Set the polling interval to N (in seconds) when the
dataset will be checked for appended data. The default
polling interval is 1.
--fields=<list_of_fields>
Display data for the fields specified in <list_of_fields>
for a compound data type. <list_of_fields> can be
specified as follows:
1) A comma-separated list of field names in a
compound data type. "," is the separator
for field names while "." is the separator
for a nested field.
2) A single field name in a compound data type.
Can use this option multiple times.
Note that backslash is the escape character to avoid
characters in field names that conflict with the tool's
separators.
OBJECT is specified as [<filename>/<path_to_dataset>/<dsetname>]
<filename> Name of the HDF5 file. It may be preceded by path
separated by slashes to the specified HDF5 file.
<path_to_dataset> Path separated by slashes to the specified dataset
<dsetname> Name of the dataset
User can end the h5watch process by ctrl-C (SIGINT) or kill the process (SIGTERM).

View File

@@ -0,0 +1,38 @@
#############################
output for 'h5watch --width=-8 WATCH.h5/DSET_ONE'
#############################
Usage: h5watch [OPTIONS] [OBJECT]
OPTIONS
--help Print a usage message and exit.
--version Print version number and exit.
--label Label members of compound typed dataset.
--simple Use a machine-readable output format.
--dim Monitor changes in size of dataset dimensions only.
--width=N Set the number of columns to N for output.
A value of 0 sets the number of columns to the
maximum (65535). The default width is 80 columns.
--polling=N Set the polling interval to N (in seconds) when the
dataset will be checked for appended data. The default
polling interval is 1.
--fields=<list_of_fields>
Display data for the fields specified in <list_of_fields>
for a compound data type. <list_of_fields> can be
specified as follows:
1) A comma-separated list of field names in a
compound data type. "," is the separator
for field names while "." is the separator
for a nested field.
2) A single field name in a compound data type.
Can use this option multiple times.
Note that backslash is the escape character to avoid
characters in field names that conflict with the tool's
separators.
OBJECT is specified as [<filename>/<path_to_dataset>/<dsetname>]
<filename> Name of the HDF5 file. It may be preceded by path
separated by slashes to the specified HDF5 file.
<path_to_dataset> Path separated by slashes to the specified dataset
<dsetname> Name of the dataset
User can end the h5watch process by ctrl-C (SIGINT) or kill the process (SIGTERM).

View File

@@ -0,0 +1,14 @@
#############################
output for 'h5watch --fields=field\,1,field2\. TEST.h5/DSET_CMPD_ESC'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_ESC...
dimension 0: 10->13 (increases)
Data:
(10) {1, {2, {2, 2, 2}, 2}}, {2, {3, {3, 3, 3}, 3}},
(12) {3, {4, {4, 4, 4}, 4}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {1, {2, {2, 2, 2}, 2}}, {2, {3, {3, 3, 3}, 3}}

View File

@@ -0,0 +1,13 @@
#############################
output for 'h5watch --fields=field2\..\,b.a,field2\..\\K TEST.h5/DSET_CMPD_ESC'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_ESC...
dimension 0: 10->13 (increases)
Data:
(10) {{{2}}, {2}}, {{{3}}, {3}}, {{{4}}, {4}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {{{2}}, {2}}, {{{3}}, {3}}

View File

@@ -0,0 +1,14 @@
#############################
output for 'h5watch --fields=field2\..\,b --fields=field4\, TEST.h5/DSET_CMPD_ESC'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_ESC...
dimension 0: 10->13 (increases)
Data:
(10) {{{2, 2, 2}}, {4, 4}}, {{{3, 3, 3}}, {5, 5}}, {{{4, 4, 4}}, {6,
(12) 6}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {{{2, 2, 2}}, {4, 4}}, {{{3, 3, 3}}, {5, 5}}

View File

@@ -0,0 +1,16 @@
#############################
output for 'h5watch TEST.h5/DSET_CMPD_ESC'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_ESC...
dimension 0: 10->13 (increases)
Data:
(10) {1, {2, {2, 2, 2}, 2}, 3, {4, 4}},
(11) {2, {3, {3, 3, 3}, 3}, 4, {5, 5}},
(12) {3, {4, {4, 4, 4}, 4}, 5, {6, 6}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {1, {2, {2, 2, 2}, 2}, 3, {4, 4}}, {2, {3, {3, 3, 3}, 3}, 4, {5,
(2) 5}}

View File

@@ -0,0 +1,14 @@
#############################
output for 'h5watch --fields=field1,field2 TEST.h5/DSET_CMPD'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD...
dimension 0: 10->13 (increases)
Data:
(10) {1, {2, {2, 2, 2}, 2}}, {2, {3, {3, 3, 3}, 3}},
(12) {3, {4, {4, 4, 4}, 4}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {1, {2, {2, 2, 2}, 2}}, {2, {3, {3, 3, 3}, 3}}

View File

@@ -0,0 +1,14 @@
#############################
output for 'h5watch --fields=field2.b,field4 TEST.h5/DSET_CMPD'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD...
dimension 0: 10->13 (increases)
Data:
(10) {{{2, 2, 2}}, {4, 4}}, {{{3, 3, 3}}, {5, 5}}, {{{4, 4, 4}}, {6,
(12) 6}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {{{2, 2, 2}}, {4, 4}}, {{{3, 3, 3}}, {5, 5}}

View File

@@ -0,0 +1,13 @@
#############################
output for 'h5watch --fields=field2.b.a --fields=field2.c TEST.h5/DSET_CMPD'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD...
dimension 0: 10->13 (increases)
Data:
(10) {{{2}}, {2}}, {{{3}}, {3}}, {{{4}}, {4}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {{{2}}, {2}}, {{{3}}, {3}}

View File

@@ -0,0 +1,21 @@
#############################
output for 'h5watch --label TEST.h5/DSET_CMPD'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD...
dimension 0: 10->13 (increases)
Data:
(10) {field1=1, field2={a=2, b={a=2, b=2, c=2}, c=2}, field3=3,
(10) field4={a=4, b=4}},
(11) {field1=2, field2={a=3, b={a=3, b=3, c=3}, c=3}, field3=4,
(11) field4={a=5, b=5}},
(12) {field1=3, field2={a=4, b={a=4, b=4, c=4}, c=4}, field3=5,
(12) field4={a=6, b=6}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {field1=1, field2={a=2, b={a=2, b=2, c=2}, c=2}, field3=3,
(1) field4={a=4, b=4}},
(2) {field1=2, field2={a=3, b={a=3, b=3, c=3}, c=3}, field3=4,
(2) field4={a=5, b=5}}

View File

@@ -0,0 +1,50 @@
#############################
output for 'h5watch --fields=field1,field2 TEST.h5/DSET_CMPD_TWO'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_TWO...
dimension 0: 4->6 (increases)
dimension 1: 10->12 (increases)
Data:
(0,10) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}}
(1,10) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}}
(2,10) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}}
(3,10) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}}
(4,0) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(4,2) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(4,4) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(4,6) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(4,8) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(4,10) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(5,0) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(5,2) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(5,4) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(5,6) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(5,8) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}},
(5,10) {1, {1, {1, 1, 1}, 1}}, {1, {1, {1, 1, 1}, 1}}
dimension 0: 6->8 (increases)
dimension 1: 12->1 (decreases)
Data:
(6,0) {2, {2, {2, 2, 2}, 2}},
(7,0) {2, {2, {2, 2, 2}, 2}}
dimension 0: 8->10 (increases)
dimension 1: 1->1 (unchanged)
Data:
(8,0) {3, {3, {3, 3, 3}, 3}},
(9,0) {3, {3, {3, 3, 3}, 3}}
dimension 0: 10->3 (decreases)
dimension 1: 1->3 (increases)
Data:
(0,1) {4, {4, {4, 4, 4}, 4}}, {4, {4, {4, 4, 4}, 4}}
(1,1) {4, {4, {4, 4, 4}, 4}}, {4, {4, {4, 4, 4}, 4}}
(2,1) {4, {4, {4, 4, 4}, 4}}, {4, {4, {4, 4, 4}, 4}}
dimension 0: 3->2 (decreases)
dimension 1: 3->2 (decreases)
dimension 0: 2->1 (decreases)
dimension 1: 2->2 (unchanged)
dimension 0: 1->1 (unchanged)
dimension 1: 2->4 (increases)
Data:
(0,2) {7, {7, {7, 7, 7}, 7}}, {7, {7, {7, 7, 7}, 7}}
dimension 0: 1->1 (unchanged)
dimension 1: 4->3 (decreases)

View File

@@ -0,0 +1,44 @@
#############################
output for 'h5watch --fields=field2.b.a,field2.c TEST.h5/DSET_CMPD_TWO'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_TWO...
dimension 0: 4->6 (increases)
dimension 1: 10->12 (increases)
Data:
(0,10) {{{1}}, {1}}, {{{1}}, {1}}
(1,10) {{{1}}, {1}}, {{{1}}, {1}}
(2,10) {{{1}}, {1}}, {{{1}}, {1}}
(3,10) {{{1}}, {1}}, {{{1}}, {1}}
(4,0) {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}},
(4,4) {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}},
(4,8) {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}},
(5,0) {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}},
(5,4) {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}},
(5,8) {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}, {{{1}}, {1}}
dimension 0: 6->8 (increases)
dimension 1: 12->1 (decreases)
Data:
(6,0) {{{2}}, {2}},
(7,0) {{{2}}, {2}}
dimension 0: 8->10 (increases)
dimension 1: 1->1 (unchanged)
Data:
(8,0) {{{3}}, {3}},
(9,0) {{{3}}, {3}}
dimension 0: 10->3 (decreases)
dimension 1: 1->3 (increases)
Data:
(0,1) {{{4}}, {4}}, {{{4}}, {4}}
(1,1) {{{4}}, {4}}, {{{4}}, {4}}
(2,1) {{{4}}, {4}}, {{{4}}, {4}}
dimension 0: 3->2 (decreases)
dimension 1: 3->2 (decreases)
dimension 0: 2->1 (decreases)
dimension 1: 2->2 (unchanged)
dimension 0: 1->1 (unchanged)
dimension 1: 2->4 (increases)
Data:
(0,2) {{{7}}, {7}}, {{{7}}, {7}}
dimension 0: 1->1 (unchanged)
dimension 1: 4->3 (decreases)

View File

@@ -0,0 +1,50 @@
#############################
output for 'h5watch --fields=field2.b --fields=field4 TEST.h5/DSET_CMPD_TWO'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_TWO...
dimension 0: 4->6 (increases)
dimension 1: 10->12 (increases)
Data:
(0,10) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}}
(1,10) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}}
(2,10) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}}
(3,10) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}}
(4,0) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(4,2) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(4,4) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(4,6) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(4,8) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(4,10) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(5,0) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(5,2) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(5,4) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(5,6) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(5,8) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}},
(5,10) {{{1, 1, 1}}, {1, 1}}, {{{1, 1, 1}}, {1, 1}}
dimension 0: 6->8 (increases)
dimension 1: 12->1 (decreases)
Data:
(6,0) {{{2, 2, 2}}, {2, 2}},
(7,0) {{{2, 2, 2}}, {2, 2}}
dimension 0: 8->10 (increases)
dimension 1: 1->1 (unchanged)
Data:
(8,0) {{{3, 3, 3}}, {3, 3}},
(9,0) {{{3, 3, 3}}, {3, 3}}
dimension 0: 10->3 (decreases)
dimension 1: 1->3 (increases)
Data:
(0,1) {{{4, 4, 4}}, {4, 4}}, {{{4, 4, 4}}, {4, 4}}
(1,1) {{{4, 4, 4}}, {4, 4}}, {{{4, 4, 4}}, {4, 4}}
(2,1) {{{4, 4, 4}}, {4, 4}}, {{{4, 4, 4}}, {4, 4}}
dimension 0: 3->2 (decreases)
dimension 1: 3->2 (decreases)
dimension 0: 2->1 (decreases)
dimension 1: 2->2 (unchanged)
dimension 0: 1->1 (unchanged)
dimension 1: 2->4 (increases)
Data:
(0,2) {{{7, 7, 7}}, {7, 7}}, {{{7, 7, 7}}, {7, 7}}
dimension 0: 1->1 (unchanged)
dimension 1: 4->3 (decreases)

View File

@@ -0,0 +1,70 @@
#############################
output for 'h5watch TEST.h5/DSET_CMPD_TWO'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD_TWO...
dimension 0: 4->6 (increases)
dimension 1: 10->12 (increases)
Data:
(0,10) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(0,11) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}}
(1,10) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(1,11) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}}
(2,10) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(2,11) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}}
(3,10) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(3,11) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}}
(4,0) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,1) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,2) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,3) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,4) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,5) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,6) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,7) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,8) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,9) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,10) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(4,11) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,0) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,1) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,2) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,3) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,4) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,5) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,6) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,7) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,8) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,9) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,10) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}},
(5,11) {1, {1, {1, 1, 1}, 1}, 1, {1, 1}}
dimension 0: 6->8 (increases)
dimension 1: 12->1 (decreases)
Data:
(6,0) {2, {2, {2, 2, 2}, 2}, 2, {2, 2}},
(7,0) {2, {2, {2, 2, 2}, 2}, 2, {2, 2}}
dimension 0: 8->10 (increases)
dimension 1: 1->1 (unchanged)
Data:
(8,0) {3, {3, {3, 3, 3}, 3}, 3, {3, 3}},
(9,0) {3, {3, {3, 3, 3}, 3}, 3, {3, 3}}
dimension 0: 10->3 (decreases)
dimension 1: 1->3 (increases)
Data:
(0,1) {4, {4, {4, 4, 4}, 4}, 4, {4, 4}},
(0,2) {4, {4, {4, 4, 4}, 4}, 4, {4, 4}}
(1,1) {4, {4, {4, 4, 4}, 4}, 4, {4, 4}},
(1,2) {4, {4, {4, 4, 4}, 4}, 4, {4, 4}}
(2,1) {4, {4, {4, 4, 4}, 4}, 4, {4, 4}},
(2,2) {4, {4, {4, 4, 4}, 4}, 4, {4, 4}}
dimension 0: 3->2 (decreases)
dimension 1: 3->2 (decreases)
dimension 0: 2->1 (decreases)
dimension 1: 2->2 (unchanged)
dimension 0: 1->1 (unchanged)
dimension 1: 2->4 (increases)
Data:
(0,2) {7, {7, {7, 7, 7}, 7}, 7, {7, 7}},
(0,3) {7, {7, {7, 7, 7}, 7}, 7, {7, 7}}
dimension 0: 1->1 (unchanged)
dimension 1: 4->3 (decreases)

View File

@@ -0,0 +1,16 @@
#############################
output for 'h5watch TEST.h5/DSET_CMPD'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_CMPD...
dimension 0: 10->13 (increases)
Data:
(10) {1, {2, {2, 2, 2}, 2}, 3, {4, 4}},
(11) {2, {3, {3, 3, 3}, 3}, 4, {5, 5}},
(12) {3, {4, {4, 4, 4}, 4}, 5, {6, 6}}
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) {1, {2, {2, 2, 2}, 2}, 3, {4, 4}}, {2, {3, {3, 3, 3}, 3}, 4, {5,
(2) 5}}

View File

@@ -0,0 +1,13 @@
#############################
output for 'h5watch TEST.h5/DSET_ALLOC_EARLY'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_ALLOC_EARLY...
dimension 0: 10->13 (increases)
Data:
(10) 0, 1, 2
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) 0, 1

View File

@@ -0,0 +1,13 @@
#############################
output for 'h5watch TEST.h5/DSET_ALLOC_LATE'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_ALLOC_LATE...
dimension 0: 10->13 (increases)
Data:
(10) 0, 1, 2
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
(1) 0, 1

View File

@@ -0,0 +1,9 @@
#############################
output for 'h5watch --dim TEST.h5/DSET_ONE'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_ONE...
dimension 0: 10->13 (increases)
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)

View File

@@ -0,0 +1,16 @@
#############################
output for 'h5watch --simple TEST.h5/DSET_ONE'
#############################
Opened "TEST.h5" with sec2 driver.
Monitoring dataset /DSET_ONE...
dimension 0: 10->13 (increases)
Data:
0
1
2
dimension 0: 13->12 (decreases)
dimension 0: 12->1 (decreases)
dimension 0: 1->3 (increases)
Data:
0
1

Some files were not shown because too many files have changed in this diff Show More