* Straightforward conversion of sprintf to the safer snprintf
* Trickier conversion of sprintf to safer snprintf
This involved minor changes to private function signatures to take the size of the buffer.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fixed -Wreserved-id-macro warnings from header include guards
* Removed all __int64 and LL suffix stuff now that C99 is minimum requirement
* Rename `H5FD_CTL__` to `H5FD_CTL_` to fix -Wreserved-id-macro warnings
Double underscore is reserved in C++ and this public header should be C++ compatible.
* Never define __STDC_FORMAT_MACROS anymore
Defining it causes a -Wreserved-id-macro.
Happily, according to the C++11 standard:
"The macros defined by <stdint> are provided unconditionally. In particular, the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in C99 footnotes 219, 220, and 222) play no role in C++."
https://cplusplus.github.io/LWG/issue984
So looks like it's not necessary to define it with reasonably new toolchains.
* Fixed some -Wunused-macros warnings, removed dead code
* Fixed all -Wdouble-promotion warnings in C++ files
* Fixed remaining -Wsuggest-destructor-override warnings
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fix various warnings
* Move HDfree_const to H5private.h for wider use
* Print output from all ranks in parallel tests on allocation failure
* Move const pointer freeing macro to h5test.h for now
* Correct concurrency bugs when running tests, along with a bugfix & small
warning cleanup.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Use the FAPL that was created earlier in the test (and delete an unused
variable). This allows 'make check-vfd' to pass with --enable-mirror-vfd.
* Check for testing directory before creating, to avoid warning from bash.
Clean out .libs directory before re-using it (after a failed test), to
remove any files generated by libtool.
* Committing clang-format changes
* Increment error count on failed file open and skip tests for VFDs that need
modified filenames.
* Skip the mirror VFD for 'make check-vfd' - the mirror VFD requires networking
configuration parameters and can't be provided for an automated test that
is configured with an environment variable.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Added support for vector I/O calls to the VFD layer, and
associated test code. Note that this includes the optimization
to allow shortened sizes and types arrays to allow more space
efficient representations of vectors in which all entries are
of the same size and/or type. See the Selection I/o RFC for
further details.
Tested serial and parallel, debug and production on Charis.
serial and parallel debug only on Jelly.
* ran code formatter
quick serial build and test on jelly
* Add H5FD_read_selection() and H5FD_write_selection(). Currently only
translate to scalar calls. Fix const buf in H5FD_write_vector().
* Format source
* Fix comments
* Added vector read / write support to the MPIO VFD, with associated
test code (see testpar/t_vfd.c).
Note that this implementation does NOT support vector entries of
size greater than 2 GB. This must be repaired before release,
but it should be good enough for correctness testing.
As MPIO requires vector I/O requests to be sorted in increasing
address order, also added a vector sort utility in H5FDint.c This
function is tested in passing by the MPIO vector I/O extension.
In passing, repaired a bug in size / type vector extension management
in H5FD_read/write_vector()
Tested parallel debug and production on charis and Jelly.
* Ran source code formatter
* Minor optimization to vector I/O request sort routine.
Tested parallel / debug on Jelly.
* Add selection I/O to chunk code, used when: not using chunk cache, no
datatype conversion, no I/O filters, no page buffer, not using collective
I/O. Requires global variable H5_use_selection_io_g be set to TRUE.
Implemented selection to vector I/O transaltion at the file driver
layer.
* Fix formatting unrelated to previous change to stop github from
complaining.
* Add full API support for selection I/O. Add tests for this.
* Added "ctl" callback to the VFD interfance, and the associated
H5FDctl() and H5FD_ctl() calls.
Modified the MPIO VFD accordingly -- specifically:
Added ctl() call with op-code support to expose rank, size,
and communicator.
Modified H5FD_mpi_get_rank(), H5FD_mpi_get_size(),
and H5FD_mpi_get_comm() to use the new ctl() callback. In passing
removed the const qualifier from the file parameter of these
functions, as the file parameter of the ctl callback is not
const.
Deleted the old H5FD__mpio_mpi_rank(), H5FD__mpio_mpi_size(), and
H5FD__mpio_communicator() calls from the MPIO VFD.
Deleted H5FD_class_mpi_t from H5FDprivate.h, and modified the
MPIO VFD accordingly. Note that all VFDs now use H5FD_class_t,
with no special class for VFDs that that support MPI.
Some minor touch ups to the Neil's selection I/O mods in passing.
Tested serial and parallel, debug and production on charis and
jelly.
* Implement selection I/O for contiguous datasets. Fix bug in selection
I/O translation. Add const qualifiers to some internal selection I/O
routines to maintain const-correctness while avoiding memcpys.
* Add support for independent parallel I/O with selection I/O. Add
HDF5_USE_SELECTION_IO env var to control selection I/O (default off).
* Implement parallel collective support for selection I/O.
* Fix comments and run formatter.
* Committing clang-format changes
* Run formatter
* Update selection IO branch with develop (#1215)
Merged branch 'develop' into selection_io
* Sync with develop (#1262)
Updated the branch with develop changes.
* Committing clang-format changes
* fixed spelling (#1353)
* Implement big I/O support for vector I/O requests in the MPIO file
driver.
* Committing clang-format changes
* Update dummy file driver in h5test.c to match new struct.
* Fix another outdated H5FD_class_t struct.
* Free arrays in H5FD__mpio_read/write_vector() as soon as they're not
needed, to cut down on memory usage during I/O.
* Committing clang-format changes
* Address comments from code review. Fix const warnings with
H5S_SEL_ITER_INIT().
* Committing clang-format changes
* Fix warnings in selection I/O code
* Refactor H5FD__mpio_read/write_vector() to bring common code for
constructing MPI Datatype into a shared function.
* Committing clang-format changes
* Fix bugs in selection I/O code.
* Fix bugs in selection I/O code
* Address comments from review. Add "version" field to H5FD_class_t
struct and accompanying H5FD_CLASS_VERSION macro.
* Committing clang-format changes
* Committing clang-format changes
* Address comments from selection I/O PR
* Committing clang-format changes
* Fix spelling
* Fix bugs int test/vfd.c
Co-authored-by: mainzer <mainzer#hdfgroup.org>
Co-authored-by: jrmainzer <72230804+jrmainzer@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
* Implement H5ESget_requests() to retrieve request pointers and
corresponding connector IDs from an event set. Add tests for this
function.
* Add "order" parameter to H5ESget_requests, to allow the user to specify
the order in which requests are returned.
* Fix bugs with H5ESinsert_request()
* Change H5ESget_requests() API to have separate input and output
parameters for the allocated array length(s) (in) and the number of events in
the event set (out).
* Fix issue with H5_now_usec() with 32 bit systems. Also improve event
set test.
* Committing clang-format changes
* Add comments to H5_now_usec() explaining rationale for uint64_t casts.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Implemented suggestion in #1380
* fix typo
* Use differently named files in tests
* format fix
* Revise comments
* fic typos
* Change test display and file name
* Avoid using a non-literal formatting string with sprintf in begin_test.
Use snprintf. Don't duplicate a string on the heap unnecessarily.
* Do not deactivate -Wformat-nonliteral: we don't use a nonliteral format
string any more.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Replaced many uses of sprintf with safer snprintf
Many very straightforward, but in a few cases added a length parameter to some private functions, because buffer length was otherwise unknowable.
* Removed unnecessary use of static on small buffers
This improves thread safety.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Remove const from the argv tools/tests main sig.
* also remove const from H5_get_option and parse_command_line.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fix testswmr scripts with utils/test variable
* Change format of configure var assignment
* quote the variable value in configure
* Use sh.in expected var pattern
* Only ref builddir in script
* Create vars for utils/test and test as H5_<path>_BUILDDIR
* Use abs_top_builddir in test scripts
* Change script var to make it easier to read.
* Use @abs_top_builddir@ directly in paths
* Correct typos/comment
* Convert SWMR shell scripts to Windows powershell.
* Use $LastExitCode instead of $? in script
* Prevent execution in a different window
* Github #969 Use stdout instead of file for configure check (#1089)
* Use stdout instead of file for configure check
* Make change requested by #1157
* Change fortran to use stderr for configure
* Correct typo
* remove obsolete file check
* Fortran statement fix
* Don't allow H5Pset(get)_all_coll_metadata_ops for DXPLs (#1201)
* Fixes const warnings in H5ES package (#1211)
* Quiets a 'set but not used' warning in h5diff_array.c (#1210)
* Convert vds swmr test script to powershell
* Enable vdsswmr powershell test
* Add configure vdsswmr statement
* Correct powershell script vars
* Convert SWMR shell scripts to Windows powershell.
* Use $LastExitCode instead of $? in script
* Prevent execution in a different window
* Github #969 Use stdout instead of file for configure check (#1089)
* Use stdout instead of file for configure check
* Make change requested by #1157
* Change fortran to use stderr for configure
* Correct typo
* remove obsolete file check
* Fortran statement fix
* Convert vds swmr test script to powershell
* Enable vdsswmr powershell test
* Add configure vdsswmr statement
* Correct powershell script vars
* Cleanup review issues
* Fix variable assignment
* Change the wait function to pass in the path
* Disable actual test execution until programs fixed
* Adjust copyright text
* Fix spelling
Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org>
Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
* Fixes an assert in H5Pget_filter_by_id1/2 w/ out-of-range IDs
Filter IDs < 0 or > H5Z_FILTER_MAX could trip an assert in the
library due to missing ID range checks in H5Pget_filter_by_id1/2.
The library now returns a normal error code when filter IDs are
out of range. Fixes HDFFV-11286.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Create 2D arrays on the heap by malloc'ing `struct { TYPE arr[ROWS][COLS];
}`. This avoids the double-indirection through pointers and the
additional memory of H5TEST_ALLOCATE_2D_ARRAY().
This change will safely quiet the cast warning that PR #1129 was
intended to fix.
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>