Commit Graph

107 Commits

Author SHA1 Message Date
Bill Wendling
4ded0a4fa7 [svn-r7772] Purpose:
Very trivial fix

Description:
    Removed spaces from file that was causing pmake to issue a warning.

Platforms tested:
    Modi4

Misc. update:
2003-10-28 12:58:52 -05:00
Raymond Lu
9db7c79487 [svn-r7522] *** empty log message *** 2003-09-29 15:19:02 -05:00
Raymond Lu
21ffbeda9e [svn-r7513] Purpose: Disable Error API test
Description: The error test script compares the error messages to the standard
    output.  The file names and line numbers in the messages can be different
    for users.

Solution: Temporarily disable the test until find a good solution.

Platforms tested: None.  Disabling a test.
2003-09-25 10:16:03 -05:00
Raymond Lu
7e79a8d71e [svn-r7507] *** empty log message *** 2003-09-24 14:26:50 -05:00
Quincey Koziol
a3888a3b00 [svn-r7426] Purpose:
Bug fix

Description:
    When datasets are deleted from a file, they are removed from the sieve
buffer, but instead of invalidating only the part of the sieve buffer affected,
the sieve buffer code would throw away the entire sieve buffer, potentially
including other raw data in the buffer that hadn't been written to disk yet.

Solution:
    Improve the sieve buffer clearing code to handle partial invalidations.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-08-28 11:02:21 -05:00
Quincey Koziol
f29e3e1097 [svn-r7362] Purpose:
Bug fix

Description:
    Allow a user block to be "inserted" in front of a file (probably by
writing a validly-sized userblock to a new file and then appending another
HDF5 file to the new file).

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
2003-08-14 07:18:34 -05:00
Quincey Koziol
b7dbfc3796 [svn-r7243] Purpose:
Bug fix

Description:
    Fix bug with combination of fill-values, chunked datasets and
    variable-length strings.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-21 08:54:23 -05:00
Raymond Lu
2a5bb6c896 [svn-r7206] Purpose: Update for new error test program
Description: added new error test.


Platforms tested: RH 8.
2003-07-10 15:08:37 -05:00
Quincey Koziol
f3999dd430 [svn-r6870] Purpose:
New test

Description:
    Added test to check for dangling objects being handled correctly by the
library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
2003-05-13 15:07:05 -05:00
Albert Cheng
a072be18b7 [svn-r6525] Purpose:
New test feature

Description:
Added the VFD_LIST definition to support the "make check-vfd" tests.

Platforms tested:
h5committested.
Since check-vfd is not invoked by default, I went to each machine
to invoke them by hand.  The target worked fine but there were
errors reported from those driver tests.  (Those errors were beyond
the scope of this make target test.)

Misc. update:
2003-03-26 19:15:29 -05:00
Quincey Koziol
474a1434bd [svn-r6436] Purpose:
New internal feature

Description:
    Add internal API for building and working with heaps (H5HP).  This will be
    used for the LRU algorithm in the new metadata cache code.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir)
2003-02-24 15:25:13 -05:00
Quincey Koziol
a6542d06b1 [svn-r6330] Purpose:
Bug Fix

Description:
    When calling H5Fopen with the core VFL driver, but without the
    H5F_ACC_CREAT flag goes ahead and creates a memory file.

Solution:
    Check for the H5F_ACC_CREAT flag before allowing the memory file to be
    created.

Platforms tested:
    FreeBSD 4.7 (sleipnir)
2003-01-24 13:09:57 -05:00
Quincey Koziol
9a433b99a5 [svn-r6252] Purpose:
Lots of performance improvements & a couple new internal API interfaces.

