Commit Graph

59 Commits

Author SHA1 Message Date
Quincey Koziol
a9af13d987 [svn-r12890] Description:
Finished implementation of H5Lget_info_by_idx for all cases: old vs. new
group formats, compact vs. dense new link storage, increasing vs. decreasing
vs. native iteration order.

    Also, refactor symbol table "foo by index" routines to be more generic
and share more code by using a single B-tree iteration callback which makes
callbacks to a specific "get <foo>" callback.

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    AIX/32 5.? (copper)
2006-11-10 23:15:27 -05:00
Quincey Koziol
665f42f9e0 [svn-r12878] Description:
Flesh out support for looking up link info by index, some cases for using
dense storage are working now.

Tested on:
    Linux/32 2.6 (chicago)
2006-11-07 15:32:44 -05:00
Quincey Koziol
de285fb909 [svn-r12875] Description:
Fix retrieving name for references to root group.

    Also, move 'ref' test earlier in testing, right after 'getname' test

Tested on:
    Linux/64 2.6 (chicago2)
2006-11-07 12:06:42 -05:00
Quincey Koziol
eb36a96a79 [svn-r12872] Description:
Implement basic framework for H5Lget_info_by_idx and get it working for
creation order indices on compact groups.

    Clean up code a bit.
    
    Close resource link in user-defined link traversal.

Tested on:
    Linux/32 2.6 (chicago)
2006-11-06 22:09:03 -05:00
Quincey Koziol
32cd8f3fcf [svn-r12865] Description:
Change name of H5Lunlink to H5Ldelete, per our design meeting last Friday.

Tested on:
    Linux/32 2.6 (chicago)
2006-11-06 12:44:40 -05:00
Quincey Koziol
5adf1ee1ba [svn-r12864] Description:
Changed H5Lget_linkval() to H5Lget_val(), per our design discussion last
Friday afternoon.

Tested on:
    Linux/32 2.6 (chicago)
2006-11-06 12:05:16 -05:00
Quincey Koziol
d60efe3336 [svn-r12860] Description:
Update H5Iget_name() tests to reflect that the name of the object for an
ID can be found in many more situations now.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
2006-11-03 23:35:54 -05:00
Quincey Koziol
19c9657f7c [svn-r12842] Description:
Refactor generic property list initialization code to put property list
specific routines in property list modules, instead of scattered to the four
winds.  Also, introduce property list class initialization objects, to make
adding new property list classes in the library easier.

    Fix daily test failure by using H5Pget_elink_prefix() API routine instead
of looking at the "raw" generic property list information.

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/C++ & FORTRAN
    Linux/64 2.4 (mir) w/build-all & 1.6 compat
2006-11-01 23:54:19 -05:00
Quincey Koziol
8b52aae45d [svn-r12835] Description:
Change H5Lget_linkinfo() to H5Lget_info() to better align with coming API
changes.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-30 19:45:31 -05:00
Quincey Koziol
5acf9725e0 [svn-r12834] Description:
Uncomment out tests that were accidentally left out.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-30 19:16:11 -05:00
Quincey Koziol
bcda3c2dbf [svn-r12833] Description:
Clean up more warnings...

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-30 19:13:27 -05:00
James Laird
c19a43d854 [svn-r12831] Changed the API for "unpacking" an external link value to take the size of
the linkval buffer, per Elena and Frank's suggestions while revising
the documentation.  Added error checking using this size, as well as a
couple of tests.

Tested on juniper, kagiso, and sol.
2006-10-30 15:24:19 -05:00
Quincey Koziol
780fefb829 [svn-r12830] Description:
Finish internal work necessary to track creation order in v2 B-tree when
group is in "dense" storage form.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-30 15:03:46 -05:00
Quincey Koziol
87411d7b2d [svn-r12827] Description:
Correct typo that was causing tests to fail.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-10-30 10:57:57 -05:00
Quincey Koziol
12edb97078 [svn-r12825] Description:
Rudimentary support for creating creation order index (but not inserting
links in it yet).

Testedon:
    Mac OS X/32 10.4.8 (amazon)
2006-10-30 09:33:14 -05:00
Albert Cheng
e065eee4a8 [svn-r12751] Purpose:
Bug fix (related to 544)

Description:
h5_get_file_size() was coded to return 0 if failed but
file size can be 0.  Changed the failure return value to -1
which is allowed by the returned type of off_t which is a signed
type.
Also changed the checking code of the stat call to just == 0
since that is how it is defined.

Test:
Could test it in heping only.  Both Sol and Copper failed to
compiled due to error in the Direct IO VFD code.
2006-10-11 22:55:06 -05:00
Quincey Koziol
c0c896e724 [svn-r12740] Description:
Update datasets and the layout, attributes and fill-value
object header messages to use the latest version
of the file format flag.

