Commit Graph

49 Commits

Author SHA1 Message Date
Quincey Koziol
427ff7da28 [svn-r9727] Purpose:
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)

Description:
    Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation.  So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.

    I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
    FreeBSD 4.10 (sleipnir) w/threadsafe
    FreeBSD 4.10 (sleipnir) w/backward compatibility
    Solaris 2.7 (arabica) w/"purify options"
    Solaris 2.8 (sol) w/FORTRAN & C++
    AIX 5.x (copper) w/parallel & FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN
    Linux 2.4 (heping) w/FORTRAN & C++


Misc. update:
2004-12-29 09:26:20 -05:00
Albert Cheng
d8f332bcb9 [svn-r9608] Purpose:
Added comment of the fix.

Platforms tested:
only tested in heping as it is only a comment added.
2004-11-30 20:13:29 -05:00
Quincey Koziol
17daa748fa [svn-r9603] Purpose:
Bug fix

Description:
    Correct integer overflow situation for computing the size of a dataset.

Solution:
    Rachet one of the dimensions down far enough that the total size of the
dataset's raw data doesn't overflow a 64-bit int.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    IRIX 6.? (tesla) w/-n32
    Too minor to require h5committest
2004-11-30 15:53:53 -05:00
Robert E. McGrath
3f0abcc71f [svn-r9494] Purpose:
Fix SZIP filter to dynmically detect encoder.

Description:

Solution:
See:
http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf

Changes to library tests, contingent on detecting SZIP encoder.
2004-11-02 14:12:06 -05:00
Raymond Lu
08fde753d9 [svn-r9073] Purpose: bug fix
Description:  The test tried to read a dataset of H5T_STD_I32LE type and verify with the size
of H5T_NATIVE_INT in function test_misc20().  This will fail on some machines like Crays where the
size of H5T_NATIVE_INT is 8 bytes.

Solution:  Changed from H5T_NATIVE_INT to H5T_STD_I32LE.

Platforms tested:  Crays - very simple change.
2004-08-12 10:24:46 -05:00
Quincey Koziol
a5bd3e42ea [svn-r9016] Purpose:
Code cleanup

Description:
    Clean up ifdef's and close leaked ID.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-08-05 00:01:50 -05:00
Elena Pourmal
7de13f9663 [svn-r9014]
Purpose: Small bug fix

Description: When SZIP filter is present but encoding is not enabled
             test_misc21 and h5repack tests failed.

Solution: Those tests should not run in this situation at all.
          Used conditonal compilation to disable the tests.