Description:
    Performance Improvements:
        - Cached file offset & length sizes in shared file struct, to avoid
            constantly looking them up in the FCPL.
        - Generic property improvements:
            - Added "revision" number to generic property classes to speed
                up comparisons.
            - Changed method of storing properties from using a hash-table
                to the TBBT routines in the library.
            - Share the propery names between classes and the lists derived
                from them.
            - Removed redundant 'def_value' buffer from each property.
            - Switching code to use a "copy on write" strategy for
                properties in each list, where the properties in each list
                are shared with the properties in the class, until a
                property's value is changed in a list.
        - Fixed error in layout code which was allocating too many buffers.
        - Redefined public macros of the form (H5open()/H5check, <variable>)
            internally to only be (<variable>), avoiding innumerable useless
            calls to H5open() and H5check_version().
        - Reuse already zeroed buffers in H5F_contig_fill instead of
            constantly re-zeroing them.
        - Don't write fill values if writing entire dataset.
        - Use gettimeofday() system call instead of time() system when
            checking the modification time of a dataset.
        - Added reference counted string API and use it for tracking the
            names of objects opening in a file (for the ID->name code).
        - Removed redundant H5P_get() calls in B-tree routines.
        - Redefine H5T datatype macros internally to the library, to avoid
            calling H5check redundantly.
        - Keep dataspace information for dataset locally instead of reading
            from disk each time.  Added new module to track open objects
            in a file, to allow this (which will be useful eventually for
            some FPH5 metadata caching issues).
        - Remove H5AC_find macro which was inlining metadata cache lookups,
            and call function instead.
        - Remove redundant memset() calls from H5G_namei() routine.
        - Remove redundant checking of object type when locating objects
            in metadata cache and rely on the address only.
        - Create default dataset object to use when default dataset creation
            property list is used to create datasets, bypassing querying
            for all the property list values.
        - Use default I/O vector size when performing raw data with the
            default dataset transfer property list, instead of querying for
            I/O vector size.
        - Remove H5P_DEFAULT internally to the library, replacing it with
            more specific default property list based on the type of
            property list needed.
        - Remove redundant memset() calls in object header message (H5O*)
            routines.
        - Remove redunant memset() calls in data I/O routines.
        - Split free-list allocation routines into malloc() and calloc()-
            like routines, instead of one combined routine.
        - Remove lots of indirection in H5O*() routines.
        - Simplify metadata cache entry comparison routine (used when
            flushing entire cache out).
        - Only enable metadata cache statistics when H5AC_DEBUG is turned
            on, instead of always tracking them.
        - Simplify address comparison macro (H5F_addr_eq).
        - Remove redundant metadata cache entry protections during dataset
            creation by protecting the object header once and making all
            the modifications necessary for the dataset creation before
            unprotecting it.
        - Reduce # of "number of element in extent" computations performed
            by computing and storing the value during dataspace creation.
        - Simplify checking for group location's file information, when file
            has not been involving in file-mounting operations.
        - Use binary encoding for modification time, instead of ASCII.
        - Hoist H5HL_peek calls (to get information in a local heap)
            out of loops in many group routine.
        - Use static variable for iterators of selections, instead of
            dynamically allocation them each time.
        - Lookup & insert new entries in one step, avoiding traversing
            group's B-tree twice.
        - Fixed memory leak in H5Gget_objname_idx() routine (tangential to
            performance improvements, but fixed along the way).
        - Use free-list for reference counted strings.
        - Don't bother copying object names into cached group entries,
            since they are re-created when an object is opened.

        The benchmark I used to measure these results created several thousand
        small (2K) datasets in a file and wrote out the data for them.  This is
        Elena's "regular.c" benchmark.

        These changes resulted in approximately ~4.3x speedup of the
        development branch when compared to the previous code in the
        development branch and ~1.4x speedup compared to the release
        branch.

        Additionally, these changes reduce the total memory used (code and
        data) by the development branch by ~800KB, bringing the development
        branch back into the same ballpark as the release branch.

        I'll send out a more detailed description of the benchmark results
        as a followup note.

    New internal API routines:
        Added "reference counted strings" API for tracking strings that get
            used by multiple owners without duplicating the strings.
        Added "ternary search tree" API for text->object mappings.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Other platforms/configurations tested?
        FreeBSD 4.7 (sleipnir) serial & parallel
        Solaris 2.6 (baldric) serial