Tested  on:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Linux/32 2.4 (heping)
2006-10-10 15:36:33 -05:00
James Laird
4d8a0f4c54 [svn-r12719] Configured external links to (by default) use the FAPL of the parent
file, rather than H5P_DEFAULT.

This lets them be used with stdio and directio drivers.

Tested on mir and juniper (check-vfd takes a long time!).
2006-10-04 17:40:06 -05:00
Quincey Koziol
a6f6462541 [svn-r12700] Alert:
File format is not stable, don't keep files produced!

Description:
    First stage of checkins modifying the format of groups to support creation
order.  Implement "dense" storage for links in groups.

    Try to clarify some of the symbols for the H5L API.

    Add the H5Pset_latest_format() flag for FAPLs, to choose to use the newest
file format options (including "dense" link storage in groups)

    Add the H5Pset_track_creation_order() flag for GCPLs, to enable creation
order tracking in groups (although no index on creation order yet).

    Remove --enable-group-revision configure flag, as file format issues are
now handled in a backwardly/forwardly compatible way.

    Clean up lots of compiler warnings and other minor formatting issues.

Tested on:
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/FORTRAN & C++
    Linux/64 2.4 (mir) w/enable-v1.6 compa
    Mac OSX/32 10.4.8 (amazon)
    AIX 5.3 (copper) w/parallel & FORTRAN
2006-10-02 05:24:03 -05:00
Elena Pourmal
298dbe5396 [svn-r12659] This is VMS maintenance check-in.
Some of the tests cannot be run on VMS since they try to open
the same file twice.

Solution:
Bypass the tests according to the H5_CANNOT_OPEN_TWICE variable setting.

Platforms tested:
VMS server and heping.
2006-09-11 18:18:29 -05:00
James Laird
0274a5f3a2 [svn-r12627] Skipped links and fheap tests when stdio file driver is used.
These errors should be investigated more thoroughly later.  The underlying
problem in links.c seems to be that files opened multiple times don't share
the same H5F_shared_t struct.  Perhaps identifying when this is the case
would be helpful?

