mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
3c86f0f0ce
* 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.
* Remove unused CMake configuration checks (#4199)
* Update link to Chunking in HDF5 page (#4203)
* Fix H5Pset_efile_prefix documentation error (#4206)
Fixes GH issue #1759
* Suggested header footer for NEWSLETTER (#4204)
* Suggested header footer for NEWSLETTER
* Updates
* Add NEWSLETTER.txt to h5vers script
* Fix grammar in README.md release template (#4201)
* Add back snapshot names (#4198)
* Use tar.gz extension for ABI reports (#4205)
* Fix issue with Subfiling VFD and multiple opens of same file (#4194)
* Fix issue with Subfiling VFD and multiple opens of same file
* Update H5_subfile_fid_to_context to return error value instead of ID
* Add helper routine to initialize open file mapping
* Reverts AC_SYS_LARGEFILE change (#4213)
We previously replaced local macros with AC_SYS_LARGEFILE, which is
unfortunately buggy on some systems and does not correctly set the
necessary defines, despite successfully detecting them.
This restores the previous macro hacks to acsite.m4
* Propagate group creation properties to intermediate groups (#4139)
* Add clarification for current behavior of H5Get_objtype_by_idx() (#4120)
* Addressed Fortran issues with promoted integers and reals via compilation flags (#4209)
* addressed issue wit promoted integers and reals
* added option to use mpi_f08
* Summarize the library version table (#4212)
Fixes GH-3773
* Fix URLs (#4210)
Also removed Copyright.html context because it's no longer valid.
* 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
* Revert "Addressed Fortran issues with promoted integers and reals via compil…" (#4220)
This reverts commit 06c42ff038
.
* Backup and clear CMAKE_C_FLAGS before performing _Float16 configure checks (#4217)
* Fix broken links (#4224)
* Fix broken URLs in documentation (#4214)
Fixes GH-3881 partially. There are pages that need to be recreated.
* Avoid file size checks in C++ testhdf5 for certain VFDs (#4226)
* Fix an issue with type size assumptions in h5dumpgentest (#4222)
* Fix issue with -Werror cleanup sed command in configure.ac (#4223)
* Fix Java JNI warnings (#4229)
* Rework snapshots/release workflows for consistent args (#4227)
* Fixed a cache assert with too-large metadata objects (#4231)
If the library tries to load a metadata object that is above the
library's hard-coded limits, the size will trip an assert in debug
builds. In HDF5 1.14.4, this can happen if you create a very large
number of links in an old-style group that uses local heaps.
The library will now emit a normal error when it tries to load a
metadata object that is too large.
Partially addresses GitHub #3762
* Set DXPL in API context for native VOL attribute I/O calls (#4228)
* Initialize a variable in C++ testhdf5's tattr.cpp (#4232)
* Addressed Fortran issues with promoted integers and reals via compilation flags, part 2 (#4221)
* addressed issue wit promoted integers and reals
* fixed h5fcreate_f
* added option to use mpi_f08
* change the kind of logical in the parallel tests
* addressed missing return value from callback
* 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
* Clean up types in h5test.c (#4235)
Reduces warnings on 32-bit and LLP64 systems
* Fix example links (#4237)
* Fix links md files (#4239)
* Add markdown link checker action (#4219)
* Match minimum CMake version to 3.18 (#4215)
191 lines
7.1 KiB
Plaintext
191 lines
7.1 KiB
Plaintext
# Copyright by The HDF Group.
|
|
# All rights reserved.
|
|
#
|
|
# This file is part of HDF5. The full HDF5 copyright notice, including
|
|
# terms governing use, modification, and redistribution, is contained in
|
|
# the COPYING file, which can be found at the root of the source code
|
|
# distribution tree, or in https://www.hdfgroup.org/licenses.
|
|
# If you do not have access to either file, you may request a copy from
|
|
# help@hdfgroup.org.
|
|
#
|
|
# Tests for the swmr feature using virtual datasets.
|
|
|
|
$srcdir = '@srcdir@'
|
|
$utils_testdir=@H5_UTILS_TEST_BUILDDIR@
|
|
$testdir=@H5_TEST_BUILDDIR@
|
|
|
|
###############################################################################
|
|
## test parameters
|
|
###############################################################################
|
|
|
|
$Nwriters = 6 # number of writers (1 per source dataset)
|
|
$Nreaders = 5 # number of readers to launch
|
|
$nerrors = 0
|
|
|
|
###############################################################################
|
|
## definitions for message file to coordinate test runs
|
|
###############################################################################
|
|
$WRITER_MESSAGE = 'SWMR_WRITER_MESSAGE' # The message file created by writer that the open is complete
|
|
# This should be the same as the define in "test/swmr_common.h"
|
|
$MESSAGE_TIMEOUT = 300 # Message timeout length in secs
|
|
# This should be the same as the define in "test/h5test.h"
|
|
|
|
# Print a line-line message left justified in a field of 70 characters
|
|
# beginning with the word "Testing".
|
|
#
|
|
function Test-WithSpaces {
|
|
$SPACES=' '
|
|
#Write-Output "Testing $* $SPACES" | cut -c1-70 | tr -d '\012'
|
|
}
|
|
|
|
# To wait for the writer message file or till the maximum # of seconds is reached
|
|
# $Message is the message file to wait for
|
|
# This performs similar function as the routine h5_wait_message() in test/h5test.c
|
|
function Wait-Message {
|
|
[CmdletBinding()]
|
|
param (
|
|
[Parameter(Mandatory, ValueFromPipeline)]
|
|
[string]$TestPath, # Get the path of the message file to wait for
|
|
[Parameter(Mandatory, ValueFromPipeline)]
|
|
[string]$Message # Get the name of the message file to wait for
|
|
)
|
|
|
|
PROCESS {
|
|
$message = Join-Path -Path $TestPath -ChildPath $Message
|
|
$t0 = Get-Date # Get current time
|
|
$t1 = $t0
|
|
$difft = New-Timespan -Start $t0 -End $t1 # Initialize the time difference
|
|
$mexist = 0 # Indicate whether the message file is found
|
|
while ($difft.TotalSeconds -lt $MESSAGE_TIMEOUT) { # Loop till message times out
|
|
$t1 = Get-Date # Get current time in seconds
|
|
$difft = New-Timespan -Start $t0 -End $t1 # Calculate the time difference
|
|
#Write-Output "Check for $message : time=$difft"
|
|
if ([System.IO.File]::Exists($message)) { # If message file is found:
|
|
$mexist = 1 # indicate the message file is found
|
|
Remove-Item $message # remove the message file
|
|
break # get out of the while loop
|
|
}
|
|
}
|
|
if ($mexist -eq 0) {
|
|
# Issue warning that the writer message file is not found, continue with launching the reader(s)
|
|
Write-Warning -Message "$WRITER_MESSAGE is not found after waiting $MESSAGE_TIMEOUT seconds"
|
|
}
|
|
else {
|
|
Write-Output "$WRITER_MESSAGE is found"
|
|
}
|
|
}
|
|
}
|
|
|
|
###############################################################################
|
|
## Main
|
|
###############################################################################
|
|
|
|
# Check to see if the VFD specified by the HDF5_DRIVER or HDF5_TEST_DRIVER
|
|
# environment variable supports SWMR.
|
|
$testprog = Join-Path -Path $utils_testdir -ChildPath swmr_check_compat_vfd.exe
|
|
$rp = Start-Process -FilePath $testprog -PassThru -Wait -NoNewWindow
|
|
if ($rp.ExitCode -ne 0) {
|
|
Write-Output ""
|
|
Write-Output "The VFD specified by the HDF5_DRIVER or HDF5_TEST_DRIVER"
|
|
Write-Output "environment variable does not support SWMR."
|
|
Write-Output ""
|
|
Write-Output "SWMR acceptance tests skipped"
|
|
Write-Output ""
|
|
exit 0
|
|
}
|
|
|
|
Set-Location -Path vds_swmr_test
|
|
$testdir = Join-Path -Path $testdir -ChildPath vds_swmr_test
|
|
|
|
Write-Output ""
|
|
Write-Output "###############################################################################"
|
|
Write-Output "## Basic VDS SWMR test - writing to a tiled plane"
|
|
Write-Output "###############################################################################"
|
|
|
|
# Launch the file generator
|
|
Write-Output "launch the swmr_generator"
|
|
$rp = Start-Process -FilePath $testdir/vds_swmr_gen.exe -NoNewWindow -PassThru -Wait
|
|
if ($rp.ExitCode -ne 0) {
|
|
Write-Warning "generator had error"
|
|
$nerrors += 1
|
|
}
|
|
|
|
# Check for error and exit if one occurred
|
|
#Write-Output "nerrors=$nerrors"
|
|
if ($nerrors -ne 0) {
|
|
Write-Warning "VDS SWMR tests failed with $nerrors errors."
|
|
exit 1
|
|
}
|
|
|
|
# Launch the writers
|
|
Write-Output "launch the $Nwriters SWMR VDS writers (1 per source)"
|
|
$pid_writers = @()
|
|
$n = 0
|
|
while ($n -lt $Nwriters) {
|
|
$rp = Start-Process -FilePath $testdir/vds_swmr_writer.exe -NoNewWindow -PassThru -ArgumentList "$n" 2>&1 | tee swmr_writer.out.$n
|
|
$pid_writers += $rp.id
|
|
$n += 1
|
|
}
|
|
#Write-Output "pid_writers=$pid_writers"
|
|
|
|
# Sleep to ensure that the writers have started
|
|
Start-Sleep -Seconds 3
|
|
|
|
# Launch the readers
|
|
Write-Output "launch $Nreaders SWMR readers"
|
|
$pid_readers = @()
|
|
$n = 0
|
|
while ($n -lt $Nreaders) {
|
|
$rp = Start-Process -FilePath $testdir/vds_swmr_reader.exe -NoNewWindow -PassThru 2>&1 | tee swmr_reader.out.$n
|
|
$pid_readers += $rp.id
|
|
$n += 1
|
|
}
|
|
#Write-Output "pid_readers=$pid_readers"
|
|
|
|
# Collect exit code of the writers
|
|
foreach ($xpid in $pid_writers) {
|
|
#Write-Output "checked writer $xpid"
|
|
$result = Wait-Process -Id $xpid
|
|
if ($result.ExitCode -ne 0) {
|
|
Write-Warning "writer had error"
|
|
$nerrors += 1
|
|
}
|
|
}
|
|
|
|
# Collect exit code of the readers
|
|
# (they usually finish after the writers)
|
|
foreach ($xpid in $pid_readers) {
|
|
#Write-Output "checked reader $xpid"
|
|
$result = Wait-Process -Id $xpid
|
|
if ($result.ExitCode -ne 0) {
|
|
Write-Warning "reader had error"
|
|
$nerrors += 1
|
|
}
|
|
}
|
|
|
|
# Check for error and exit if one occurred
|
|
#Write-Output "nerrors=$nerrors"
|
|
if ($nerrors -ne 0) {
|
|
Write-Warning "VDS SWMR tests failed with $nerrors errors."
|
|
exit 1
|
|
}
|
|
|
|
###############################################################################
|
|
## Report and exit
|
|
###############################################################################
|
|
cd ..
|
|
#Write-Output "nerrors=$nerrors"
|
|
if ($nerrors -eq 0) {
|
|
Write-Output "VDS SWMR tests passed."
|
|
# if test -z "$HDF5_NOCLEANUP"; then
|
|
# # delete the test directory
|
|
# Remove-Item vds_swmr_test -Recurse
|
|
# fi
|
|
exit 0
|
|
}
|
|
else {
|
|
Write-Warning "VDS SWMR tests failed with $nerrors errors."
|
|
exit 1
|
|
}
|
|
|