2003-01-09 12:20:03 -05:00
Raymond Lu
a9dea215ed [svn-r6060]
Purpose:
    Add new functions
Description:
    add H5Tget_native_type and H5Tis_variable_str.
Platforms tested:
    arabica, eirene, modi4
Misc. update:
    MANIFEST and release_docs/RELEASE updated.
2002-11-06 16:08:45 -05:00
Raymond Lu
3ed57b880a [svn-r6054]
Purpose:
    Makefile update
Description:
    Update Makefile.in to handle more output file for cleanup
Platforms tested:
    arabica
2002-11-05 11:28:58 -05:00
Quincey Koziol
a47135b29e [svn-r5989] Purpose:
Code cleanup

Description:
    Added more test datafiles to clean directive.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 14:42:27 -05:00
Raymond Lu
d1e26ae328 [svn-r5951]
Purpose:
    New API functions
Description:
    Added API functions to return pointer to low-level file handle
    (H5Fget_vfd_handle and H5FDget_vfd_handle) and related property list
    setting functions(H5Pset_family_offset and H5Pset_multi_type).
Platforms tested:
    Linux 2.2(eirene), Solaris 2.7(arabica), IRIX64 6.5(modi4)
2002-09-30 11:31:55 -05:00
Pedro Vicente Nunes
7bff4eb559 [svn-r5904]
Purpose:
    Added 'ID to name' support
Description:

    There is a new API function H5Iget_name
    Most of the changes are on H5G.c , regarding the symbol table entry struct H5G_entry_t
    which has 2 new fields 'name' and 'old_name'

    A new private function was introduced H5G_ent_copy, that does a deep copy
    between 2 symbol table entries

    The test file is getname.c


Platforms tested:
    windows 2000, Linux, Solaris
2002-08-28 13:34:12 -05:00
Quincey Koziol
c2869d6a57 [svn-r5895] Purpose:
Code cleanup/More tests

Description:
    Cleaned up some compiler warnings and wrote additional tests for space
    allocation and storage size routines.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/serial & parallel.  Will be testing on IRIX64
    6.5 (modi4) in serial & parallel shortly.
2002-08-27 08:42:22 -05:00
Quincey Koziol
841ee1c05a [svn-r5875] Purpose:
Additional regression tests & bug fixes

Description:
    There was no testing for the H5Dget_storage_size function and it seemed to
    be having problems with compressed, chunked datasets, so write some tests
    to verify that its working correctly.

    Also, fix case for allocating storage early for chunked datasets

Platforms tested:
    FreeBSD 4.6 (sleipnir) serial & parallel
2002-08-14 09:34:01 -05:00
Quincey Koziol
33a1bc03c4 [svn-r5586] Purpose:
Bug Fix

Description:
    H5Dcreate and H5Tcommit allow "empty" compound and enumerated types (i.e.
    ones with no members) to be stored in the file, but this causes an assertion
    failure and is somewhat vapid.

Solution:
    Check the datatype "makes sense" before using it for H5Dcreate and
    H5Tcommit.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-06-11 11:03:04 -05:00
Quincey Koziol
44a72a6777 [svn-r5502] Purpose:
Test Bug Fix

Description:
    Under certain [obscure] circumstances, an object header would get paged out
    of the metadata cache, and when it was accessed again and brought back into
    the cache, and immediately had additional metadata added to it (an
    attribute, usually, or perhaps adding an object to a group), and needed to
    be extended with a continuation message, but there was no room in any
    existing object header chunks for the continuation message and an existing
    object header message needed to be moved to the new object header chunk (I
    told you it was obscure :-), the object header message moved to the new
    chunk (not the new metadata being added) would get corrupted. *whew* :-)

Solution:
    Actually copy the "raw" object header message information of the object
    header message being moved to the new chunk, instead of relying on the
    "native" object header message information being re-encoded when the object
    header is flushed.  This is because when an object header is paged out of
    the metadata cache and subsequently brought back in, the "native"
    information pointer in memory is reset to NULL and only the "raw"
    information exists.

    [Actually, this additional testing doesn't trigger the bug, which needs
    _lots_ of objects to be created and accessed, but it does execise the
    object header continuation code more than other tests in the library.]

