Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/HDFGroup/hdf5.git into d…
Browse files Browse the repository at this point in the history
…evelop-tools-move
  • Loading branch information
byrnHDF committed Sep 22, 2023
2 parents ed524a7 + e64c946 commit c7dd68a
Show file tree
Hide file tree
Showing 19 changed files with 39 additions and 58 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/linux-nvhpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
export OMPI_FC=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin/nvfortran
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/cuda/12.2/lib64:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/lib
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/comm_libs/openmpi4/bin:/opt/nvidia/hpc_sdk/Linux_x86_64/23.7/compilers/bin:$PATH
cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON
cmake -B build -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_BUILD_FORTRAN:BOOL=ON
cat build/CMakeCache.txt
cmake --build build
ctest --test-dir build --output-on-failure
2 changes: 2 additions & 0 deletions .github/workflows/main-auto-par.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ jobs:
--with-default-api-version=v114 \
--enable-shared \
--enable-parallel \
--enable-subfiling-vfd \
--disable-cxx \
--disable-fortran \
--disable-java \
Expand Down Expand Up @@ -111,6 +112,7 @@ jobs:
--with-default-api-version=v114 \
--enable-shared \
--enable-parallel \
--enable-subfiling-vfd \
--disable-cxx \
--disable-fortran \
--disable-java \
Expand Down
2 changes: 1 addition & 1 deletion c++/src/H5DcreatProp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ DSetCreatPropList::setFilter(H5Z_filter_t filter_id, unsigned int flags, size_t
///\exception H5::PropListIException
///\par Description
/// Deletes a filter from the dataset creation property list;
/// deletes all filters if \a filter_id is \c H5Z_FILTER_NONE.
/// deletes all filters if \a filter_id is \c H5Z_FILTER_ALL.
//--------------------------------------------------------------------------
void
DSetCreatPropList::removeFilter(H5Z_filter_t filter_id) const
Expand Down
5 changes: 5 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -4206,6 +4206,11 @@ AC_CONFIG_FILES([Makefile
hl/fortran/examples/run-hlfortran-ex.sh])

AC_CONFIG_FILES([utils/subfiling_vfd/h5fuse.sh], [chmod +x utils/subfiling_vfd/h5fuse.sh])
if test -n "$TESTPARALLEL"; then
if test "X$SUBFILING_VFD" = "Xyes"; then
AC_CONFIG_LINKS([testpar/h5fuse.sh:utils/subfiling_vfd/h5fuse.sh])
fi
fi

AC_CONFIG_COMMANDS([.classes], [], [$MKDIR_P java/src/.classes;
$MKDIR_P java/test/.classes;
Expand Down
38 changes: 0 additions & 38 deletions doxygen/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -913,35 +913,6 @@ USE_HTAGS = NO

VERBATIM_HEADERS = NO

# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO.

CLANG_ASSISTED_PARSING = NO

# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.

CLANG_OPTIONS =

# If clang assisted parsing is enabled you can provide the clang parser with the
# path to the compilation database (see:
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files
# were built. This is equivalent to specifying the "-p" option to a clang tool,
# such as clang-check. These options will then be passed to the parser.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake.

CLANG_DATABASE_PATH =

#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
Expand Down Expand Up @@ -1080,15 +1051,6 @@ HTML_COLORSTYLE_SAT = 100

HTML_COLORSTYLE_GAMMA = 80

# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
# to YES can help to show when doxygen was last run and thus if the
# documentation is up to date.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_TIMESTAMP = YES

# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
# are dynamically created via JavaScript. If disabled, the navigation index will
Expand Down
2 changes: 1 addition & 1 deletion doxygen/dox/ExamplesAPI.dox
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Navigate back: \ref index "Main" / \ref GettingStarted
The C, FORTRAN and Java examples below point to the examples in the hdf5-examples github repository. Examples for older versions of HDF5
are handled by setting the appropriate USE_API_xxx definition. HDF5-1.6 examples are in a "16"-named subdirectory.

The Java examples are in the HDF5-1.10 source code, and the Java Object package examples are in the HDFView source.
The Java examples are in the develop source code, and the Java Object package examples are in the HDFView source.
<em>Please note that you must comment out the "package" statement at the top when downloading a Java Object example individually.</em>

The MATLAB and Python examples were generously provided by a user and are not tested.
Expand Down
3 changes: 3 additions & 0 deletions fortran/src/H5Aff.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1131,6 +1131,9 @@ END FUNCTION H5Aopen_by_idx
attr_id = INT(H5Aopen_by_idx(loc_id, c_obj_name, INT(idx_type, C_INT), INT(order, C_INT), n, &
aapl_id_default, lapl_id_default), HID_T)

hdferr = 0
IF(attr_id.LT.0) hdferr = -1

END SUBROUTINE h5aopen_by_idx_f

!>
Expand Down
2 changes: 1 addition & 1 deletion fortran/testpar/CMakeTests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
##############################################################################
##############################################################################
add_test (NAME MPI_TEST_FORT_parallel_test COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:parallel_test> ${MPIEXEC_POSTFLAGS})
add_test (NAME MPI_TEST_FORT_subfiling_test COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:subfiling_test> ${MPIEXEC_POSTFLAGS})
add_test (NAME MPI_TEST_FORT_subfiling_test COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:subfiling_test> ${MPIEXEC_POSTFLAGS})
2 changes: 1 addition & 1 deletion java/src/hdf/hdf5lib/H5.java
Original file line number Diff line number Diff line change
Expand Up @@ -8607,7 +8607,7 @@ public synchronized static native boolean H5Pall_filters_avail(long dcpl_id)
* @ingroup JH5P
*
* H5Premove_filter deletes a filter from the dataset creation property list;
* deletes all filters if filter is H5Z_FILTER_NONE
* deletes all filters if filter is H5Z_FILTER_ALL
*
* @param obj_id
* IN: Property list identifier.
Expand Down
4 changes: 4 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,10 @@ New Features

Fortran Library:
----------------

- Fixed an uninitialized error return value for hdferr
to return the error state of the h5aopen_by_idx_f API.

- Added h5pget_vol_cap_flags_f and related Fortran VOL
capability definitions.

Expand Down
3 changes: 3 additions & 0 deletions src/H5FDsubfiling/H5FDioc.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include "H5MMprivate.h" /* Memory management */
#include "H5Pprivate.h" /* Property lists */

#define CANBE_UNUSED(X) (void)(X)

/* The driver identification number, initialized at runtime */
static hid_t H5FD_IOC_g = H5I_INVALID_HID;

Expand Down Expand Up @@ -1223,6 +1225,7 @@ H5FD__ioc_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUS
H5FD_IOC_LOG_CALL(__func__);

assert(file && file->pub.cls);
CANBE_UNUSED(file);
assert(buf);

/* Check for overflow conditions */
Expand Down
1 change: 1 addition & 0 deletions src/H5FDsubfiling/H5FDsubfile_int.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@ H5FD__subfiling__get_real_eof(hid_t context_id, int64_t *logical_eof_ptr)

assert(ioc_rank >= 0);
assert(ioc_rank < n_io_concentrators);
CANBE_UNUSED(ioc_rank);
assert(sf_eofs[i] == -1);

sf_eofs[i] = recv_msg[(3 * i) + 1];
Expand Down
2 changes: 2 additions & 0 deletions src/H5FDsubfiling/H5FDsubfiling_priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,6 @@ H5_DLL herr_t H5FD__subfiling__get_real_eof(hid_t context_id, int64_t *logical_e
}
#endif

#define CANBE_UNUSED(X) (void)(X)

#endif /* H5FDsubfiling_priv_H */
3 changes: 2 additions & 1 deletion src/H5FDsubfiling/H5subfiling_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -1365,7 +1365,8 @@ init_app_layout(sf_topology_t *app_topology, MPI_Comm comm, MPI_Comm node_comm)
if (app_layout->layout[i].node_local_rank == 0)
app_layout->node_count++;

assert(app_layout->node_count > 0);
if (app_layout->node_count <= 0)
H5_SUBFILING_GOTO_ERROR(H5E_VFL, H5E_CANTGET, FAIL, "node count less than or equal to zero");

if (NULL ==
(app_layout->node_ranks = malloc((size_t)app_layout->node_count * sizeof(*app_layout->node_ranks))))
Expand Down
2 changes: 1 addition & 1 deletion src/H5Pocpl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1001,7 +1001,7 @@ H5P_filter_in_pline(H5P_genplist_t *plist, H5Z_filter_t id)
* Function: H5Premove_filter
*
* Purpose: Deletes a filter from the dataset creation property list;
* deletes all filters if FILTER is H5Z_FILTER_NONE
* deletes all filters if FILTER is H5Z_FILTER_ALL
*
* Return: Non-negative on success/Negative on failure
*
Expand Down
2 changes: 1 addition & 1 deletion src/H5Z.c
Original file line number Diff line number Diff line change
Expand Up @@ -1568,7 +1568,7 @@ H5Z_all_filters_avail(const H5O_pline_t *pline)
* Function: H5Z_delete
*
* Purpose: Delete filter FILTER from pipeline PLINE;
* deletes all filters if FILTER is H5Z_FILTER_NONE
* deletes all filters if FILTER is H5Z_FILTER_ALL
*
* Return: Non-negative on success
* Negative on failure
Expand Down
2 changes: 1 addition & 1 deletion test/testframe.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ TestUsage(void)
print_func("verbose controls the amount of information displayed\n");
print_func("exclude to exclude tests by name\n");
print_func("only to name tests which should be run\n");
print_func("begin start at the name of the test givin\n");
print_func("begin start at the name of the test given\n");
print_func("summary prints a summary of test results at the end\n");
print_func("cleanoff does not delete *.hdf files after execution of tests\n");
print_func("help print out this information\n");
Expand Down
6 changes: 2 additions & 4 deletions testpar/t_init_term.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,9 @@ main(int argc, char **argv)

MPI_Finalize();

nerrors += GetTestNumErrs();

/* test if we can initialize the library with MPI being finalized
and create a file serially */
H5open();
VRFY((H5open() >= 0), "H5open succeeded");

if (mpi_rank == 0) {
char filename[1024];
Expand All @@ -54,7 +52,7 @@ main(int argc, char **argv)
file_id = -1;
}

H5close();
VRFY((H5close() >= 0), "H5close succeeded");

if (MAINPROCESS) {
if (0 == nerrors)
Expand Down
14 changes: 7 additions & 7 deletions testpar/t_pread.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const char *FILENAMES[NFILENAME + 1] = {"reloc_t_pread_data_file", "reloc_t_prea

bool pass = true;
static const char *random_hdf5_text = "Now is the time for all first-time-users of HDF5 to read their \
manual or go thru the tutorials!\n\
manual or go through the tutorials!\n\
While you\'re at it, now is also the time to read up on MPI-IO.";

static const char *hitchhiker_quote = "A common mistake that people make when trying to design something\n\
Expand Down Expand Up @@ -359,7 +359,7 @@ generate_test_file(MPI_Comm comm, int mpi_rank, int group_id)

/* Add a userblock to the head of the datafile.
* We will use this to for a functional test of the
* file open optimization. This is superblock
* file open optimization. This superblock
* relocation is done by the rank 0 process associated
* with the communicator being used. For test 1, we
* utilize MPI_COMM_WORLD, so group_rank 0 is the
Expand Down Expand Up @@ -464,7 +464,7 @@ generate_test_file(MPI_Comm comm, int mpi_rank, int group_id)
*
* The global MPI rank is used for reading and
* writing data for process specific data in the
* dataset. We do this rather simplisticly, i.e.
* dataset. We do this rather simplistically, i.e.
* rank 0: writes/reads 0-9999
* rank 1: writes/reads 1000-1999
* rank 2: writes/reads 2000-2999
Expand Down Expand Up @@ -1032,7 +1032,7 @@ test_parallel_read(MPI_Comm comm, int mpi_rank, int mpi_size, int group_id)
*
* The test consists of creating two separate HDF datasets
* in which random text is inserted at the start of each
* file using the 'j5jam' application. This forces the
* file using the 'h5jam' application. This forces the
* HDF5 file superblock to a non-zero offset.
* Having created the two independent files, we create two
* non-overlapping MPI groups, each of which is then tasked
Expand All @@ -1055,13 +1055,13 @@ main(int argc, char **argv)
MPI_Comm group_comm = MPI_COMM_NULL;

/* I don't believe that argv[0] can ever be NULL.
* It should thus be safe to dup and save as a check
* for cmake testing. Note that in our Cmake builds,
* It should thus be safe to duplicate and save as a check
* for CMake testing. Note that in our CMake builds,
* all executables are located in the same directory.
* We assume (but we'll check) that the h5jam utility
* is in the directory as this executable. If that
* isn't true, then we can use a relative path that
* should be valid for the autotools environment.
* should be valid for the Autotools environment.
*/
test_argv0 = strdup(argv[0]);

Expand Down

0 comments on commit c7dd68a

Please sign in to comment.