Merge branch 'ejh_test_warn' of https://github.com/edwardhartnett/netcdf-c into gh2990-http-vfd-plus-test.wif

This commit is contained in:
Ward Fisher 2024-09-04 16:21:08 -06:00
commit 382ffb8a74
8 changed files with 80 additions and 5 deletions

View File

@ -953,6 +953,11 @@ if(NETCDF_ENABLE_PARALLEL4 AND NETCDF_ENABLE_HDF5)
file(COPY "${netCDF_BINARY_DIR}/tmp/run_par_test.sh"
DESTINATION ${netCDF_BINARY_DIR}/nc_test4
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
configure_file("${netCDF_SOURCE_DIR}/nc_test4/run_par_warn_test.sh.in"
"${netCDF_BINARY_DIR}/tmp/run_par_warn_test.sh" @ONLY NEWLINE_STYLE LF)
file(COPY "${netCDF_BINARY_DIR}/tmp/run_par_warn_test.sh"
DESTINATION ${netCDF_BINARY_DIR}/nc_test4
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
configure_file("${netCDF_SOURCE_DIR}/h5_test/run_par_tests.sh.in"
"${netCDF_BINARY_DIR}/tmp/run_par_tests.sh" @ONLY NEWLINE_STYLE LF)
file(COPY "${netCDF_BINARY_DIR}/tmp/run_par_tests.sh"

View File

@ -2246,6 +2246,7 @@ AC_CONFIG_FILES(dap4_test/findtestserver4.c:ncdap_test/findtestserver.c.in)
AC_CONFIG_FILES(dap4_test/pingurl4.c:ncdap_test/pingurl.c)
AC_CONFIG_FILES([h5_test/run_par_tests.sh], [chmod ugo+x h5_test/run_par_tests.sh])
AC_CONFIG_FILES([nc_test4/run_par_test.sh], [chmod ugo+x nc_test4/run_par_test.sh])
AC_CONFIG_FILES([nc_test4/run_par_warn_test.sh], [chmod ugo+x nc_test4/run_par_warn_test.sh])
AC_CONFIG_FILES([nc_perf/run_par_bm_test.sh], [chmod ugo+x nc_perf/run_par_bm_test.sh])
AC_CONFIG_FILES([nc_perf/run_gfs_test.sh], [chmod ugo+x nc_perf/run_gfs_test.sh])
AC_CONFIG_FILES(nczarr_test/timer_utils.h:unit_test/timer_utils.h)

View File

@ -51,7 +51,13 @@ extern int nc_log_level;
int nc4_hdf5_initialized = 0; /**< True if initialization has happened. */
/**
* @internal Provide a wrapper for H5Eset_auto
* @internal Provide a wrapper for H5Eset_auto.
*
* If preprocessor symbol DEBUGH5 is set (at the top of this file),
* then error messages will be pronted by the h5catch() function. If
* not, a NULL will be passed as the second argument to H5eset_auto2()
* and error messages will not be printed by HDF5.
*
* @param func Pointer to func.
* @param client_data Client data.
*

View File

@ -132,7 +132,9 @@ IF(TEST_PARALLEL4)
build_bin_test(tst_parallel_compress)
build_bin_test(tst_nc4perf)
build_bin_test(tst_mode)
build_bin_test(tst_warn)
build_bin_test(tst_simplerw_coll_r)
build_bin_test(tst_quantize_par)
add_sh_test(nc_test4 run_par_test)
add_sh_test(nc_test4 run_par_warn_test)
ENDIF()

View File

@ -127,8 +127,8 @@ if TEST_PARALLEL4
check_PROGRAMS += tst_mpi_parallel tst_parallel tst_parallel3 \
tst_parallel4 tst_parallel5 tst_nc4perf tst_mode tst_simplerw_coll_r \
tst_mode tst_parallel_zlib tst_parallel_compress tst_quantize_par \
tst_parallel6
TESTS += run_par_test.sh
tst_parallel6 tst_warn
TESTS += run_par_test.sh run_par_warn_test.sh
endif # TEST_PARALLEL4
EXTRA_DIST = run_par_test.sh.in ref_tst_compounds.nc \
@ -145,7 +145,8 @@ tst_specific_filters.sh tst_unknown.sh tst_virtual_datasets.c \
noop1.cdl unknown.cdl tst_broken_files.c ref_bloscx.cdl \
tst_bloscfail.sh tst_fixedstring.sh ref_fixedstring.h5 \
ref_fixedstring.cdl tst_filterinstall.sh tst_filter_vlen.sh \
tst_filter_misc.sh run_zstd_test.sh
tst_filter_misc.sh run_zstd_test.sh run_par_warn_test.sh.in \
ref_tmp_tst_warn_out.txt
CLEANFILES = tst_mpi_parallel.bin cdm_sea_soundings.nc bm_chunking.nc \
tst_floats_1D.cdl floats_1D_3.nc floats_1D.cdl tst_*.nc tmp_*.txt \
@ -160,7 +161,7 @@ testfilter_order.nc crfilterorder.txt rdfilterorder.txt 1 \
tmp_*.txt tmp_*.nc tmp*.dump tmp*.cdl tmp*.txt tmp*.tmp \
tmp_bzip2.c bzip2.nc noop.nc tmp_*.dmp tmp_*.cdl
DISTCLEANFILES = findplugin.sh run_par_test.sh
DISTCLEANFILES = findplugin.sh run_par_test.sh run_par_warn_test.sh
clean-local:
rm -fr testdir_* testset_*

View File

@ -0,0 +1,5 @@
*** Testing for HDF5 extra output
*** Testing create of parallel I/O file...ok.
*** Tests successful!

View File

@ -0,0 +1,20 @@
#!/bin/sh
# This .in file is processed at build time into a shell that runs some
# parallel I/O tests for netCDF/HDF5 parallel I/O. This tests for
# unexpected output from the HDF5 library. See
# https://github.com/Unidata/netcdf-c/issues/3003.
# Ed Hartnett
set -e
if test "x$srcdir" = x ; then srcdir=`pwd`; fi
. ../test_common.sh
echo
echo "Testing MPI parallel I/O with various other mode flags..."
@MPIEXEC@ -n 1 ./tst_warn > tmp_tst_warn_out.txt 2>&1
cat tmp_tst_warn_out.txt
diff -w tmp_tst_warn_out.txt ref_tmp_tst_warn_out.txt

35
nc_test4/tst_warn.c Normal file
View File

@ -0,0 +1,35 @@
/* Copyright 2024
University Corporation for Atmospheric Research/Unidata. */
/* This program tests for undesired HDF5 output in parallel
programs. See https://github.com/Unidata/netcdf-c/issues/3003.
This is intended to be run on one processor only, but with MPI.
Edward Hartnett, 9/2/24
*/
#include "nc_tests.h"
#include "err_macros.h"
#include "netcdf_par.h"
#define FILE_NAME "tst_warn.nc"
int
main(int argc, char** argv)
{
int ncid,varid,dimid;
int retval;
printf("\n*** Testing for HDF5 extra output\n");
MPI_Init(&argc,&argv);
printf("*** Testing create of parallel I/O file...");
if ((retval = nc_create_par(FILE_NAME, NC_CLOBBER|NC_NETCDF4, MPI_COMM_WORLD, MPI_INFO_NULL, &ncid))) ERR;
if ((retval = nc_close(ncid))) ERR;
MPI_Finalize();
SUMMARIZE_ERR;
FINAL_RESULTS;
}