3890 Commits
Author SHA1 Message Date
Dana Robinson b8a06b51f1 Remove version number from h5repack test plugin (#5011) 2024-10-26 07:11:22 -05:00
Allen Byrne 01957b6cb1 Certain versions of VS produce rounding errors in tfloatsattr (#5000) 2024-10-24 15:26:57 -05:00
Quincey Koziol 97e1ed4fc8 Refactor allocation of API context (#4942)
Since each API context is local to a thread, use the stack to
store the context instead of allocating & releasing it each time.
This improves performance (slightly), reduces alloc/free calls,
and eliminates the H5FL package from the push & pop operations,
which helps simplify threadsafe operation.

One effect of this change is that the H5VLstart_lib_state /
H5VLfinish_lib_state API routines for pass through connector
authors now require a parameter that can be used to store
the library's context. It was probably a mistake to assume
that these two routines would not do this previously, so this
is essentially a bug fix for them.

Some other minor things:

 * Added API context push+pop operations to cache tests
  (I'm not actually certain why this was working before) and
  a few other places
* Cleaned up a bunch of warnings in test code (calloc args, mainly)
* Made header file inclusions more standard in some source files
2024-10-24 10:09:22 -07:00
Allen Byrne 1b72a1bca0 Add support for native zlib-ng in the library and compression references (#4935)
* Correct compile defs for zip_perf program
2024-10-23 16:20:15 -05:00
Dana Robinson 245bb2cd23 Remove some Solaris Studio work-arounds (#4979)
Solaris Studio hasn't been updated in almost a decade and the last
version (12.4, circa 2015) doesn't seem to fully support C11.

This PR removes some work-arounds for things like __attribute__()
support.
2024-10-20 12:47:52 -07:00
Dana Robinson 7f1e49206d Renamed COPYING to LICENSE (#4978)
This is where most people will expect to find license information. The
COPYING_LBNL_HDF5 file has also been renamed to LICENSE_LBNL_HDF5.
The licenses are unchanged.
2024-10-18 21:13:04 -07:00
Dana Robinson 54f8f12ed9 Update clang-format to 17 (#4931)
Also bump the clang-format GitHub actions to 17
2024-10-04 19:49:35 -07:00
Quincey Koziol 767282f68a VOL refactor and cleanup (#4856)
Cleanup and prepare for thread-safety changes.

Big ideas:

* Wrap H5VL_class_t with H5VL_connector_t, so use of the class can be refcounted within the H5VL package, instead of relying on storing an ID within the H5VL_t struct and incrementing & decrementing the ID's refcount.
* Register H5VL_connector_t* for VOL connector IDs, instead of the H5VL_class_t*
* Stop other packages from rummaging around inside H5VL_connector_t and H5VL_object_t data structures, so that the H5VL package can change implementation details without coupled changes throughout the library

Small things:

* Simplified the coding for creating links
* Moved some routines into more logical locations
2024-10-03 12:19:33 -07:00
Allen Byrne a429e46b9d Correct comment in h5repack help 2024-10-02 19:53:38 -05:00
Allen Byrne 07756c87f5 Update develop to 1.18 API 2024-10-02 19:53:38 -05:00
Larry Knox 698ee8e439 Set develop branch version to 1.17.0. (#4912) 2024-10-02 12:28:19 -05:00
H. Joe Lee 7d40520a55 Remove Windows oneAPI warning for %ld formatting (#4876) 2024-09-25 12:07:20 -05:00
Allen Byrne 0737d0dbf7 Correct URLs in documentation (#4823) 2024-09-12 22:46:58 -05:00
Allen Byrne bca2806055 Update URL documentation links to support site (#4781) 2024-08-29 16:27:44 -05:00
H. Joe Lee 8b3041f3a3 Fix macro redefined warnings (#4744)
Removes a duplicated HDopen macro from the performance testing programs
2024-08-22 09:12:59 -07:00
Allen Byrne f77b70859f Rework Dynamic Analysis and sanitize testing (#4681)
* Ignore predetermined failing test and check pointer before use

* Rework Analysis process
2024-08-05 09:53:53 -05:00
Scot Breitenfeld 26f052c6f2 Warning fix (#4682)
* warning fix

* warning fix
2024-08-01 11:17:06 -05:00
Allen Byrne f8069fa850 Add tools usage text as doxygen for Tools UG (#4602) 2024-07-15 09:43:20 -05:00
Allen Byrne bbdebee600 These two generators create strings without NUL for testing (#4608) 2024-06-26 20:40:35 -07:00
Allen Byrne 162f01292c Rework the TestExpress usage and refactor dead code (#4590) 2024-06-20 14:01:43 -07:00
Allen Byrneandgithub-actions e7796a60d2 Add page buffer cache command line option to tools (#4562)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-19 07:38:30 -05:00
Dana Robinson f44fa558f2 Clean up off_t --> HDoff_t stragglers (#4555)
* off_t --> HDoff_t in test

* off_t --> HDoff_t in h5ls, h5dump, & h5repack

* Minor off_t tweak to configure.ac

* off_t --> HDoff_t fixes in src

This changes the type of the offset parameter in H5Pget_external()
to HDoff_t to match H5Pset_external(), along with other minor tweaks.

* off_t --> HDoff_t in C++ wrappers

* Fix off_t usage in Java wrapper
2024-06-07 17:25:06 -07:00
Allen Byrne 1dc0b67715 Adjust h5repack userblock option to allow reserve size (#4544) 2024-06-05 16:18:12 -05:00
Allen Byrne 552510e906 Add option to use zlib-ng as zlib library (#4487) 2024-06-04 09:44:13 -07:00
jhendersonHDF 8897e25b00 Fix spelling (#4522) 2024-05-23 16:44:33 -05:00
Allen Byrne 9ad5f7e3a9 Use ADD_H5_ERR_TEST to not compare output (#4464) 2024-05-06 16:33:09 -05:00
Allen Byrne ea3a3a25f1 Remove use of err files in autotools test scripts (#4461) 2024-05-06 08:31:39 -05:00
jhendersonHDF 6114d1adfb Fixes and cleanup for ph5diff (#4460)
* Fixes and cleanup for ph5diff

Fixes concurrency issues in ph5diff that can cause interleaved
output

Fixes an issue where output can sometimes be dropped if it ended
up in ph5diff's output overflow file

Fixes an issue where MPI_Init is called after HDF5 has been
initialized, preventing the library from setting up an MPI
attribute to perform cleanup on MPI_Finalize

Fixes an issue in config/cmake/runTest.cmake where the CMake
logic would try to access an invalid list index if the number
of lines in a test's output and reference files don't match

* Add release note
2024-05-03 15:00:15 -05:00
Allen Byrne 1b6ae84d15 Convert ERR test to use grep (#4451)
* Convert ERR test to use grep
* Eliminate use of .err files in CMake
* Show error output if grep fails
* Turn off cuda in NVHPC CI
2024-05-03 03:29:53 -07:00
vchoi-hdfgroup b23affc2a6 Fix for github issue #3790: infinite loop closing library (#4445)
* Fix for github issue #3790: infinite loop closing library
Cause of the problem:
When h5dump tries to open the user provided test file, the metadata cache will
call the "get_final_load_size" callback to find out the actual size of the
the root object header.  The callback function will call
H5O__prefix_deserialize() to allocate space for the object header
data structure (via H5FL_CALLOC) and to deserialize the object header prefix
in order to find the actual size of the object header.
The metadata cache will then check whether the actual size obtained
will exceed the file's EOA.
Since the actual size obtained from the test file exceeds the EOA,
the metadata cache throws an error and return.
However, the oh structure that was allocated in H5O__prefix_deserialize()
was not freed and hence causing the problem described in this issue.
Fix:
1) Deallocate the oh structure after obtaining and saving the needed
information in udata which will be used later on in the "verify_chksum" callback.
2) Deserialize the object header prefix in the "object header's
"deserialize" callback regardless.  The original coding intends to keep the
deserialized prefix so that the object header's "deserialize" callback
does not need to deserialize the prefix again if the object header is coming
through the "get_final_load_size" callback.
2024-04-30 07:21:08 -05:00
Quincey Koziol 0ce1a96b4e Don't print thread ID when the library isn't multithreaded. (#4428)
Corresponding changes to make error output for regression tests agnostic
to thread setting.

Signed-off-by: Quincey Koziol <quincey@koziol.cc>
2024-04-24 08:32:28 -07:00
jhendersonHDF b929dbd312 Fix use of possibly uninitialized memory in h5repack (#4354) 2024-04-08 15:47:32 -07:00
Dana Robinson 4dbaec7991 Remove HD from last non-win32 C89 functions (#4348)
Removes the HD prefix from the last C89 functions with no special
Windows equilvalent:

* rename
* rewind
* setbuf
* signal
* tmpfile
2024-04-08 07:58:13 -07:00
Dana Robinson 2f4372104a Remove #undef ERR from H5private.h (#4346)
This is an old work-around that is no longer necessary.

The only place where we defined ERR is in h5import, and that code
has been updated (in this PR) to rename ERR to INVALID_TOKEN.
2024-04-08 07:57:42 -07:00
Dana Robinson a99d620172 Clean up random number generator code (#4338)
* Clean up random number generator code

Depending on the platform, we use a mix of random, rand, and rand_r
to generate pseudo-random numbers, along with a messy set of ifdefs
in H5private.h. We are not a cryptographic library, only use random
numbers in our test code, and have no need for anything more than the
C standard's (s)rand(). There's no point dithering about using rand()
vs random() when we're also doing bad things like using mod to
restrict the range, which introduces bias.

Also removes CMake/configure checks for rand_r and random

* Remove random/rand_r checks from build system

* Fix missed HDrandom after GitHub merge
2024-04-07 15:15:25 -07:00
Dana Robinson 0de523bc42 Remove HD macros for C time functions (#4337)
* HDasctime
* HDclock
* HDctime
* HDdifftime
* HDgmtime
* HDlocaltime
* HDmktime
* HDtime
* HDtzset

HDgettimeofday will be done later
2024-04-07 14:09:23 -07:00
jhendersonHDF ce53bc020d Fixes for file format security issues (#4283) 2024-03-31 22:44:18 -05:00
Dana Robinson 80fc8558b0 Fix off_t straggers (#4291)
Convert off_t to HDoff_t (mainly for Windows):

* h5jam
* h5unjam
* chunk_info test
2024-03-31 12:12:26 -07:00
Dana Robinson 136739b37a File format security issues (#4234) 2024-03-27 13:12:32 -07:00
jhendersonHDF 638c4d901f Fix an issue with type size assumptions in h5dumpgentest (#4222) 2024-03-24 15:13:46 -05:00
jhendersonHDF 86ca181bd8 Fix 'make check-vfd' target for Autotools (#4211)
Changes Autotools testing to use HDF5_TEST_DRIVER environment
variable to avoid running tests that don't work well with several
VFDs

Restores old h5_get_vfd_fapl() testing function to setup a FAPL
with a particular VFD

Adds a macro for the default VFD name
2024-03-22 21:31:16 -05:00
Dana Robinson 15608c00b5 Call memset before stat calls (#4202)
The buffers passed to stat-like calls are only partially filled in by
the call, leaving ununitialized memory areas when the stat buffers are
created on the stack.

This change memsets the buffers to 0 before the stat calls, quieting
the -fsanitze=memory complaints.
2024-03-21 05:31:30 -07:00
Allen Byrne 977f4aab14 h5diff compares attribute data like dataset data (#4191)
Updates tools docs to indicate that dataset and attribute data are compared in the same way
2024-03-20 10:54:44 -07:00
jhendersonHDF 330b80a266 Add support for _Float16 16-bit floating point type (#4065)
Fixed some conversion issues with Clang due to problematic undefined
behavior when casting a negative floating-point value to an integer

Fixed a bug in the library's software integer to floating-point
conversion function where a user's conversion exception function
returning H5T_CONV_UNHANDLED in the case of overflows would result in
incorrect data after conversion

Added configure checks for functions and macros related to _Float16
usage since some compilers expose the datatype but not the functions or
macros

Fixed a dt_arith test failure when H5_WANT_DCONV_EXCEPTION isn't defined

Fixed a few warnings from not explicitly casting some _Float16 variables
upwards
2024-03-18 21:36:46 -07:00
Allen Byrne 50a6522322 Change compression tests reference files to use masking for compression ratios (#4083)
Rework TEST_FILTER tests to handle slightly different compression ratios
2024-03-10 16:43:37 -07:00
Dana Robinson f0ba8baa0d Minimize use of abort() (#4110)
The abort() call is used at several places where it probably shouldn't.
2024-03-10 12:42:16 -07:00
jhendersonHDF ef401a5f5e Refactor datatype conversion code to use pointers rather than IDs (#4104)
The datatype conversion code previously used IDs for the source and
destination datatypes rather than pointers to the internal structures
for those datatypes. This was mostly due to the need for an ID for these
datatypes that can be passed to an application-registered datatype
conversion function or datatype conversion exception function. However,
using IDs internally caused a lot of unnecessary ID lookups and hurt
performance of datatype conversions in general. This was especially
problematic for compound datatype conversions, where the ID lookups were
occuring on every member of every compound element of a dataset. The
code has now been refactored to use pointers internally and only create
IDs for datatypes when necessary.

Fixed a test issue in dt_arith where a library datatype conversion
function was being cast to an application conversion function. Since the
two have different prototypes, this started failing after the parameters
for a library conversion function changed from hid_t to H5T_t * and an
extra parameter was added. This appears to have worked coincidentally in
the past since the only different between a library conversion function
and application conversion function was an extra DXPL parameter at the
end of an application conversion function

Fixed an issue where memory wasn't being freed in the h5fc_chk_idx test
program. Even though the program exits quickly after allocating the
memory, it still causes failures when testing with -fsanitize=address
2024-03-09 23:47:31 -08:00
Dana Robinson 0ea1d7280b Clean up off_t usage (#4095)
* Add comments to C++ and Fortran API calls that use off_t
* Remove noise casts for small integers
2024-03-09 09:06:10 -08:00
H. Joe Lee 1a05563183 Add subfiling for h5dump filedriver option help message (#3878) 2024-03-08 13:39:33 -08:00
Allen Byrne 0be892585a Rename incorrectly named option (#4067)
* Rename incorrectly named option

* Restore the correct uses of USING_MEMCHECKER

* Update release note
2024-03-05 09:07:16 -08:00