From 31cc60e804403b42eaea71ccc1780d09ed02f469 Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:04:03 -0500 Subject: [PATCH 01/27] CI: Have nc-autotools use source distribution (#1) Instead of a clone of the repository, have the nc-autotools job work from a source distribution prepared by a previous autotools CI job. This should catch most of the "files not included in EXTRA_DIST" or similar issues I remember, and probably most of the "netcdf-c does not pass make distcheck" errors. --- .github/workflows/run_tests_ubuntu.yml | 92 ++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 7 deletions(-) diff --git a/.github/workflows/run_tests_ubuntu.yml b/.github/workflows/run_tests_ubuntu.yml index 816367990..9909e0aa1 100644 --- a/.github/workflows/run_tests_ubuntu.yml +++ b/.github/workflows/run_tests_ubuntu.yml @@ -195,6 +195,19 @@ jobs: run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j if: ${{ success() }} + - name: Create source distribution + shell: bash -l {0} + if: ${{ success() }} + run: make dist -j + + - uses: actions/upload-artifact@v3 + with: + name: netcdf-c-autotools-source-distribution + path: | + *.tar* + *.zip + *.tgz + ## # Parallel ## @@ -448,7 +461,28 @@ jobs: use_nczarr: [ nczarr_off, nczarr_on ] steps: - - uses: actions/checkout@v3 + - uses: actions/download-artifact@v3 + with: + name: netcdf-c-autotools-source-distribution + + - name: Unpack source distribution + shell: bash -l {0} + run: | + if [ -f *.zip ]; + then + unzip *.zip + else + tar xvzf $(ls *.tar* *.tgz *.zip | head -1) + fi + ls -d netcdf-c* + for name in netcdf-c*; + do + if [ -d ${name} ]; + then + cd ${name} + break + fi + done - name: Install System dependencies shell: bash -l {0} @@ -497,11 +531,28 @@ jobs: - name: Run autoconf shell: bash -l {0} - run: autoreconf -if + run: | + for name in netcdf-c*; + do + if [ -d ${name} ]; + then + cd ${name} + break + fi + done + autoreconf -if - name: Configure shell: bash -l {0} run: | + for name in netcdf-c*; + do + if [ -d ${name} ]; + then + cd ${name} + break + fi + done current_directory="$(pwd)" mkdir ../build cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} "${current_directory}/configure" ${ENABLE_HDF5} ${ENABLE_DAP} ${ENABLE_NCZARR} @@ -509,29 +560,56 @@ jobs: - name: Look at config.log if error shell: bash -l {0} - run: cd ../build && cat config.log + run: | + if [ -d ../build ]; + then + cd ../build + else + cd build + fi && cat config.log if: ${{ failure() }} - name: Print Summary shell: bash -l {0} - run: cd ../build && cat libnetcdf.settings + run: | + if [ -d ../build ]; + then + cd ../build + else + cd build + fi && cat libnetcdf.settings - name: Build Library and Utilities shell: bash -l {0} run: | - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make -j + if [ -d ../build ]; + then + cd ../build + else + cd build + fi && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make -j if: ${{ success() }} - name: Build Tests shell: bash -l {0} run: | - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check TESTS="" -j + if [ -d ../build ]; + then + cd ../build + else + cd build + fi && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check TESTS="" -j if: ${{ success() }} - name: Run Tests shell: bash -l {0} run: | - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j + if [ -d ../build ]; + then + cd ../build + else + cd build + fi && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j if: ${{ success() }} nc-cmake: From 375e5105ff8c7bc331a615fb25ca8ca8d78b50bd Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Mon, 2 Oct 2023 10:14:18 -0600 Subject: [PATCH 02/27] Update Release Notes --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c92394242..50c0ea53b 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -7,7 +7,7 @@ This file contains a high-level description of this package's evolution. Release ## 4.9.3 - TBD -* Mitigate the problem of test interference. See [Github #2755](https://github.com/Unidata/netcdf-c/pull/2755). +* Mitigate the problem of remote/nczarr-related test interference. See [Github #2755](https://github.com/Unidata/netcdf-c/pull/2755). * Extend NCZarr to support unlimited dimensions. See [Github #2755](https://github.com/Unidata/netcdf-c/pull/2755). * Fix significant bug in the NCZarr cache management. See [Github #2737](https://github.com/Unidata/netcdf-c/pull/2737). * Fix default parameters for caching of NCZarr. See [Github #2734](https://github.com/Unidata/netcdf-c/pull/2734). From fabd3b2b99de51c4534d36aa2cefc987da4f79e4 Mon Sep 17 00:00:00 2001 From: Peter Hill Date: Mon, 9 Oct 2023 10:47:39 +0100 Subject: [PATCH 03/27] Fix bug with displaying log messages One of the changes in df3636b introduced the ability to filter log messages by level. This fixes a typo that flipped the intended filtering, so that `NCLOGOFF` _enabled_ all messages instead of _disabling_ them. --- libdispatch/nclog.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libdispatch/nclog.c b/libdispatch/nclog.c index 26472fdfe..6f477c18d 100644 --- a/libdispatch/nclog.c +++ b/libdispatch/nclog.c @@ -82,9 +82,11 @@ ncloginit(void) } /*! -Enable/Disable logging. +Enable logging messages to a given level. Set to NCLOGOFF to disable +all messages, NCLOGERR for errors only, NCLOGWARN for warnings and +errors, and so on -\param[in] tf If 1, then turn on logging, if 0, then turn off logging. +\param[in] level Messages above this level are ignored \return The previous value of the logging flag. */ @@ -136,8 +138,9 @@ ncvlog(int level, const char* fmt, va_list ap) const char* prefix; if(!nclogginginitialized) ncloginit(); - if(nclog_global.loglevel > level || nclog_global.nclogstream == NULL) - return; + if(nclog_global.loglevel < level || nclog_global.nclogstream == NULL) { + return; + } prefix = nctagname(level); fprintf(nclog_global.nclogstream,"%s: ",prefix); if(fmt != NULL) { From 5f5f908a9616eefbde5d876176b5efe61b74119b Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Mon, 9 Oct 2023 10:18:04 -0600 Subject: [PATCH 04/27] Remove vestigial file glob stanza --- dap4_test/CMakeLists.txt | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/dap4_test/CMakeLists.txt b/dap4_test/CMakeLists.txt index a44c5eb1d..ab16df629 100644 --- a/dap4_test/CMakeLists.txt +++ b/dap4_test/CMakeLists.txt @@ -78,15 +78,4 @@ ENDIF(ENABLE_TESTS) #FILE(COPY ./cdltestfiles DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}) #FILE(COPY ./rawtestfiles DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}) -## Specify files to be distributed by 'make dist' -FILE(GLOB CUR_EXTRA_DIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.sh -${CMAKE_CURRENT_SOURCE_DIR}/cdltestfiles -${CMAKE_CURRENT_SOURCE_DIR}/rawtestfiles -${CMAKE_CURRENT_SOURCE_DIR}/baseline -${CMAKE_CURRENT_SOURCE_DIR}/baselineraw -${CMAKE_CURRENT_SOURCE_DIR}/baselineremote -#${CMAKE_CURRENT_SOURCE_DIR}/baselinerthredds -${CMAKE_CURRENT_SOURCE_DIR}/baselinehyrax -) -SET(CUR_EXTRA_DIST ${CUR_EXTRA_DIST} CMakeLists.txt Makefile.am) -ADD_EXTRA_DIST("${CUR_EXTRA_DIST}") + From 17a75777014db2c0d4eb8ea1c8f41be416dc0a18 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Mon, 9 Oct 2023 10:51:13 -0600 Subject: [PATCH 05/27] Revert a change made in d3c2cf236 that is proving confounding in MSYS2-based bash environments. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f2ad773f..0191f1454 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2250,7 +2250,7 @@ ENDIF(ENABLE_BASH_SCRIPT_TESTING) MACRO(add_sh_test prefix F) IF(HAVE_BASH) - ADD_TEST(${prefix}_${F} bash "-c" "export srcdir=${CMAKE_CURRENT_SOURCE_DIR};export TOPSRCDIR=${CMAKE_SOURCE_DIR};bash ${CMAKE_CURRENT_BINARY_DIR}/${F}.sh ${ARGN}") + ADD_TEST(${prefix}_${F} bash "-c" "export srcdir=${CMAKE_CURRENT_SOURCE_DIR};export TOPSRCDIR=${CMAKE_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR}/${F}.sh ${ARGN}") ENDIF() ENDMACRO() From 84af03eaa2345a8e4a51b65b6babef20906da89e Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Fri, 13 Oct 2023 11:32:27 -0600 Subject: [PATCH 06/27] Working on the last few s3 issues currently manifesting using S3_INTERNAL and WITH_S3_TESTING on Windows and MSYS2. --- libdispatch/dpathmgr.c | 1 + nczarr_test/run_interop.sh | 4 ++++ nczarr_test/run_notzarr.sh | 5 +++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libdispatch/dpathmgr.c b/libdispatch/dpathmgr.c index 14a6bb1a6..dca9f7f80 100644 --- a/libdispatch/dpathmgr.c +++ b/libdispatch/dpathmgr.c @@ -168,6 +168,7 @@ done: } nullfree(tmp1); clearPath(&inparsed); + //fprintf(stderr,">>> ncpathcvt: inpath=%s result=%s\n",inpath,result); return result; } diff --git a/nczarr_test/run_interop.sh b/nczarr_test/run_interop.sh index 3579c3738..5f85e6b0c 100755 --- a/nczarr_test/run_interop.sh +++ b/nczarr_test/run_interop.sh @@ -1,5 +1,7 @@ #!/bin/sh +set -e + if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../test_common.sh @@ -43,6 +45,7 @@ testcasezip() { } testcases3() { + set -x echo -e "\to Running S3 Testcase:\t$1\t$2" zext=s3 base=$1 @@ -53,6 +56,7 @@ testcases3() { ${NCDUMP} -v "/group_with_dims/var2D" $flags $url > tmp_${base}_${zext}.cdl # Find the proper ref file diff -b ${ISOPATH}/ref_${base}_2d.cdl tmp_${base}_${zext}.cdl + set +x } testallcases() { diff --git a/nczarr_test/run_notzarr.sh b/nczarr_test/run_notzarr.sh index 7eb8a01ac..86bd570da 100755 --- a/nczarr_test/run_notzarr.sh +++ b/nczarr_test/run_notzarr.sh @@ -1,5 +1,6 @@ #!/bin/sh - +#set -x +#set -e if test "x$srcdir" = x ; then srcdir=`pwd`; fi . ../test_common.sh @@ -29,7 +30,7 @@ cp ${srcdir}/ref_notzarr.tar.gz . gunzip ref_notzarr.tar.gz tar -xf ref_notzarr.tar if test "x$FEATURE_S3TESTS" = xyes ; then - ${execdir}/s3util -f notzarr.file/notzarr.txt -u "https://${URL}" -k "/${S3ISOPATH}/notzarr.s3/notzarr.txt" upload + ${execdir}/s3util -f notzarr.file/notzarr.txt -u "https://${URL}" -k "//${S3ISOPATH}/notzarr.s3/notzarr.txt" upload fi echo "Test empty file" From 4bd9c2e8b041c5fb08c1819b8cc6efaaea01f502 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Fri, 13 Oct 2023 15:02:58 -0600 Subject: [PATCH 07/27] Removed leading slash on run_interop in nczarr_test. --- nczarr_test/run_interop.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nczarr_test/run_interop.sh b/nczarr_test/run_interop.sh index 5f85e6b0c..ed2219711 100755 --- a/nczarr_test/run_interop.sh +++ b/nczarr_test/run_interop.sh @@ -52,8 +52,9 @@ testcases3() { mode=$2 rm -f tmp_${base}_${zext}.cdl url="https://${UH}/${UB}/${base}.zarr#mode=${mode},s3" + echo "flags: $flags" # Dumping everything causes timeout so dump a single var - ${NCDUMP} -v "/group_with_dims/var2D" $flags $url > tmp_${base}_${zext}.cdl + ${NCDUMP} -v "group_with_dims/var2D" $flags $url > tmp_${base}_${zext}.cdl # Find the proper ref file diff -b ${ISOPATH}/ref_${base}_2d.cdl tmp_${base}_${zext}.cdl set +x From 54102a3cea32b31b2638a7e5afebad3f8f35c738 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Mon, 16 Oct 2023 14:30:43 -0600 Subject: [PATCH 08/27] Update path in s3sdk shell script unit test. --- unit_test/run_s3sdk.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unit_test/run_s3sdk.sh b/unit_test/run_s3sdk.sh index 4589bcb5f..18073e457 100755 --- a/unit_test/run_s3sdk.sh +++ b/unit_test/run_s3sdk.sh @@ -14,7 +14,7 @@ isolate "testdir_uts3sdk" # Create an isolation path for S3; build on the isolation directory S3ISODIR="$ISODIR" S3ISOPATH="/${S3TESTSUBTREE}" -S3ISOPATH="${S3ISOPATH}/$S3ISODIR" +S3ISOPATH="/${S3ISOPATH}/$S3ISODIR" test_cleanup() { ${CMD} ${execdir}/../nczarr_test/s3util -u "${URL}" -k "${S3ISOPATH}" clear From bce53cae086866bb82cc9354c4716ddb7bb8be5d Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:15:25 -0600 Subject: [PATCH 09/27] Add first script to try to embed cdash scripts into CI. --- .github/workflows/run_tests_cdash.yml | 358 ++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 .github/workflows/run_tests_cdash.yml diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml new file mode 100644 index 000000000..ce79c421a --- /dev/null +++ b/.github/workflows/run_tests_cdash.yml @@ -0,0 +1,358 @@ +### +# Build hdf5 dependencies and cache them in a combined directory. +### + +name: Run Ubuntu/Linux netCDF Tests with CDash + +on: [pull_request, workflow_dispatch] + +jobs: + + build-deps-cdash: + + runs-on: ubuntu-latest + + strategy: + matrix: + hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] + + steps: + - uses: actions/checkout@v3 + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev doxygen openssl + + ### + # Installing libhdf5 + ### + - name: Cache libhdf5-${{ matrix.hdf5 }} + id: cache-hdf5 + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} + + + - name: Build libhdf5-${{ matrix.hdf5 }} + if: steps.cache-hdf5.outputs.cache-hit != 'true' + run: | + set -x + + wget https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.15/src/hdf-4.2.15.tar.bz2 + tar -jxf hdf-4.2.15.tar.bz2 + pushd hdf-4.2.15 + ./configure --prefix=${HOME}/environments/${{ matrix.hdf5 }} --disable-static --enable-shared --disable-fortran --disable-netcdf --with-szlib --enable-hdf4-xdr + make -j + make install -j + popd + + wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$(echo ${{ matrix.hdf5 }} | cut -d. -f 1,2)/hdf5-${{ matrix.hdf5 }}/src/hdf5-${{ matrix.hdf5 }}.tar.bz2 + tar -jxf hdf5-${{ matrix.hdf5 }}.tar.bz2 + pushd hdf5-${{ matrix.hdf5 }} + ./configure --disable-static --enable-shared --prefix=${HOME}/environments/${{ matrix.hdf5 }} --enable-hl --with-szlib + make -j + make install -j + popd + + + build-deps-parallel: + + runs-on: ubuntu-latest + + strategy: + matrix: + hdf5: [ 1.14.0 ] + + steps: + + - uses: actions/checkout@v3 + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev mpich libmpich-dev + + ### + # Installing libhdf5 + ### + - name: Cache libhdf5-parallel-${{ matrix.hdf5 }} + id: cache-hdf5 + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-parallel-${{ runner.os }}-${{ matrix.hdf5 }} + + + - name: Build libhdf5-${{ matrix.hdf5 }}-pnetcdf-1.12.3 + if: steps.cache-hdf5.outputs.cache-hit != 'true' + run: | + set -x + + wget https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.15/src/hdf-4.2.15.tar.bz2 + tar -jxf hdf-4.2.15.tar.bz2 + pushd hdf-4.2.15 + CC=mpicc ./configure --prefix=${HOME}/environments/${{ matrix.hdf5 }} --disable-static --enable-shared --disable-fortran --disable-netcdf --with-szlib --enable-parallel --enable-hdf4-xdr + make -j + make install -j + popd + + wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$(echo ${{ matrix.hdf5 }} | cut -d. -f 1,2)/hdf5-${{ matrix.hdf5 }}/src/hdf5-${{ matrix.hdf5 }}.tar.bz2 + tar -jxf hdf5-${{ matrix.hdf5 }}.tar.bz2 + pushd hdf5-${{ matrix.hdf5 }} + CC=mpicc ./configure --disable-static --enable-shared --prefix=${HOME}/environments/${{ matrix.hdf5 }} --enable-hl --with-szlib --enable-parallel + make -j + make install -j + popd + wget https://parallel-netcdf.github.io/Release/pnetcdf-1.12.3.tar.gz + tar -zxf pnetcdf-1.12.3.tar.gz + pushd pnetcdf-1.12.3 + CC=mpicc ./configure --disable-static --enable-shared --prefix=${HOME}/environments/${{ matrix.hdf5 }} + make -j + make install -j + popd + + + + needs: build-deps-parallel + runs-on: ubuntu-latest + + strategy: + matrix: + hdf5: [ 1.14.0 ] + steps: + + - uses: actions/checkout@v3 + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev mpich libmpich-dev + + ### + # Set Environmental Variables + ### + + - run: echo "CFLAGS=-I${HOME}/environments/${{ matrix.hdf5 }}/include" >> $GITHUB_ENV + - run: echo "LDFLAGS=-L${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + + - name: Fetch HDF Cache + id: cache-hdf + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-parallel-${{ runner.os }}-${{ matrix.hdf5 }} + + - name: Check Cache + shell: bash -l {0} + run: ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib + + + ### + # Configure and build + ### + + - name: Run autoconf + shell: bash -l {0} + run: autoreconf -if + + - name: Configure + shell: bash -l {0} + run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc ./configure --enable-hdf5 --enable-dap --disable-dap-remote-tests --enable-parallel-tests --enable-pnetcdf + if: ${{ success() }} + + - name: Look at config.log if error + shell: bash -l {0} + run: cat config.log + if: ${{ failure() }} + + - name: Print Summary + shell: bash -l {0} + run: cat libnetcdf.settings + + - name: Build Library and Utilities + shell: bash -l {0} + run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc make -j + if: ${{ success() }} + + - name: Build Tests + shell: bash -l {0} + run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc make check TESTS="" -j + if: ${{ success() }} + + - name: Run Tests + shell: bash -l {0} + run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc make check -j + if: ${{ success() }} + + + + + needs: [ nc-cmake-tests-oneoff-cdash, nc-ac-tests-oneoff-cdash, nc-cmake-tests-oneoff-parallel, nc-ac-tests-oneoff-parallel ] + runs-on: ubuntu-latest + + strategy: + matrix: + hdf5: [1.10.8, 1.12.2, 1.14.0 ] + use_nc4: [ nc3, nc4 ] + use_dap: [ dap_off, dap_on ] + use_nczarr: [ nczarr_off, nczarr_on ] + steps: + + - uses: actions/checkout@v3 + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev + + ### + # Set Environmental Variables + ### + + - run: echo "CFLAGS=-I${HOME}/environments/${{ matrix.hdf5 }}/include" >> $GITHUB_ENV + - run: echo "LDFLAGS=-L${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + - run: | + echo "ENABLE_HDF5=--disable-hdf5" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc3' + - run: | + echo "ENABLE_HDF5=--enable-hdf5" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc4' + - run: echo "ENABLE_DAP=--disable-dap" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_off' + - run: echo "ENABLE_DAP=--enable-dap" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_on' + - run: echo "ENABLE_NCZARR=--disable-nczarr" >> $GITHUB_ENV + if: matrix.use_nczarr == 'nczarr_off' + - run: echo "ENABLE_NCZARR=--enable-nczarr" >> $GITHUB_ENV + if: matrix.use_nczarr == 'nczarr_on' + + ### + # Fetch Cache + ### + + - name: Fetch HDF Cache + id: cache-hdf + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} + + - name: Check Cache + shell: bash -l {0} + run: ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib + + ### + # Configure and build + ### + + - name: Run autoconf + shell: bash -l {0} + run: autoreconf -if + + - name: Configure + shell: bash -l {0} + run: | + current_directory="$(pwd)" + mkdir ../build + cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} "${current_directory}/configure" ${ENABLE_HDF5} ${ENABLE_DAP} ${ENABLE_NCZARR} + if: ${{ success() }} + + - name: Look at config.log if error + shell: bash -l {0} + run: cd ../build && cat config.log + if: ${{ failure() }} + + - name: Print Summary + shell: bash -l {0} + run: cd ../build && cat libnetcdf.settings + + - name: Build Library and Utilities + shell: bash -l {0} + run: | + cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make -j + if: ${{ success() }} + + - name: Build Tests + shell: bash -l {0} + run: | + cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check TESTS="" -j + if: ${{ success() }} + + - name: Run Tests + shell: bash -l {0} + run: | + cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j + if: ${{ success() }} + + nc-cmake: + + needs: build-deps-cdash + runs-on: ubuntu-latest + + strategy: + matrix: + hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] + use_nc4: [ nc3, nc4 ] + use_dap: [ dap_off, dap_on ] + use_nczarr: [ nczarr_off, nczarr_on ] + steps: + + - uses: actions/checkout@v3 + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev + + ### + # Set Environmental Variables + ### + + - run: echo "CMAKE_PREFIX_PATH=${HOME}/environments/${{ matrix.hdf5 }}/" >> $GITHUB_ENV + - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + - run: | + echo "ENABLE_HDF5=OFF" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc3' + - run: | + echo "ENABLE_HDF5=ON" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc4' + - run: echo "ENABLE_DAP=OFF" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_off' + - run: echo "ENABLE_DAP=ON" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_on' + - run: echo "ENABLE_NCZARR=OFF" >> $GITHUB_ENV + if: matrix.use_nczarr == 'nczarr_off' + - run: echo "ENABLE_NCZARR=ON" >> $GITHUB_ENV + if: matrix.use_nczarr == 'nczarr_on' + - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV + + ### + # Fetch Cache + ### + + - name: Fetch HDF Cache + id: cache-hdf5 + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} + + - name: Check Cache + shell: bash -l {0} + run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib + + ### + # Run CTest Serial Script + ### + - name: Run ctest serial script + shell: bash -l {0} + run: | + mkdir build + cd build + LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -V -S ../ctest_scripts/ctest_serial.ctest + + - name: Verbose Output if CTest Failure + shell: bash -l {0} + run: | + cd build + LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 --rerun-failed --output-on-failure -VV + if: ${{ failure() }} From df5261ce0cb71d68788c7f31f99f2d087303c32b Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:17:13 -0600 Subject: [PATCH 10/27] Correct issue with file. --- .github/workflows/run_tests_cdash.yml | 230 +------------------------- 1 file changed, 1 insertion(+), 229 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index ce79c421a..8b19810c0 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -110,236 +110,8 @@ jobs: make -j make install -j popd + - - - needs: build-deps-parallel - runs-on: ubuntu-latest - - strategy: - matrix: - hdf5: [ 1.14.0 ] - steps: - - - uses: actions/checkout@v3 - - - name: Install System dependencies - shell: bash -l {0} - run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev mpich libmpich-dev - - ### - # Set Environmental Variables - ### - - - run: echo "CFLAGS=-I${HOME}/environments/${{ matrix.hdf5 }}/include" >> $GITHUB_ENV - - run: echo "LDFLAGS=-L${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - - name: Fetch HDF Cache - id: cache-hdf - uses: actions/cache@v3 - with: - path: ~/environments/${{ matrix.hdf5 }} - key: hdf5-parallel-${{ runner.os }}-${{ matrix.hdf5 }} - - - name: Check Cache - shell: bash -l {0} - run: ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib - - - ### - # Configure and build - ### - - - name: Run autoconf - shell: bash -l {0} - run: autoreconf -if - - - name: Configure - shell: bash -l {0} - run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc ./configure --enable-hdf5 --enable-dap --disable-dap-remote-tests --enable-parallel-tests --enable-pnetcdf - if: ${{ success() }} - - - name: Look at config.log if error - shell: bash -l {0} - run: cat config.log - if: ${{ failure() }} - - - name: Print Summary - shell: bash -l {0} - run: cat libnetcdf.settings - - - name: Build Library and Utilities - shell: bash -l {0} - run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc make -j - if: ${{ success() }} - - - name: Build Tests - shell: bash -l {0} - run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc make check TESTS="" -j - if: ${{ success() }} - - - name: Run Tests - shell: bash -l {0} - run: CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} CC=mpicc make check -j - if: ${{ success() }} - - - - - needs: [ nc-cmake-tests-oneoff-cdash, nc-ac-tests-oneoff-cdash, nc-cmake-tests-oneoff-parallel, nc-ac-tests-oneoff-parallel ] - runs-on: ubuntu-latest - - strategy: - matrix: - hdf5: [1.10.8, 1.12.2, 1.14.0 ] - use_nc4: [ nc3, nc4 ] - use_dap: [ dap_off, dap_on ] - use_nczarr: [ nczarr_off, nczarr_on ] - steps: - - - uses: actions/checkout@v3 - - - name: Install System dependencies - shell: bash -l {0} - run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev - - ### - # Set Environmental Variables - ### - - - run: echo "CFLAGS=-I${HOME}/environments/${{ matrix.hdf5 }}/include" >> $GITHUB_ENV - - run: echo "LDFLAGS=-L${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - run: | - echo "ENABLE_HDF5=--disable-hdf5" >> $GITHUB_ENV - if: matrix.use_nc4 == 'nc3' - - run: | - echo "ENABLE_HDF5=--enable-hdf5" >> $GITHUB_ENV - if: matrix.use_nc4 == 'nc4' - - run: echo "ENABLE_DAP=--disable-dap" >> $GITHUB_ENV - if: matrix.use_dap == 'dap_off' - - run: echo "ENABLE_DAP=--enable-dap" >> $GITHUB_ENV - if: matrix.use_dap == 'dap_on' - - run: echo "ENABLE_NCZARR=--disable-nczarr" >> $GITHUB_ENV - if: matrix.use_nczarr == 'nczarr_off' - - run: echo "ENABLE_NCZARR=--enable-nczarr" >> $GITHUB_ENV - if: matrix.use_nczarr == 'nczarr_on' - - ### - # Fetch Cache - ### - - - name: Fetch HDF Cache - id: cache-hdf - uses: actions/cache@v3 - with: - path: ~/environments/${{ matrix.hdf5 }} - key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} - - - name: Check Cache - shell: bash -l {0} - run: ls ${HOME}/environments && ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib - - ### - # Configure and build - ### - - - name: Run autoconf - shell: bash -l {0} - run: autoreconf -if - - - name: Configure - shell: bash -l {0} - run: | - current_directory="$(pwd)" - mkdir ../build - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} "${current_directory}/configure" ${ENABLE_HDF5} ${ENABLE_DAP} ${ENABLE_NCZARR} - if: ${{ success() }} - - - name: Look at config.log if error - shell: bash -l {0} - run: cd ../build && cat config.log - if: ${{ failure() }} - - - name: Print Summary - shell: bash -l {0} - run: cd ../build && cat libnetcdf.settings - - - name: Build Library and Utilities - shell: bash -l {0} - run: | - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make -j - if: ${{ success() }} - - - name: Build Tests - shell: bash -l {0} - run: | - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check TESTS="" -j - if: ${{ success() }} - - - name: Run Tests - shell: bash -l {0} - run: | - cd ../build && CFLAGS=${CFLAGS} LDFLAGS=${LDFLAGS} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} make check -j - if: ${{ success() }} - - nc-cmake: - - needs: build-deps-cdash - runs-on: ubuntu-latest - - strategy: - matrix: - hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] - use_nc4: [ nc3, nc4 ] - use_dap: [ dap_off, dap_on ] - use_nczarr: [ nczarr_off, nczarr_on ] - steps: - - - uses: actions/checkout@v3 - - - name: Install System dependencies - shell: bash -l {0} - run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev - - ### - # Set Environmental Variables - ### - - - run: echo "CMAKE_PREFIX_PATH=${HOME}/environments/${{ matrix.hdf5 }}/" >> $GITHUB_ENV - - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - run: | - echo "ENABLE_HDF5=OFF" >> $GITHUB_ENV - if: matrix.use_nc4 == 'nc3' - - run: | - echo "ENABLE_HDF5=ON" >> $GITHUB_ENV - if: matrix.use_nc4 == 'nc4' - - run: echo "ENABLE_DAP=OFF" >> $GITHUB_ENV - if: matrix.use_dap == 'dap_off' - - run: echo "ENABLE_DAP=ON" >> $GITHUB_ENV - if: matrix.use_dap == 'dap_on' - - run: echo "ENABLE_NCZARR=OFF" >> $GITHUB_ENV - if: matrix.use_nczarr == 'nczarr_off' - - run: echo "ENABLE_NCZARR=ON" >> $GITHUB_ENV - if: matrix.use_nczarr == 'nczarr_on' - - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV - - ### - # Fetch Cache - ### - - - name: Fetch HDF Cache - id: cache-hdf5 - uses: actions/cache@v3 - with: - path: ~/environments/${{ matrix.hdf5 }} - key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} - - - name: Check Cache - shell: bash -l {0} - run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib - ### # Run CTest Serial Script ### From b41c33805aba64ce636f01e10b9db135105b2f00 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:18:58 -0600 Subject: [PATCH 11/27] Update cdash script file. --- .github/workflows/run_tests_cdash.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 8b19810c0..7d11008b8 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -2,7 +2,7 @@ # Build hdf5 dependencies and cache them in a combined directory. ### -name: Run Ubuntu/Linux netCDF Tests with CDash +name: Run CDash Ubuntu/Linux netCDF Tests on: [pull_request, workflow_dispatch] @@ -111,7 +111,7 @@ jobs: make install -j popd - + ### # Run CTest Serial Script ### From 7d9baced0eafc5429778a3160bec5118c82c2632 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:28:51 -0600 Subject: [PATCH 12/27] Correct issue with test file. --- .github/workflows/run_tests_cdash.yml | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 7d11008b8..7da75455a 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -115,6 +115,60 @@ jobs: ### # Run CTest Serial Script ### + nc-ctest-serial: + needs: build-deps-cdash + runs-on: ubuntu-latest + environment: CDashCI + + strategy: + matrix: + hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] + use_nc4: [ nc3, nc4 ] + use_dap: [ dap_off, dap_on ] + use_nczarr: [ nczarr_off, nczarr_on ] + steps: + - uses: actions/checkout@v3 + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev + + ### + # Set Environmental Variables + ### + + - run: echo "CMAKE_PREFIX_PATH=${HOME}/environments/${{ matrix.hdf5 }}/" >> $GITHUB_ENV + - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + - run: | + echo "ENABLE_HDF5=OFF" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc3' + - run: | + echo "ENABLE_HDF5=ON" >> $GITHUB_ENV + if: matrix.use_nc4 == 'nc4' + - run: echo "ENABLE_DAP=OFF" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_off' + - run: echo "ENABLE_DAP=ON" >> $GITHUB_ENV + if: matrix.use_dap == 'dap_on' + - run: echo "ENABLE_NCZARR=OFF" >> $GITHUB_ENV + if: matrix.use_nczarr == 'nczarr_off' + - run: echo "ENABLE_NCZARR=ON" >> $GITHUB_ENV + if: matrix.use_nczarr == 'nczarr_on' + - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV + + ### + # Fetch Cache + ### + + - name: Fetch HDF Cache + id: cache-hdf5 + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} + + - name: Check Cache + shell: bash -l {0} + run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib - name: Run ctest serial script shell: bash -l {0} run: | From 7a28aefa5264d6c5d0725ee53ec7a0a8b065e74b Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:32:31 -0600 Subject: [PATCH 13/27] Reduce cdash/ctest-based script matrix. --- .github/workflows/run_tests_cdash.yml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 7da75455a..5e922803c 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -123,9 +123,6 @@ jobs: strategy: matrix: hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] - use_nc4: [ nc3, nc4 ] - use_dap: [ dap_off, dap_on ] - use_nczarr: [ nczarr_off, nczarr_on ] steps: - uses: actions/checkout@v3 @@ -139,20 +136,6 @@ jobs: - run: echo "CMAKE_PREFIX_PATH=${HOME}/environments/${{ matrix.hdf5 }}/" >> $GITHUB_ENV - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - run: | - echo "ENABLE_HDF5=OFF" >> $GITHUB_ENV - if: matrix.use_nc4 == 'nc3' - - run: | - echo "ENABLE_HDF5=ON" >> $GITHUB_ENV - if: matrix.use_nc4 == 'nc4' - - run: echo "ENABLE_DAP=OFF" >> $GITHUB_ENV - if: matrix.use_dap == 'dap_off' - - run: echo "ENABLE_DAP=ON" >> $GITHUB_ENV - if: matrix.use_dap == 'dap_on' - - run: echo "ENABLE_NCZARR=OFF" >> $GITHUB_ENV - if: matrix.use_nczarr == 'nczarr_off' - - run: echo "ENABLE_NCZARR=ON" >> $GITHUB_ENV - if: matrix.use_nczarr == 'nczarr_on' - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV ### @@ -174,7 +157,7 @@ jobs: run: | mkdir build cd build - LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -V -S ../ctest_scripts/ctest_serial.ctest + LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 -V -S ../ctest_scripts/ctest_serial.ctest - name: Verbose Output if CTest Failure shell: bash -l {0} From 7ab20391d2b10dc7bb9c596b7ce02d47713ee321 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:39:11 -0600 Subject: [PATCH 14/27] Add coverage testing to a specific test. --- ctest_scripts/ctest_serial_coverage.ctest | 48 +++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 ctest_scripts/ctest_serial_coverage.ctest diff --git a/ctest_scripts/ctest_serial_coverage.ctest b/ctest_scripts/ctest_serial_coverage.ctest new file mode 100644 index 000000000..522ca0b8c --- /dev/null +++ b/ctest_scripts/ctest_serial_coverage.ctest @@ -0,0 +1,48 @@ +### +# Standard CTest Script for testing netCDF. +# Requires a CDash Token. +# +# Set the CDASH_TOKEN environmental variable. +# +### + +SET(CTEST_SOURCE_DIRECTORY "..") +SET(CTEST_BINARY_DIRECTORY ".") + +set(CDASH_TOKEN $ENV{CDASH_TOKEN}) +MESSAGE("Using cdash token: ${CDASH_TOKEN}") + + +SITE_NAME(local_site_name) +set(CTEST_SITE ${local_site_name}) + +set(CTEST_BUILD_CONFIGURATION "Profiling") +set(CTEST_CMAKE_GENERATOR "Unix Makefiles") +set(CTEST_BUILD_NAME "default") +set(CTEST_BUILD_CONFIGURATION "Profiling") +set(CTEST_DROP_METHOD "https") +set(CTEST_DROP_SITE_CDASH TRUE) +set(CTEST_PROJECT_NAME netcdf-c) + +find_program(CMAKE_COMMAND cmake) +find_program(CTEST_GIT_COMMAND NAMES git) +find_program(CTEST_COVERAGE_COMMAND NAMES gcov) +find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) + +set(CTEST_BUILD_OPTIONS "-DENABLE_COVERAGE_TESTS=TRUE -DENABLE_ERANGE_FILL=TRUE -DENABLE_LOGGING=TRUE -DENABLE_BYTERANGE=TRUE -DENABLE_LARGE_FILE_TESTS=FALSE") + + +set(CTEST_DROP_METHOD https) +set(CTEST_DROP_SITE "cdash.unidata.ucar.edu:443") +set(CTEST_DROP_LOCATION "/submit.php?project=netcdf-c") + +set(CTEST_CONFIGURE_COMMAND "${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${CTEST_BUILD_OPTIONS} ${CTEST_SOURCE_DIRECTORY}") + +ctest_start("Experimental") +ctest_configure() +ctest_build() +ctest_test() +ctest_coverage() +if (NOT "${CDASH_TOKEN}" STREQUAL "") + ctest_submit(HTTPHEADER "Authorization: Bearer ${CDASH_TOKEN}") +endif() From 794ff5adad6cd2233645b8393d83fbb85e1c2ce5 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:39:44 -0600 Subject: [PATCH 15/27] Turn off coverage testing in ctest_serial.ctest. --- ctest_scripts/ctest_serial.ctest | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ctest_scripts/ctest_serial.ctest b/ctest_scripts/ctest_serial.ctest index 522ca0b8c..cdcb2912d 100644 --- a/ctest_scripts/ctest_serial.ctest +++ b/ctest_scripts/ctest_serial.ctest @@ -29,7 +29,7 @@ find_program(CTEST_GIT_COMMAND NAMES git) find_program(CTEST_COVERAGE_COMMAND NAMES gcov) find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) -set(CTEST_BUILD_OPTIONS "-DENABLE_COVERAGE_TESTS=TRUE -DENABLE_ERANGE_FILL=TRUE -DENABLE_LOGGING=TRUE -DENABLE_BYTERANGE=TRUE -DENABLE_LARGE_FILE_TESTS=FALSE") +set(CTEST_BUILD_OPTIONS "-DENABLE_COVERAGE_TESTS=FALSE -DENABLE_ERANGE_FILL=TRUE -DENABLE_LOGGING=TRUE -DENABLE_BYTERANGE=TRUE -DENABLE_LARGE_FILE_TESTS=FALSE") set(CTEST_DROP_METHOD https) @@ -42,7 +42,6 @@ ctest_start("Experimental") ctest_configure() ctest_build() ctest_test() -ctest_coverage() if (NOT "${CDASH_TOKEN}" STREQUAL "") ctest_submit(HTTPHEADER "Authorization: Bearer ${CDASH_TOKEN}") endif() From 4e7a864c2371a43cc5b66c9f2d489aad3930ea95 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:48:51 -0600 Subject: [PATCH 16/27] Working on automating cdash access on github. --- .github/workflows/run_tests_cdash.yml | 3 +++ ctest_scripts/ctest_serial.ctest | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 5e922803c..27042ee01 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -152,7 +152,10 @@ jobs: - name: Check Cache shell: bash -l {0} run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib + - name: Run ctest serial script + with: # Access the CDash TOken + CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} shell: bash -l {0} run: | mkdir build diff --git a/ctest_scripts/ctest_serial.ctest b/ctest_scripts/ctest_serial.ctest index cdcb2912d..9a5d60cc5 100644 --- a/ctest_scripts/ctest_serial.ctest +++ b/ctest_scripts/ctest_serial.ctest @@ -10,6 +10,13 @@ SET(CTEST_SOURCE_DIRECTORY "..") SET(CTEST_BINARY_DIRECTORY ".") set(CDASH_TOKEN $ENV{CDASH_TOKEN}) + +IF (CDASH_TOKEN) + MESSAGE("CDASH TOKEN FOUND") +ELSE (CDASH_TOKEN) + MESSAGE("NO CDASH TOKEN FOUND") +ENDIF (CDASH_TOKEN) + MESSAGE("Using cdash token: ${CDASH_TOKEN}") From 88ecadfdb0476336777ab97ae4dcee5221253f52 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:51:20 -0600 Subject: [PATCH 17/27] Adjust syntax. --- .github/workflows/run_tests_cdash.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 27042ee01..bd7c8e3aa 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -123,6 +123,7 @@ jobs: strategy: matrix: hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] + steps: - uses: actions/checkout@v3 @@ -154,9 +155,9 @@ jobs: run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib - name: Run ctest serial script - with: # Access the CDash TOken - CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} shell: bash -l {0} + env: + CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} run: | mkdir build cd build From 74df474ac71a22834e0405530da8bf5e72ccf166 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 10:55:57 -0600 Subject: [PATCH 18/27] Adjust github action config file syntax. --- .github/workflows/run_tests_cdash.yml | 2 +- ctest_scripts/ctest_serial.ctest | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index bd7c8e3aa..2b553de84 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -156,7 +156,7 @@ jobs: - name: Run ctest serial script shell: bash -l {0} - env: + with: CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} run: | mkdir build diff --git a/ctest_scripts/ctest_serial.ctest b/ctest_scripts/ctest_serial.ctest index 9a5d60cc5..71a6eb696 100644 --- a/ctest_scripts/ctest_serial.ctest +++ b/ctest_scripts/ctest_serial.ctest @@ -17,9 +17,6 @@ ELSE (CDASH_TOKEN) MESSAGE("NO CDASH TOKEN FOUND") ENDIF (CDASH_TOKEN) -MESSAGE("Using cdash token: ${CDASH_TOKEN}") - - SITE_NAME(local_site_name) set(CTEST_SITE ${local_site_name}) From 461569509157d52ac517f7e5f1bb23d44fbd0ba7 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:00:17 -0600 Subject: [PATCH 19/27] Playing around trying to nail down syntax for accessing secrets in Github Actions. --- .github/workflows/run_tests_cdash.yml | 74 +++++++++++++-------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 2b553de84..f11f13af3 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -125,47 +125,47 @@ jobs: hdf5: [ 1.10.8, 1.12.2, 1.14.0 ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v3 + with: + CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} + + - name: Install System dependencies + shell: bash -l {0} + run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev - - name: Install System dependencies - shell: bash -l {0} - run: sudo apt update && sudo apt install -y libaec-dev zlib1g-dev automake autoconf libcurl4-openssl-dev libjpeg-dev wget curl bzip2 m4 flex bison cmake libzip-dev + ### + # Set Environmental Variables + ### - ### - # Set Environmental Variables - ### + - run: echo "CMAKE_PREFIX_PATH=${HOME}/environments/${{ matrix.hdf5 }}/" >> $GITHUB_ENV + - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV + - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV - - run: echo "CMAKE_PREFIX_PATH=${HOME}/environments/${{ matrix.hdf5 }}/" >> $GITHUB_ENV - - run: echo "LD_LIBRARY_PATH=${HOME}/environments/${{ matrix.hdf5 }}/lib" >> $GITHUB_ENV - - run: echo "CTEST_OUTPUT_ON_FAILURE=1" >> $GITHUB_ENV + ### + # Fetch Cache + ### - ### - # Fetch Cache - ### + - name: Fetch HDF Cache + id: cache-hdf5 + uses: actions/cache@v3 + with: + path: ~/environments/${{ matrix.hdf5 }} + key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} - - name: Fetch HDF Cache - id: cache-hdf5 - uses: actions/cache@v3 - with: - path: ~/environments/${{ matrix.hdf5 }} - key: hdf5-${{ runner.os }}-${{ matrix.hdf5 }} + - name: Check Cache + shell: bash -l {0} + run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib - - name: Check Cache - shell: bash -l {0} - run: ls ${HOME}/environments/${{ matrix.hdf5 }} && ls ${HOME}/environments/${{ matrix.hdf5}}/lib + - name: Run ctest serial script + shell: bash -l {0} + run: | + mkdir build + cd build + LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 -V -S ../ctest_scripts/ctest_serial.ctest - - name: Run ctest serial script - shell: bash -l {0} - with: - CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} - run: | - mkdir build - cd build - LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 -V -S ../ctest_scripts/ctest_serial.ctest - - - name: Verbose Output if CTest Failure - shell: bash -l {0} - run: | - cd build - LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 --rerun-failed --output-on-failure -VV - if: ${{ failure() }} + - name: Verbose Output if CTest Failure + shell: bash -l {0} + run: | + cd build + LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ctest -j 12 --rerun-failed --output-on-failure -VV + if: ${{ failure() }} From dcad99082dbdc113694c7bf8467414a858d53abd Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:13:04 -0600 Subject: [PATCH 20/27] Remove sensitive info being sent to standard output when using ctest scripts. --- CMakeLists.txt | 4 ++-- ctest_scripts/ctest_mpicc.ctest | 6 +++++- ctest_scripts/ctest_serial_coverage.ctest | 6 +++++- ctest_scripts/ctest_serial_dap.ctest | 6 +++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0191f1454..6fa02dcd6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -267,8 +267,8 @@ IF(CMAKE_COMPILER_IS_GNUCC OR APPLE) # Coverage tests need to have optimization turned off. IF(ENABLE_COVERAGE_TESTS) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") + SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -g -O0 -coverage -fprofile-arcs -ftest-coverage") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs") MESSAGE(STATUS "Coverage Tests: On.") ENDIF() diff --git a/ctest_scripts/ctest_mpicc.ctest b/ctest_scripts/ctest_mpicc.ctest index 9bca2038d..617ea49a2 100644 --- a/ctest_scripts/ctest_mpicc.ctest +++ b/ctest_scripts/ctest_mpicc.ctest @@ -10,7 +10,11 @@ SET(CTEST_SOURCE_DIRECTORY "..") SET(CTEST_BINARY_DIRECTORY ".") set(CDASH_TOKEN $ENV{CDASH_TOKEN}) -MESSAGE("Using cdash token: ${CDASH_TOKEN}") +IF (CDASH_TOKEN) + MESSAGE("CDASH TOKEN FOUND") +ELSE (CDASH_TOKEN) + MESSAGE("NO CDASH TOKEN FOUND") +ENDIF (CDASH_TOKEN) SITE_NAME(local_site_name) diff --git a/ctest_scripts/ctest_serial_coverage.ctest b/ctest_scripts/ctest_serial_coverage.ctest index 522ca0b8c..9b8f90a20 100644 --- a/ctest_scripts/ctest_serial_coverage.ctest +++ b/ctest_scripts/ctest_serial_coverage.ctest @@ -10,7 +10,11 @@ SET(CTEST_SOURCE_DIRECTORY "..") SET(CTEST_BINARY_DIRECTORY ".") set(CDASH_TOKEN $ENV{CDASH_TOKEN}) -MESSAGE("Using cdash token: ${CDASH_TOKEN}") +IF (CDASH_TOKEN) + MESSAGE("CDASH TOKEN FOUND") +ELSE (CDASH_TOKEN) + MESSAGE("NO CDASH TOKEN FOUND") +ENDIF (CDASH_TOKEN) SITE_NAME(local_site_name) diff --git a/ctest_scripts/ctest_serial_dap.ctest b/ctest_scripts/ctest_serial_dap.ctest index 9ea333345..80fe31264 100644 --- a/ctest_scripts/ctest_serial_dap.ctest +++ b/ctest_scripts/ctest_serial_dap.ctest @@ -10,7 +10,11 @@ SET(CTEST_SOURCE_DIRECTORY "..") SET(CTEST_BINARY_DIRECTORY ".") set(CDASH_TOKEN $ENV{CDASH_TOKEN}) -MESSAGE("Using cdash token: ${CDASH_TOKEN}") +IF (CDASH_TOKEN) + MESSAGE("CDASH TOKEN FOUND") +ELSE (CDASH_TOKEN) + MESSAGE("NO CDASH TOKEN FOUND") +ENDIF (CDASH_TOKEN) SITE_NAME(local_site_name) From ee9c9d91aa1ab54968ec01d00899d0aad82b2c21 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:25:02 -0600 Subject: [PATCH 21/27] Try a different syntax. --- .github/workflows/run_tests_cdash.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index f11f13af3..5caf89942 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -128,6 +128,8 @@ jobs: - uses: actions/checkout@v3 with: CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} + env: + CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} - name: Install System dependencies shell: bash -l {0} @@ -158,6 +160,8 @@ jobs: - name: Run ctest serial script shell: bash -l {0} + env: + CDASH_TOKEN: ${{ secrets.CDASH_TOKEN }} run: | mkdir build cd build From 4483760d3267d5da944c4080e9da2ad43e8f58da Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:30:56 -0600 Subject: [PATCH 22/27] Adjust workflow secrets syntax. --- .github/workflows/run_tests_cdash.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 5caf89942..927f10a65 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -5,6 +5,11 @@ name: Run CDash Ubuntu/Linux netCDF Tests on: [pull_request, workflow_dispatch] + workflow_call: + secrets: + CDASH_TOKEN: + description: 'A token required to access the cdash dashboard' + required: true jobs: From 127830e49f32bb61dcadcc185bb818b1444b6d14 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:42:49 -0600 Subject: [PATCH 23/27] Shot in the dark --- .github/workflows/run_tests_cdash.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 927f10a65..849427af6 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -4,12 +4,16 @@ name: Run CDash Ubuntu/Linux netCDF Tests -on: [pull_request, workflow_dispatch] +on: + workflow_dispatch: + pull_request: workflow_call: secrets: - CDASH_TOKEN: - description: 'A token required to access the cdash dashboard' - required: true + CDASH_TOKEN: + description: 'A token required to access the cdash dashboard' + required: true + + jobs: From 3e341bd6e1c93bd913fc7af046c2add4192455a9 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:46:21 -0600 Subject: [PATCH 24/27] Turning off cdash integration for the moment, but merging PR to include other changes/updates. --- .github/workflows/run_tests_cdash.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/run_tests_cdash.yml b/.github/workflows/run_tests_cdash.yml index 849427af6..57053172c 100644 --- a/.github/workflows/run_tests_cdash.yml +++ b/.github/workflows/run_tests_cdash.yml @@ -4,15 +4,8 @@ name: Run CDash Ubuntu/Linux netCDF Tests -on: - workflow_dispatch: - pull_request: - workflow_call: - secrets: - CDASH_TOKEN: - description: 'A token required to access the cdash dashboard' - required: true - +on: workflow_dispatch + jobs: From bbcbab7a26a787870cd85aa306f4bd8f70c85cb9 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 11:48:29 -0600 Subject: [PATCH 25/27] Clarify name of a Github Action. --- .github/workflows/run_tests_win_mingw.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_tests_win_mingw.yml b/.github/workflows/run_tests_win_mingw.yml index f48e81e7f..7bc6cde76 100644 --- a/.github/workflows/run_tests_win_mingw.yml +++ b/.github/workflows/run_tests_win_mingw.yml @@ -4,7 +4,7 @@ # for information related to github runners. ### -name: Run MSYS2, MinGW64-based Tests +name: Run MSYS2, MinGW64-based Tests (Not Visual Studio) env: CPPFLAGS: "-D_BSD_SOURCE" From 347b2504bfddc8105c36d41b489977066f649fa6 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 13:15:12 -0600 Subject: [PATCH 26/27] Undo previous change. --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6fa02dcd6..59bb84632 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -267,7 +267,8 @@ IF(CMAKE_COMPILER_IS_GNUCC OR APPLE) # Coverage tests need to have optimization turned off. IF(ENABLE_COVERAGE_TESTS) - SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -g -O0 -coverage -fprofile-arcs -ftest-coverage") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -coverage -fprofile-arcs -ftest-coverage") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -coverage -fprofile-arcs -ftest-coverage") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs") MESSAGE(STATUS "Coverage Tests: On.") ENDIF() From d4766297041d3727f063b4f25040b20808ea7169 Mon Sep 17 00:00:00 2001 From: Ward Fisher Date: Tue, 24 Oct 2023 13:16:11 -0600 Subject: [PATCH 27/27] Replace accidental flag removal --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 59bb84632..29c505aad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,7 +269,7 @@ IF(CMAKE_COMPILER_IS_GNUCC OR APPLE) IF(ENABLE_COVERAGE_TESTS) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -coverage -fprofile-arcs -ftest-coverage") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -coverage -fprofile-arcs -ftest-coverage") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") MESSAGE(STATUS "Coverage Tests: On.") ENDIF()