Platforms tested: sol (today I will enable the daily tests with the szip library
                  that doesn't have encoder for few other platforms)


Misc. update:
2004-08-04 15:27:28 -05:00
Robert E. McGrath
7138ca34a6 [svn-r9010] Purpose:
Tests for SzIP n-bit precision (and other dt's)

Description:
See earlier checkins

Solution:

Platforms tested:

Misc. update:
2004-08-04 11:01:52 -05:00
Quincey Koziol
c4015e03e5 [svn-r8969] Purpose:
Bug fix.

Description:
    Address two problems:
        - The computation of the scanline in the szip filter was being
            performed in the "can apply" callback routine instead of the
            "set local" routine.
        - The routine which allocated all the chunks for an entire dataset
            (which is invoked when the allocation time is early or late,
            rather than incremental) wasn't recording a failed filter in
            the information for the chunk, causing the library to believe
            that the chunk had the filter applied when it really hadn't.

Solution:
    - Move the scanline computation to the "set local" callback.

    - Record the filter mask with each chunk created when allocating them.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/szip
    Too obscure to require h5committest
2004-07-29 22:34:15 -05:00
Quincey Koziol
4c7a64cc73 [svn-r8960] Purpose:
Bug fix

Description:
    Clean up new testfile from earlier checkin.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-07-27 22:16:31 -05:00
Quincey Koziol
8df0288b6d [svn-r8958] Purpose:
Bug fix

Description:
    Always write fill values to chunks when initializing entire B-tree and
any filters are defined.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Too minor to require h5committest
2004-07-27 15:41:57 -05:00
Quincey Koziol
28404e2813 [svn-r8614] Purpose:
Refactor code

Description:
    Move chunk and contiguous cached raw data from file information to dataset
information.  This simplifies a number of internal interfaces, aligns the
code with it's purpose better and should allow more optimizations to the
chunked data I/O performance.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir)
    h5committest
2004-06-05 14:06:24 -05:00
Quincey Koziol
1ec351813b [svn-r8600] Purpose:
Code optimization

Description:
    Don't recompute the internal index value for looking up the chunk in the
hash table, just use the value already computed from iterating through the
chunks.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-31 14:59:59 -05:00
Quincey Koziol
2ce06c3912 [svn-r8590] Purpose:
Code optimization & bug fix

Description:
    When dimension information is being stored in the storage layout message
on disk, it is stored as 32-bit quantities, possibly truncating the dimension
information, if a dimension is greater than 32-bits in size.

Solution:
    Fix the storage layout message problem by revising file format to not store
dimension information, since it is already available in the dataspace.

    Also revise the storage layout data structures to be more compartmentalized
for the information for contiguous, chunked and compact storage.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    h5committest
2004-05-27 15:24:08 -05:00
Raymond Lu
1dad73cae0 [svn-r8331] Purpose: Last step of check-in for Null dataspace
Description:  Mainly are header message changes for dataspace.  In last round
of check-in, a new header message for dataspace to created, which is not a good
way.  Now, there will be no new message for dataspace, but just add the type of
dataspace in the message while increment its version number.  Backward compatibility
is addressed.  The attribute design is modified accordingly.  Took out Null
dataspace test from tmisc.c and put it in th5s.c.


Platforms tested: h5committest
2004-04-08 16:23:19 -05:00
Raymond Lu
e0a446b479 [svn-r8315] *** empty log message *** 2004-04-06 15:08:26 -05:00
Quincey Koziol
987f5d5e4d [svn-r8048] Purpose:
Code cleanup & reorganization

Description:
    Move further in the testing framework cleanup, eliminating all the
global variables (moving them into testframe.c as static variables) from the
testing framework code and moving it into the libh5test.a.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w & w/o thread-safety, c++ & parallel
    h5committested
2004-01-09 20:41:13 -05:00
Quincey Koziol
c44fd88805 [svn-r7932] Purpose:
Add new feature

Description:
    Add new H5I{dec|get|inc}_ref() routines and tests for them.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-12-11 13:26:51 -05:00
Quincey Koziol
b04c09522b [svn-r7582] Purpose:
Bug fix

Description:
    The tests recently added for checking a file's freespace and verifying the
new fields added to the H5G_stat_t structure use H5T_NATIVE_INT as the type for
the datasets and attributes they create.  Because the tests check explicit file
sizes, this causes problems on Crays, where a native int is 64-bit instead of
32-bit.

Solution:
    Change the tests to use H5T_STD_U32LE instead of H5T_NATIVE_INT.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    Cray SV1 (wind)
2003-10-09 11:55:03 -05:00
Quincey Koziol
58c03f79fd [svn-r7561] Purpose:
Feature add

Description:
    Add a few new fields to the H5G_stat_t structure, to allow more information
about the object header to be retrieved.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-10-07 10:27:19 -05:00
Quincey Koziol
c58d85f10e [svn-r7527] Purpose:
Code cleanup

Description:
    Clean up a few loose ends and warnings for the 1.6 compatibility changes
to the error API.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-09-30 11:20:46 -05:00
Raymond Lu
6953e9a010 [svn-r7474] Purpose: Add more test
Description: test fixed-length strings in two ways: array of strings and
    array of character.


Platforms tested: h5committest
2003-09-15 15:06:55 -05:00
Quincey Koziol
303d35202a [svn-r7441] Purpose:
Bug fix

Description:
    The VFL driver ID in a file's access proprty list wasn't being reference
counted correctly, causing the VFL driver to get prematurely closed after
several calls to "H5Pget_access_plist->H5Pclose".

Solution:
    Increment VFL driver ID reference count when copy of file's access property
list is made in H5Pget_access_plist()

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-09-03 21:04:45 -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
4105dfedb9 [svn-r7379] Purpose:
Code cleanup

Description:
    Changed version #'s returned from H5Pget_version from 'int *' to
'unsigned *' since we are never going to be using negative version #'s... :-)

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    too small to need h5committest
2003-08-18 11:29:33 -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
95bf191857 [svn-r7320] Purpose:
Refactored code

Description:
    Chase changes for the 'fileno' and 'objno' fields in H5G_stat_t

Platforms tested:
    h5committested
2003-08-08 14:25:18 -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
Quincey Koziol
e9cc951e03 [svn-r7232] Purpose:
Bug fix

Description:
    When a non-default indexed storage B-tree internal 'K' value is set by the
user, the chunked datasets created in that file (until it is closed) use the
user's 'K' value and the data can be accessed correctly, but the 'K' value is
not stored in the file.
    However, once the file is closed and re-opened, the non-default 'K' value
is lost and the data in the chunked datasets will not be able to be accessed
correctly.

Solution:
    Store the indexed storage B-tree internal 'K' value in the superblock.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-16 09:56:58 -05:00
Quincey Koziol
4e23c80758 [svn-r7181] Purpose:
Version update

Description:
    Removed 1.4 compatibility code in the library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-07 14:02:46 -05:00
Quincey Koziol
300e769567 [svn-r7038] Purpose:
Test bug fix

Description:
    The fill time in a dataset with no fill value information created with an
older version of the library was getting set to H5D_FILL_TIME_ALLOC instead of
the new default H5D_FILL_TIME_IFSET and was causing H5Dcreate() calls with that
dataset creation property list to fail now.

Solution:
    Set the new default in the fill time initialization for missing fill value
information.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-13 15:35:24 -05:00
Quincey Koziol
b8632ce735 [svn-r7029] Purpose:
New feature/Bug fix

Description:
    Add new fill time value - H5D_FILL_TIME_IFSET which writes the fill value
to a dataset if the user has defined one, otherwise not writing the fill value
to the dataset.

Platforms tested:
    FreeBSD 4.8 (sleipnir) serial & parallel
    h5committest
2003-06-11 22:40:34 -05:00
Elena Pourmal
156bf14dbf [svn-r6757]
Purpose: Bug fix

Description: on Cray T90IEEE compact storage test (in test_misc8)
             fails since dataset dimensions are too big; dataset
             will not fit into the message header.

Solution: Reduced dimension sizes from 100 to 50.

Platforms tested: h5committested on arabica and mod4; verbena failed
                  because of the F90 license problem. I tested on verbena
                  by hand and C only; Cray T90IEEE

Misc. update:
2003-04-25 16:39:09 -05:00
Bill Wendling
44022e598c [svn-r6538] Purpose:
Update

Description:
    Updated the Copyright statement

Platforms tested:
    Linux (This change is only in the comments, so I just check that the
    modules still compile)

Misc. update:
2003-03-31 12:59:04 -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
b5e3e19f86 [svn-r6115] Purpose:
Code Cleanup & New Tests

Description:
    tmisc.c:
        Switched from using H5_HAVE_COMPRESSION flag in favor of
        H5_HAVE_FILTER_DEFLATE.

    dsets.c:
        Switched from using H5_HAVE_COMPRESSION flag in favor of
        H5_HAVE_FILTER_DEFLATE.

        Refactored I/O filter tests to allow new filters to be [more] easily
        added.

        Added tests for shuffle & deflate+shuffle I/O filters (if the filter(s)
        are enabled).

        Added test for creating a new dataset with a filter that is not
        available.

        Added test for attempting to read a dataset created with a filter that
        is not available.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
        modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir)