Platforms tested:
    Solaris 2.7 (arabica) & FreeBSD 4.5 (sleipnir)
2002-05-31 22:11:34 -05:00
Albert Cheng
112fb8d45c [svn-r5257] Purpose:
Bug fix
Description:
    $(LT_RUN) was used to execute ./H5detect in src/Makefile.in.
    $RUNTEST was set to $(LT_RUN) which was used to execute sequential
    executable.  $(LT_RUN) is "../libtool --mode=execute".  But libtool
    invokes some commands that are not supported in the Tflops machine.
    That caused failures during the build and check processes.
Solution:
    Upon investigation, there does not seem to be need to use $(LT_RUN)
    any more.  The "libtool --mode=link" now generates a "fake" executable
    that is actually a command-script file that can regenerate the real
    executable with dynamic libraries hooks setup properly.
    Undo all those $LT_RUN substitute and let $RUNSERIAL execute those
    sequential executables.
Platforms tested:
    Eirene(serial), modi4(parallel)
2002-04-25 09:48:52 -05:00
Quincey Koziol
fa314a767e [svn-r5191] Purpose:
Bug fix

Description:
    When several level deep nested compound & VL datatypes are used, the data
    in the nested compound datatypes is incorrectly sharing the same "background
    buffer", causing data corruption when the data is written to the file.

Solution:
    Allocate a separate background buffer for each level of the nested types
    to convert.  (Also allocate temporary background buffers for array
    datatypes, where this sort of problem could occur also)

    Added more regression tests to check for these errors.

Platforms tested:
    FreeBSD 4.5 (sleipnir) & Solaris 2.6 (baldric)
2002-04-17 11:47:47 -05:00
Pedro Vicente Nunes
4a77525456 [svn-r5177]
Purpose:
    added 2 files to remove by set_extent test
2002-04-12 11:11:15 -05:00
Bill Wendling
6febdcf5fc [svn-r5158] Purpose:
Update
Description:
	Changed set_extend to set_extent to reflect the change in the
	filename...
2002-04-10 10:35:27 -05:00
Quincey Koziol
0cb78c2087 [svn-r5097] Purpose:
Bug Fix

Description:
    Regression test for following bug:

    The H5Gget_objinfo() function was not setting the 'fileno' field in the
    H5G_stat_t struct passed in.

Solution:
    Added a "file serial number" to each file currently open in the library
    and put that in the 'fileno' field.  If a file is opened twice (with
    H5Fopen) and the VFL driver detects that it is the same file (i.e. the
    two file structures have the same "shared file info" in the library's
    memory structures), they will have the same serial number.

    This serial number has two drawbacks:
        - If a VFL driver doesn't/can't detect that two calls to H5Fopen with
            the same file actually _are_ the same file, each will get a
            different serial number
        - If the same file is closed and re-opened, the serial number will be
            different.

    It is be possible to fix the second drawback for many VFL drivers, but it
    would be a lot of effort and probably isn't worth it until we've got a
    good reason to do it.  Dunno if we'll ever be able to fix the first
    drawback...

Platforms tested:
    FreeBSD 4.5 (sleipnir)
VS: ----------------------------------------------------------------------
2002-03-27 15:25:48 -05:00
Bill Wendling
f1bfb5ce8f [svn-r4943] Purpose:
Cleanup
Description:
	Added set_extend.h5 file to the CLEANUP macro in the Makefile so that
	it'll be removed when the other temp files are removed.
Platforms tested:
	Linux
2002-02-12 14:08:10 -05:00
Bill Wendling
f81bca3fc6 [svn-r4942] Purpose:
Feature Add
Description:
	Added set_extend to the MANIFEST and test/ directory Makefile.