Tested on mir.
2006-08-24 11:09:23 -05:00
James Laird
9edac8a668 [svn-r12623] Added H5Fget_intent() function to get the "intent" of a file (read/write or
read-only).
Added this to external links, so that external files are opened with the
same intent as the source file.
Added tests.
2006-08-23 19:52:21 -05:00
James Laird
75d22ed839 [svn-r12596] Refactored how external files are opened and closed.
Object header locations (H5O_loc_t's) can now "hold open" a file and
decrement its open object count when they close.  This means that
locations (H5O_loc_t's and H5G_loc_t's) should always be freed.

Added more thorough tests to ensure that external files are closed.
2006-08-18 15:48:54 -05:00
Quincey Koziol
8b9f020cb1 [svn-r12544] Description:
Clean up compiler warnings/failures in test/links.c, especially when
--disable-production flag used with --enable-group-revision

    Modify binary dumping in h5dump to clean up files created [a band-aid
solution to not actually creating the files in the srcdir, but better than
just leaving the files around... :-/ ]

Tested:
    FreeBSD 4.11 (sleipnir) (w/ configure flags above)
    Too minor to require h5committest
2006-08-04 15:44:42 -05:00
James Laird
b5724779d0 [svn-r12533] Standardized the way path prefixes are passed to external links using a
LAPL.  Now there are H5Pget and H5Pset functions for "elink_prefixes".
2006-08-03 17:35:58 -05:00
James Laird
59e9037d38 [svn-r12530] Skipped objcopy and links tests when certain file drivers are used. 2006-08-03 12:58:06 -05:00
James Laird
fb4711f6dd [svn-r12529] Fixed a couple of bugs that were causing trouble for Windows builds (not sure
why they weren't on other systems).  Thanks, Kent!
2006-08-03 12:44:16 -05:00
James Laird
3e755623cb [svn-r12528] Added User-Defined links to the library.
Users can create external links using H5L_create_external().  These links
point to an object in another HDF5 file.  Users can alter the behavior of
external links or create new kinds of links by registering callbacks
using the H5L interface.

Added tests, tools support, etc.

Also a number of other, minor changes have been made (some restructuring of
the H5L interface, for instance).

Additional documentation and examples are forthcoming.
2006-08-02 18:41:53 -05:00
James Laird
beb04ae817 [svn-r12519] Fixed "make check-vfd"
"make check-vfd" will now run all tests in the test directory with different
file drivers (at least, all of those tests that use the testing framework's
FAPL).  Tests that fail will be skipped.

This is not a perfect fix, but is better than nothing.

Along with this change, check-vfd should be added to the Daily Tests.
2006-07-31 14:46:16 -05:00
starfire
8db4fe6d16 [svn-r12461] Cleaned up the names of some internal API functions, cleaned up comments,
fixed a few tests that used incorrect names for H5L APIs (formerly hidden behind
H5_GROUP_REVISION ifdefs

Mostly cosmetic changes, tested on mir.
2006-07-10 10:47:58 -05:00
James Laird
801ca2f9cb [svn-r12452] Purpose:
Feature

Description:
Revised Link APIs.

Solution:
New link APIs use H5L*
H5*create_expand do not create links to the objects created; this must
be done manually with H5Llink.
Added APIs to link an object given its ID (H5Llink), to copy links (H5Lcopy),
and changed creation APIs (H5Lcreate_hard and H5Lcreate_soft) and query
API (H5Lget_linkinfo instead of H5Gget_objinfo).
All old APIs are still supported in H5Gdeprec.c .

Platforms tested:
sol, mir, copper

Misc. update:
Forgot to update MANIFEST and release docs.  Will do after checkin.
2006-07-05 14:01:50 -05:00
Quincey Koziol
7be3afb278 [svn-r12440] Purpose:
Code cleanup

Description:
    Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.

Platforms tested:
    None necessary, whitespace only change
2006-06-27 09:45:06 -05:00
Quincey Koziol
2521c4084c [svn-r12254] Purpose:
Anti-feature

Description:
    Revert changes to H5G_stat_t struct, to make it compatible with the 1.6.x
branch again.  The information that was added to the H5G_stat_t struct will
be reported through other API routines.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/C++
    Linux 2.4/64 (mir) w/C++ & Fortran
    Solaris 2.9 (shanti)
2006-04-14 17:21:54 -05:00
Quincey Koziol
a1708eb023 [svn-r11712] Purpose:
New feature

Description:
    Check in baseline for compact group revisions, which radically revises the
source code for managing groups and object headers.

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!

    This initiates the "unstable" phase of the 1.7.x branch, leading up
to the 1.8.0 release.  Please test this code, but do _NOT_ keep files created
with it - the format will change again before the release and you will not
be able to read your old files!!!

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!


Solution:
    There's too many changes to really describe them all, but some of them
include:
    - Stop abusing the H5G_entry_t structure and split it into two separate
        structures for non-symbol table node use within the library: H5O_loc_t
        for object locations in a file and H5G_name_t to store the path to
        an opened object.  H5G_entry_t is now only used for storing symbol
        table entries on disk.

    - Retire H5G_namei() in favor of a more general mechanism for traversing
        group paths and issuing callbacks on objects located.  This gets us out
        of the business of hacking H5G_namei() for new features, generally.

    - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t

    - Lots more...

Platforms tested:
    h5committested and maybe another dozen configurations.... :-)
2005-11-14 21:55:39 -05:00
Quincey Koziol
fefbe61aca [svn-r11304] Purpose:
Code cleanup (sorta)

Description:
    Adjust H5G_stat_t to prepare for eventual "external link" information.
This also puts the information for regular objects and soft links into more
obviously separate places.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-27 08:34:28 -05:00
Quincey Koziol
a8b272ac25 [svn-r11300] Purpose:
Code cleanup

Description:
    Prevent memory leak when too many links are traversed.  Also add test to
traverse too many links.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-25 16:49:31 -05:00
Quincey Koziol
b7d43b0cf0 [svn-r11283] Purpose:
Code cleanup

Description:
    Clean up code somewhat:
        - Move from HDmemset() -> H5G_ent_reset() to clear out group entry info
        - Simplify H5G_unlink() call
        - Use portability macros instead of direct system calls in more places
        - Improve readbility by neatening whitespace, etc.
        - Move some macros into source code module instead of header files

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-20 14:28:40 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Quincey Koziol
0cf3f85cce [svn-r10637] Purpose:
Bug fix/code cleanup

Description:
    Add tests to determine that very long (64K+) object names are working.
Fixed a couple of bugs in h5dump where they weren't...

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-04-21 01:55:42 -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
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
6680e94aeb [svn-r5843] Purpose:
Code cleanup

Description:
    Clean up a few warnings which were showing up with --enable-production
    turned on.

Platforms tested:
    FreeBSD 4.6 (sleipnir) serial & parallel
2002-08-08 12:52:17 -05:00
Quincey Koziol
aefc39ac32 [svn-r5667] Purpose:
Code cleanup

Description:
    Turn on more warnings in the IRIX builds and clean them up.

Platforms tested:
    IRIX64 6.5 (modi4) w/parallel
2002-06-19 07:54:53 -05:00
Raymond Lu
2d2e785e2d [svn-r5293]
Purpose:
    Bug Fix
Description:
    Using "grp1", "grp2" variable names conflicts Windows' internal variable
    definition.
Solution:
    Rename them.
Platforms tested:
    Linux 2.2
2002-04-30 12:09:35 -05:00
Raymond Lu
94f11385a6 [svn-r5273]
Purpose:
    New feature
Description:
    Allow H5Glink and H5Gmove to handle links across different locations.
Solution:
    Added H5Glink2 and H5Gmove2 functions with new parameter of destination
    location.
Platforms tested:
    Linux 2.2(eirene)
2002-04-26 15:34:46 -05:00
Bill Wendling
bfd983e7f4 [svn-r3770] Purpose:
Update
Description:
    Changed includes of the form:

            #include <hdf5_file.h>

    to

            #include "hdf5_file.h"

    so that gcc can pick them up easier without including the system
    header files since we don't care about them.
Platforms tested:
    Linux
2001-04-03 13:09:16 -05:00
Quincey Koziol
a319837a4f [svn-r3326] Purpose:
Clean up warnings
Description:
    The "FAILED" macro is defined by Windows and is causing warnings and
    potential errors when compiled on that platform.
Solution:
    Change our macro from FAILED to H5_FAILED.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2001-01-25 12:03:29 -05:00
Albert Cheng
dd4203674a [svn-r2531] Description:
The "FILENAME" declared extern in h5test.h is not always used.
    It was used in h5_cleanup to remove temporary files created
    during tests.  Not all tests codes have used this routine.
    Indeed, quite a few of test programs do "#define FILENAME ".
    Also, h5_cleanup needs to work in tandem with h5_fixname.
    h5_fixname accepts an explicite base_name argument instead
    of using the global variable FILENAME.  That is cleaner.
Solution:
    Added char *base_name[] as a new argument to h5_cleanup, in
    the same style as h5_fixname.  Removed "extern char *FILENAME..."
    from use.  Also, undo some unnecessary declaration of "char *FILENAME"
    from some tests which don't use it at all (yet).
Platforms tested:
    modi4-64(irix64), arabica(solari2.7), eirene(linux)
    (arabica could not launch tests automatically.  I had to hack
     in LD_LIBRARY_PATH to make them run.)
2000-09-09 19:08:27 -05:00
Robb Matzke
dedc8c37b4 [svn-r944] Changes since 19981120
----------------------

./MANIFEST
./test/Makefile.in
./test/shtype.c		[REMOVED]
	Removed shtype.c because it was all commented out.  Besides,
	these tests are done in dtypes.c now anyway.

./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/links.c
./test/mount.c
./test/mtime.c
./test/unlink.c
	The tests that check the HDF5 API use the h5test support
	functions. For one thing, that means that you can specify the
	file driver that thay use by the HDF5_DRIVER environment
	variable. Possible values are:

	    HDF5_DRIVER='sec2'		Use read() and write()
	    HDF5_DRIVER='stdio'		Use fread() and fwrite()
	    HDF5_DRIVER='core'		Use malloc() and free()
	    HDF5_DRIVER='split'		Split meta and raw data
	    HDF5_DRIVER='family N'	Use file families with each
					member being N megabytes (N
					can be fractional, defaults to
					one).

	Some tests might fail for certain drivers: for instance, the
	mount and link tests fail for the `core' driver because
	they must be able to close and then reopen a file.
1998-11-23 15:40:35 -05:00
Robb Matzke
e0dfe872a0 [svn-r929] Changes since 19981119
----------------------

./test/flush2.c
./test/overhead.c
	Removed carriage-returns inserted by a broken operating system.

./test/big.c
./test/mtime.c
./test/ragged.c
./tools/h5ls.c
	Removed inclusion of <H5config.h>, system header files, and definition
	of __unused__ since this all happens in <H5private.h>.

./test/chunk.c
./test/cmpd_dset.c
./test/dsets.c
./test/dtypes.c
./test/extend.c
./test/external.c
./test/fillval.c
./test/flush1.c
./test/flush2.c
./test/iopipe.c
./test/links.c
./test/mount.c
./test/overhead.c
./test/shtype.c
./test/unlink.c
./tools/h5import.c
./tools/h5repart.c
	Removed inclusion of <H5config.h> since <hdf5.h> includes it.

./test/flush1.c
	Includes <stdlib.h>, protects inclusion of <unistd.h> by using
	HAVE_UNISTD_H instead of STDC_HEADERS.
1998-11-19 13:52:56 -05:00