2002-11-20 08:19:37 -05:00
Quincey Koziol
12f8879c40 [svn-r5926] Purpose:
API name change

Description:
    Change all "space time" references to "alloc time", including API functions
    and macro definitions, etc.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/parallel & FORTRAN
2002-09-13 11:57:46 -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
Raymond Lu
d85657351a [svn-r5893]
Purpose:
    bug fix
Description:
    The H5Dget_storage_size test doesn't handle the situation when no
    compression is configured.
Platforms tested:
    IRIX 6.5
2002-08-26 16:01:42 -05:00
Quincey Koziol
caf088c960 [svn-r5887] Purpose:
Regression test for bug fix

Description:
    Adjust selection so chunked data needs to be read from pre-allocated chunks
    w/filters, to verify that filter is applied correctly.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/parallel
2002-08-23 07:43:58 -05:00
Raymond Lu
29da4951f8 [svn-r5879]
Purpose:
    Design for compact dataset
Description:
    Compact dataset is stored in the header message for dataset layout.
Platforms tested:
    arabica, eirene.
2002-08-20 11:18:02 -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
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
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
Quincey Koziol
5883b9d67d [svn-r4965] Purpose:
Bug Fix
Description:
    If a non-zero fill-value is used for a chunked dataset, any non-existent
    chunked read with an "all" selection (or a contiguous hyperslab selection)
    will return zero for those instead of the user's fill-value.
Solution:
    Fixed I/O code to pass down fill-value to "optimized" I/O routines, so it
    will be available to fill the user's buffer with.
Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-02-14 10:57:48 -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