2002-02-12 11:20:56 -05:00
Quincey Koziol
f4bc9f929e [svn-r4869] Purpose:
Add regression tests
Description:
    Added regression test for using a VL-datatype in two separate files.
Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-01-27 00:23:11 -05:00
Quincey Koziol
5e7ed206ea [svn-r4851] Purpose:
Bug Fix
Description:
    When file space was returned to the file space free-list for reuse,
    occasionally raw data allocations which used space from the free-list
    would overlap with the metadata accumulator and get over-written with
    the cached information in the accumulator, corrupting the data.
Solution:
    Check if the space about to be recycled on the free-list is going to be
    used for raw data and also overlaps with the metadata accumulator cache,
    avoiding using space that fits those criteria.

    This fixes bug #701

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-01-23 16:28:24 -05:00
Albert Cheng
e22c095636 [svn-r4757] Purpose:
Removing the DPSS (gridstorage) driver source code.
Description:
    The DPSS (using Grid-Storage) driver is retired.
    Removed the configure option with-gridstorage from configure.in.
    Cvs remove the following files
    ./src/H5FDdpss.c
    ./src/H5FDdpss.h
    ./test/dpss_read.c
    ./test/dpss_write.c

    Regenerated Dependencies files (some had to be hand-edited since
    'make depend' did not cover them.)
    Removed reference to DPSS Virtual file driver from H5F.c.
Platforms tested:
    modi4 (Parallel; -with-gass=...), eirene, arabica (fortran, cxx).
2001-12-30 00:23:38 -05:00
Albert Cheng
2612814874 [svn-r4474] Purpose:
New feature.
Description:
    Added a test to verify the correctness of information provided by
    configure in H5config.h.  Some information, such as SIZEOF some
    types can be hardcoded by config/<machine>.  This test verified
    the information is indeed correct.
    Currenly, only size of C language types are verified.
Platforms tested:
    Eirene, regular, arabica.
2001-09-26 00:37:15 -05:00
Albert Cheng
34b8cca115 [svn-r4364] Purpose:
cleanup
Description:
    chunk, iopipe, overhead have been moved to perform/.
Platforms tested:
    eirene(parallel).
2001-08-16 00:27:33 -05:00
Quincey Koziol
bbae8bfdcd [svn-r4281] Purpose:
Additional test
Description:
    Added metadata cache abuser code to the 'timings' target in the tests.
Platforms Tested:
    FreeBSD 4.3 (hawkwind)
2001-07-30 15:03:25 -05:00
Quincey Koziol
7921315a33 [svn-r3304] Purpose:
Code update
Description:
    Remove ragged array code & tests from library before release.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-18 18:30:23 -05:00
Quincey Koziol
7a4d4b9aa2 [svn-r2872] Purpose:
Code update
Description:
    Added stub for generic property testing, although it doesn't do anything
    yet.
Platforms tested:
    FreeBSD 4.1.1 (hawkwind)
2000-11-11 19:10:08 -05:00
Quincey Koziol
f178100d14 [svn-r2844] Purpose:
New Feature
Description:
    Added array datatype tests to the regression tests.  These datatype
    combinations are tested currently:
        1-D array of atomic datatypes
        3-D array of atomic datatypes
        array of array of atomic datatypes
        array of compound of atomic datatypes
        array of compound of array datatypes
        array of VL of atomic datatypes
        array of VL of array datatypes

    Also added a test to verify that the older style compound datatype with
    array fields works correctly.
Platforms tested:
    FreeBSD 4.1.1 (hawkwind)
2000-11-09 16:47:59 -05:00
Quincey Koziol
95445613ca [svn-r2699] Purpose:
Bug fix
Description:
    "Time" datatypes (H5T_UNIX_D*) were not being stored and retrieved in
    the datatype object header message correctly.
Solution:
    Store endian-ness and precision in the datatype object header message and
    added test to continue to track them working correctly.

    This fixes bug #512.

Platforms tested:
    FreeBSD 4.1.1 (hawkwind)
2000-10-19 11:42:33 -05:00
Thomas Radke
90a95467e6 [svn-r2561] Purpose:
Add the Stream VFD test program to the 'make check' targets.

