4199 Commits

Author SHA1 Message Date
Allen Byrne
162f01292c
Rework the TestExpress usage and refactor dead code (#4590) 2024-06-20 14:01:43 -07:00
Dana Robinson
9fe7132fe3
Remove dead H5FD_s3comms_percent_encode_char() (#4591) 2024-06-19 16:22:21 -05:00
Dana Robinson
45711d7c94
Remove magic fields from s3comms structs (#4589) 2024-06-19 13:03:10 -07:00
Dana Robinson
f931c2aed2
Removed unused code from H5FDs3comms.c (#4588)
* H5FD_s3comms_nlowercase()
* H5FD_s3comms_trim()
* H5FD_s3comms_uriencode()
2024-06-19 12:24:13 -07:00
Dana Robinson
a229778142
Cleanup of ros3 test (#4587)
* Removed JS* macro scheme (replaced w/ h5test.h macros)
* Moved curl setup/teardown to main()
* A lot of cleanup and simplification
2024-06-19 08:36:45 -05:00
Quincey Koziol
850d6c8f06
Pause recording errors instead of clearing the error stack (#4475)
An internal capability that's similar to the H5E_BEGIN_TRY / H5E_END_TRY
macros in H5Epublic.h, but more efficient since we can avoid pushing errors on
the stack entirely (and those macros use public API routines).

This capability (and other techniques) can be used to remove use of
H5E_clear_stack() and H5E_BEGIN_TRY / H5E_END_TRY within library routines.

We want to remove H5E_clear_stack() because it can trigger calls to the H5I
interface from within the H5E code, which creates a great deal of complexity
for threadsafe code.  And we want to remove H5E_BEGIN_TRY / H5E_END_TRY's
because they make public API calls from within the library code.

Also some other minor tidying in routines related to removing the use of
H5E_clear_stack() and H5E_BEGIN_TRY / H5E_END_TRY from H5Fint.c
2024-06-18 14:17:43 -07:00
jhendersonHDF
4a0b1b66a5
Allow usage of page buffering for serial file access from parallel HDF5 builds (#4568) 2024-06-13 14:18:31 -05:00
Allen Byrne
539d1756e5
Add compression includes to tests needing zlib support (#4561) 2024-06-12 07:57:58 -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
mattjala
c1b3255c69
Fix typos in context/property documentation (#4550) 2024-06-07 09:04:40 -07:00
Quincey Koziol
12740af4a6
Refactor to reduce code duplication (#4531)
* Update error output w/new routine name
2024-05-30 22:12:30 -05:00
jhendersonHDF
8897e25b00
Fix spelling (#4522) 2024-05-23 16:44:33 -05:00
vchoi-hdfgroup
757ca525a7
Fix for github Issue #1388 can't delete renamed dense attribute with corder tracking enabled (#4462)
* Fix for github issue #1388: can't delete renamed dense attribute with corder tracking enabled

The problem occurs in step 3(b) below which will delete the attribute with corder x
from the creation order index v2 B-tree.

The rename sequence in H5A__dense_rename() occurs in the following order:
1) The old attribute with corder x was removed from the creation order index v2 B-tree
2) The new renamed attribute was inserted via H5A__dense_insert():
(a) insert the attribute with new name j into the name index v2 B-tree
(b) insert the attribute with corder x into the creation order index v2 B-tree
3) The old attribute was removed via H5A__dense_remove():
(a) remove the attribute with old name k from the name index v2 B-tree
(b) remove the attribute with coorder x from the creation order index v2 B-tree

Fix: deactivate the "corder_bt2_addr" field so that H5A__dense_remove()
won't delete the attribute with corder x from the creation order index v2 B-tree.
2024-05-17 11:05:27 -05:00
jhendersonHDF
ac7b5ce314
Fix an issue where compound datatype member IDs can be leaked during conversion (#4459)
Also fixes issues with handling of partially initialized datatypes during library shutdown
2024-05-10 16:28:53 -05:00
Scot Breitenfeld
abf8b01f55
H5R Fortran wrappers and misc. H5R API/DOC updates (#4446)
- Add Fortran H5R APIs:
      h5rcreate_attr_f, h5rcreate_object_f, h5rcreate_region_f,
      h5ropen_attr_f, h5ropen_object_f, h5ropen_region_f,
      h5rget_file_name_f, h5rget_attr_name_f, h5rget_obj_name_f,
      h5rcopy_f, h5requal_f, h5rdestroy_f, h5rget_type_f

    - Fixed function H5Requal actually to compare the reference pointers

      Fixed an issue with H5Requal always returning true because the
      function was only comparing the ref2_ptr to itself.
2024-05-01 05:39:01 -07: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
3876299d75
Split H5Tconv.c into modules by type (#4393)
* Split H5Tconv.c into modules by type

* Add new H5Tconv headers to list of private headers
2024-04-22 12:23:13 -07:00
Allen Byrne
c548657043
Update and use more URL alias (#4413) 2024-04-17 07:56:19 -05: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
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
3db69574f0
Fix h5py testing failure due to invalid datatype IDs (#4321)
Fixes an issue where invalid datatype IDs are passed to application conversion
functions in the case where the top-level conversion function is a library-internal
function that operates on a container-like datatype, but one or more of the
base datatype members are converted with an application conversion function.
2024-04-04 09:55:20 -05:00
H. Joe Lee
c6e26a1da9
Fix typo - differetly (#4311) 2024-04-02 14:55:12 -07:00
Neil Fortner
589f5238fe
Fix problems with background buffers and array datatypes (#4218)
* Fix bug in array conversion with strided background buffer. Convert some
memmove calls to non-overlapping buffers to memcpy.

* Revert inappropriate use of mempy to memmove in H5T__conv_array

* Add testing

* Add RELEASE.txt note and overwrite test case.
2024-03-31 22:49:45 -05:00
Allen Byrne
875fb3e70a
Add missing foreach for VFD and Pasthrough runs (#4292) 2024-03-31 22:43:36 -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
Allen Byrne
6596c3edc3
Add TestExpress=0 workflow (#4281)
* Add TestExpress=0 CI
2024-03-29 14:19:58 -05:00
Dana Robinson
855b95b34b
Relaxed behavior of H5Pset_page_buffer_size() when opening files (#4280)
This API call sets the size of a file's page buffer cache. This call
was extremely strict about matching its parameters to the file strategy
and page size used to create the file, requiring a separate open of the
file to obtain these parameters.

These requirements have been relaxed when using the fapl to open
a previously-created file:

* When opening a file that does not use the H5F_FSPACE_STRATEGY_PAGE
  strategy, the setting is ignored and the file will be opened, but
  without a page buffer cache. This was previously an error.

* When opening a file that has a page size larger than the desired
  page buffer cache size, the page buffer cache size will be increased
  to the file's page size. This was previously an error.

The behavior when creating a file using H5Pset_page_buffer_size() is
unchanged.

Fixes GitHub issue #3382
2024-03-29 11:46:31 -07:00
Dana Robinson
c3d1c7c0ab
CHECK --> CHECK_PTR in tmisc.c (#4274) 2024-03-28 12:07:52 -07:00
Dana Robinson
82442ed983
Clean up test/cmpd_dtransform.c (#4270)
* Clean up test/cmpd_dtransform.c

* Fix uninitialized memory warning from sanitizers
* FAIL_STACK_ERROR --> TEST_ERROR
* Emit output
* Delete test file when done

* Fix typo

* H5Fdelete() --> remove()
2024-03-27 20:26:08 -07:00
H. Joe Lee
ce3784de25
Replace user-define with user-defined (#4261) 2024-03-27 13:55:44 -07:00
Dana Robinson
136739b37a
File format security issues (#4234) 2024-03-27 13:12:32 -07:00
jhendersonHDF
9ea01546b6
Skip userblock test in chunk_info.c for multi-file VFDs (#4249) 2024-03-26 16:17:35 -05:00
jhendersonHDF
9a08e3f476
Fix a minor warning in h5test.c (#4242) 2024-03-25 21:56:34 -05:00
Dana Robinson
fc46c83614
Take user block into account when returning chunk addresses (#4236)
Both H5Dchunk_iter() and H5Dget_chunk_info(_by_coord)() did not take
the size of the user block into account when reporting addresses. Since
the #1 use of these functions is to root around in the file for the raw
data, this is kind of a problem.

Fixes GitHub issue #3003
2024-03-25 19:27:14 -07:00
bmribler
81c811b721
Fix links md files (#4239) 2024-03-25 10:54:31 -05:00
Dana Robinson
ecdb656f08
Clean up types in h5test.c (#4235)
Reduces warnings on 32-bit and LLP64 systems
2024-03-25 08:23:28 -07:00
Dana Robinson
1136ac5268
Use cp -rp in test_plugin.sh (#4233)
When building with debug symbols on MacOS, the cp -p commands in
test_plugin.sh will attempt to copy the .dSYM directories with
debugging info, which will fail since -r is missing.

Using cp -rp is harmless and allows the test to run

Fixes HDFFV-10542
2024-03-25 07:46:12 -05:00
jhendersonHDF
2515bbd922
Fix Java JNI warnings (#4229) 2024-03-24 18:09:05 -07: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
vchoi-hdfgroup
093cca7ae4
Propagate group creation properties to intermediate groups (#4139) 2024-03-22 08:12:14 -07: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
mattjala
e99b0af7e0
Skip vlen IO API test for cache VOL (#4135)
* Fix cache VOL segfault in vlen io test
* Skip vlen IO API test
2024-03-20 10:50:40 -07:00
Dana Robinson
56c527d752
Fixes several MinGW + Autotools issues (#4190)
* Fixes detection of various Windows libraries, etc.
* Corrects alarm(2) configure checks
* Uses Win32 threads by default w/ Pthreads override, if desired
* Set _WIN32_WINNT correctly for MinGW
* Fix setenv(3) wrapper for MinGW, which does not have getenv_s()

MinGW Autotools support is still not Amazing, but this at least
allows the library and tools build and is better about thread-safety
2024-03-20 08:40:09 -07:00
jhendersonHDF
4c0f1468d2
Skip part of dtypes.c _Float16 file size check for certain VFDs (#4182) 2024-03-19 22:06:49 -07:00
jhendersonHDF
c91b3e6168
Remove some H5T_copy calls that are now unnecessary (#4164)
Removes some datatype copying calls that are now unnecessary after
refactoring the datatype conversion code to use pointers internally
rather than IDs

Rewrites the enum conversion function so that it uses cached copies
of the source and destination datatypes in order to avoid modifying
the datatypes passed in

Adds a 'recursive' field to the datatype conversion context which
allows the conversion functions for members of a container datatype
to skip unnecessary repetitive conversion setup code

Changes internal datatype conversion callback functions so that the
source and destination datatype structure pointers are const

Removes some unused and unnecessary internal IDs registered with
H5I_register
2024-03-18 21:44:31 -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
Dana Robinson
344ba97fec
Allow H5Soffset_simple to accept NULL offsets (#4152)
The reference manual states that the offset parameter of H5Soffset_simple()
  can be set to NULL to reset the offset of a simple dataspace to 0. This
  has never been true, and passing NULL was regarded as an error.

  The library will now accept NULL for the offset parameter and will
  correctly set the offset to zero.

  Fixes HDFFV-9299
2024-03-18 06:57:52 -07:00
Dana Robinson
fa44de4cdb
Fix mirror VFD script (#4170)
This had directory problems when running locally.
2024-03-17 18:47:59 -07:00
jhendersonHDF
a56675e12a
Fix some minor warnings (#4165) 2024-03-16 19:43:47 -07:00