Description:
     Added stream_test to the TEST_PROGS variable and a rule to build it.
2000-09-15 06:54:06 -05:00
Bill Wendling
7bedd301a0 [svn-r2539] Removed the -R$(ZLIB_DIR) flag since that is now being taken care of much
more nicely in the config/commence file...
2000-09-12 02:55:38 -05:00
Bill Wendling
32bdf68ff8 [svn-r2529] Added a -R<directory> flag to the LT command line. If we compile with
zlib, and zlib isn't in our LD_LIBRARY_PATH or in a standard system
library place (/usr/lib or /lib), then the tests can't run. This fixes it
if the person configures the source with the flag:

	--with-zlib=/usr/fnord/include,/usr/fnord/lib

This only works if you're pointing to the shared library version in the
above flag...
2000-09-08 18:02:10 -05:00
Chee-Wai Lee
e26f4e5eed [svn-r2264] Added Thread-safe feature. This is the phase 1 implementation
that all HDF5 API functions are protected by a mutex lock. Basically,
serialized all API calls.  To use it, use
configure --enable-threadsafe --with-pthread
2000-05-18 14:13:33 -05:00
Quincey Koziol
04152995a9 [svn-r2222] Added TBBT testing code. 2000-05-08 18:09:09 -05:00
Quincey Koziol
ccca207708 [svn-r2142] Re-added titerate.c to makefile... 2000-04-13 12:03:59 -05:00
Raymond Lu
10a6fb73ee [svn-r2138] Add SRB as a new VFL, these are its testing programs. 2000-04-13 10:17:14 -05:00
Quincey Koziol
1300bf5d8c [svn-r2082] Added additional group & attribute iteration tests. 2000-04-05 15:51:44 -05:00
Raymond Lu
173c0b6fe5 [svn-r1925] DPSS is checked in. 1999-12-21 17:17:55 -05:00
Robb Matzke
eb8747499d [svn-r1802] Changes since 19991019
----------------------

./MANIFEST
./configure.in
./configure			[REGENERATED]
	Added more checking for `make' features.

./Makefile.in
./doc/Makefile.in
./doc/html/Makefile.in
./doc/html/Tutor/Makefile.in
./examples/Makefile.in
./pablo/Makefile.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
./config/commence.in
./config/conclude.in
./config/depend.in		[REMOVED]
./config/depend1.in		[NEW]
./config/depend2.in		[NEW]
./config/depend3.in		[NEW]
./config/depend4.in		[NEW]
./config/dependN.in		[NEW]
	The directory search stuff was moved into commence.in, thereby
	shortening the Makefile.in prologues.

./doc/html/Dependencies		[NEW]
./doc/html/Tutor/Dependencies	[NEW]
./examples/Dependencies		[NEW]
./src/Dependencies		[NEW]
./test/Dependencies		[NEW]
./testpar/Dependencies		[NEW]
./tools/Dependencies		[NEW]
	The `.distdep' files were all renamed to `Dependencies' to make them
	more obvious. They are required (but may be empty) in every directory
	that has a Makefile.in that ends with @CONCLUDE@ (you'll get an
	obvious error from make if you forgot to create one).

./bin/trace
./src/H5.c
	Added H5E_major_t and H5E_minor_t although tracing only prints the
	integer value.

./src/H5E.c
./src/H5Epublic.h
	Added tracing information.

./src/H5FDcore.c
./src/H5FDfamily.c
./src/H5FDgass.c
./src/H5FDmpio.c
./src/H5FDsec2.c
./src/H5FDstdio.c
	Fixed places where FUNC_LEAVE() evaluated it's argument more than
	once.

	Added tracing information.

	Wrapped long lines.

./config/gnu-flags
	Fixed a syntax error when we don't have a gnu compiler.
1999-11-01 10:21:16 -05:00
Quincey Koziol
523f5cebb2 [svn-r1690] Added VL string test code. 1999-09-28 19:30:47 -05:00