From d885d0f5b5603d2e29323a3f649b585300da1e66 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 3 Jun 2020 12:08:47 -0400 Subject: [PATCH 01/85] Initial commit --- windows/Reg_Testing.md | 51 ++++++++++++ windows/app-config.cmd | 58 ++++++++++++++ windows/before-nrtest.cmd | 120 +++++++++++++++++++++++++++++ windows/make.cmd | 124 ++++++++++++++++++++++++++++++ windows/requirements-epanet.txt | 22 ++++++ windows/requirements-swmm.txt | 22 ++++++ windows/run-nrtests.cmd | 132 ++++++++++++++++++++++++++++++++ 7 files changed, 529 insertions(+) create mode 100644 windows/Reg_Testing.md create mode 100644 windows/app-config.cmd create mode 100644 windows/before-nrtest.cmd create mode 100644 windows/make.cmd create mode 100644 windows/requirements-epanet.txt create mode 100644 windows/requirements-swmm.txt create mode 100644 windows/run-nrtests.cmd diff --git a/windows/Reg_Testing.md b/windows/Reg_Testing.md new file mode 100644 index 0000000..8a13fe6 --- /dev/null +++ b/windows/Reg_Testing.md @@ -0,0 +1,51 @@ + + +## Regression Testing SWMM or EPANET locally on Windows + + +### Dependencies + +Before the project can be built and tested the required dependencies must be installed. + +**Summary of Build Dependencies: Windows** + + - Build + - Build Tools for Visual Studio 2017 + - CMake 3.17 + + - Regression Test + - Python 3.7 64 bit + - curl + - git + - 7z + +Once Python is present, the following command installs the required packages for regression testing. +``` +\> cd < PROJECT_ROOT > +\>pip install -r tools\requirements-< PROJECT >.txt +``` + + +### Build + +EPANET can be built with one simple command. +``` +\>tools\make.cmd +``` + + +### Regression Test + +This command runs regression tests for the local build and compares them to the latest benchmark. +``` +\>tools\before-nrtest.cmd +\>tools\run-nrtest.cmd +``` diff --git a/windows/app-config.cmd b/windows/app-config.cmd new file mode 100644 index 0000000..2eef7b1 --- /dev/null +++ b/windows/app-config.cmd @@ -0,0 +1,58 @@ +:: +:: app-config.cmd - Generates nrtest app configuration file for SUT executable +:: +:: Date Created: 10/16/2019 +:: Date Modified: 10/17/2019 +:: +:: Author: Michael E. Tryby +:: US EPA - ORD/CESER +:: +:: Requires: +:: git +:: +:: Environment Variables: +:: PROJECT +:: +:: Arguments: +:: 1 - absolute path to test executable (valid path seperator for nrtest is "/") +:: 2 - (platform) +:: 3 - (build identifier for SUT) +:: + +@echo off +setlocal + + +:: check requirements +where git > nul +if %ERRORLEVEL% NEQ 0 ( echo "ERROR: git not installed" & exit /B 1 ) + +:: check environment +if not defined PROJECT ( echo "ERROR: PROJECT must be defined" & exit /B 1 ) + + +:: CLE target created by the cmake build script +set TEST_CMD=run%PROJECT%.exe + +:: remove quotes from path and convert backward to forward slash +set ABS_BUILD_PATH=%~1 +set ABS_BUILD_PATH=%ABS_BUILD_PATH:\=/% + +if [%2]==[] ( set "PLATFORM=unknown" +) else ( set "PLATFORM=%~2" ) + +if [%3]==[] ( set "BUILD_ID=unknown" +) else ( set "BUILD_ID=%~3" ) + +:: determine version +for /F "tokens=1" %%v in ( 'git rev-parse --short HEAD' ) do ( set "VERSION=%%v" ) +if not defined VERSION ( echo "ERROR: VERSION could not be determined" & exit /B 1 ) + + +echo { +echo "name" : "%PROJECT%", +echo "version" : "%VERSION%", +echo "description" : "%PLATFORM% %BUILD_ID%", +echo "setup_script" : "", +echo "exe" : "%ABS_BUILD_PATH%/%TEST_CMD%" +echo } diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd new file mode 100644 index 0000000..ac82a6b --- /dev/null +++ b/windows/before-nrtest.cmd @@ -0,0 +1,120 @@ +:: +:: before-test.cmd - Stages test and benchmark files for nrtest +:: +:: Created: Oct 16, 2019 +:: Updated: May 29, 2020 +:: +:: Author: Michael E. Tryby +:: US EPA - ORD/CESER +:: +:: Dependencies: +:: curl +:: 7z +:: +:: Environment Variables: +:: PROJECT +:: BUILD_HOME - defaults to "build" +:: PLATFORM +:: +:: Arguments: +:: 1 - (RELEASE_TAG) release tag for benchmark version (defaults to latest tag) +:: +:: Note: +:: Tests and benchmark files are stored in the "%PROJECT%-nrtestsuite" repo. +:: This script retrieves them using a stable URL associated with a GitHub +:: release, stages the files, and sets up the environment for nrtest to run. +:: + +::@echo off + +:: set global default +set "TEST_HOME=nrtests" + +:: determine project directory +set "CUR_DIR=%CD%" +set "SCRIPT_HOME=%~dp0" +cd %SCRIPT_HOME% +cd .. + +setlocal + + +:: check that dependencies are installed +for %%d in (curl 7z) do ( + where %%d > nul + if %ERRORLEVEL% neq 0 ( echo "ERROR: %%d not installed" & exit /B 1 ) +) + + +:: set URL to github repo with test files +set "NRTESTS_URL=https://github.com/%PROJECT%-Project/%PROJECT%-nrtestsuite" + + +:: if release tag isn't provided latest tag will be retrieved +if [%1] == [] (set "RELEASE_TAG=" +) else (set "RELEASE_TAG=%~1") + + +:: check env variables and apply defaults +for %%v in (PROJECT BUILD_HOME PLATFORM) do ( + if not defined %%v ( echo "ERROR: %%v must be defined" & exit /B 1 ) +) + +echo INFO: Staging files for regression testing + + +:: determine latest tag in the tests repo +if [%RELEASE_TAG%] == [] ( + for /F delims^=^"^ tokens^=2 %%g in ('curl --silent %NRTESTS_URL%/releases/latest') do ( + set "RELEASE_TAG=%%~nxg" + ) +) + +if defined RELEASE_TAG ( + set "TESTFILES_URL=%NRTESTS_URL%/archive/%RELEASE_TAG%.zip" + set "BENCHFILES_URL=%NRTESTS_URL%/releases/download/%RELEASE_TAG%/benchmark-%PLATFORM%.zip" +) else ( + echo ERROR: tag %RELEASE_TAG% is invalid & exit /B 1 +) + + +:: create a clean directory for staging regression tests +if exist %TEST_HOME% ( + rmdir /s /q %TEST_HOME% +) +mkdir %TEST_HOME% +if %ERRORLEVEL% NEQ 0 ( echo "ERROR: unable to make %TEST_HOME% dir" & exit /B 1 ) +cd %TEST_HOME% +if %ERRORLEVEL% NEQ 0 ( echo "ERROR: unable to cd %TEST_HOME% dir" & exit /B 1 ) + + +:: retrieve nrtest cases and benchmark results for regression testing +curl -fsSL -o nrtestfiles.zip %TESTFILES_URL% +curl -fsSL -o benchmark.zip %BENCHFILES_URL% + + +:: extract tests, scripts, benchmarks, and manifest +7z x nrtestfiles.zip * > nul +7z x benchmark.zip -obenchmark\ > nul +7z e benchmark.zip -o. manifest.json -r > nul + + +:: set up symlinks for tests directory +mklink /D .\tests .\%PROJECT%-nrtestsuite-%RELEASE_TAG:~1%\public > nul + + +endlocal + + +:: determine REF_BUILD_ID from manifest file +for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.json' ) do ( + for /F "tokens=2" %%r in ( 'echo %%d' ) do ( set "REF_BUILD_ID=%%r" ) +) +if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) + +:: GitHub Actions +echo ::set-env name=REF_BUILD_ID::%REF_BUILD_ID% + + +:: return to users current directory +cd %CUR_DIR% diff --git a/windows/make.cmd b/windows/make.cmd new file mode 100644 index 0000000..cd5747c --- /dev/null +++ b/windows/make.cmd @@ -0,0 +1,124 @@ +:: +:: make.cmd - builds project +:: +:: Created: Oct 15, 2019 +:: Updated: May 29, 2020 +:: +:: Author: Michael E. Tryby +:: US EPA - ORD/CESER +:: +:: Requires: +:: Build Tools for Visual Studio download: +:: https://visualstudio.microsoft.com/downloads/ +:: +:: CMake download: +:: https://cmake.org/download/ +:: +:: Optional Arguments: +:: /g ("GENERATOR") defaults to "Visual Studio 15 2017" +:: /t builds and runs unit tests (requires Boost) +:: + + +::echo off + + +:: set global defaults +set "BUILD_HOME=build" +set "PLATFORM=win32" + + +:: determine project directory +set "CUR_DIR=%CD%" +set "SCRIPT_HOME=%~dp0" +cd %SCRIPT_HOME% +pushd .. +pushd .. +set "PROJ_DIR=%CD%" +popd + +:: check for requirements +where cmake > nul +if %ERRORLEVEL% NEQ 0 ( echo "ERROR: cmake not installed" & exit /B 1 ) + + +:: determine project +if not defined PROJECT ( + for %%i in (%PROJ_DIR%) do set PROJECT=%%~ni + set PROJECT=%PROJECT:~0,-8% + if not defined PROJECT ( + echo "ERROR: PROJECT could not be determined" & exit /B 1 + ) +) + +:: GitHub Actions +echo ::set-env name=PROJECT::%PROJECT% + + +setlocal EnableDelayedExpansion + + +echo INFO: Building %PROJECT% ... + + +:: set local defaults +set "GENERATOR=Visual Studio 15 2017" +set "TESTING=0" + +:: process arguments +:loop +if NOT [%1]==[] ( + if "%1"=="/g" ( + set "GENERATOR=%~2" + shift + ) + if "%1"=="/t" ( + set "TESTING=1" + ) + shift + goto :loop +) + + +:: if generator has changed delete the build folder +if exist %BUILD_HOME% ( + for /F "tokens=*" %%f in ( 'findstr CMAKE_GENERATOR:INTERNAL %BUILD_HOME%\CmakeCache.txt' ) do ( + for /F "delims=:= tokens=3" %%m in ( 'echo %%f' ) do ( + set CACHE_GEN=%%m + if not "!CACHE_GEN!" == "!GENERATOR!" ( rmdir /s /q %BUILD_HOME% ) + ) + ) +) + +:: perform the build +cmake -E make_directory %BUILD_HOME% + + +if %TESTING% EQU 1 ( + cmake -E chdir ./%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ + && cmake --build ./%BUILD_HOME% --config Debug^ + & echo. && cmake -E chdir ./%BUILD_HOME% ctest -C Debug --output-on-failure +) else ( + cmake -E chdir ./%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ + && cmake --build ./%BUILD_HOME% --config Release --target package +) + + +endlocal + + +:: determine platform from CmakeCache.txt file +for /F "tokens=*" %%f in ( 'findstr CMAKE_SHARED_LINKER_FLAGS:STRING %BUILD_HOME%\CmakeCache.txt' ) do ( + for /F "delims=: tokens=3" %%m in ( 'echo %%f' ) do ( + if "%%m" == "X86" ( set "PLATFORM=win32" ) else if "%%m" == "x64" ( set "PLATFORM=win64" ) + ) +) +if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit /B 1 ) + + +:: GitHub Actions +echo ::set-env name=PLATFORM::%PLATFORM% + + +:: return to users current dir +cd %CUR_DIR% diff --git a/windows/requirements-epanet.txt b/windows/requirements-epanet.txt new file mode 100644 index 0000000..b2f9b8f --- /dev/null +++ b/windows/requirements-epanet.txt @@ -0,0 +1,22 @@ +# +# requirements-epanet.txt - Python requirements for running nrtest +# +# Created: Jun 3, 2020 +# Updated: +# +# Author: Michael E. Tryby +# US EPA ORD/CESER +# +# Useful for configuring a python environment to run epanet-nrtestsuite +# +# command: +# pip install -r requirements-epanet.txt +# + +nrtest + +-f https://github.com/OpenWaterAnalytics/epanet-python/releases/download/0.3.0-dev.1/epanet.output-0.2.0.dev0-cp36-cp36m-win_amd64.whl +epanet.output + +-f https://github.com/michaeltryby/epanet-python/releases/download/0.4.0-dev/nrtest_epanet-0.6.0-py3-none-any.whl +nrtest-epanet diff --git a/windows/requirements-swmm.txt b/windows/requirements-swmm.txt new file mode 100644 index 0000000..35af4fc --- /dev/null +++ b/windows/requirements-swmm.txt @@ -0,0 +1,22 @@ +# +# requirements-swmm.txt - Python requirements for running nrtest +# +# Created: Jun 3, 2020 +# Updated: +# +# Author: Michael E. Tryby +# US EPA ORD/CESER +# +# Useful for configuring a python environment to run nrtests on swmm. +# +# usage: +# pip install -r requirements-swmm.txt +# + +nrtest + +-f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.2/swmm_toolkit-0.5.0-cp37-cp37m-win_amd64.whl +swmm-toolkit + +-f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.1/nrtest_swmm-0.6.0-py3-none-any.whl +nrtest-swmm diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd new file mode 100644 index 0000000..d55607e --- /dev/null +++ b/windows/run-nrtests.cmd @@ -0,0 +1,132 @@ +:: +:: run_nrtest.cmd - Runs numerical regression test +:: +:: Created: Oct 16, 2019 +:: Updated: Jun 2, 2020 +:: +:: Author: Michael E. Tryby +:: US EPA - ORD/CESER +:: +:: Dependencies: +:: python -m pip install -r requirements.txt +:: +:: Environment Variables: +:: PROJECT +:: BUILD_HOME - relative path +:: TEST_HOME - relative path +:: PLATFORM +:: REF_BUILD_ID +:: +:: Arguments: +:: 1 - (SUT_BUILD_ID) - optional argument +:: + +::@echo off +setlocal EnableDelayedExpansion + + +:: check that dependencies are installed +where 7z > nul +if %ERRORLEVEL% neq 0 ( echo "ERROR: 7z not installed" & exit /B 1 ) + +:: Check that required environment variables are set +for %%v in (PROJECT BUILD_HOME TEST_HOME PLATFORM REF_BUILD_ID) do ( + if not defined %%v ( echo "ERROR: %%v must be defined" & exit /B 1 ) +) + + +:: determine project directory +set "CUR_DIR=%CD%" +set "SCRIPT_HOME=%~dp0" +cd %SCRIPT_HOME% +pushd .. +set "PROJ_DIR=%CD%" +popd + + +cd %PROJ_DIR%\%TEST_HOME% + +:: Process optional arguments +if [%1]==[] ( set "SUT_BUILD_ID=local" +) else ( set "SUT_BUILD_ID=%~1" ) + + +:: check if app config file exists +if not exist apps\%PROJECT%-%SUT_BUILD_ID%.json ( + mkdir apps + call %SCRIPT_HOME%\app-config.cmd %PROJ_DIR%\%BUILD_HOME%\bin\Release^ + %PLATFORM% %SUT_BUILD_ID% > apps\%PROJECT%-%SUT_BUILD_ID%.json +) + +:: prepare for artifact upload +if not exist %PROJ_DIR%\upload ( + mkdir %PROJ_DIR%\upload +) + + +:: recursively build test list +:: set "TESTS=tests\examples" +set TESTS= +for /F "tokens=*" %%T in ('dir /b /s /a:d tests') do ( + set FULL_PATH=%%T + set TESTS=!TESTS! !FULL_PATH:*%TEST_HOME%\=! +) + + +:: determine location of python Scripts folder +for /F "tokens=*" %%G in ('where python.exe') do ( + set PYTHON_DIR=%%~dpG + goto break_loop_1 +) +:break_loop_1 +set "NRTEST_SCRIPT_PATH=%PYTHON_DIR%Scripts" + + +:: build nrtest execute command +set NRTEST_EXECUTE_CMD=python.exe %NRTEST_SCRIPT_PATH%\nrtest execute +set TEST_APP_PATH=apps\%PROJECT%-%SUT_BUILD_ID%.json +set TEST_OUTPUT_PATH=benchmark\%PROJECT%-%SUT_BUILD_ID% + +:: build nrtest compare command +set NRTEST_COMPARE_CMD=python.exe %NRTEST_SCRIPT_PATH%\nrtest compare +set REF_OUTPUT_PATH=benchmark\%PROJECT%-%REF_BUILD_ID% +set RTOL_VALUE=0.01 +set ATOL_VALUE=1.E-6 + +:: change current directory to test suite +::cd %TEST_HOME% + +:: if present clean test benchmark results +if exist %TEST_OUTPUT_PATH% ( + rmdir /s /q %TEST_OUTPUT_PATH% +) + +:: perform nrtest execute +echo INFO: Creating SUT %SUT_BUILD_ID% artifacts +set NRTEST_COMMAND=%NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% +:: if there is an error exit the script with error value 1 +%NRTEST_COMMAND% || exit /B 1 + +echo. + +:: perform nrtest compare +echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% +set NRTEST_COMMAND=%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json +%NRTEST_COMMAND% + +set RESULT=%ERRORLEVEL% +cd .\benchmark + +:: stage artifacts for upload +if %RESULT% neq 0 ( + echo ERROR: nrtest compare exited with errors + 7z a benchmark-%PLATFORM%.zip .\%PROJECT%-%SUT_BUILD_ID% > nul + move /Y benchmark-%PLATFORM%.zip %PROJ_DIR%\upload\benchmark-%PLATFORM%.zip > nul +) else ( + echo INFO: nrtest compare exited successfully + move /Y receipt.json %PROJ_DIR%\upload\receipt.json > nul +) + +:: return user to their current dir and exit +cd %CUR_DIR% +exit /B %RESULT% From 46cfa8614836e3820187339bfe404a96a9cdfa8c Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 3 Jun 2020 12:48:39 -0400 Subject: [PATCH 02/85] Initial commit Darwin --- darwin/app-config.zsh | 59 ++++++++++++++++++++ darwin/before-nrtest.zsh | 77 ++++++++++++++++++++++++++ darwin/make.zsh | 30 +++++++++++ darwin/requirements-epanet.txt | 0 darwin/requirements-swmm.txt | 22 ++++++++ darwin/run-nrtests.zsh | 98 ++++++++++++++++++++++++++++++++++ 6 files changed, 286 insertions(+) create mode 100644 darwin/app-config.zsh create mode 100644 darwin/before-nrtest.zsh create mode 100644 darwin/make.zsh create mode 100644 darwin/requirements-epanet.txt create mode 100644 darwin/requirements-swmm.txt create mode 100644 darwin/run-nrtests.zsh diff --git a/darwin/app-config.zsh b/darwin/app-config.zsh new file mode 100644 index 0000000..376f419 --- /dev/null +++ b/darwin/app-config.zsh @@ -0,0 +1,59 @@ +#!/usr/bin/env zsh + +# +# app-config.sh - Generates nrtest app configuration file for test executable +# +# Date Created: 11/15/2017 +# Updated: 4/1/2020 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Requires: +# git +# +# Environment Variables: +# PROJECT +# PLATFORM +# +# Arguments: +# 1 - absolute path to test executable +# 2 - (SUT build id) +# + + +# check requirements +where git &> /dev/null +[[ ! $? ]] && { echo "ERROR: git not installed"; return 1 } + +# check that env variables are set +[[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } +[[ ! -v PLATFORM ]] && { echo "ERROR: PLATFORM must be defined"; return 1 } + + +# swmm target created by the cmake build script +TEST_CMD="run${PROJECT}" +# path to executable in cmake build tree +ABS_BUILD_PATH=$1 + +# process optional arguments +if [ ! -z "$2" ]; then + BUILD_ID=$2 +else + BUILD_ID="unknown" +fi + + +# determine version +VERSION=$( git rev-parse --short HEAD ) +[[ ! -v VERSION ]] && { echo "ERROR: VERSION must be determined"; return 1 } + +cat< "./apps/${PROJECT}-${SUT_BUILD_ID}.json" +fi + +# build list of directories contaiing tests +TESTS=$( find ./tests -mindepth 1 -type d -follow | paste -sd " " - ) + +# build nrtest execute command +NRTEST_EXECUTE_CMD='nrtest execute' +TEST_APP_PATH="./apps/${PROJECT}-${SUT_BUILD_ID}.json" +TEST_OUTPUT_PATH="./benchmark/${PROJECT}-${SUT_BUILD_ID}" + +# build nrtest compare command +NRTEST_COMPARE_CMD='nrtest compare' +REF_OUTPUT_PATH="benchmark/${PROJECT}-${REF_BUILD_ID}" +RTOL_VALUE='0.01' +ATOL_VALUE='1.E-6' + + +# if present clean test benchmark results +if [ -d "${TEST_OUTPUT_PATH}" ]; then + rm -rf "${TEST_OUTPUT_PATH}" +fi + +# perform nrtest execute +echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" +NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" +eval ${NRTEST_COMMAND} + +# perform nrtest compare +echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" +NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" +eval ${NRTEST_COMMAND} + + +# return user to current dir +cd ${CUR_DIR} From ded30b74853383f5acab44ba24dfee049beb3c25 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 3 Jun 2020 12:59:52 -0400 Subject: [PATCH 03/85] Initial commit Linux Readme --- README.md | 53 ++++++++++++++++++++- linux/before-test.sh | 58 ++++++++++++++++++++++ linux/gen-config.sh | 46 ++++++++++++++++++ linux/make.sh | 0 linux/requirements-epanet.txt | 0 linux/requirements-swmm.txt | 18 +++++++ linux/run-nrtest.sh | 90 +++++++++++++++++++++++++++++++++++ windows/Reg_Testing.md | 51 -------------------- 8 files changed, 264 insertions(+), 52 deletions(-) create mode 100644 linux/before-test.sh create mode 100644 linux/gen-config.sh create mode 100644 linux/make.sh create mode 100644 linux/requirements-epanet.txt create mode 100644 linux/requirements-swmm.txt create mode 100644 linux/run-nrtest.sh delete mode 100644 windows/Reg_Testing.md diff --git a/README.md b/README.md index f4f1bc2..d40962a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,53 @@ + + + # ci-tools -Tools for continuous integration and local testing +Tools for continuous integration and local testing for SWMM and EPANET + + +### Dependencies + +Before the project can be built and tested the required dependencies must be installed. + +**Summary of Build Dependencies: Windows** + + - Build + - Build Tools for Visual Studio 2017 + - CMake 3.17 + + - Regression Test + - Python 3.7 64 bit + - curl + - git + - 7z + +Once Python is present, the following command installs the required packages for regression testing. +``` +\> cd < PROJECT_ROOT > +\>pip install -r tools\requirements-< PROJECT >.txt +``` + + +### Build + +EPANET can be built with one simple command. +``` +\>tools\make.cmd +``` + + +### Regression Test + +This command runs regression tests for the local build and compares them to the latest benchmark. +``` +\>tools\before-nrtest.cmd +\>tools\run-nrtest.cmd +``` diff --git a/linux/before-test.sh b/linux/before-test.sh new file mode 100644 index 0000000..0466920 --- /dev/null +++ b/linux/before-test.sh @@ -0,0 +1,58 @@ +#! /bin/bash + +# +# before-test.sh - Prepares Travis CI worker to run swmm regression tests +# +# Date Created: 04/05/2018 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Arguments: +# 1 - relative path regression test file staging location +# 2 - absolute path to location of software under test +# 3 - build identifier for software under test +# +# Note: +# Tests and benchmark files are stored in the swmm-example-networks repo. +# This script retreives them using a stable URL associated with a release on +# GitHub and stages the files for nrtest to run. The script assumes that +# before-test.sh and gen-config.sh are located together in the same folder. + +SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TEST_HOME=$1 + +EXAMPLES_VER="1.0.0" +BENCHMARK_VER="5112" + +TESTFILES_URL="https://github.com/OpenWaterAnalytics/swmm-example-networks/archive/v${EXAMPLES_VER}.tar.gz" +BENCHFILES_URL="https://github.com/OpenWaterAnalytics/swmm-example-networks/releases/download/v${EXAMPLES_VER}/swmm-benchmark-${BENCHMARK_VER}.tar.gz" + + +echo INFO: Staging files for regression testing + +# create a clean directory for staging regression tests +if [ -d ${TEST_HOME} ]; then + rm -rf ${TEST_HOME} +fi +mkdir ${TEST_HOME} +cd ${TEST_HOME} + +# retrieve swmm-examples for regression testing +curl -fsSL -o examples.tar.gz ${TESTFILES_URL} + +# retrieve swmm benchmark results +curl -fsSL -o benchmark.tar.gz ${BENCHFILES_URL} + + +# extract tests and benchmarks +tar xzf examples.tar.gz +ln -s swmm-example-networks-${EXAMPLES_VER}/swmm-tests tests + +mkdir benchmark +tar xzf benchmark.tar.gz -C benchmark + + +# generate json configuration file for software under test +mkdir apps +${SCRIPT_HOME}/gen-config.sh $2 > apps/swmm-$3.json diff --git a/linux/gen-config.sh b/linux/gen-config.sh new file mode 100644 index 0000000..7451b9d --- /dev/null +++ b/linux/gen-config.sh @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# gen-config.sh - Generates nrtest app configuration file for test executable +# +# Date Created: 11/15/2017 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Arguments: +# 1 - absolute path to test executable +# +# NOT IMPLEMENTED YET +# 2 - test executable version number +# 3 - build description +# + +unameOut="$(uname -s)" +case "${unameOut}" in + Linux*) ;& + Darwin*) abs_build_path=$1 + test_cmd="run-swmm" + ;; + + MINGW*) ;& + MSYS*) # Remove leading '/c' from file path for nrtest + abs_build_path="$( echo "$1" | sed -e 's#/c##' )" + test_cmd="run-swmm.exe" + ;; + + *) # Machine unknown +esac + +version="" +build_description="" + +cat<=0.2.3 + +-f https://github.com/OpenWaterAnalytics/swmm-python/releases/download/v0.1.0-alpha/swmm_output-0.1.0a0-cp27-cp27m-win32.whl + +-e ./tools/nrtest-swmm diff --git a/linux/run-nrtest.sh b/linux/run-nrtest.sh new file mode 100644 index 0000000..5ca3a7a --- /dev/null +++ b/linux/run-nrtest.sh @@ -0,0 +1,90 @@ +#! /bin/bash +# +# run-nrtest.sh - Runs numerical regression test +# +# Date Created: 11/15/2017 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Arguments: +# 1 - test suite path +# 2 - version/build identifier +# + +run-nrtest() +{ +return_value=0 + + +benchmark_ver="220dev1" + + +test_suite_path=$2 + +nrtest_execute_cmd="nrtest execute" +test_app_path="apps/swmm-$3.json" +tests="tests/examples tests/extran tests/routing tests/user" +test_output_path="benchmark/swmm-$3" + +nrtest_compare_cmd="nrtest compare" +ref_output_path="benchmark/swmm-${benchmark_ver}" + +rtol_value=0.01 +atol_value=0.0 + +# change current directory to test_suite +cd ${test_suite_path} + +# clean test benchmark results +rm -rf ${test_output_path} + +echo +echo INFO: Creating test benchmark +nrtest_command="${nrtest_execute_cmd} ${test_app_path} ${tests} -o ${test_output_path}" +echo INFO: "$nrtest_command" +return_value=$( $nrtest_command ) + +if [ $1 = 'true' ]; then + echo + echo INFO: Comparing test and ref benchmarks + nrtest_command="${nrtest_compare_cmd} ${test_output_path} ${ref_output_path} --rtol ${rtol_value} --atol ${atol_value}" + echo INFO: "$nrtest_command" + return_value=$( $nrtest_command ) +fi + +return $return_value +} + + +print_usage() { + echo " " + echo "run-nrtest.sh - generates artifacts for SUT and performes benchmark comparison " + echo " " + echo "options:" + echo "-c, don't compare SUT and benchmark artifacts" + echo "-t test_path relative path to location where test suite is staged" + echo "-v version version/build identifier" + echo " " +} + +# Default option values +compare='true' +test_path='nrtestsuite' +version='vXXX' + +while getopts ":ct:v:" flag; do + case "${flag}" in + c ) compare='false' ;; + t ) test_path="${OPTARG}" ;; + v ) version=${OPTARG} ;; + \? ) print_usage + exit 1 ;; + esac +done +shift $(($OPTIND - 1)) + +# Invoke command +run_command="run-nrtest ${compare} ${test_path} ${version}" +echo INFO: "$run_command" +$run_command diff --git a/windows/Reg_Testing.md b/windows/Reg_Testing.md deleted file mode 100644 index 8a13fe6..0000000 --- a/windows/Reg_Testing.md +++ /dev/null @@ -1,51 +0,0 @@ - - -## Regression Testing SWMM or EPANET locally on Windows - - -### Dependencies - -Before the project can be built and tested the required dependencies must be installed. - -**Summary of Build Dependencies: Windows** - - - Build - - Build Tools for Visual Studio 2017 - - CMake 3.17 - - - Regression Test - - Python 3.7 64 bit - - curl - - git - - 7z - -Once Python is present, the following command installs the required packages for regression testing. -``` -\> cd < PROJECT_ROOT > -\>pip install -r tools\requirements-< PROJECT >.txt -``` - - -### Build - -EPANET can be built with one simple command. -``` -\>tools\make.cmd -``` - - -### Regression Test - -This command runs regression tests for the local build and compares them to the latest benchmark. -``` -\>tools\before-nrtest.cmd -\>tools\run-nrtest.cmd -``` From 85a40665db10d9e9fc771e28369e512a1d900255 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 3 Jun 2020 13:01:09 -0400 Subject: [PATCH 04/85] Renaming --- linux/{gen-config.sh => app-config.sh} | 0 linux/{before-test.sh => before-nrtest.sh} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename linux/{gen-config.sh => app-config.sh} (100%) rename linux/{before-test.sh => before-nrtest.sh} (100%) diff --git a/linux/gen-config.sh b/linux/app-config.sh similarity index 100% rename from linux/gen-config.sh rename to linux/app-config.sh diff --git a/linux/before-test.sh b/linux/before-nrtest.sh similarity index 100% rename from linux/before-test.sh rename to linux/before-nrtest.sh From aaa983808c60268b92d920f78a94c0aa248c4b90 Mon Sep 17 00:00:00 2001 From: cbuahin Date: Mon, 29 Jun 2020 17:46:42 -0700 Subject: [PATCH 05/85] Added build and testing scripts for Linux --- darwin/app-config.zsh | 2 +- linux/app-config.sh | 52 +++++++++++---- linux/before-nrtest.sh | 17 +++-- linux/make.sh | 37 +++++++++++ linux/run-nrtest.sh | 141 ++++++++++++++++++++++------------------- 5 files changed, 163 insertions(+), 86 deletions(-) mode change 100644 => 100755 linux/app-config.sh mode change 100644 => 100755 linux/before-nrtest.sh mode change 100644 => 100755 linux/run-nrtest.sh diff --git a/darwin/app-config.zsh b/darwin/app-config.zsh index 376f419..34c5143 100644 --- a/darwin/app-config.zsh +++ b/darwin/app-config.zsh @@ -32,7 +32,7 @@ where git &> /dev/null # swmm target created by the cmake build script -TEST_CMD="run${PROJECT}" +TEST_CMD="run-${PROJECT}" # path to executable in cmake build tree ABS_BUILD_PATH=$1 diff --git a/linux/app-config.sh b/linux/app-config.sh old mode 100644 new mode 100755 index 7451b9d..dd2c4d1 --- a/linux/app-config.sh +++ b/linux/app-config.sh @@ -1,44 +1,70 @@ #! /bin/bash # -# gen-config.sh - Generates nrtest app configuration file for test executable +# app-config.sh - Generates nrtest app configuration file for test executable # # Date Created: 11/15/2017 # -# Author: Michael E. Tryby +# Authors: Michael E. Tryby # US EPA - ORD/NRMRL +# +# Caleb A. Buahin +# Xylem Inc. # +# Requires: +# git +# +# Environment Variables: +# PROJECT +# PLATFORM +# # Arguments: # 1 - absolute path to test executable -# -# NOT IMPLEMENTED YET -# 2 - test executable version number -# 3 - build description +# 2 - (SUT build it) # unameOut="$(uname -s)" case "${unameOut}" in Linux*) ;& - Darwin*) abs_build_path=$1 - test_cmd="run-swmm" + Darwin*) ABS_BUILD_PATH=$1 + TEST_CMD="run-swmm" ;; MINGW*) ;& MSYS*) # Remove leading '/c' from file path for nrtest - abs_build_path="$( echo "$1" | sed -e 's#/c##' )" - test_cmd="run-swmm.exe" + ABS_BUILD_PATH="$( echo "$1" | sed -e 's#/c##' )" + TEST_CMD="run-swmm.exe" ;; *) # Machine unknown esac -version="" -build_description="" + +# Check requirements +type git >/dev/null 2>&1 || { echo "ERROR: git not installed"; exit 1; } + + +# check that env variables are set +if [[ ! -v PROJECT ]]; then echo "ERROR: PROJECT must be defined"; exit 1; fi +if [[ ! -v PLATFORM ]]; then echo "ERROR: PLATFORM must be defined"; exit 1; fi + +# process optional arguments +if [ ! -z "$2" ]; then + BUILD_ID=$2 +else + BUILD_ID="unknown" +fi + +# determine version +VERSION=$( git rev-parse --short HEAD ) +if [ -z ${VERSION} ]; then echo "ERROR: VERSION must be determined"; exit 1; fi; + +build_description="${PLATFORM} ${BUILD_ID}" cat< apps/swmm-$3.json +# mkdir apps +# ${SCRIPT_HOME}/app-config.sh $2 > apps/swmm-$3.json diff --git a/linux/make.sh b/linux/make.sh index e69de29..d08953a 100644 --- a/linux/make.sh +++ b/linux/make.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# +# make.sh - Builds swmm executable +# +# Date Created: 06/29/2020 +# +# Authors: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Caleb A. Buahin +# Xylem Inc. +# + +export PROJECT="swmm" +export BUILD_HOME="build" + +GENERATOR="Ninja" + + +# determine project directory +CUR_DIR=${PWD} +SCRIPT_HOME=$(cd `dirname $0` && pwd) + +cd ${SCRIPT_HOME}/../.. + +# perform the build +# cmake -E make_directory ${BUILD_HOME} +cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. +cmake --build ./${BUILD_HOME} --config Release --target all -- -v + + +export PLATFORM="Linux" + + +# return user to current dir +cd ${CUR_DIR} diff --git a/linux/run-nrtest.sh b/linux/run-nrtest.sh old mode 100644 new mode 100755 index 5ca3a7a..71c0d4b --- a/linux/run-nrtest.sh +++ b/linux/run-nrtest.sh @@ -6,85 +6,96 @@ # # Author: Michael E. Tryby # US EPA - ORD/NRMRL +# +# Caleb A. Buahin +# Xylem Inc. # -# Arguments: -# 1 - test suite path -# 2 - version/build identifier +# Dependencies: +# python -m pip install -r requirements.txt +# +# Environment Variables: +# PROJECT +# BUILD_HOME - relative path +# TEST_HOME - relative path +# PLATFORM +# REF_BUILD_ID # +# Arguments: +# 1 - (SUT_VERSION) - optional argument +# 2 - (SUT_BUILD_ID) - optional argument + +# check that env variables are set +REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'TEST_HOME' 'PLATFORM' 'REF_BUILD_ID') +for i in ${REQUIRED_VARS[@]} +do + if [[ -v i ]]; then + echo "ERROR: $i must be defined"; exit 1; + fi +done -run-nrtest() -{ -return_value=0 +# process optional arguments +if [ ! -z "$1" ]; then + SUT_VERSION=$1 +else + SUT_VERSION="unknown" +fi -benchmark_ver="220dev1" +if [ ! -z "$2" ]; then + SUT_BUILD_ID=$2 +else + SUT_BUILD_ID="local" +fi -test_suite_path=$2 +# determine project root directory +CUR_DIR=${PWD} +SCRIPT_HOME=$(cd `dirname $0` && pwd) +cd ${SCRIPT_HOME}/../../ +PROJ_DIR=${PWD} -nrtest_execute_cmd="nrtest execute" -test_app_path="apps/swmm-$3.json" -tests="tests/examples tests/extran tests/routing tests/user" -test_output_path="benchmark/swmm-$3" -nrtest_compare_cmd="nrtest compare" -ref_output_path="benchmark/swmm-${benchmark_ver}" +# change current directory to test suite +cd ${TEST_HOME} -rtol_value=0.01 -atol_value=0.0 +# check if app config file exists +if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] +then + mkdir -p "apps" + ${SCRIPT_HOME}/app-config.zsh "${PROJ_DIR}/${BUILD_HOME}/bin" \ + ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" +fi + +# build list of directories contaiing tests +TESTS=$( find ./tests -mindepth 1 -type d -follow | paste -sd " " - ) -# change current directory to test_suite -cd ${test_suite_path} +# build nrtest execute command +NRTEST_EXECUTE_CMD='nrtest execute' +TEST_APP_PATH="./apps/${PROJECT}-${SUT_BUILD_ID}.json" +TEST_OUTPUT_PATH="./benchmark/${PROJECT}-${SUT_BUILD_ID}" -# clean test benchmark results -rm -rf ${test_output_path} +# build nrtest compare command +NRTEST_COMPARE_CMD='nrtest compare' +REF_OUTPUT_PATH="benchmark/${PROJECT}-${REF_BUILD_ID}" +RTOL_VALUE='0.01' +ATOL_VALUE='1.E-6' -echo -echo INFO: Creating test benchmark -nrtest_command="${nrtest_execute_cmd} ${test_app_path} ${tests} -o ${test_output_path}" -echo INFO: "$nrtest_command" -return_value=$( $nrtest_command ) -if [ $1 = 'true' ]; then - echo - echo INFO: Comparing test and ref benchmarks - nrtest_command="${nrtest_compare_cmd} ${test_output_path} ${ref_output_path} --rtol ${rtol_value} --atol ${atol_value}" - echo INFO: "$nrtest_command" - return_value=$( $nrtest_command ) +# if present clean test benchmark results +if [ -d "${TEST_OUTPUT_PATH}" ]; then + rm -rf "${TEST_OUTPUT_PATH}" fi -return $return_value -} - - -print_usage() { - echo " " - echo "run-nrtest.sh - generates artifacts for SUT and performes benchmark comparison " - echo " " - echo "options:" - echo "-c, don't compare SUT and benchmark artifacts" - echo "-t test_path relative path to location where test suite is staged" - echo "-v version version/build identifier" - echo " " -} - -# Default option values -compare='true' -test_path='nrtestsuite' -version='vXXX' - -while getopts ":ct:v:" flag; do - case "${flag}" in - c ) compare='false' ;; - t ) test_path="${OPTARG}" ;; - v ) version=${OPTARG} ;; - \? ) print_usage - exit 1 ;; - esac -done -shift $(($OPTIND - 1)) +# perform nrtest execute +echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" +NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" +eval ${NRTEST_COMMAND} + +# perform nrtest compare +echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" +NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" +eval ${NRTEST_COMMAND} + -# Invoke command -run_command="run-nrtest ${compare} ${test_path} ${version}" -echo INFO: "$run_command" -$run_command +# return user to current dir +cd ${CUR_DIR} From 0bb4cdc5fc9be5972f6ac822d8828ebb0c33037e Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Mon, 6 Jul 2020 10:20:46 -0400 Subject: [PATCH 06/85] Minor changes --- windows/before-nrtest.cmd | 3 ++- windows/make.cmd | 14 +++++++------- windows/run-nrtests.cmd | 3 ++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index ac82a6b..c13fa95 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -34,7 +34,8 @@ set "TEST_HOME=nrtests" set "CUR_DIR=%CD%" set "SCRIPT_HOME=%~dp0" cd %SCRIPT_HOME% -cd .. +pushd .. +pushd .. setlocal diff --git a/windows/make.cmd b/windows/make.cmd index cd5747c..56424f6 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -35,7 +35,7 @@ cd %SCRIPT_HOME% pushd .. pushd .. set "PROJ_DIR=%CD%" -popd +:: popd :: check for requirements where cmake > nul @@ -45,7 +45,7 @@ if %ERRORLEVEL% NEQ 0 ( echo "ERROR: cmake not installed" & exit /B 1 ) :: determine project if not defined PROJECT ( for %%i in (%PROJ_DIR%) do set PROJECT=%%~ni - set PROJECT=%PROJECT:~0,-8% + set PROJECT=%PROJECT:~0,-7% if not defined PROJECT ( echo "ERROR: PROJECT could not be determined" & exit /B 1 ) @@ -95,12 +95,12 @@ cmake -E make_directory %BUILD_HOME% if %TESTING% EQU 1 ( - cmake -E chdir ./%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ - && cmake --build ./%BUILD_HOME% --config Debug^ - & echo. && cmake -E chdir ./%BUILD_HOME% ctest -C Debug --output-on-failure + cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ + && cmake --build .\%BUILD_HOME% --config Debug^ + & echo. && cmake -E chdir .\%BUILD_HOME% ctest -C Debug --output-on-failure ) else ( - cmake -E chdir ./%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ - && cmake --build ./%BUILD_HOME% --config Release --target package + cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ + && cmake --build .\%BUILD_HOME% --config Release --target package ) diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index d55607e..d4758f8 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -40,8 +40,9 @@ set "CUR_DIR=%CD%" set "SCRIPT_HOME=%~dp0" cd %SCRIPT_HOME% pushd .. +pushd .. set "PROJ_DIR=%CD%" -popd +::popd cd %PROJ_DIR%\%TEST_HOME% From 009872ede5f3a47d7bc315cb71a63d13be125b37 Mon Sep 17 00:00:00 2001 From: cbuahin Date: Mon, 6 Jul 2020 11:04:09 -0700 Subject: [PATCH 07/85] Addressing PR comments; Staging artifacts --- darwin/app-config.zsh | 14 ++++--- darwin/before-nrtest.zsh | 34 +++++++++++----- darwin/make.zsh | 18 +++++++-- darwin/run-nrtests.zsh | 13 +++++- linux/app-config.sh | 29 ++++++-------- linux/before-nrtest.sh | 85 +++++++++++++++++++++++++++++++++------- linux/make.sh | 12 ++++-- linux/run-nrtest.sh | 13 +++++- 8 files changed, 162 insertions(+), 56 deletions(-) diff --git a/darwin/app-config.zsh b/darwin/app-config.zsh index 34c5143..cdc82a7 100644 --- a/darwin/app-config.zsh +++ b/darwin/app-config.zsh @@ -21,8 +21,7 @@ # 2 - (SUT build id) # - -# check requirements +# Check requirements where git &> /dev/null [[ ! $? ]] && { echo "ERROR: git not installed"; return 1 } @@ -31,8 +30,13 @@ where git &> /dev/null [[ ! -v PLATFORM ]] && { echo "ERROR: PLATFORM must be defined"; return 1 } -# swmm target created by the cmake build script -TEST_CMD="run-${PROJECT}" +# check if project is swmm otherwise EPANET +if [[ ${PROJECT} == *"swmm"* ]]; then + TEST_CMD="run-${PROJECT}" +else + TEST_CMD="run${PROJECT}" +fi + # path to executable in cmake build tree ABS_BUILD_PATH=$1 @@ -50,7 +54,7 @@ VERSION=$( git rev-parse --short HEAD ) cat</dev/null 2>&1 || { echo "ERROR: git not installed"; exit 1; } @@ -48,6 +31,16 @@ type git >/dev/null 2>&1 || { echo "ERROR: git not installed"; exit 1; } if [[ ! -v PROJECT ]]; then echo "ERROR: PROJECT must be defined"; exit 1; fi if [[ ! -v PLATFORM ]]; then echo "ERROR: PLATFORM must be defined"; exit 1; fi +# check if project is swmm otherwise EPANET +if [[ ${PROJECT} == *"swmm"* ]]; then + TEST_CMD="run-${PROJECT}" +else + TEST_CMD="run${PROJECT}" +fi + +# path to executable in cmake build tree +ABS_BUILD_PATH=$1 + # process optional arguments if [ ! -z "$2" ]; then BUILD_ID=$2 @@ -63,7 +56,7 @@ build_description="${PLATFORM} ${BUILD_ID}" cat< apps/swmm-$3.json +# determine REF_BUILD_ID from manifest file +export REF_BUILD_ID="local" + +# return user to current dir +cd ${CUR_DIR} + diff --git a/linux/make.sh b/linux/make.sh index d08953a..84d187e 100644 --- a/linux/make.sh +++ b/linux/make.sh @@ -4,6 +4,7 @@ # make.sh - Builds swmm executable # # Date Created: 06/29/2020 +# Date Modified: 07/06/2020 # # Authors: Michael E. Tryby # US EPA - ORD/NRMRL @@ -11,8 +12,13 @@ # Caleb A. Buahin # Xylem Inc. # +# Environment Variables: +# PROJECT + +# Check to make sure PROJECT is defined +if [[ ! -v PROJECT ]]; then echo "ERROR: PROJECT must be defined"; exit 1; fi + -export PROJECT="swmm" export BUILD_HOME="build" GENERATOR="Ninja" @@ -22,10 +28,10 @@ GENERATOR="Ninja" CUR_DIR=${PWD} SCRIPT_HOME=$(cd `dirname $0` && pwd) -cd ${SCRIPT_HOME}/../.. +cd ${SCRIPT_HOME}/../../ # perform the build -# cmake -E make_directory ${BUILD_HOME} +cmake -E make_directory ${BUILD_HOME} cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. cmake --build ./${BUILD_HOME} --config Release --target all -- -v diff --git a/linux/run-nrtest.sh b/linux/run-nrtest.sh index 71c0d4b..9710ca6 100755 --- a/linux/run-nrtest.sh +++ b/linux/run-nrtest.sh @@ -62,7 +62,7 @@ cd ${TEST_HOME} if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then mkdir -p "apps" - ${SCRIPT_HOME}/app-config.zsh "${PROJ_DIR}/${BUILD_HOME}/bin" \ + ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin" \ ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" fi @@ -96,6 +96,17 @@ echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" eval ${NRTEST_COMMAND} +# Stage artifacts for upload +cd ./benchmark + +if [ $? -eq 0 ] +then + tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} + mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz +else + echo "INFO: nrtest compare exited successfully" + mv receipt.json ./${PROJ_DIR}/upload/receipt.json +fi # return user to current dir cd ${CUR_DIR} From fed6d56aaf838e06db53f287d2527acf7291c404 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 11:55:40 -0400 Subject: [PATCH 08/85] Configuring for build package upload --- windows/make.cmd | 9 +++++---- windows/run-nrtests.cmd | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/windows/make.cmd b/windows/make.cmd index 56424f6..1635685 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -35,11 +35,11 @@ cd %SCRIPT_HOME% pushd .. pushd .. set "PROJ_DIR=%CD%" -:: popd + :: check for requirements where cmake > nul -if %ERRORLEVEL% NEQ 0 ( echo "ERROR: cmake not installed" & exit /B 1 ) +if %ERRORLEVEL% neq 0 ( echo "ERROR: cmake not installed" & exit /B 1 ) :: determine project @@ -94,13 +94,14 @@ if exist %BUILD_HOME% ( cmake -E make_directory %BUILD_HOME% -if %TESTING% EQU 1 ( +if %TESTING% equ 1 ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ && cmake --build .\%BUILD_HOME% --config Debug^ & echo. && cmake -E chdir .\%BUILD_HOME% ctest -C Debug --output-on-failure ) else ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ - && cmake --build .\%BUILD_HOME% --config Release --target package + && cmake --build .\%BUILD_HOME% --config Release --target package^ + && move /Y .\%BUILD_HOME%\*.zip .\upload > nul ) diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index d4758f8..d337d10 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -122,10 +122,10 @@ cd .\benchmark if %RESULT% neq 0 ( echo ERROR: nrtest compare exited with errors 7z a benchmark-%PLATFORM%.zip .\%PROJECT%-%SUT_BUILD_ID% > nul - move /Y benchmark-%PLATFORM%.zip %PROJ_DIR%\upload\benchmark-%PLATFORM%.zip > nul + move /Y benchmark-%PLATFORM%.zip %PROJ_DIR%\upload > nul ) else ( echo INFO: nrtest compare exited successfully - move /Y receipt.json %PROJ_DIR%\upload\receipt.json > nul + move /Y receipt.json %PROJ_DIR%\upload > nul ) :: return user to their current dir and exit From 4c4267154418384970c50fe68579c576d74e9e40 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 12:43:49 -0400 Subject: [PATCH 09/85] Configuring artifact upload --- windows/make.cmd | 6 ++++++ windows/run-nrtests.cmd | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/windows/make.cmd b/windows/make.cmd index 1635685..a376e53 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -42,6 +42,12 @@ where cmake > nul if %ERRORLEVEL% neq 0 ( echo "ERROR: cmake not installed" & exit /B 1 ) +:: prepare for artifact upload +if not exist upload ( + mkdir upload +) + + :: determine project if not defined PROJECT ( for %%i in (%PROJ_DIR%) do set PROJECT=%%~ni diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index d337d10..82b54fb 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -59,11 +59,6 @@ if not exist apps\%PROJECT%-%SUT_BUILD_ID%.json ( %PLATFORM% %SUT_BUILD_ID% > apps\%PROJECT%-%SUT_BUILD_ID%.json ) -:: prepare for artifact upload -if not exist %PROJ_DIR%\upload ( - mkdir %PROJ_DIR%\upload -) - :: recursively build test list :: set "TESTS=tests\examples" From 7c15ff67c85ac727a9c1973dfc3f6461a2f8b097 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 17:26:22 -0400 Subject: [PATCH 10/85] Updates nrtests URL to point to OWA/swmm-nrtestsuite --- windows/before-nrtest.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index c13fa95..e3bbe3d 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -48,7 +48,7 @@ for %%d in (curl 7z) do ( :: set URL to github repo with test files -set "NRTESTS_URL=https://github.com/%PROJECT%-Project/%PROJECT%-nrtestsuite" +set "NRTESTS_URL=https://github.com/OpenWaterAnalytics/%PROJECT%-nrtestsuite" :: if release tag isn't provided latest tag will be retrieved From 77911da0cc1dbb61d399f2abb271102fb65a2d81 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 17:40:26 -0400 Subject: [PATCH 11/85] Fixes test path --- windows/before-nrtest.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index e3bbe3d..7c8dee3 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -101,7 +101,7 @@ curl -fsSL -o benchmark.zip %BENCHFILES_URL% :: set up symlinks for tests directory -mklink /D .\tests .\%PROJECT%-nrtestsuite-%RELEASE_TAG:~1%\public > nul +mklink /D .\tests .\%PROJECT%-nrtestsuite-%RELEASE_TAG:~1%\swmm-tests > nul endlocal From 8343db7561f119e9085d4dced89ccc434d526205 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 19:39:32 -0400 Subject: [PATCH 12/85] Updating --- windows/before-nrtest.cmd | 2 +- windows/run-nrtests.cmd | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index 7c8dee3..e3bbe3d 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -101,7 +101,7 @@ curl -fsSL -o benchmark.zip %BENCHFILES_URL% :: set up symlinks for tests directory -mklink /D .\tests .\%PROJECT%-nrtestsuite-%RELEASE_TAG:~1%\swmm-tests > nul +mklink /D .\tests .\%PROJECT%-nrtestsuite-%RELEASE_TAG:~1%\public > nul endlocal diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 82b54fb..0184113 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -101,25 +101,28 @@ if exist %TEST_OUTPUT_PATH% ( echo INFO: Creating SUT %SUT_BUILD_ID% artifacts set NRTEST_COMMAND=%NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% :: if there is an error exit the script with error value 1 -%NRTEST_COMMAND% || exit /B 1 +%NRTEST_COMMAND% +set RESULT=%ERRORLEVEL% echo. :: perform nrtest compare -echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% -set NRTEST_COMMAND=%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json -%NRTEST_COMMAND% +if %RESULT% equ 0 ( + echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% + set NRTEST_COMMAND=%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json + %NRTEST_COMMAND% + set RESULT=%ERRORLEVEL% +) -set RESULT=%ERRORLEVEL% cd .\benchmark :: stage artifacts for upload if %RESULT% neq 0 ( - echo ERROR: nrtest compare exited with errors + echo ERROR: nrtest exited with errors 7z a benchmark-%PLATFORM%.zip .\%PROJECT%-%SUT_BUILD_ID% > nul move /Y benchmark-%PLATFORM%.zip %PROJ_DIR%\upload > nul ) else ( - echo INFO: nrtest compare exited successfully + echo INFO: nrtest exited successfully move /Y receipt.json %PROJ_DIR%\upload > nul ) From 1954a2cc47bfd45f1fddb55f004b1c243e0e5c96 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 20:48:22 -0400 Subject: [PATCH 13/85] Fixing nrtest commands --- windows/run-nrtests.cmd | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 0184113..7464249 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -99,18 +99,15 @@ if exist %TEST_OUTPUT_PATH% ( :: perform nrtest execute echo INFO: Creating SUT %SUT_BUILD_ID% artifacts -set NRTEST_COMMAND=%NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% -:: if there is an error exit the script with error value 1 -%NRTEST_COMMAND% +%NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% set RESULT=%ERRORLEVEL% - +set echo. :: perform nrtest compare if %RESULT% equ 0 ( echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% - set NRTEST_COMMAND=%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json - %NRTEST_COMMAND% + %NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json set RESULT=%ERRORLEVEL% ) From 1b48ec59d34005d1f7d5c0e49e6fa566da32e7b6 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 8 Jul 2020 20:56:47 -0400 Subject: [PATCH 14/85] Fixing bug --- windows/run-nrtests.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 7464249..17ed2de 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -101,7 +101,7 @@ if exist %TEST_OUTPUT_PATH% ( echo INFO: Creating SUT %SUT_BUILD_ID% artifacts %NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% set RESULT=%ERRORLEVEL% -set + echo. :: perform nrtest compare From 25f97bc591e3b767a4e376cdef372eaacdf6b0ae Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 07:08:53 -0400 Subject: [PATCH 15/85] Fixed requirement files for linux and darwin --- darwin/requirements-swmm.txt | 7 +++++-- linux/requirements-swmm.txt | 11 ++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/darwin/requirements-swmm.txt b/darwin/requirements-swmm.txt index 0f18bb0..b9814f3 100644 --- a/darwin/requirements-swmm.txt +++ b/darwin/requirements-swmm.txt @@ -6,6 +6,9 @@ # # Author: Michael E. Tryby # US EPA ORD/CESER +# +# Caleb A. Buahin +# Xylem Inc. # # Useful for configuring a python environment to run nrtests on swmm. # @@ -15,8 +18,8 @@ nrtest --f https://github.com/michaeltryby/swmm-python/releases/download/v0.3.0-dev3/swmm.output-0.4.0.dev3-cp36-cp36m-win_amd64.whl -swmm.output +-f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.1/swmm_toolkit-0.5.0-cp37-cp37m-macosx_10_10_x86_64.whl +swmm-toolkit -f https://github.com/michaeltryby/swmm-python/releases/download/v0.3.0-dev3/nrtest_swmm-0.5.0-py3-none-any.whl nrtest-swmm diff --git a/linux/requirements-swmm.txt b/linux/requirements-swmm.txt index 27af6d7..66f3395 100644 --- a/linux/requirements-swmm.txt +++ b/linux/requirements-swmm.txt @@ -4,6 +4,9 @@ # Date Created: 3/15/2018 # Author: Michael E. Tryby # US EPA ORD/NRMRL +# +# Caleb A. Buahin +# Xylem Inc. # # Useful for configuring a python environment to run swmm-nrtestsuite. # @@ -11,8 +14,10 @@ # -nrtest>=0.2.3 +nrtest --f https://github.com/OpenWaterAnalytics/swmm-python/releases/download/v0.1.0-alpha/swmm_output-0.1.0a0-cp27-cp27m-win32.whl +-f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.1/swmm_toolkit-0.5.0-cp37-cp37m-linux_x86_64.whl +swmm-toolkit --e ./tools/nrtest-swmm +-f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.1/nrtest_swmm-0.6.0-py3-none-any.whl +nrtest-swmm From 5c18bbb17fcc1138172529743dff8e6279dce48d Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 07:30:53 -0400 Subject: [PATCH 16/85] Added build options to linux and darwin --- linux/make.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/linux/make.sh b/linux/make.sh index 84d187e..e3e6d18 100644 --- a/linux/make.sh +++ b/linux/make.sh @@ -22,6 +22,7 @@ if [[ ! -v PROJECT ]]; then echo "ERROR: PROJECT must be defined"; exit 1; fi export BUILD_HOME="build" GENERATOR="Ninja" +TESTING=0 # determine project directory @@ -32,12 +33,21 @@ cd ${SCRIPT_HOME}/../../ # perform the build cmake -E make_directory ${BUILD_HOME} -cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. -cmake --build ./${BUILD_HOME} --config Release --target all -- -v +if [ ${TESTING}=1 ]; then +# cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. +# cmake --build ./${BUILD_HOME} --config Release --target all -- -v + cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=ON .. \ + && cmake --build ./${BUILD_HOME} --config Debug \ + & echo. && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure -export PLATFORM="Linux" +else + cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=OFF .. \ + && cmake --build ./${BUILD_HOME} --config Release --target package \ + && cp ./${BUILD_HOME}/*.zip ./upload >&1 +fi +export PLATFORM="Linux" # return user to current dir cd ${CUR_DIR} From de1cb0e60d05c8badbe7b1f37a3e0a09ae393b76 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 08:28:08 -0400 Subject: [PATCH 17/85] Configuring environment variables --- darwin/make.zsh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 darwin/make.zsh diff --git a/darwin/make.zsh b/darwin/make.zsh old mode 100644 new mode 100755 From fa5f87ac0e053554b9c4bb9674c3e1acc0f07828 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 09:30:22 -0400 Subject: [PATCH 18/85] Moved NRTest URL to environment variable to address #2 --- linux/make.sh | 32 +++++++++++++++++++++++--------- windows/before-nrtest.cmd | 7 ++++--- 2 files changed, 27 insertions(+), 12 deletions(-) mode change 100644 => 100755 linux/make.sh diff --git a/linux/make.sh b/linux/make.sh old mode 100644 new mode 100755 index e3e6d18..649376f --- a/linux/make.sh +++ b/linux/make.sh @@ -13,28 +13,42 @@ # Xylem Inc. # # Environment Variables: -# PROJECT - -# Check to make sure PROJECT is defined -if [[ ! -v PROJECT ]]; then echo "ERROR: PROJECT must be defined"; exit 1; fi +# PROJECT name for project +# +# Optional Arguments: +# -g ("GENERATOR") defaults to "Ninja" +# -t builds and runs unit tests (requires Boost) +# set global defaults export BUILD_HOME="build" +# determine project directories +CUR_DIR=${PWD} +SCRIPT_HOME=$(cd `dirname $0` && pwd) + +echo INFO: Building ${PROJECT} ... + +# Check to make sure PROJECT is defined +if [[ ! -v PROJECT ]]; +then + echo "ERROR: PROJECT must be defined" + exit 1 +fi + +echo INFO: Building ${PROJECT} ... + GENERATOR="Ninja" TESTING=0 -# determine project directory -CUR_DIR=${PWD} -SCRIPT_HOME=$(cd `dirname $0` && pwd) - cd ${SCRIPT_HOME}/../../ # perform the build cmake -E make_directory ${BUILD_HOME} -if [ ${TESTING}=1 ]; then +if [ ${TESTING}=1 ]; +then # cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. # cmake --build ./${BUILD_HOME} --config Release --target all -- -v cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=ON .. \ diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index e3bbe3d..ac3a54c 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -15,7 +15,7 @@ :: PROJECT :: BUILD_HOME - defaults to "build" :: PLATFORM -:: +:: NRTESTS_URL - URL to set the test suite defaults to "https://github.com/OpenWaterAnalytics/%PROJECT%-nrtestsuite" :: Arguments: :: 1 - (RELEASE_TAG) release tag for benchmark version (defaults to latest tag) :: @@ -48,8 +48,9 @@ for %%d in (curl 7z) do ( :: set URL to github repo with test files -set "NRTESTS_URL=https://github.com/OpenWaterAnalytics/%PROJECT%-nrtestsuite" - +if not defined NRTESTS_URL ( + set NRTESTS_URL="https://github.com/OpenWaterAnalytics/%PROJECT%-nrtestsuite" +) :: if release tag isn't provided latest tag will be retrieved if [%1] == [] (set "RELEASE_TAG=" From 71f88fc5a14b20a3a9f2887f1d42999c66b823cb Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 11:34:31 -0400 Subject: [PATCH 19/85] Fixed linux build script to accept args for generator and testing --- linux/make.sh | 44 +++++++++++++++++++++++++++++++++++++------- windows/make.cmd | 6 +++--- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/linux/make.sh b/linux/make.sh index 649376f..3b2f463 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -27,20 +27,50 @@ export BUILD_HOME="build" CUR_DIR=${PWD} SCRIPT_HOME=$(cd `dirname $0` && pwd) -echo INFO: Building ${PROJECT} ... # Check to make sure PROJECT is defined -if [[ ! -v PROJECT ]]; -then - echo "ERROR: PROJECT must be defined" +if [[ -z "${PROJECT}" ]]; then + echo "ERROR: PROJECT could not be determined" exit 1 +else + echo INFO: Building ${PROJECT} ... fi -echo INFO: Building ${PROJECT} ... - GENERATOR="Ninja" TESTING=0 +echo PRINTING ARGS $@ + +POSITIONAL=() + +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -g|--gen) + GENERATOR="$2" + shift # past argument + shift # past value + ;; + -t|--test) + TESTING="$2" + echo ${TESTING} + shift # past argument + shift # past value + ;; + --default) + DEFAULT=YES + shift # past argument + ;; + *) # unknown option + POSITIONAL+=("$1") # save it in an array for later + shift # past argument + ;; +esac +done + +set -- "${POSITIONAL[@]}" # restore positional parameters cd ${SCRIPT_HOME}/../../ @@ -53,7 +83,7 @@ then # cmake --build ./${BUILD_HOME} --config Release --target all -- -v cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ - & echo. && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure + && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure else cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=OFF .. \ diff --git a/windows/make.cmd b/windows/make.cmd index a376e53..c2c26bf 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -58,10 +58,10 @@ if not defined PROJECT ( ) :: GitHub Actions -echo ::set-env name=PROJECT::%PROJECT% +:: ::set-env name=PROJECT::%PROJECT% -setlocal EnableDelayedExpansion +:: setlocal EnableDelayedExpansion echo INFO: Building %PROJECT% ... @@ -111,7 +111,7 @@ if %TESTING% equ 1 ( ) -endlocal +::endlocal :: determine platform from CmakeCache.txt file From 5eb68592632700701e72f381c5796abb9a3594ce Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 12:01:19 -0400 Subject: [PATCH 20/85] Restored delayed expansion --- windows/make.cmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/make.cmd b/windows/make.cmd index c2c26bf..d5f1130 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -58,10 +58,10 @@ if not defined PROJECT ( ) :: GitHub Actions -:: ::set-env name=PROJECT::%PROJECT% +echo::set-env name=PROJECT::%PROJECT% -:: setlocal EnableDelayedExpansion +setlocal EnableDelayedExpansion echo INFO: Building %PROJECT% ... From 3e37be55a5bbd4b759f04514ea369289a44e7d1f Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 12:42:52 -0400 Subject: [PATCH 21/85] Added dawrin config to accept generator and testing args --- darwin/make.zsh | 65 +++++++++++++++++++++++++++++++++--- darwin/requirements-swmm.txt | 2 +- 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index d48a763..204713d 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -14,25 +14,80 @@ # # Environment Variables: # PROJECT +# +# Optional Arguments: +# -g ("GENERATOR") defaults to "Ninja" +# -t builds and runs unit tests (requires Boost) + # Check to make sure PROJECT is defined [[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } export BUILD_HOME="build" -GENERATOR="Ninja" - - # determine project directory CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} cd ${SCRIPT_HOME}/../../ +# Check to make sure PROJECT is defined +[[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } + +echo INFO: Building ${PROJECT} ... + +GENERATOR="Ninja" +TESTING=0 + +POSITIONAL=() + +while [[ $# -gt 0 ]] +do +key="$1" + +case $key in + -g|--gen) + GENERATOR="$2" + shift # past argument + shift # past value + ;; + -t|--test) + TESTING="$2" + echo ${TESTING} + shift # past argument + shift # past value + ;; + --default) + DEFAULT=YES + shift # past argument + ;; + *) # unknown option + POSITIONAL+=("$1") # save it in an array for later + shift # past argument + ;; +esac +done + +set -- "${POSITIONAL[@]}" # restore positional parameters # perform the build cmake -E make_directory ${BUILD_HOME} -cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. -cmake --build ./${BUILD_HOME} --config Release --target all -- -v + +if [ ${TESTING}=1 ]; +then +# cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. +# cmake --build ./${BUILD_HOME} --config Release --target all -- -v + cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=ON .. \ + && cmake --build ./${BUILD_HOME} --config Debug \ + && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure + +else + cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=OFF .. \ + && cmake --build ./${BUILD_HOME} --config Release --target package \ + && cp ./${BUILD_HOME}/*.zip ./upload >&1 +fi + +# cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. +# cmake --build ./${BUILD_HOME} --config Release --target all -- -v export PLATFORM="Darwin" diff --git a/darwin/requirements-swmm.txt b/darwin/requirements-swmm.txt index b9814f3..400e8c6 100644 --- a/darwin/requirements-swmm.txt +++ b/darwin/requirements-swmm.txt @@ -21,5 +21,5 @@ nrtest -f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.1/swmm_toolkit-0.5.0-cp37-cp37m-macosx_10_10_x86_64.whl swmm-toolkit --f https://github.com/michaeltryby/swmm-python/releases/download/v0.3.0-dev3/nrtest_swmm-0.5.0-py3-none-any.whl +-f https://github.com/SWMM-Project/swmm-python/releases/download/v0.6.0-rc.1/nrtest_swmm-0.6.0-py3-none-any.whl nrtest-swmm From 5e283f773f481714931a172b9710b4c07de45ea9 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 12:51:30 -0400 Subject: [PATCH 22/85] Added NRTest as environment variable for linux and macos --- darwin/before-nrtest.zsh | 7 ++++++- linux/before-nrtest.sh | 7 +++++-- linux/make.sh | 3 +-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 2569d19..ec45cc6 100644 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -18,6 +18,7 @@ # PROJECT # BUILD_HOME - relative path # PLATFORM +# NRTESTS_URL # # Arguments: # 1 - (RELEASE_TAG) - Release tag @@ -37,7 +38,11 @@ cd ${SCRIPT_HOME}/../../ # set URL to github repo with nrtest files -NRTESTS_URL="https://github.com/SWMM-Project/${PROJECT}-nrtestsuite" +if [[ -z ${RELEASE_TAG} ]]; then + # set URL to github repo with nrtest files + NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" +fi + LATEST_URL="${NRTESTS_URL}/releases/latest" diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 4025b33..229ef09 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -18,6 +18,7 @@ # PROJECT # BUILD_HOME - relative path # PLATFORM +# NRTESTS_URL # # Arguments: # 1 - (RELEASE_TAG) - Release tag @@ -47,9 +48,11 @@ CUR_DIR=${PWD} SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd ${SCRIPT_HOME}/../../ +if [[ -z ${RELEASE_TAG} ]]; then + # set URL to github repo with nrtest files + NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" +fi -# set URL to github repo with nrtest files -NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" LATEST_URL="${NRTESTS_URL}/releases/latest" diff --git a/linux/make.sh b/linux/make.sh index 3b2f463..522fb1e 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -26,6 +26,7 @@ export BUILD_HOME="build" # determine project directories CUR_DIR=${PWD} SCRIPT_HOME=$(cd `dirname $0` && pwd) +cd ${SCRIPT_HOME}/../../ # Check to make sure PROJECT is defined @@ -39,7 +40,6 @@ fi GENERATOR="Ninja" TESTING=0 -echo PRINTING ARGS $@ POSITIONAL=() @@ -72,7 +72,6 @@ done set -- "${POSITIONAL[@]}" # restore positional parameters -cd ${SCRIPT_HOME}/../../ # perform the build cmake -E make_directory ${BUILD_HOME} From daa2269afe4534ec29d3f0974cd85cd2ffd7a839 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 13:00:23 -0400 Subject: [PATCH 23/85] Uncomment end local --- windows/make.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/make.cmd b/windows/make.cmd index d5f1130..2498333 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -111,7 +111,7 @@ if %TESTING% equ 1 ( ) -::endlocal +endlocal :: determine platform from CmakeCache.txt file From 9521a3b8a1cb0592ce463115b9757bce8b4c3dbb Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 13:05:45 -0400 Subject: [PATCH 24/85] Fixed env check in before-nrtest.sh --- linux/before-nrtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 229ef09..ee019d3 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -38,7 +38,7 @@ export TEST_HOME="nrtests" REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'PLATFORM') for i in ${REQUIRED_VARS[@]} do - if [[ -v i ]]; then + if [[ -z "${i}" ]]; then echo "ERROR: $i must be defined"; exit 1; fi done From 8c98ac16f198e532235009d8a11a87bcac8527b9 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 13:18:33 -0400 Subject: [PATCH 25/85] Fixed if/else bug --- linux/before-nrtest.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index ee019d3..7971699 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -48,7 +48,7 @@ CUR_DIR=${PWD} SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd ${SCRIPT_HOME}/../../ -if [[ -z ${RELEASE_TAG} ]]; then +if [[ -z "${RELEASE_TAG}" ]]; then # set URL to github repo with nrtest files NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" fi @@ -74,18 +74,18 @@ fi # build URLs for test and benchmark files; need to standardize urls or change into argument -if [[ -v RELEASE_TAG ]] -then - TESTFILES_URL="${NRTESTS_URL}/archive/${RELEASE_TAG}.tar.gz" - - if [[ -v BENCHMARK_VER ]] +if [[ ! -z "${RELEASE_TAG}" ]] then - BENCHFILES_URL="${NRTESTS_URL}/releases/download/${RELEASE_TAG}/$PROJECT-benchmark-${BENCHMARK_VER}.tar.gz" + TESTFILES_URL="${NRTESTS_URL}/archive/${RELEASE_TAG}.tar.gz" + + if [[ ! -z "$BENCHMARK_VER" ]] + then + BENCHFILES_URL="${NRTESTS_URL}/releases/download/${RELEASE_TAG}/$PROJECT-benchmark-${BENCHMARK_VER}.tar.gz" + else + echo "ERROR: tag %BENCHMARK_VER% is invalid" ; exit 1 + fi else - echo "ERROR: tag %BENCHMARK_VER% is invalid" ; exit 1 - -else - echo "ERROR: tag %RELEASE_TAG% is invalid" ; exit 1 + echo "ERROR: tag %RELEASE_TAG% is invalid" ; exit 1 fi echo INFO: Staging files for regression testing From c00506e9f3370c2fffc6d6f117759e1e1f313e3d Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 13:37:10 -0400 Subject: [PATCH 26/85] Fixed NRTest URL check --- darwin/before-nrtest.zsh | 2 +- linux/before-nrtest.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index ec45cc6..dca4053 100644 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -38,7 +38,7 @@ cd ${SCRIPT_HOME}/../../ # set URL to github repo with nrtest files -if [[ -z ${RELEASE_TAG} ]]; then +if [[ -z ${NRTESTS_URL} ]]; then # set URL to github repo with nrtest files NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" fi diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 7971699..0dc4710 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -48,7 +48,7 @@ CUR_DIR=${PWD} SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd ${SCRIPT_HOME}/../../ -if [[ -z "${RELEASE_TAG}" ]]; then +if [[ -z "${NRTESTS_URL}" ]]; then # set URL to github repo with nrtest files NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" fi From 8678f2fa14ac08365b8b40fec13d4e010473828b Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 22:37:04 -0400 Subject: [PATCH 27/85] Removed generalized paths for nrtests for linux and macos temporarily --- darwin/before-nrtest.zsh | 39 +++++++++++++++++++++++---------------- darwin/make.zsh | 4 ++-- linux/before-nrtest.sh | 32 ++++++++++++++++++-------------- 3 files changed, 43 insertions(+), 32 deletions(-) mode change 100644 => 100755 darwin/before-nrtest.zsh diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh old mode 100644 new mode 100755 index dca4053..b5f09f0 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -18,7 +18,6 @@ # PROJECT # BUILD_HOME - relative path # PLATFORM -# NRTESTS_URL # # Arguments: # 1 - (RELEASE_TAG) - Release tag @@ -38,28 +37,32 @@ cd ${SCRIPT_HOME}/../../ # set URL to github repo with nrtest files -if [[ -z ${NRTESTS_URL} ]]; then - # set URL to github repo with nrtest files - NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" +if [[ -v NRTESTS_URL ]] +then +NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-nrtestsuite" fi LATEST_URL="${NRTESTS_URL}/releases/latest" -# use release tag arg else determine latest -if [[ ! -z "$1" ]] -then - RELEASE_TAG=$1 -else - RELEASE_TAG=$( curl -sI "${LATEST_URL}" | grep -Po 'tag\/\K(v\S+)' ) - RELEASE_TAG=$( basename ${RELEASE_TAG} ) # unnecessary -fi +# use release tag arg else determine latest hard coded for now. +# if [[ ! -z "$1" ]] +# then +# RELEASE_TAG=$1 +# else +# RELEASE_TAG=$( curl -sI "${LATEST_URL}" | grep -Po 'tag\/\K(v\S+)' ) +# RELEASE_TAG=$( basename ${RELEASE_TAG} ) # unnecessary +# fi + +#hard coded for now +EXAMPLES_VER="1.0.0" +BENCHMARK_VER="5112" # build URLs for test and benchmark files -if [[ -v RELEASE_TAG ]] +if [[ -v EXAMPLES_VER ]] then - TESTFILES_URL="${NRTESTS_URL}/archive/${RELEASE_TAG}.tar.gz" - BENCHFILES_URL="${NRTESTS_URL}/releases/download/${RELEASE_TAG}/benchmark-${PLATFORM}.tar.gz" + TESTFILES_URL="${NRTESTS_URL}/archive/v${EXAMPLES_VER}.tar.gz" + BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${EXAMPLES_VER}/$PROJECT-benchmark-${BENCHMARK_VER}.tar.gz" else echo "ERROR: tag %RELEASE_TAG% is invalid" ; return 1 fi @@ -71,9 +74,12 @@ if [[ -d ${TEST_HOME} ]] then rm -rf ${TEST_HOME} fi + mkdir ${TEST_HOME} cd ${TEST_HOME} +echo ${TESTFILES_URL} +echo ${BENCHFILES_URL} # retrieve tests and benchmarks for regression testing curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} @@ -82,7 +88,8 @@ curl -fsSL -o benchmarks.tar.gz ${BENCHFILES_URL} # extract tests and setup symlink tar xzf nrtestfiles.tar.gz -ln -s ./${PROJECT}-nrtestsuite-${RELEASE_TAG:1}/public tests +ln -s ${PROJECT}-nrtestsuite-${EXAMPLES_VER}/swmm-tests tests + # create benchmark dir and extract benchmarks mkdir benchmark diff --git a/darwin/make.zsh b/darwin/make.zsh index 204713d..5053b8b 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -86,8 +86,8 @@ else && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi -# cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. -# cmake --build ./${BUILD_HOME} --config Release --target all -- -v +cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. +cmake --build ./${BUILD_HOME} --config Release --target all -- -v export PLATFORM="Darwin" diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 0dc4710..6bf772d 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -50,20 +50,24 @@ cd ${SCRIPT_HOME}/../../ if [[ -z "${NRTESTS_URL}" ]]; then # set URL to github repo with nrtest files - NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-example-networks" + NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-nrtestsuite" fi LATEST_URL="${NRTESTS_URL}/releases/latest" +# use release tag arg else determine latest when available (need to be released for ;o) +# if [[ ! -z "$1" ]] +# then +# RELEASE_TAG=$1 +# else +# RELEASE_TAG=$( curl -sI "${LATEST_URL}" | grep -Po 'tag\/\K(v\S+)' ) +# RELEASE_TAG=$( basename ${RELEASE_TAG} ) # unnecessary +# fi -# use release tag arg else determine latest -if [[ ! -z "$1" ]] -then - RELEASE_TAG=$1 -else - RELEASE_TAG=$( curl -sI "${LATEST_URL}" | grep -Po 'tag\/\K(v\S+)' ) - RELEASE_TAG=$( basename ${RELEASE_TAG} ) # unnecessary -fi + +#hard coded for now +EXAMPLES_VER="1.0.0" +BENCHMARK_VER="5112" # check benchmark version @@ -74,13 +78,12 @@ fi # build URLs for test and benchmark files; need to standardize urls or change into argument -if [[ ! -z "${RELEASE_TAG}" ]] +if [[ ! -z "${EXAMPLES_VER}" ]] then - TESTFILES_URL="${NRTESTS_URL}/archive/${RELEASE_TAG}.tar.gz" - + TESTFILES_URL="${NRTESTS_URL}/archive/v${EXAMPLES_VER}.tar.gz" if [[ ! -z "$BENCHMARK_VER" ]] then - BENCHFILES_URL="${NRTESTS_URL}/releases/download/${RELEASE_TAG}/$PROJECT-benchmark-${BENCHMARK_VER}.tar.gz" + BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${EXAMPLES_VER}/$PROJECT-benchmark-${BENCHMARK_VER}.tar.gz" else echo "ERROR: tag %BENCHMARK_VER% is invalid" ; exit 1 fi @@ -105,7 +108,7 @@ curl -fsSL -o benchmark.tar.gz ${BENCHFILES_URL} # extract tests and benchmarks tar xzf nrtestfiles.tar.gz -ln -s swmm-example-networks-${EXAMPLES_VER}/swmm-tests tests +ln -s ${PROJECT}-nrtestsuite-${EXAMPLES_VER}/swmm-tests tests mkdir benchmark tar xzf benchmark.tar.gz -C benchmark @@ -117,3 +120,4 @@ export REF_BUILD_ID="local" # return user to current dir cd ${CUR_DIR} + From e4f8a2ecb95adee813b1a56c0007d7ee9bc12db7 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 22:49:54 -0400 Subject: [PATCH 28/85] Fixed naming error --- linux/run-nrtest.sh | 112 -------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100755 linux/run-nrtest.sh diff --git a/linux/run-nrtest.sh b/linux/run-nrtest.sh deleted file mode 100755 index 9710ca6..0000000 --- a/linux/run-nrtest.sh +++ /dev/null @@ -1,112 +0,0 @@ -#! /bin/bash -# -# run-nrtest.sh - Runs numerical regression test -# -# Date Created: 11/15/2017 -# -# Author: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. -# -# Dependencies: -# python -m pip install -r requirements.txt -# -# Environment Variables: -# PROJECT -# BUILD_HOME - relative path -# TEST_HOME - relative path -# PLATFORM -# REF_BUILD_ID -# -# Arguments: -# 1 - (SUT_VERSION) - optional argument -# 2 - (SUT_BUILD_ID) - optional argument - -# check that env variables are set -REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'TEST_HOME' 'PLATFORM' 'REF_BUILD_ID') -for i in ${REQUIRED_VARS[@]} -do - if [[ -v i ]]; then - echo "ERROR: $i must be defined"; exit 1; - fi -done - - -# process optional arguments -if [ ! -z "$1" ]; then - SUT_VERSION=$1 -else - SUT_VERSION="unknown" -fi - -if [ ! -z "$2" ]; then - SUT_BUILD_ID=$2 -else - SUT_BUILD_ID="local" -fi - - -# determine project root directory -CUR_DIR=${PWD} -SCRIPT_HOME=$(cd `dirname $0` && pwd) -cd ${SCRIPT_HOME}/../../ -PROJ_DIR=${PWD} - - -# change current directory to test suite -cd ${TEST_HOME} - -# check if app config file exists -if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] -then - mkdir -p "apps" - ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin" \ - ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" -fi - -# build list of directories contaiing tests -TESTS=$( find ./tests -mindepth 1 -type d -follow | paste -sd " " - ) - -# build nrtest execute command -NRTEST_EXECUTE_CMD='nrtest execute' -TEST_APP_PATH="./apps/${PROJECT}-${SUT_BUILD_ID}.json" -TEST_OUTPUT_PATH="./benchmark/${PROJECT}-${SUT_BUILD_ID}" - -# build nrtest compare command -NRTEST_COMPARE_CMD='nrtest compare' -REF_OUTPUT_PATH="benchmark/${PROJECT}-${REF_BUILD_ID}" -RTOL_VALUE='0.01' -ATOL_VALUE='1.E-6' - - -# if present clean test benchmark results -if [ -d "${TEST_OUTPUT_PATH}" ]; then - rm -rf "${TEST_OUTPUT_PATH}" -fi - -# perform nrtest execute -echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" -NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" -eval ${NRTEST_COMMAND} - -# perform nrtest compare -echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" -NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" -eval ${NRTEST_COMMAND} - -# Stage artifacts for upload -cd ./benchmark - -if [ $? -eq 0 ] -then - tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} - mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz -else - echo "INFO: nrtest compare exited successfully" - mv receipt.json ./${PROJ_DIR}/upload/receipt.json -fi - -# return user to current dir -cd ${CUR_DIR} From ddb1fab8a7baca8413e98f3eafb4d4139d987811 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 22:50:40 -0400 Subject: [PATCH 29/85] Fixed naming error --- linux/run-nrtests.sh | 112 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 linux/run-nrtests.sh diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh new file mode 100755 index 0000000..9710ca6 --- /dev/null +++ b/linux/run-nrtests.sh @@ -0,0 +1,112 @@ +#! /bin/bash +# +# run-nrtest.sh - Runs numerical regression test +# +# Date Created: 11/15/2017 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Caleb A. Buahin +# Xylem Inc. +# +# Dependencies: +# python -m pip install -r requirements.txt +# +# Environment Variables: +# PROJECT +# BUILD_HOME - relative path +# TEST_HOME - relative path +# PLATFORM +# REF_BUILD_ID +# +# Arguments: +# 1 - (SUT_VERSION) - optional argument +# 2 - (SUT_BUILD_ID) - optional argument + +# check that env variables are set +REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'TEST_HOME' 'PLATFORM' 'REF_BUILD_ID') +for i in ${REQUIRED_VARS[@]} +do + if [[ -v i ]]; then + echo "ERROR: $i must be defined"; exit 1; + fi +done + + +# process optional arguments +if [ ! -z "$1" ]; then + SUT_VERSION=$1 +else + SUT_VERSION="unknown" +fi + +if [ ! -z "$2" ]; then + SUT_BUILD_ID=$2 +else + SUT_BUILD_ID="local" +fi + + +# determine project root directory +CUR_DIR=${PWD} +SCRIPT_HOME=$(cd `dirname $0` && pwd) +cd ${SCRIPT_HOME}/../../ +PROJ_DIR=${PWD} + + +# change current directory to test suite +cd ${TEST_HOME} + +# check if app config file exists +if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] +then + mkdir -p "apps" + ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin" \ + ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" +fi + +# build list of directories contaiing tests +TESTS=$( find ./tests -mindepth 1 -type d -follow | paste -sd " " - ) + +# build nrtest execute command +NRTEST_EXECUTE_CMD='nrtest execute' +TEST_APP_PATH="./apps/${PROJECT}-${SUT_BUILD_ID}.json" +TEST_OUTPUT_PATH="./benchmark/${PROJECT}-${SUT_BUILD_ID}" + +# build nrtest compare command +NRTEST_COMPARE_CMD='nrtest compare' +REF_OUTPUT_PATH="benchmark/${PROJECT}-${REF_BUILD_ID}" +RTOL_VALUE='0.01' +ATOL_VALUE='1.E-6' + + +# if present clean test benchmark results +if [ -d "${TEST_OUTPUT_PATH}" ]; then + rm -rf "${TEST_OUTPUT_PATH}" +fi + +# perform nrtest execute +echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" +NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" +eval ${NRTEST_COMMAND} + +# perform nrtest compare +echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" +NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" +eval ${NRTEST_COMMAND} + +# Stage artifacts for upload +cd ./benchmark + +if [ $? -eq 0 ] +then + tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} + mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz +else + echo "INFO: nrtest compare exited successfully" + mv receipt.json ./${PROJ_DIR}/upload/receipt.json +fi + +# return user to current dir +cd ${CUR_DIR} From 7a8532ab397ed4dfd2a915e6fb6becd0ff3e997d Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 13 Aug 2020 23:01:10 -0400 Subject: [PATCH 30/85] Fixed nrtest runs --- linux/run-nrtests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 9710ca6..000600f 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -28,7 +28,7 @@ REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'TEST_HOME' 'PLATFORM' 'REF_BUILD_ID') for i in ${REQUIRED_VARS[@]} do - if [[ -v i ]]; then + if [[ -z "${i}" ]]; then echo "ERROR: $i must be defined"; exit 1; fi done From f2f27498dafeddf1244080adaf6e8d82f6edad21 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 14 Aug 2020 21:42:48 -0400 Subject: [PATCH 31/85] chmod +x darwin and linux scripts --- linux/make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/make.sh b/linux/make.sh index 522fb1e..e741dc8 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -39,7 +39,7 @@ fi GENERATOR="Ninja" TESTING=0 - + POSITIONAL=() From 14ea54e3bd5506ce003151568d9fb1b3887a3abf Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 14 Aug 2020 23:10:11 -0400 Subject: [PATCH 32/85] Changed input args to be uniform --- linux/make.sh | 2 +- windows/make.cmd | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/linux/make.sh b/linux/make.sh index e741dc8..c1f5545 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -37,7 +37,7 @@ else echo INFO: Building ${PROJECT} ... fi -GENERATOR="Ninja" +GENERATOR="Make" TESTING=0 diff --git a/windows/make.cmd b/windows/make.cmd index 2498333..ad2326c 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -15,8 +15,8 @@ :: https://cmake.org/download/ :: :: Optional Arguments: -:: /g ("GENERATOR") defaults to "Visual Studio 15 2017" -:: /t builds and runs unit tests (requires Boost) +:: -g ("GENERATOR") defaults to "Visual Studio 15 2017" +:: -t builds and runs unit tests (requires Boost) :: @@ -74,11 +74,11 @@ set "TESTING=0" :: process arguments :loop if NOT [%1]==[] ( - if "%1"=="/g" ( + if "%1"=="-g" ( set "GENERATOR=%~2" shift ) - if "%1"=="/t" ( + if "%1"=="-t" ( set "TESTING=1" ) shift From fca7c140bfd8d7905df588eb67902c968b0b2ff8 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 14 Aug 2020 23:13:31 -0400 Subject: [PATCH 33/85] Changed default generator --- darwin/make.zsh | 2 +- linux/make.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index 5053b8b..2c57519 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -35,7 +35,7 @@ cd ${SCRIPT_HOME}/../../ echo INFO: Building ${PROJECT} ... -GENERATOR="Ninja" +GENERATOR="Unix Makefiles" TESTING=0 POSITIONAL=() diff --git a/linux/make.sh b/linux/make.sh index c1f5545..1c9d58e 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -37,7 +37,7 @@ else echo INFO: Building ${PROJECT} ... fi -GENERATOR="Make" +GENERATOR="Unix Makefiles" TESTING=0 From bc3f5f50b10c6289c6df9ef3162d486b8b2ffc76 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 14 Aug 2020 23:52:57 -0400 Subject: [PATCH 34/85] Fixed make args parser --- darwin/make.zsh | 14 ++++---------- linux/make.sh | 13 +++---------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index 2c57519..bb2ea77 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -35,33 +35,27 @@ cd ${SCRIPT_HOME}/../../ echo INFO: Building ${PROJECT} ... -GENERATOR="Unix Makefiles" +GENERATOR="Xcode" TESTING=0 + POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" - case $key in -g|--gen) GENERATOR="$2" + echo generator ${GENERATOR} shift # past argument shift # past value ;; -t|--test) - TESTING="$2" - echo ${TESTING} - shift # past argument - shift # past value - ;; - --default) - DEFAULT=YES + TESTING=1 shift # past argument ;; *) # unknown option - POSITIONAL+=("$1") # save it in an array for later shift # past argument ;; esac diff --git a/linux/make.sh b/linux/make.sh index 1c9d58e..d43249d 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -39,32 +39,25 @@ fi GENERATOR="Unix Makefiles" TESTING=0 - + POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" - case $key in -g|--gen) GENERATOR="$2" + echo generator ${GENERATOR} shift # past argument shift # past value ;; -t|--test) - TESTING="$2" - echo ${TESTING} - shift # past argument - shift # past value - ;; - --default) - DEFAULT=YES + TESTING=1 shift # past argument ;; *) # unknown option - POSITIONAL+=("$1") # save it in an array for later shift # past argument ;; esac From a80aafc26d79537e6935e17786c663c4b365b3de Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sat, 15 Aug 2020 00:03:59 -0400 Subject: [PATCH 35/85] Fixed generator parsing error --- darwin/make.zsh | 3 +-- linux/make.sh | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index bb2ea77..dd16695 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -47,7 +47,6 @@ key="$1" case $key in -g|--gen) GENERATOR="$2" - echo generator ${GENERATOR} shift # past argument shift # past value ;; @@ -70,7 +69,7 @@ if [ ${TESTING}=1 ]; then # cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. # cmake --build ./${BUILD_HOME} --config Release --target all -- -v - cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=ON .. \ + cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure diff --git a/linux/make.sh b/linux/make.sh index d43249d..1b84474 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -49,7 +49,6 @@ key="$1" case $key in -g|--gen) GENERATOR="$2" - echo generator ${GENERATOR} shift # past argument shift # past value ;; @@ -65,7 +64,6 @@ done set -- "${POSITIONAL[@]}" # restore positional parameters - # perform the build cmake -E make_directory ${BUILD_HOME} @@ -73,7 +71,7 @@ if [ ${TESTING}=1 ]; then # cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. # cmake --build ./${BUILD_HOME} --config Release --target all -- -v - cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=ON .. \ + cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure From 2f96dfc88bafdd53359569a37b5c268217524970 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Mon, 17 Aug 2020 23:17:43 -0400 Subject: [PATCH 36/85] Reconfigured windows build paths for gh actions --- windows/before-nrtest.cmd | 4 ++-- windows/make.cmd | 5 ++--- windows/run-nrtests.cmd | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index ac3a54c..9afebd4 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -31,11 +31,11 @@ set "TEST_HOME=nrtests" :: determine project directory -set "CUR_DIR=%CD%" set "SCRIPT_HOME=%~dp0" cd %SCRIPT_HOME% pushd .. pushd .. +set "PROJECT_DIR=%CD%" setlocal @@ -119,4 +119,4 @@ echo ::set-env name=REF_BUILD_ID::%REF_BUILD_ID% :: return to users current directory -cd %CUR_DIR% +cd %PROJECT_DIR% diff --git a/windows/make.cmd b/windows/make.cmd index ad2326c..11739f5 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -29,7 +29,6 @@ set "PLATFORM=win32" :: determine project directory -set "CUR_DIR=%CD%" set "SCRIPT_HOME=%~dp0" cd %SCRIPT_HOME% pushd .. @@ -127,5 +126,5 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit echo ::set-env name=PLATFORM::%PLATFORM% -:: return to users current dir -cd %CUR_DIR% +:: return to users to project directory +cd %PROJ_DIR% diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 17ed2de..41a5a8d 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -36,7 +36,6 @@ for %%v in (PROJECT BUILD_HOME TEST_HOME PLATFORM REF_BUILD_ID) do ( :: determine project directory -set "CUR_DIR=%CD%" set "SCRIPT_HOME=%~dp0" cd %SCRIPT_HOME% pushd .. @@ -124,5 +123,5 @@ if %RESULT% neq 0 ( ) :: return user to their current dir and exit -cd %CUR_DIR% +cd %PROJ_DIR% exit /B %RESULT% From 0bece71acf9a01d6f6f114f73222ed97c7c05bfb Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 18 Aug 2020 00:54:12 -0400 Subject: [PATCH 37/85] Changed reference directories --- darwin/before-nrtest.zsh | 8 ++++---- darwin/make.zsh | 7 ++++--- darwin/run-nrtests.zsh | 3 +-- linux/before-nrtest.sh | 7 ++++--- linux/make.sh | 5 +++-- linux/run-nrtests.sh | 3 +-- 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index b5f09f0..5806057 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -31,10 +31,10 @@ for i in ${REQUIRED_VARS}; do done # determine project directory -CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} -cd ${SCRIPT_HOME}/../../ - +cd ${SCRIPT_HOME} +cd ./../../ +PROJECT_DIR=${PWD} # set URL to github repo with nrtest files if [[ -v NRTESTS_URL ]] @@ -100,4 +100,4 @@ tar xzf benchmarks.tar.gz -C benchmark export REF_BUILD_ID="local" # return user to current dir -cd ${CUR_DIR} +cd ${PROJECT_DIR} diff --git a/darwin/make.zsh b/darwin/make.zsh index dd16695..42ddc28 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -26,9 +26,10 @@ export BUILD_HOME="build" # determine project directory -CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} -cd ${SCRIPT_HOME}/../../ +cd ${SCRIPT_HOME} +cd ./../../ +PROJECT_DIR=${PWD} # Check to make sure PROJECT is defined [[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } @@ -87,4 +88,4 @@ export PLATFORM="Darwin" # return user to current dir -cd ${CUR_DIR} +cd ${PROJECT_DIR} diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 43c3441..8e3f323 100644 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -46,7 +46,6 @@ fi # determine project root directory -CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} cd ${SCRIPT_HOME}/../../ PROJ_DIR=${PWD} @@ -106,4 +105,4 @@ else fi # return user to current dir -cd ${CUR_DIR} +cd ${PROJ_DIR} diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 6bf772d..d4efa5c 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -44,9 +44,10 @@ do done # determine project directory -CUR_DIR=${PWD} SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -cd ${SCRIPT_HOME}/../../ +cd ${SCRIPT_HOME} +cd ./../../ +PROJECT_DIR=${PWD} if [[ -z "${NRTESTS_URL}" ]]; then # set URL to github repo with nrtest files @@ -118,6 +119,6 @@ tar xzf benchmark.tar.gz -C benchmark export REF_BUILD_ID="local" # return user to current dir -cd ${CUR_DIR} +cd ${PROJECT_DIR} diff --git a/linux/make.sh b/linux/make.sh index 1b84474..c7cd6f9 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -24,9 +24,10 @@ export BUILD_HOME="build" # determine project directories -CUR_DIR=${PWD} SCRIPT_HOME=$(cd `dirname $0` && pwd) -cd ${SCRIPT_HOME}/../../ +cd ${SCRIPT_HOME} +cd ../../ +PROJECT_DIR=$PWD # Check to make sure PROJECT is defined diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 000600f..1aca581 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -49,7 +49,6 @@ fi # determine project root directory -CUR_DIR=${PWD} SCRIPT_HOME=$(cd `dirname $0` && pwd) cd ${SCRIPT_HOME}/../../ PROJ_DIR=${PWD} @@ -109,4 +108,4 @@ else fi # return user to current dir -cd ${CUR_DIR} +cd ${PROJ_DIR} From 24a64490e9f3b0ef78df7b50298e3f4283182435 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Wed, 19 Aug 2020 20:58:51 -0400 Subject: [PATCH 38/85] Updated linux and macos build scripts --- linux/make.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/linux/make.sh b/linux/make.sh index c7cd6f9..1a77f9b 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -27,8 +27,10 @@ export BUILD_HOME="build" SCRIPT_HOME=$(cd `dirname $0` && pwd) cd ${SCRIPT_HOME} cd ../../ -PROJECT_DIR=$PWD +PROJECT_DIR=${PWD} +echo $SCRIPT_HOME +echo $PROJECT_DIR # Check to make sure PROJECT is defined if [[ -z "${PROJECT}" ]]; then @@ -85,4 +87,4 @@ fi export PLATFORM="Linux" # return user to current dir -cd ${CUR_DIR} +cd ${PROJECT_DIR} From 47acccfe83e5add9b1349b974485f57bee14a538 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Wed, 19 Aug 2020 23:46:18 -0400 Subject: [PATCH 39/85] Configuring linux and macos scripts --- darwin/before-nrtest.zsh | 12 ++++++++++++ darwin/make.zsh | 2 ++ linux/before-nrtest.sh | 3 +++ linux/make.sh | 4 ++++ linux/run-nrtests.sh | 5 +++-- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 5806057..a255e59 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -18,9 +18,17 @@ # PROJECT # BUILD_HOME - relative path # PLATFORM +# NRTESTS_URL # # Arguments: # 1 - (RELEASE_TAG) - Release tag +# 2 - (BENCHMARK_VER) - Optional benchmark version +# +# Note: +# Tests and benchmark files are stored in the swmm-example-networks repo. +# This script retreives them using a stable URL associated with a release on +# GitHub and stages the files for nrtest to run. The script assumes that +# before-test.sh and app-config.sh are located together in the same folder. export TEST_HOME="nrtests" @@ -99,5 +107,9 @@ tar xzf benchmarks.tar.gz -C benchmark # determine REF_BUILD_ID from manifest file export REF_BUILD_ID="local" + +# GitHub Actions +echo ::set-env name=REF_BUILD_ID::%REF_BUILD_ID% + # return user to current dir cd ${PROJECT_DIR} diff --git a/darwin/make.zsh b/darwin/make.zsh index 42ddc28..d25e548 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -86,6 +86,8 @@ cmake --build ./${BUILD_HOME} --config Release --target all -- -v export PLATFORM="Darwin" +#GitHub Actions +echo ::set-env name=PLATFORM::%PLATFORM% # return user to current dir cd ${PROJECT_DIR} diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index d4efa5c..077f903 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -118,6 +118,9 @@ tar xzf benchmark.tar.gz -C benchmark # determine REF_BUILD_ID from manifest file export REF_BUILD_ID="local" +# GitHub Actions +echo ::set-env name=REF_BUILD_ID::%REF_BUILD_ID% + # return user to current dir cd ${PROJECT_DIR} diff --git a/linux/make.sh b/linux/make.sh index 1a77f9b..d45166f 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -86,5 +86,9 @@ fi export PLATFORM="Linux" +#GitHub Actions +echo ::set-env name=PLATFORM::%PLATFORM% + + # return user to current dir cd ${PROJECT_DIR} diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 1aca581..b3d34c4 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -50,7 +50,8 @@ fi # determine project root directory SCRIPT_HOME=$(cd `dirname $0` && pwd) -cd ${SCRIPT_HOME}/../../ +cd ${SCRIPT_HOME} +cd ./../../ PROJ_DIR=${PWD} @@ -61,7 +62,7 @@ cd ${TEST_HOME} if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then mkdir -p "apps" - ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin" \ + ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin/Release" \ ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" fi From f7837348e42f7bf9b81ad5ab940d17f7174b4b70 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 21 Aug 2020 14:20:20 -0400 Subject: [PATCH 40/85] Updated linux and darwin to mimic windows --- darwin/app-config.zsh | 24 ++++++++------ darwin/before-nrtest.zsh | 71 ++++++++++++++++++++++++---------------- darwin/make.zsh | 17 +++------- darwin/run-nrtests.zsh | 40 +++++++++++----------- linux/app-config.sh | 24 +++++++------- linux/before-nrtest.sh | 68 ++++++++++++++++++++------------------ linux/make.sh | 25 +++++++------- linux/run-nrtests.sh | 35 +++++++++----------- 8 files changed, 159 insertions(+), 145 deletions(-) mode change 100644 => 100755 darwin/app-config.zsh mode change 100644 => 100755 darwin/run-nrtests.zsh diff --git a/darwin/app-config.zsh b/darwin/app-config.zsh old mode 100644 new mode 100755 index cdc82a7..85e3e8f --- a/darwin/app-config.zsh +++ b/darwin/app-config.zsh @@ -4,21 +4,24 @@ # app-config.sh - Generates nrtest app configuration file for test executable # # Date Created: 11/15/2017 -# Updated: 4/1/2020 +# Updated: 08/21/2020 # # Author: Michael E. Tryby # US EPA - ORD/NRMRL # +# Caleb A. Buahin +# Xylem Inc. +# # Requires: # git # # Environment Variables: # PROJECT -# PLATFORM # # Arguments: # 1 - absolute path to test executable -# 2 - (SUT build id) +# 2 - Platform +# 3 - (SUT build id) # # Check requirements @@ -27,22 +30,23 @@ where git &> /dev/null # check that env variables are set [[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } -[[ ! -v PLATFORM ]] && { echo "ERROR: PLATFORM must be defined"; return 1 } # check if project is swmm otherwise EPANET -if [[ ${PROJECT} == *"swmm"* ]]; then - TEST_CMD="run-${PROJECT}" -else - TEST_CMD="run${PROJECT}" -fi +TEST_CMD="run${PROJECT}" # path to executable in cmake build tree ABS_BUILD_PATH=$1 # process optional arguments if [ ! -z "$2" ]; then - BUILD_ID=$2 + PLATFORM=$2 +else + PLATFORM="unknown" +fi + +if [ ! -z "$3" ]; then + BUILD_ID=$3 else BUILD_ID="unknown" fi diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index a255e59..7b1cefb 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -3,6 +3,7 @@ # before-nrtest.sh - Runs before numerical regression test # # Date Created: 11/15/2017 +# Updated: 08/21/2020 # # Author: Michael E. Tryby # US EPA - ORD/NRMRL @@ -22,13 +23,13 @@ # # Arguments: # 1 - (RELEASE_TAG) - Release tag -# 2 - (BENCHMARK_VER) - Optional benchmark version # # Note: # Tests and benchmark files are stored in the swmm-example-networks repo. # This script retreives them using a stable URL associated with a release on # GitHub and stages the files for nrtest to run. The script assumes that # before-test.sh and app-config.sh are located together in the same folder. +# export TEST_HOME="nrtests" @@ -45,50 +46,48 @@ cd ./../../ PROJECT_DIR=${PWD} # set URL to github repo with nrtest files -if [[ -v NRTESTS_URL ]] +if [[ -z "${NRTESTS_URL}" ]] then NRTESTS_URL="https://github.com/OpenWaterAnalytics/${PROJECT}-nrtestsuite" fi -LATEST_URL="${NRTESTS_URL}/releases/latest" - +echo INFO: Staging files for regression testing # use release tag arg else determine latest hard coded for now. -# if [[ ! -z "$1" ]] -# then -# RELEASE_TAG=$1 -# else -# RELEASE_TAG=$( curl -sI "${LATEST_URL}" | grep -Po 'tag\/\K(v\S+)' ) -# RELEASE_TAG=$( basename ${RELEASE_TAG} ) # unnecessary -# fi - -#hard coded for now -EXAMPLES_VER="1.0.0" -BENCHMARK_VER="5112" +if [[ ! -z "$1" ]] +then + RELEASE_TAG=$1 +else + LATEST_URL="${NRTESTS_URL}/releases/latest" + LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} + RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) + RELEASE_TAG="${RELEASE_TAG%\"}" + RELEASE_TAG="${RELEASE_TAG#\"}" + RELEASE_TAG=${RELEASE_TAG:1} +fi + +# At least until I create tars for unix and darwin +TEMP_PLATFORM="win64" # build URLs for test and benchmark files -if [[ -v EXAMPLES_VER ]] +if [[ ! -v RELEASE_TAG ]] then - TESTFILES_URL="${NRTESTS_URL}/archive/v${EXAMPLES_VER}.tar.gz" - BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${EXAMPLES_VER}/$PROJECT-benchmark-${BENCHMARK_VER}.tar.gz" + echo "ERROR: tag RELEASE_TAG is invalid" ; return 1 else - echo "ERROR: tag %RELEASE_TAG% is invalid" ; return 1 + TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.zip" + BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${TEMP_PLATFORM}.zip" fi -echo "INFO: Staging files for regression testing" +echo INFO: Staging files for regression testing # create a clean directory for staging regression tests -if [[ -d ${TEST_HOME} ]] -then +if [[ -d ${TEST_HOME} ]]; then rm -rf ${TEST_HOME} fi mkdir ${TEST_HOME} cd ${TEST_HOME} -echo ${TESTFILES_URL} -echo ${BENCHFILES_URL} - # retrieve tests and benchmarks for regression testing curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} # retrieve swmm benchmark results @@ -96,7 +95,7 @@ curl -fsSL -o benchmarks.tar.gz ${BENCHFILES_URL} # extract tests and setup symlink tar xzf nrtestfiles.tar.gz -ln -s ${PROJECT}-nrtestsuite-${EXAMPLES_VER}/swmm-tests tests +ln -s ${PROJECT}-nrtestsuite-${RELEASE_TAG}/public tests # create benchmark dir and extract benchmarks @@ -104,12 +103,26 @@ mkdir benchmark tar xzf benchmarks.tar.gz -C benchmark -# determine REF_BUILD_ID from manifest file -export REF_BUILD_ID="local" +#determine ref_build_id +MANIFEST_FILE=$( find . -name manifest.json ) + +while read line; do + if [[ $line == *"${TEMP_PLATFORM} "* ]]; then + REF_BUILD_ID=${line#*"${TEMP_PLATFORM} "} + REF_BUILD_ID=${REF_BUILD_ID//"\","/""} + fi +done < $MANIFEST_FILE + + +if [[ -z "${REF_BUILD_ID}" ]] + then + echo "ERROR: REF_BUILD_ID could not be determined" ; exit 1 +fi +export REF_BUILD_ID=$REF_BUILD_ID # GitHub Actions -echo ::set-env name=REF_BUILD_ID::%REF_BUILD_ID% +echo ::set-env name=REF_BUILD_ID::$REF_BUILD_ID # return user to current dir cd ${PROJECT_DIR} diff --git a/darwin/make.zsh b/darwin/make.zsh index d25e548..a404142 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -4,7 +4,7 @@ # make.sh - Builds swmm/epanet executable # # Date Created: 06/29/2020 -# Date Modified: 07/06/2020 +# Updated: 08/21/2020 # # Authors: Michael E. Tryby # US EPA - ORD/NRMRL @@ -31,8 +31,6 @@ cd ${SCRIPT_HOME} cd ./../../ PROJECT_DIR=${PWD} -# Check to make sure PROJECT is defined -[[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } echo INFO: Building ${PROJECT} ... @@ -66,28 +64,23 @@ set -- "${POSITIONAL[@]}" # restore positional parameters # perform the build cmake -E make_directory ${BUILD_HOME} -if [ ${TESTING}=1 ]; +if [ ${TESTING} -eq 1 ]; then -# cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. -# cmake --build ./${BUILD_HOME} --config Release --target all -- -v + echo "Building debug" cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure - else + echo "Building release" cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=OFF .. \ && cmake --build ./${BUILD_HOME} --config Release --target package \ && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi -cmake -E chdir ${BUILD_HOME} cmake -G ${GENERATOR} .. -cmake --build ./${BUILD_HOME} --config Release --target all -- -v - - export PLATFORM="Darwin" #GitHub Actions -echo ::set-env name=PLATFORM::%PLATFORM% +echo ::set-env name=PLATFORM::$PLATFORM # return user to current dir cd ${PROJECT_DIR} diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh old mode 100644 new mode 100755 index 8e3f323..cdf36fb --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -3,11 +3,15 @@ # # run-nrtests.zsh - Runs numerical regression test # -# Date Created: 4/1/2020 +# Date Created: 04/01/2020 +# Updated: 08/21/2020 # # Author: Michael E. Tryby # US EPA - ORD/CESER # +# Caleb A. Buahin +# Xylem Inc. +# # Dependencies: # python -m pip install -r requirements.txt # @@ -19,7 +23,6 @@ # REF_BUILD_ID # # Arguments: -# 1 - (SUT_VERSION) - optional argument # 2 - (SUT_BUILD_ID) - optional argument # @@ -31,20 +34,6 @@ for i in ${REQUIRED_VARS}; do done -# process optional arguments -if [ ! -z "$1" ]; then - SUT_VERSION=$1 -else - SUT_VERSION="unknown" -fi - -if [ ! -z "$2" ]; then - SUT_BUILD_ID=$2 -else - SUT_BUILD_ID="local" -fi - - # determine project root directory SCRIPT_HOME=${0:a:h} cd ${SCRIPT_HOME}/../../ @@ -52,14 +41,23 @@ PROJ_DIR=${PWD} # change current directory to test suite -cd ${TEST_HOME} +cd ${PROJ_DIR}/${TEST_HOME} + + +if [ ! -z "$1" ]; then + SUT_BUILD_ID=$1 +else + SUT_BUILD_ID="local" +fi + +echo $PWD # check if app config file exists if [[ ! -a "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then mkdir -p "apps" - ${SCRIPT_HOME}/app-config.zsh "${PROJ_DIR}/${BUILD_HOME}/bin" \ - ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" + ${SCRIPT_HOME}/app-config.zsh "${PROJ_DIR}/${BUILD_HOME}/bin/Release" \ + ${PLATFORM} ${SUT_BUILD_ID} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" fi # build list of directories contaiing tests @@ -85,6 +83,7 @@ fi # perform nrtest execute echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" +echo $NRTEST_COMMAND eval ${NRTEST_COMMAND} # perform nrtest compare @@ -97,6 +96,7 @@ cd ./benchmark if [[ $? -eq 0 ]] then + echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz else @@ -106,3 +106,5 @@ fi # return user to current dir cd ${PROJ_DIR} + +return $? \ No newline at end of file diff --git a/linux/app-config.sh b/linux/app-config.sh index fad0470..1927ee4 100755 --- a/linux/app-config.sh +++ b/linux/app-config.sh @@ -4,6 +4,7 @@ # app-config.sh - Generates nrtest app configuration file for test executable # # Date Created: 11/15/2017 +# Updated: 08/21/2020 # # Authors: Michael E. Tryby # US EPA - ORD/NRMRL @@ -16,11 +17,11 @@ # # Environment Variables: # PROJECT -# PLATFORM # # Arguments: # 1 - absolute path to test executable -# 2 - (SUT build it) +# 2 - Platform +# 3 - build identifier for SUT # # Check requirements @@ -29,21 +30,22 @@ type git >/dev/null 2>&1 || { echo "ERROR: git not installed"; exit 1; } # check that env variables are set if [[ ! -v PROJECT ]]; then echo "ERROR: PROJECT must be defined"; exit 1; fi -if [[ ! -v PLATFORM ]]; then echo "ERROR: PLATFORM must be defined"; exit 1; fi # check if project is swmm otherwise EPANET -if [[ ${PROJECT} == *"swmm"* ]]; then - TEST_CMD="run-${PROJECT}" -else - TEST_CMD="run${PROJECT}" -fi +TEST_CMD="run${PROJECT}" # path to executable in cmake build tree ABS_BUILD_PATH=$1 # process optional arguments if [ ! -z "$2" ]; then - BUILD_ID=$2 + PLATFORM=$2 +else + PLATFORM="unknown" +fi + +if [ ! -z "$3" ]; then + BUILD_ID=$3 else BUILD_ID="unknown" fi @@ -58,8 +60,8 @@ cat< "./apps/${PROJECT}-${SUT_BUILD_ID}.json" + ${PLATFORM} ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" fi # build list of directories contaiing tests @@ -91,6 +83,8 @@ echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" eval ${NRTEST_COMMAND} + + # perform nrtest compare echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" @@ -101,6 +95,7 @@ cd ./benchmark if [ $? -eq 0 ] then + echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz else @@ -110,3 +105,5 @@ fi # return user to current dir cd ${PROJ_DIR} + +exit $? \ No newline at end of file From a1ae06aa78f4255d904d79191e696da937bfc82e Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 21 Aug 2020 14:50:27 -0400 Subject: [PATCH 41/85] Add quotes for generator --- darwin/make.zsh | 2 +- linux/make.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index a404142..15f23bb 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -72,7 +72,7 @@ then && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure else echo "Building release" - cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=OFF .. \ + cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=OFF .. \ && cmake --build ./${BUILD_HOME} --config Release --target package \ && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi diff --git a/linux/make.sh b/linux/make.sh index 8d96998..efe5a81 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -76,7 +76,7 @@ then && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure else - cmake -E chdir ./${BUILD_HOME} cmake -G ${GENERATOR} -DBUILD_TESTS=OFF .. \ + cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=OFF .. \ && cmake --build ./${BUILD_HOME} --config Release --target package \ && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi From 99eabd5f618bafec86829f91fb812e674e55a5bb Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Fri, 21 Aug 2020 15:12:50 -0400 Subject: [PATCH 42/85] Using zip for now --- linux/before-nrtest.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 1eef1c9..1bb2c56 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -63,7 +63,6 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else - echo New LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) @@ -94,18 +93,18 @@ fi mkdir ${TEST_HOME} cd ${TEST_HOME} -# retrieve swmm-examples for regression testing -curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} +# retrieve swmm-examples for regression testing tar.gz +curl -fsSL -o nrtestfiles.zip ${TESTFILES_URL} # retrieve swmm benchmark results -curl -fsSL -o benchmark.tar.gz ${BENCHFILES_URL} +curl -fsSL -o benchmark.zip ${BENCHFILES_URL} # extract tests and benchmarks -tar xzf nrtestfiles.tar.gz +tar xzf nrtestfiles.zip ln -s ${PROJECT}-nrtestsuite-${RELEASE_TAG}/public tests # create benchmark dir and extract benchmarks mkdir benchmark -tar xzf benchmark.tar.gz -C benchmark +tar xzf benchmark.zip -C benchmark #determine ref_build_id MANIFEST_FILE=$( find . -name manifest.json ) From 244d3b3bf92c57ee1926ee720e8161731ee3c7bb Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 20:33:59 -0400 Subject: [PATCH 43/85] Check if manifest is read --- linux/before-nrtest.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 1bb2c56..a68b386 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -63,12 +63,14 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else + echo INFO: Checking latest nrtestsuite release tag LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) RELEASE_TAG="${RELEASE_TAG%\"}" RELEASE_TAG="${RELEASE_TAG#\"}" RELEASE_TAG=${RELEASE_TAG:1} + echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} fi # At least until I create tars for unix and darwin @@ -108,6 +110,7 @@ tar xzf benchmark.zip -C benchmark #determine ref_build_id MANIFEST_FILE=$( find . -name manifest.json ) +echo MANIFEST FILE: $MANIFEST_FILE while read line; do if [[ $line == *"${TEMP_PLATFORM} "* ]]; then From c7ce04d79e327c796040606eac14d2931b2aa494 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 21:03:49 -0400 Subject: [PATCH 44/85] Modified to download nrtestsuite for each os --- darwin/before-nrtest.zsh | 12 ++++++------ darwin/make.zsh | 2 +- linux/before-nrtest.sh | 18 ++++++++---------- linux/make.sh | 2 +- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 7b1cefb..c37f352 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -58,24 +58,24 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else + echo INFO: Checking latest nrtestsuite release tag ... LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) RELEASE_TAG="${RELEASE_TAG%\"}" RELEASE_TAG="${RELEASE_TAG#\"}" RELEASE_TAG=${RELEASE_TAG:1} + echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} fi -# At least until I create tars for unix and darwin -TEMP_PLATFORM="win64" # build URLs for test and benchmark files if [[ ! -v RELEASE_TAG ]] then echo "ERROR: tag RELEASE_TAG is invalid" ; return 1 else - TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.zip" - BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${TEMP_PLATFORM}.zip" + TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.tar.gz" + BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${PLATFORM}.tar.gz" fi echo INFO: Staging files for regression testing @@ -107,8 +107,8 @@ tar xzf benchmarks.tar.gz -C benchmark MANIFEST_FILE=$( find . -name manifest.json ) while read line; do - if [[ $line == *"${TEMP_PLATFORM} "* ]]; then - REF_BUILD_ID=${line#*"${TEMP_PLATFORM} "} + if [[ $line == *"${PLATFORM} "* ]]; then + REF_BUILD_ID=${line#*"${PLATFORM} "} REF_BUILD_ID=${REF_BUILD_ID//"\","/""} fi done < $MANIFEST_FILE diff --git a/darwin/make.zsh b/darwin/make.zsh index 15f23bb..1114243 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -77,7 +77,7 @@ else && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi -export PLATFORM="Darwin" +export PLATFORM="darwin" #GitHub Actions echo ::set-env name=PLATFORM::$PLATFORM diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index a68b386..c4d3b95 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -63,7 +63,7 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else - echo INFO: Checking latest nrtestsuite release tag + echo INFO: Checking latest nrtestsuite release tag ... LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) @@ -73,14 +73,12 @@ else echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} fi -# At least until I create tars for unix and darwin -TEMP_PLATFORM="win64" # build URLs for test and benchmark files; need to standardize urls or change into argument if [[ ! -z "${RELEASE_TAG}" ]] then TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.zip" - BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${TEMP_PLATFORM}.zip" + BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${PLATFORM}.tar.gz" else echo "ERROR: tag %RELEASE_TAG% is invalid" ; exit 1 fi @@ -96,25 +94,25 @@ mkdir ${TEST_HOME} cd ${TEST_HOME} # retrieve swmm-examples for regression testing tar.gz -curl -fsSL -o nrtestfiles.zip ${TESTFILES_URL} +curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} # retrieve swmm benchmark results -curl -fsSL -o benchmark.zip ${BENCHFILES_URL} +curl -fsSL -o benchmark.tar.gz ${BENCHFILES_URL} # extract tests and benchmarks -tar xzf nrtestfiles.zip +tar xzf nrtestfiles.tar.gz ln -s ${PROJECT}-nrtestsuite-${RELEASE_TAG}/public tests # create benchmark dir and extract benchmarks mkdir benchmark -tar xzf benchmark.zip -C benchmark +tar xzf benchmark.tar.gz -C benchmark #determine ref_build_id MANIFEST_FILE=$( find . -name manifest.json ) echo MANIFEST FILE: $MANIFEST_FILE while read line; do - if [[ $line == *"${TEMP_PLATFORM} "* ]]; then - REF_BUILD_ID=${line#*"${TEMP_PLATFORM} "} + if [[ $line == *"${PLATFORM} "* ]]; then + REF_BUILD_ID=${line#*"${PLATFORM} "} REF_BUILD_ID=${REF_BUILD_ID//"\","/""} fi done < $MANIFEST_FILE diff --git a/linux/make.sh b/linux/make.sh index efe5a81..754ed31 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -81,7 +81,7 @@ else && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi -export PLATFORM="Linux" +export PLATFORM="llnux" #GitHub Actions echo ::set-env name=PLATFORM::$PLATFORM From ef4e8901c988e5856389df4a00c1115f3f410955 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 21:08:29 -0400 Subject: [PATCH 45/85] Fixed archive extension --- linux/before-nrtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index c4d3b95..5c2cc31 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -77,7 +77,7 @@ fi # build URLs for test and benchmark files; need to standardize urls or change into argument if [[ ! -z "${RELEASE_TAG}" ]] then - TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.zip" + TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.tar.gz" BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${PLATFORM}.tar.gz" else echo "ERROR: tag %RELEASE_TAG% is invalid" ; exit 1 From 5e40b45006ab748efc17933bcf7003d6ac502192 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 21:15:06 -0400 Subject: [PATCH 46/85] Verify nrtest download url --- linux/before-nrtest.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 5c2cc31..69a894f 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -93,8 +93,12 @@ fi mkdir ${TEST_HOME} cd ${TEST_HOME} + +echo downloading nrtestfiles: ${TESTFILES_URL} # retrieve swmm-examples for regression testing tar.gz curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} + +echo downloading benchmark: ${BENCHFILES_URL} # retrieve swmm benchmark results curl -fsSL -o benchmark.tar.gz ${BENCHFILES_URL} From ca6ca65a8834b523ffc9e0be70c19e6589211000 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 21:19:37 -0400 Subject: [PATCH 47/85] Fixed os name typo --- linux/make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/make.sh b/linux/make.sh index 754ed31..7c63d58 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -81,7 +81,7 @@ else && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi -export PLATFORM="llnux" +export PLATFORM="linux" #GitHub Actions echo ::set-env name=PLATFORM::$PLATFORM From d3528c0b3a66a9c1d48a1b4249688ed96e98e64d Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 21:36:03 -0400 Subject: [PATCH 48/85] Removed extraneous comments --- linux/before-nrtest.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 69a894f..34d93ef 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -94,11 +94,9 @@ mkdir ${TEST_HOME} cd ${TEST_HOME} -echo downloading nrtestfiles: ${TESTFILES_URL} # retrieve swmm-examples for regression testing tar.gz curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} -echo downloading benchmark: ${BENCHFILES_URL} # retrieve swmm benchmark results curl -fsSL -o benchmark.tar.gz ${BENCHFILES_URL} From 05bc2eaab27765ea37ab810599b6d375f2499994 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 21:58:17 -0400 Subject: [PATCH 49/85] Verify executable build --- linux/run-nrtests.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 503b0e7..45168dd 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -55,9 +55,12 @@ if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then mkdir -p "apps" ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin/Release" \ - ${PLATFORM} ${SUT_BUILD_ID} ${SUT_VERSION} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" + ${PLATFORM} ${SUT_BUILD_ID} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" fi +echo display build directory +ls -l ${PROJ_DIR}/${BUILD_HOME}/bin/Release + # build list of directories contaiing tests TESTS=$( find ./tests -mindepth 1 -type d -follow | paste -sd " " - ) From 9d24ba9aa18c140cf6946095a4f635e33463b363 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 22:19:35 -0400 Subject: [PATCH 50/85] Verify executable directory --- linux/run-nrtests.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 45168dd..c2b94f2 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -49,18 +49,17 @@ else SUT_BUILD_ID="local" fi +echo "Gitbuild number:" $SUT_BUILD_ID + # check if app config file exists if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then mkdir -p "apps" - ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin/Release" \ + ${SCRIPT_HOME}/app-config.sh "${PROJ_DIR}/${BUILD_HOME}/bin" \ ${PLATFORM} ${SUT_BUILD_ID} > "./apps/${PROJECT}-${SUT_BUILD_ID}.json" fi -echo display build directory -ls -l ${PROJ_DIR}/${BUILD_HOME}/bin/Release - # build list of directories contaiing tests TESTS=$( find ./tests -mindepth 1 -type d -follow | paste -sd " " - ) From 3c2a4425c18b5319ba855c4980827bcb6c530f6a Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Sun, 23 Aug 2020 23:22:45 -0400 Subject: [PATCH 51/85] Created upload directory --- darwin/make.zsh | 4 ++++ darwin/run-nrtests.zsh | 2 -- linux/make.sh | 10 ++++++---- linux/run-nrtests.sh | 5 +---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index 1114243..cef1a14 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -31,6 +31,10 @@ cd ${SCRIPT_HOME} cd ./../../ PROJECT_DIR=${PWD} +# prepare for artifact upload +if [ ! -d upload ]; then + mkdir upload +fi echo INFO: Building ${PROJECT} ... diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index cdf36fb..93fb69d 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -50,8 +50,6 @@ else SUT_BUILD_ID="local" fi -echo $PWD - # check if app config file exists if [[ ! -a "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then diff --git a/linux/make.sh b/linux/make.sh index 7c63d58..63441a6 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -30,6 +30,7 @@ fi # set global defaults export BUILD_HOME="build" +export PLATFORM="linux" # determine project directories SCRIPT_HOME=$(cd `dirname $0` && pwd) @@ -37,12 +38,16 @@ cd ${SCRIPT_HOME} cd ../../ PROJECT_DIR=${PWD} +# prepare for artifact upload +if [ ! -d upload ]; then + mkdir upload +fi + echo INFO: Building ${PROJECT} ... GENERATOR="Unix Makefiles" TESTING=0 - POSITIONAL=() while [[ $# -gt 0 ]] @@ -81,11 +86,8 @@ else && cp ./${BUILD_HOME}/*.zip ./upload >&1 fi -export PLATFORM="linux" - #GitHub Actions echo ::set-env name=PLATFORM::$PLATFORM - # return user to current dir cd ${PROJECT_DIR} diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index c2b94f2..04150c3 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -49,9 +49,6 @@ else SUT_BUILD_ID="local" fi -echo "Gitbuild number:" $SUT_BUILD_ID - - # check if app config file exists if [[ ! -f "./apps/${PROJECT}-${SUT_BUILD_ID}.json" ]] then @@ -99,7 +96,7 @@ if [ $? -eq 0 ] then echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} - mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz + mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz else echo "INFO: nrtest compare exited successfully" mv receipt.json ./${PROJ_DIR}/upload/receipt.json From f90b1f862c024ce12f2b765be260d24588ba84ea Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 20:19:18 -0400 Subject: [PATCH 52/85] Updated macos to read release tag --- darwin/before-nrtest.zsh | 1 + darwin/make.zsh | 2 +- linux/make.sh | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index c37f352..f1f037f 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -105,6 +105,7 @@ tar xzf benchmarks.tar.gz -C benchmark #determine ref_build_id MANIFEST_FILE=$( find . -name manifest.json ) +echo manifest file: $MANIFEST_FILE while read line; do if [[ $line == *"${PLATFORM} "* ]]; then diff --git a/darwin/make.zsh b/darwin/make.zsh index cef1a14..cf341ab 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -78,7 +78,7 @@ else echo "Building release" cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=OFF .. \ && cmake --build ./${BUILD_HOME} --config Release --target package \ - && cp ./${BUILD_HOME}/*.zip ./upload >&1 + && cp ./${BUILD_HOME}/*.tar.gz ./upload >&1 fi export PLATFORM="darwin" diff --git a/linux/make.sh b/linux/make.sh index 63441a6..91c856f 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -83,7 +83,7 @@ then else cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=OFF .. \ && cmake --build ./${BUILD_HOME} --config Release --target package \ - && cp ./${BUILD_HOME}/*.zip ./upload >&1 + && cp ./${BUILD_HOME}/*.tar.gz ./upload >&1 fi #GitHub Actions From f1b051982cb3e423287edcb69c66b043d2efbee4 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 20:30:36 -0400 Subject: [PATCH 53/85] Check nrtest --- darwin/before-nrtest.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index f1f037f..4cf12b3 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -61,6 +61,7 @@ else echo INFO: Checking latest nrtestsuite release tag ... LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} + echo DOWNLOAD URL: $LATEST_URL RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) RELEASE_TAG="${RELEASE_TAG%\"}" RELEASE_TAG="${RELEASE_TAG#\"}" From b1098e880d90715921c1a9bd6289879dcaac0f63 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 20:37:28 -0400 Subject: [PATCH 54/85] Check latest release tag macos --- darwin/before-nrtest.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 4cf12b3..186a472 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -63,6 +63,7 @@ else LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} echo DOWNLOAD URL: $LATEST_URL RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) + echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} RELEASE_TAG="${RELEASE_TAG%\"}" RELEASE_TAG="${RELEASE_TAG#\"}" RELEASE_TAG=${RELEASE_TAG:1} From 0104afcbbe2b5bf6ac6fa114ab6b56867b4a8d83 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 20:43:06 -0400 Subject: [PATCH 55/85] Check macos grep version --- darwin/before-nrtest.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 186a472..c2de152 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -58,6 +58,7 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else + echo grep --version echo INFO: Checking latest nrtestsuite release tag ... LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} From 2c7fbd2ba75abe0b609caaa573dd3dc59d1438d3 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 20:57:10 -0400 Subject: [PATCH 56/85] Removed print statements --- darwin/before-nrtest.zsh | 2 -- 1 file changed, 2 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index c2de152..4cf12b3 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -58,13 +58,11 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else - echo grep --version echo INFO: Checking latest nrtestsuite release tag ... LATEST_URL="${NRTESTS_URL}/releases/latest" LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} echo DOWNLOAD URL: $LATEST_URL RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) - echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} RELEASE_TAG="${RELEASE_TAG%\"}" RELEASE_TAG="${RELEASE_TAG#\"}" RELEASE_TAG=${RELEASE_TAG:1} From e84804d1ee826c7a26ce4ee40bbc089b854febce Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 21:13:02 -0400 Subject: [PATCH 57/85] Check grep --- darwin/before-nrtest.zsh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 4cf12b3..8022b96 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -56,17 +56,19 @@ echo INFO: Staging files for regression testing # use release tag arg else determine latest hard coded for now. if [[ ! -z "$1" ]] then - RELEASE_TAG=$1 + RELEASE_TAG=$1 else - echo INFO: Checking latest nrtestsuite release tag ... - LATEST_URL="${NRTESTS_URL}/releases/latest" - LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} - echo DOWNLOAD URL: $LATEST_URL - RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) - RELEASE_TAG="${RELEASE_TAG%\"}" - RELEASE_TAG="${RELEASE_TAG#\"}" - RELEASE_TAG=${RELEASE_TAG:1} - echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} + grep --version + echo "" + echo INFO: Checking latest nrtestsuite release tag ... + LATEST_URL="${NRTESTS_URL}/releases/latest" + LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} + echo DOWNLOAD URL: $LATEST_URL + RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) + RELEASE_TAG="${RELEASE_TAG%\"}" + RELEASE_TAG="${RELEASE_TAG#\"}" + RELEASE_TAG=${RELEASE_TAG:1} + echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} fi @@ -106,7 +108,6 @@ tar xzf benchmarks.tar.gz -C benchmark #determine ref_build_id MANIFEST_FILE=$( find . -name manifest.json ) -echo manifest file: $MANIFEST_FILE while read line; do if [[ $line == *"${PLATFORM} "* ]]; then From f54c6ab9004b45316cd5f7394f2bac821ec50cdb Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 21:45:20 -0400 Subject: [PATCH 58/85] Fixed checking regression testing return code --- darwin/run-nrtests.zsh | 8 ++++---- linux/run-nrtests.sh | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 93fb69d..9fdcfda 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -94,12 +94,12 @@ cd ./benchmark if [[ $? -eq 0 ]] then + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json +else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} - mv benchmark-${PLATFORM}.tar.gz ./${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz -else - echo "INFO: nrtest compare exited successfully" - mv receipt.json ./${PROJ_DIR}/upload/receipt.json + mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz fi # return user to current dir diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 04150c3..36913eb 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -94,12 +94,12 @@ cd ./benchmark if [ $? -eq 0 ] then + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json +else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz -else - echo "INFO: nrtest compare exited successfully" - mv receipt.json ./${PROJ_DIR}/upload/receipt.json fi # return user to current dir From 06b2324faf6a4908472d53acbe25e7ab9eca79ed Mon Sep 17 00:00:00 2001 From: Caleb Buahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 21:57:47 -0400 Subject: [PATCH 59/85] Update before-nrtest.zsh --- darwin/before-nrtest.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 8022b96..3e513ba 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -58,6 +58,7 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else + curl --version grep --version echo "" echo INFO: Checking latest nrtestsuite release tag ... From 689c94163b86d7384fad9804de5e148c20dd8773 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 22:05:24 -0400 Subject: [PATCH 60/85] Fixing artifact upload --- darwin/run-nrtests.zsh | 8 ++++---- linux/run-nrtests.sh | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 9fdcfda..e960fd6 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -92,14 +92,14 @@ eval ${NRTEST_COMMAND} # Stage artifacts for upload cd ./benchmark -if [[ $? -eq 0 ]] +if [ $? -eq 0 ] then - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json -else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz +else + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 36913eb..8d6a6b2 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -94,12 +94,12 @@ cd ./benchmark if [ $? -eq 0 ] then - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json -else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz +else + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir From 59b81ea61943302c6cad53fefff5db74a3c645ab Mon Sep 17 00:00:00 2001 From: Caleb Buahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 22:13:27 -0400 Subject: [PATCH 61/85] Update run-nrtests.sh --- linux/run-nrtests.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 36913eb..7cdcf69 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -94,15 +94,15 @@ cd ./benchmark if [ $? -eq 0 ] then - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json -else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz +else + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir cd ${PROJ_DIR} -exit $? \ No newline at end of file +exit $? From 13e95aa31e3cf72a2989c4503c9af3786ea5fbfe Mon Sep 17 00:00:00 2001 From: Caleb Buahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 27 Aug 2020 22:13:48 -0400 Subject: [PATCH 62/85] Update run-nrtests.zsh --- darwin/run-nrtests.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 9fdcfda..5a9ab80 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -92,17 +92,17 @@ eval ${NRTEST_COMMAND} # Stage artifacts for upload cd ./benchmark -if [[ $? -eq 0 ]] +if [ $? -eq 0 ] then - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json -else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz +else + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir cd ${PROJ_DIR} -return $? \ No newline at end of file +return $? From 895ac7d8c25afa16da7430a4edda0a0d05cead0b Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 3 Sep 2020 17:59:10 -0400 Subject: [PATCH 63/85] Minor fixes --- windows/before-nrtest.cmd | 1 + windows/make.cmd | 9 +++++---- windows/run-nrtests.cmd | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index 9afebd4..b3326ab 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -16,6 +16,7 @@ :: BUILD_HOME - defaults to "build" :: PLATFORM :: NRTESTS_URL - URL to set the test suite defaults to "https://github.com/OpenWaterAnalytics/%PROJECT%-nrtestsuite" +:: :: Arguments: :: 1 - (RELEASE_TAG) release tag for benchmark version (defaults to latest tag) :: diff --git a/windows/make.cmd b/windows/make.cmd index 11739f5..b6cf999 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -49,12 +49,13 @@ if not exist upload ( :: determine project if not defined PROJECT ( - for %%i in (%PROJ_DIR%) do set PROJECT=%%~ni - set PROJECT=%PROJECT:~0,-7% - if not defined PROJECT ( - echo "ERROR: PROJECT could not be determined" & exit /B 1 + for %%i in (%PROJ_DIR%) do ( + if "%%~ni" == "swmm-solver" ( set "PROJECT=swmm" ) else if "%%~ni" == "epanet-solver" ( set "PROJECT=epanet" ) ) ) +if not defined PROJECT ( + echo "ERROR: PROJECT could not be determined" & exit /B 1 +) :: GitHub Actions echo::set-env name=PROJECT::%PROJECT% diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 41a5a8d..aa01e04 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -98,7 +98,7 @@ if exist %TEST_OUTPUT_PATH% ( :: perform nrtest execute echo INFO: Creating SUT %SUT_BUILD_ID% artifacts -%NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% +call %NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% set RESULT=%ERRORLEVEL% echo. @@ -106,8 +106,8 @@ echo. :: perform nrtest compare if %RESULT% equ 0 ( echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% - %NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json - set RESULT=%ERRORLEVEL% + call %NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json + set RESULT=!ERRORLEVEL! ) cd .\benchmark From ff2a25629511f8a5fb0502bc22ab3d9f0118fe5c Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 3 Sep 2020 18:17:03 -0400 Subject: [PATCH 64/85] Improves project determination --- windows/make.cmd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/make.cmd b/windows/make.cmd index b6cf999..986dfe2 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -50,7 +50,9 @@ if not exist upload ( :: determine project if not defined PROJECT ( for %%i in (%PROJ_DIR%) do ( - if "%%~ni" == "swmm-solver" ( set "PROJECT=swmm" ) else if "%%~ni" == "epanet-solver" ( set "PROJECT=epanet" ) + if "%%~ni" == "swmm-solver" ( set "PROJECT=swmm" + ) else if "%%~ni" == "epanet-solver" ( set "PROJECT=epanet" + ) else ( set "PROJECT=" ) ) ) if not defined PROJECT ( From 4f3ec4c7b3be19c8e5e171c4eb0eb7aae33b329c Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Wed, 9 Sep 2020 17:50:38 -0400 Subject: [PATCH 65/85] Return error codes addresses #3 --- darwin/make.zsh | 11 +++++++++-- darwin/run-nrtests.zsh | 15 ++++++++++----- linux/make.sh | 10 ++++++++-- linux/run-nrtests.sh | 18 +++++++++++------- windows/make.cmd | 9 +++++++-- 5 files changed, 45 insertions(+), 18 deletions(-) diff --git a/darwin/make.zsh b/darwin/make.zsh index cf341ab..1f8b791 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -68,17 +68,21 @@ set -- "${POSITIONAL[@]}" # restore positional parameters # perform the build cmake -E make_directory ${BUILD_HOME} +RESULT=$? + if [ ${TESTING} -eq 1 ]; then echo "Building debug" cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure + RESULT=$? else echo "Building release" cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=OFF .. \ - && cmake --build ./${BUILD_HOME} --config Release --target package \ - && cp ./${BUILD_HOME}/*.tar.gz ./upload >&1 + && cmake --build ./${BUILD_HOME} --config Release --target package + RESULT=$? + cp ./${BUILD_HOME}/*.tar.gz ./upload >&1 fi export PLATFORM="darwin" @@ -88,3 +92,6 @@ echo ::set-env name=PLATFORM::$PLATFORM # return user to current dir cd ${PROJECT_DIR} + + +return $RESULT \ No newline at end of file diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index e960fd6..3ab309e 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -83,26 +83,31 @@ echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" echo $NRTEST_COMMAND eval ${NRTEST_COMMAND} +RESULT=$? +if [[ "$RESULT" -eq 0 ]] +then # perform nrtest compare echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" eval ${NRTEST_COMMAND} +RESULT=$? +fi # Stage artifacts for upload cd ./benchmark -if [ $? -eq 0 ] +if [[ "$RESULT" -eq 0 ]] then + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json +else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz -else - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir cd ${PROJ_DIR} -return $? \ No newline at end of file +return $RESULT \ No newline at end of file diff --git a/linux/make.sh b/linux/make.sh index 91c856f..7e16596 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -74,16 +74,20 @@ set -- "${POSITIONAL[@]}" # restore positional parameters # perform the build cmake -E make_directory ${BUILD_HOME} +RESULT=$? + if [ ${TESTING} -eq 1 ]; then cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ && cmake -E chdir ./${BUILD_HOME} ctest -C Debug --output-on-failure + RESULT=$? else cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=OFF .. \ - && cmake --build ./${BUILD_HOME} --config Release --target package \ - && cp ./${BUILD_HOME}/*.tar.gz ./upload >&1 + && cmake --build ./${BUILD_HOME} --config Release --target package + RESULT=$? + cp ./${BUILD_HOME}/*.tar.gz ./upload >&1 fi #GitHub Actions @@ -91,3 +95,5 @@ echo ::set-env name=PLATFORM::$PLATFORM # return user to current dir cd ${PROJECT_DIR} + +exit $RESULT diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 8d6a6b2..926d715 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -77,32 +77,36 @@ if [ -d "${TEST_OUTPUT_PATH}" ]; then rm -rf "${TEST_OUTPUT_PATH}" fi + # perform nrtest execute echo "INFO: Creating SUT ${SUT_BUILD_ID} artifacts" NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT_PATH}" eval ${NRTEST_COMMAND} +RESULT=$? - - +if [[ "$RESULT" -eq 0 ]] +then # perform nrtest compare echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" eval ${NRTEST_COMMAND} +RESULT=$? +fi # Stage artifacts for upload cd ./benchmark -if [ $? -eq 0 ] +if [[ "$RESULT" -eq 0 ]] then + echo "INFO: nrtest compare exited successfully" + mv receipt.json ${PROJ_DIR}/upload/receipt.json +else echo ERROR: nrtest exited with errors tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz -else - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir cd ${PROJ_DIR} -exit $? \ No newline at end of file +exit $RESULT \ No newline at end of file diff --git a/windows/make.cmd b/windows/make.cmd index 11739f5..dc312e7 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -98,15 +98,18 @@ if exist %BUILD_HOME% ( :: perform the build cmake -E make_directory %BUILD_HOME% +set RESULT=%ERRORLEVEL% if %TESTING% equ 1 ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ && cmake --build .\%BUILD_HOME% --config Debug^ & echo. && cmake -E chdir .\%BUILD_HOME% ctest -C Debug --output-on-failure + set RESULT=%ERRORLEVEL% ) else ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ - && cmake --build .\%BUILD_HOME% --config Release --target package^ - && move /Y .\%BUILD_HOME%\*.zip .\upload > nul + && cmake --build .\%BUILD_HOME% --config Release --target package + set RESULT=%ERRORLEVEL% + move /Y .\%BUILD_HOME%\*.zip .\upload > nul ) @@ -128,3 +131,5 @@ echo ::set-env name=PLATFORM::%PLATFORM% :: return to users to project directory cd %PROJ_DIR% + +exit /B %RESULT% From 2f99350585e20a8b658cedddd8a0e67c525c0694 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Wed, 9 Sep 2020 18:24:11 -0400 Subject: [PATCH 66/85] Return error codes addresses #3 --- windows/make.cmd | 6 +++--- windows/run-nrtests.cmd | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/make.cmd b/windows/make.cmd index dc312e7..c3a4b95 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -98,17 +98,17 @@ if exist %BUILD_HOME% ( :: perform the build cmake -E make_directory %BUILD_HOME% -set RESULT=%ERRORLEVEL% +set RESULT=!ERRORLEVEL! if %TESTING% equ 1 ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ && cmake --build .\%BUILD_HOME% --config Debug^ & echo. && cmake -E chdir .\%BUILD_HOME% ctest -C Debug --output-on-failure - set RESULT=%ERRORLEVEL% + set RESULT=!ERRORLEVEL! ) else ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ && cmake --build .\%BUILD_HOME% --config Release --target package - set RESULT=%ERRORLEVEL% + set RESULT=!ERRORLEVEL! move /Y .\%BUILD_HOME%\*.zip .\upload > nul ) diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 41a5a8d..47c8edd 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -99,7 +99,7 @@ if exist %TEST_OUTPUT_PATH% ( :: perform nrtest execute echo INFO: Creating SUT %SUT_BUILD_ID% artifacts %NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_PATH% -set RESULT=%ERRORLEVEL% +set RESULT=!ERRORLEVEL! echo. @@ -107,7 +107,7 @@ echo. if %RESULT% equ 0 ( echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% %NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json - set RESULT=%ERRORLEVEL% + set RESULT=!ERRORLEVEL! ) cd .\benchmark From 6b5ea18f66323d8fd1232d641de8eaed47c865cd Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 10 Sep 2020 12:54:04 -0400 Subject: [PATCH 67/85] Continue after nrtest execute fail --- darwin/run-nrtests.zsh | 8 +++++--- linux/run-nrtests.sh | 8 +++++--- windows/run-nrtests.cmd | 10 ++++++---- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 3ab309e..ca5eb50 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -85,14 +85,16 @@ echo $NRTEST_COMMAND eval ${NRTEST_COMMAND} RESULT=$? -if [[ "$RESULT" -eq 0 ]] +if [[ "$RESULT" -neq 0 ]] then + echo "ERROR: nrtest execute exited with errors" +fi + # perform nrtest compare echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" eval ${NRTEST_COMMAND} RESULT=$? -fi # Stage artifacts for upload cd ./benchmark @@ -102,7 +104,7 @@ then echo "INFO: nrtest compare exited successfully" mv receipt.json ${PROJ_DIR}/upload/receipt.json else - echo ERROR: nrtest exited with errors + echo "ERROR: nrtest exited with errors" tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz fi diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 926d715..40d8b49 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -84,14 +84,16 @@ NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT eval ${NRTEST_COMMAND} RESULT=$? -if [[ "$RESULT" -eq 0 ]] +if [[ "$RESULT" -neq 0 ]] then + echo "ERROR: nrtest execute exited with errors" +fi + # perform nrtest compare echo "INFO: Comparing SUT artifacts to REF ${REF_BUILD_ID}" NRTEST_COMMAND="${NRTEST_COMPARE_CMD} ${TEST_OUTPUT_PATH} ${REF_OUTPUT_PATH} --rtol ${RTOL_VALUE} --atol ${ATOL_VALUE}" eval ${NRTEST_COMMAND} RESULT=$? -fi # Stage artifacts for upload cd ./benchmark @@ -101,7 +103,7 @@ then echo "INFO: nrtest compare exited successfully" mv receipt.json ${PROJ_DIR}/upload/receipt.json else - echo ERROR: nrtest exited with errors + echo "ERROR: nrtest exited with errors" tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz fi diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 47c8edd..5304d5e 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -104,12 +104,14 @@ set RESULT=!ERRORLEVEL! echo. :: perform nrtest compare -if %RESULT% equ 0 ( - echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% - %NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json - set RESULT=!ERRORLEVEL! +if %RESULT% neq 0 ( + echo ERROR: nrtest execute exited with errors ) +echo INFO: Comparing SUT artifacts to REF %REF_BUILD_ID% +%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o benchmark\receipt.json +set RESULT=!ERRORLEVEL! + cd .\benchmark :: stage artifacts for upload From cfd8cae7a566076893421e9c54e6a1175e32c6f4 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Thu, 10 Sep 2020 13:02:30 -0400 Subject: [PATCH 68/85] Continue after nrtest execute fail --- darwin/run-nrtests.zsh | 2 +- linux/run-nrtests.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index ca5eb50..47f953d 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -85,7 +85,7 @@ echo $NRTEST_COMMAND eval ${NRTEST_COMMAND} RESULT=$? -if [[ "$RESULT" -neq 0 ]] +if [[ "$RESULT" -ne 0 ]] then echo "ERROR: nrtest execute exited with errors" fi diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index 40d8b49..96b599d 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -84,7 +84,7 @@ NRTEST_COMMAND="${NRTEST_EXECUTE_CMD} ${TEST_APP_PATH} ${TESTS} -o ${TEST_OUTPUT eval ${NRTEST_COMMAND} RESULT=$? -if [[ "$RESULT" -neq 0 ]] +if [[ "$RESULT" -ne 0 ]] then echo "ERROR: nrtest execute exited with errors" fi From 2fea1dd673ec5e17023b17029506b87891fd764c Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 22 Oct 2020 12:08:47 -0400 Subject: [PATCH 69/85] Work in progress --- darwin/before-nrtest.zsh | 31 ++++++++++++------------------- darwin/make.zsh | 29 ++++++++++++++++++++--------- darwin/run-nrtests.zsh | 13 +++++++------ 3 files changed, 39 insertions(+), 34 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 8022b96..2b7bc9b 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -7,7 +7,7 @@ # # Author: Michael E. Tryby # US EPA - ORD/NRMRL -# +# # Caleb A. Buahin # Xylem Inc. # @@ -24,11 +24,11 @@ # Arguments: # 1 - (RELEASE_TAG) - Release tag # -# Note: +# Note: # Tests and benchmark files are stored in the swmm-example-networks repo. -# This script retreives them using a stable URL associated with a release on -# GitHub and stages the files for nrtest to run. The script assumes that -# before-test.sh and app-config.sh are located together in the same folder. +# This script retreives them using a stable URL associated with a release on +# GitHub and stages the files for nrtest to run. The script assumes that +# before-test.sh and app-config.sh are located together in the same folder. # export TEST_HOME="nrtests" @@ -36,10 +36,11 @@ export TEST_HOME="nrtests" # check that env variables are set REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'PLATFORM') for i in ${REQUIRED_VARS}; do - [[ -v "${${(P)i}}" ]] && { echo "ERROR: $i must be defined"; return 1 } + [[ ! -v ${i} ]] && { echo "ERROR: $i must be defined"; return 1 } done # determine project directory +CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} cd ${SCRIPT_HOME} cd ./../../ @@ -58,16 +59,8 @@ if [[ ! -z "$1" ]] then RELEASE_TAG=$1 else - grep --version - echo "" - echo INFO: Checking latest nrtestsuite release tag ... LATEST_URL="${NRTESTS_URL}/releases/latest" - LATEST_URL=${LATEST_URL/"github.com"/"api.github.com/repos"} - echo DOWNLOAD URL: $LATEST_URL - RELEASE_TAG=$( curl --silent "${LATEST_URL}" | grep -o '"tag_name": *"[^"]*"' | grep -o '"[^"]*"$' ) - RELEASE_TAG="${RELEASE_TAG%\"}" - RELEASE_TAG="${RELEASE_TAG#\"}" - RELEASE_TAG=${RELEASE_TAG:1} + RELEASE_TAG=$( basename $( curl -Ls -o /dev/null -w %{url_effective} ${LATEST_URL} ) ) echo INFO: Latest nrtestsuite release: ${RELEASE_TAG} fi @@ -77,8 +70,8 @@ if [[ ! -v RELEASE_TAG ]] then echo "ERROR: tag RELEASE_TAG is invalid" ; return 1 else - TESTFILES_URL="${NRTESTS_URL}/archive/v${RELEASE_TAG}.tar.gz" - BENCHFILES_URL="${NRTESTS_URL}/releases/download/v${RELEASE_TAG}/benchmark-${PLATFORM}.tar.gz" + TESTFILES_URL="${NRTESTS_URL}/archive/${RELEASE_TAG}.tar.gz" + BENCHFILES_URL="${NRTESTS_URL}/releases/download/${RELEASE_TAG}/benchmark-${PLATFORM}.tar.gz" fi echo INFO: Staging files for regression testing @@ -98,7 +91,7 @@ curl -fsSL -o benchmarks.tar.gz ${BENCHFILES_URL} # extract tests and setup symlink tar xzf nrtestfiles.tar.gz -ln -s ${PROJECT}-nrtestsuite-${RELEASE_TAG}/public tests +ln -s ${PROJECT}-nrtestsuite-${RELEASE_TAG:1}/public tests # create benchmark dir and extract benchmarks @@ -128,4 +121,4 @@ export REF_BUILD_ID=$REF_BUILD_ID echo ::set-env name=REF_BUILD_ID::$REF_BUILD_ID # return user to current dir -cd ${PROJECT_DIR} +cd ${CUR_DIR} diff --git a/darwin/make.zsh b/darwin/make.zsh index 1f8b791..43a64b5 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -8,33 +8,44 @@ # # Authors: Michael E. Tryby # US EPA - ORD/NRMRL -# +# # Caleb A. Buahin # Xylem Inc. # # Environment Variables: # PROJECT -# +# # Optional Arguments: # -g ("GENERATOR") defaults to "Ninja" # -t builds and runs unit tests (requires Boost) -# Check to make sure PROJECT is defined -[[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } +setopt extendedglob export BUILD_HOME="build" # determine project directory +CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} -cd ${SCRIPT_HOME} +cd ${SCRIPT_HOME} cd ./../../ PROJECT_DIR=${PWD} + +# determine project +if [[ ! -v PROJECT ]] +then +[[ $( basename $PROJECT_DIR ) = ((#i)'STO'*|(#i)'SWM'*) ]] && { export PROJECT="swmm" } +[[ $( basename $PROJECT_DIR ) = ((#i)'WAT'*|(#i)'EPA'*) ]] && { export PROJECT="epanet" } +fi +# check that PROJECT is defined +[[ ! -v PROJECT ]] && { echo "ERROR: PROJECT must be defined"; return 1 } + + # prepare for artifact upload if [ ! -d upload ]; then mkdir upload -fi +fi echo INFO: Building ${PROJECT} ... @@ -70,7 +81,7 @@ cmake -E make_directory ${BUILD_HOME} RESULT=$? -if [ ${TESTING} -eq 1 ]; +if [ ${TESTING} -eq 1 ]; then echo "Building debug" cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ @@ -91,7 +102,7 @@ export PLATFORM="darwin" echo ::set-env name=PLATFORM::$PLATFORM # return user to current dir -cd ${PROJECT_DIR} +cd ${CUR_DIR} -return $RESULT \ No newline at end of file +return $RESULT diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 47f953d..2551581 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -28,20 +28,21 @@ # check that env variables are set -REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'TEST_HOME' 'PLATFORM' 'REF_BUILD_ID') +REQUIRED_VARS=(PROJECT BUILD_HOME TEST_HOME PLATFORM REF_BUILD_ID) for i in ${REQUIRED_VARS}; do - [[ -v "${${(P)i}}" ]] && { echo "ERROR: $i must be defined"; return 1 } + [[ ! -v ${i} ]] && { echo "ERROR: ${i} must be defined"; return 1 } done # determine project root directory +CUR_DIR=${PWD} SCRIPT_HOME=${0:a:h} cd ${SCRIPT_HOME}/../../ PROJ_DIR=${PWD} # change current directory to test suite -cd ${PROJ_DIR}/${TEST_HOME} +cd ${TEST_HOME} if [ ! -z "$1" ]; then @@ -105,11 +106,11 @@ then mv receipt.json ${PROJ_DIR}/upload/receipt.json else echo "ERROR: nrtest exited with errors" - tar -zcvf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} + tar -zcf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz fi # return user to current dir -cd ${PROJ_DIR} +cd ${CUR_DIR} -return $RESULT \ No newline at end of file +return $RESULT From a2d8e0e113b3c9962617132d16b47e981845fcdf Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 22 Oct 2020 12:23:12 -0400 Subject: [PATCH 70/85] Remove unnecessary quoting --- darwin/before-nrtest.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 2b7bc9b..99cee74 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -34,7 +34,7 @@ export TEST_HOME="nrtests" # check that env variables are set -REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'PLATFORM') +REQUIRED_VARS=(PROJECT BUILD_HOME PLATFORM) for i in ${REQUIRED_VARS}; do [[ ! -v ${i} ]] && { echo "ERROR: $i must be defined"; return 1 } done From cfa6e12a2292fb44f95bb3760701f3b80a60e1dd Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 12:24:47 -0500 Subject: [PATCH 71/85] Fixed env variable setting for github actions; addresses #6 --- darwin/before-nrtest.zsh | 2 +- darwin/make.zsh | 2 +- linux/before-nrtest.sh | 2 +- windows/before-nrtest.cmd | 2 +- windows/make.cmd | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index 99cee74..fbeb134 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -118,7 +118,7 @@ fi export REF_BUILD_ID=$REF_BUILD_ID # GitHub Actions -echo ::set-env name=REF_BUILD_ID::$REF_BUILD_ID +echo "REF_BUILD_ID=$REF_BUILD_ID" >> $GITHUB_ENV # return user to current dir cd ${CUR_DIR} diff --git a/darwin/make.zsh b/darwin/make.zsh index 43a64b5..cd392c1 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -99,7 +99,7 @@ fi export PLATFORM="darwin" #GitHub Actions -echo ::set-env name=PLATFORM::$PLATFORM +echo "PLATFORM=$PLATFORM" >> $GITHUB_ENV # return user to current dir cd ${CUR_DIR} diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index 34d93ef..ccef9a7 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -127,7 +127,7 @@ fi export REF_BUILD_ID=$REF_BUILD_ID # GitHub Actions -echo ::set-env name=REF_BUILD_ID::$REF_BUILD_ID +echo "REF_BUILD_ID=$REF_BUILD_ID" >> $GITHUB_ENV # return user to current dir cd ${PROJECT_DIR} diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index 9afebd4..96833c2 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -115,7 +115,7 @@ for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.j if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) :: GitHub Actions -echo ::set-env name=REF_BUILD_ID::%REF_BUILD_ID% +echo "REF_BUILD_ID=%REF_BUILD_ID%" >> %GITHUB_ENV% :: return to users current directory diff --git a/windows/make.cmd b/windows/make.cmd index c3a4b95..b67bf25 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -57,7 +57,7 @@ if not defined PROJECT ( ) :: GitHub Actions -echo::set-env name=PROJECT::%PROJECT% +echo "PROJECT=%PROJECT%" >> %GITHUB_ENV% setlocal EnableDelayedExpansion @@ -103,7 +103,7 @@ set RESULT=!ERRORLEVEL! if %TESTING% equ 1 ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=ON ..^ && cmake --build .\%BUILD_HOME% --config Debug^ - & echo. && cmake -E chdir .\%BUILD_HOME% ctest -C Debug --output-on-failure + && cmake -E chdir .\%BUILD_HOME% ctest -C Debug --output-on-failure set RESULT=!ERRORLEVEL! ) else ( cmake -E chdir .\%BUILD_HOME% cmake -G"%GENERATOR%" -DBUILD_TESTS=OFF ..^ @@ -126,7 +126,7 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo ::set-env name=PLATFORM::%PLATFORM% +echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% :: return to users to project directory From 256833194c07d7e2cc009ba348931d8b199b1596 Mon Sep 17 00:00:00 2001 From: Caleb Buahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 13:05:36 -0500 Subject: [PATCH 72/85] GHActions environment variable update; addresses #6 --- linux/make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/make.sh b/linux/make.sh index 7e16596..1f99483 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -91,7 +91,7 @@ else fi #GitHub Actions -echo ::set-env name=PLATFORM::$PLATFORM +echo "PLATFORM=$PLATFORM" >> $GITHUB_ENV # return user to current dir cd ${PROJECT_DIR} From b09c4b76a1666da6dd52572720c9c63d5b7759aa Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 16:31:28 -0500 Subject: [PATCH 73/85] Testing new env setter --- windows/make.cmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/windows/make.cmd b/windows/make.cmd index f1331ef..06f6517 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -129,8 +129,9 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions +echo "PLATFORM=%PLATFORM%" echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% - +echo %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From a2954db8ba2a983af03cd7e3ac925ab7212a5faa Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 17:02:14 -0500 Subject: [PATCH 74/85] Removed testing prints --- windows/make.cmd | 2 -- 1 file changed, 2 deletions(-) diff --git a/windows/make.cmd b/windows/make.cmd index 06f6517..38096d1 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -129,9 +129,7 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo "PLATFORM=%PLATFORM%" echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% -echo %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From bef5a761ae85c7cd5547792a5935af32f58238ad Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 17:15:22 -0500 Subject: [PATCH 75/85] Print statements for testing --- windows/before-nrtest.cmd | 1 + windows/make.cmd | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index bafc151..8936d10 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -57,6 +57,7 @@ if not defined NRTESTS_URL ( if [%1] == [] (set "RELEASE_TAG=" ) else (set "RELEASE_TAG=%~1") +echo "testing:%GITHUB_ENV%" :: check env variables and apply defaults for %%v in (PROJECT BUILD_HOME PLATFORM) do ( diff --git a/windows/make.cmd b/windows/make.cmd index 38096d1..c8bb2e8 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -129,8 +129,9 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions +echo "PLATFORM=%PLATFORM%" echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% - +echo %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From 5ca223a532898089ad0dce6d4afd51d97cadc6c6 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 17:26:27 -0500 Subject: [PATCH 76/85] Fixed window redirection --- windows/before-nrtest.cmd | 3 +-- windows/make.cmd | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index 8936d10..e092987 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -57,7 +57,6 @@ if not defined NRTESTS_URL ( if [%1] == [] (set "RELEASE_TAG=" ) else (set "RELEASE_TAG=%~1") -echo "testing:%GITHUB_ENV%" :: check env variables and apply defaults for %%v in (PROJECT BUILD_HOME PLATFORM) do ( @@ -117,7 +116,7 @@ for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.j if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) :: GitHub Actions -echo "REF_BUILD_ID=%REF_BUILD_ID%" >> %GITHUB_ENV% +echo "REF_BUILD_ID=%REF_BUILD_ID%" > %GITHUB_ENV% :: return to users current directory diff --git a/windows/make.cmd b/windows/make.cmd index c8bb2e8..be6dd2f 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -60,7 +60,7 @@ if not defined PROJECT ( ) :: GitHub Actions -echo "PROJECT=%PROJECT%" >> %GITHUB_ENV% +echo "PROJECT=%PROJECT%" > %GITHUB_ENV% setlocal EnableDelayedExpansion @@ -129,9 +129,8 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo "PLATFORM=%PLATFORM%" -echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% -echo %GITHUB_ENV% +echo "PLATFORM=%PLATFORM%" > %GITHUB_ENV% + :: return to users to project directory cd %PROJ_DIR% From 8f4d164131e343d0eaa6b4d35a1c4c007def8e48 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 17:39:37 -0500 Subject: [PATCH 77/85] Modified windows env setter --- windows/before-nrtest.cmd | 2 +- windows/make.cmd | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index e092987..0f3b2d7 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -116,7 +116,7 @@ for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.j if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) :: GitHub Actions -echo "REF_BUILD_ID=%REF_BUILD_ID%" > %GITHUB_ENV% +echo "set REF_BUILD_ID=%REF_BUILD_ID%" >> %GITHUB_ENV% :: return to users current directory diff --git a/windows/make.cmd b/windows/make.cmd index be6dd2f..fed6bdc 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -60,7 +60,7 @@ if not defined PROJECT ( ) :: GitHub Actions -echo "PROJECT=%PROJECT%" > %GITHUB_ENV% +echo "set PROJECT=%PROJECT%" > %GITHUB_ENV% setlocal EnableDelayedExpansion @@ -129,7 +129,7 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo "PLATFORM=%PLATFORM%" > %GITHUB_ENV% +echo "set PLATFORM=%PLATFORM%" >> %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From e2340a221e149095aa86a12456d19f080696f77a Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 17:48:15 -0500 Subject: [PATCH 78/85] Reverted windows build scripts --- windows/before-nrtest.cmd | 2 +- windows/make.cmd | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index 0f3b2d7..bafc151 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -116,7 +116,7 @@ for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.j if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) :: GitHub Actions -echo "set REF_BUILD_ID=%REF_BUILD_ID%" >> %GITHUB_ENV% +echo "REF_BUILD_ID=%REF_BUILD_ID%" >> %GITHUB_ENV% :: return to users current directory diff --git a/windows/make.cmd b/windows/make.cmd index fed6bdc..0db97aa 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -60,7 +60,7 @@ if not defined PROJECT ( ) :: GitHub Actions -echo "set PROJECT=%PROJECT%" > %GITHUB_ENV% +echo "PROJECT=%PROJECT%" > %GITHUB_ENV% setlocal EnableDelayedExpansion @@ -129,7 +129,7 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo "set PLATFORM=%PLATFORM%" >> %GITHUB_ENV% +echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From 60fdd12ab8131d73c95eb1f19d1a7e788b37ed9d Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 20:15:47 -0500 Subject: [PATCH 79/85] Fixed windows ci-tools --- darwin/run-nrtests.zsh | 3 --- windows/make.cmd | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index f9d2232..2551581 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -108,9 +108,6 @@ else echo "ERROR: nrtest exited with errors" tar -zcf benchmark-${PLATFORM}.tar.gz ./${PROJECT}-${SUT_BUILD_ID} mv benchmark-${PLATFORM}.tar.gz ${PROJ_DIR}/upload/benchmark-${PLATFORM}.tar.gz -else - echo "INFO: nrtest compare exited successfully" - mv receipt.json ${PROJ_DIR}/upload/receipt.json fi # return user to current dir diff --git a/windows/make.cmd b/windows/make.cmd index 0db97aa..516f56b 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -60,7 +60,7 @@ if not defined PROJECT ( ) :: GitHub Actions -echo "PROJECT=%PROJECT%" > %GITHUB_ENV% +echo PROJECT=%PROJECT% >> %GITHUB_ENV% setlocal EnableDelayedExpansion @@ -129,7 +129,7 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo "PLATFORM=%PLATFORM%" >> %GITHUB_ENV% +echo PLATFORM=%PLATFORM% >> %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From e2ec9b3f893249ce95aea102d4c52ec2a9b5855d Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 20:20:04 -0500 Subject: [PATCH 80/85] Fixed windows ci-tools --- windows/before-nrtest.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index bafc151..a3ad520 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -116,7 +116,7 @@ for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.j if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) :: GitHub Actions -echo "REF_BUILD_ID=%REF_BUILD_ID%" >> %GITHUB_ENV% +echo REF_BUILD_ID=%REF_BUILD_ID% >> %GITHUB_ENV% :: return to users current directory From a5995005af22d4beb1a981e5b5b69321ed86e8cd Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 20:59:29 -0500 Subject: [PATCH 81/85] Printing for debugging --- windows/before-nrtest.cmd | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index a3ad520..cd79746 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -74,8 +74,8 @@ if [%RELEASE_TAG%] == [] ( ) if defined RELEASE_TAG ( - set "TESTFILES_URL=%NRTESTS_URL%/archive/%RELEASE_TAG%.zip" - set "BENCHFILES_URL=%NRTESTS_URL%/releases/download/%RELEASE_TAG%/benchmark-%PLATFORM%.zip" + set TESTFILES_URL=%NRTESTS_URL%/archive/%RELEASE_TAG%.zip + set BENCHFILES_URL=%NRTESTS_URL%/releases/download/%RELEASE_TAG%/benchmark-%PLATFORM%.zip ) else ( echo ERROR: tag %RELEASE_TAG% is invalid & exit /B 1 ) @@ -92,7 +92,9 @@ if %ERRORLEVEL% NEQ 0 ( echo "ERROR: unable to cd %TEST_HOME% dir" & exit /B 1 ) :: retrieve nrtest cases and benchmark results for regression testing +echo Downloading %TESTFILES_URL% curl -fsSL -o nrtestfiles.zip %TESTFILES_URL% +echo Downloading %BENCHFILES_URL% curl -fsSL -o benchmark.zip %BENCHFILES_URL% From bdfac087566b0fba7af2bcf918285cc184f8b8d8 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 21:08:57 -0500 Subject: [PATCH 82/85] Remove space in platform env variable --- windows/before-nrtest.cmd | 2 +- windows/make.cmd | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index cd79746..e19c81f 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -118,7 +118,7 @@ for /F delims^=^"^ tokens^=4 %%d in ( 'findstr %PLATFORM% %TEST_HOME%\manifest.j if not defined REF_BUILD_ID ( echo "ERROR: REF_BUILD_ID could not be determined" & exit /B 1 ) :: GitHub Actions -echo REF_BUILD_ID=%REF_BUILD_ID% >> %GITHUB_ENV% +echo REF_BUILD_ID=%REF_BUILD_ID%>> %GITHUB_ENV% :: return to users current directory diff --git a/windows/make.cmd b/windows/make.cmd index 516f56b..a848ca4 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -60,7 +60,7 @@ if not defined PROJECT ( ) :: GitHub Actions -echo PROJECT=%PROJECT% >> %GITHUB_ENV% +echo PROJECT=%PROJECT%>> %GITHUB_ENV% setlocal EnableDelayedExpansion @@ -129,7 +129,7 @@ if not defined PLATFORM ( echo "ERROR: PLATFORM could not be determined" & exit :: GitHub Actions -echo PLATFORM=%PLATFORM% >> %GITHUB_ENV% +echo PLATFORM=%PLATFORM%>> %GITHUB_ENV% :: return to users to project directory cd %PROJ_DIR% From 0eb92bbbe905b745f9933dd0773179bca6176930 Mon Sep 17 00:00:00 2001 From: calebbuahin <7217571+cbuahin@users.noreply.github.com> Date: Tue, 17 Nov 2020 21:15:33 -0500 Subject: [PATCH 83/85] Removed debugging prints --- windows/before-nrtest.cmd | 2 -- 1 file changed, 2 deletions(-) diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index e19c81f..192f9a7 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -92,9 +92,7 @@ if %ERRORLEVEL% NEQ 0 ( echo "ERROR: unable to cd %TEST_HOME% dir" & exit /B 1 ) :: retrieve nrtest cases and benchmark results for regression testing -echo Downloading %TESTFILES_URL% curl -fsSL -o nrtestfiles.zip %TESTFILES_URL% -echo Downloading %BENCHFILES_URL% curl -fsSL -o benchmark.zip %BENCHFILES_URL% From ad17e65e0b018226222be0485b99e5ccfea148a2 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 16 Dec 2020 14:56:37 -0500 Subject: [PATCH 84/85] Adding AUTHORS; updating LICENSE and headers --- AUTHORS | 4 ++++ LICENSE | 20 +++++++++++++++++++- darwin/app-config.zsh | 6 +----- darwin/before-nrtest.zsh | 6 +----- darwin/make.zsh | 6 +----- darwin/requirements-swmm.txt | 6 +----- darwin/run-nrtests.zsh | 6 +----- linux/app-config.sh | 10 +++------- linux/before-nrtest.sh | 22 ++++++++-------------- linux/make.sh | 14 +++++--------- linux/requirements-swmm.txt | 14 +++++--------- linux/run-nrtests.sh | 8 ++------ windows/app-config.cmd | 3 +-- windows/before-nrtest.cmd | 3 +-- windows/make.cmd | 3 +-- windows/requirements-epanet.txt | 3 +-- windows/requirements-swmm.txt | 3 +-- windows/run-nrtests.cmd | 3 +-- 18 files changed, 57 insertions(+), 83 deletions(-) create mode 100644 AUTHORS diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..b8a9880 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,4 @@ +# Authors ordered by first contribution + +Michael Tryby (public domain) +Caleb Buahin diff --git a/LICENSE b/LICENSE index 0e259d4..c2e92a7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,22 @@ -Creative Commons Legal Code + + + +Copyright Notice + +This project contains material prepared by the United States Government for +which domestic copyright protection is not available under 17 USC ยง 105. + + +No Copyright Restrictions 2020 U.S. Federal Government + + + +License Notice + +This project is distributed under the Creative Commons Zero (CC0) Universal +version 1.0 (see below). + + CC0 1.0 Universal diff --git a/darwin/app-config.zsh b/darwin/app-config.zsh index 85e3e8f..736530d 100755 --- a/darwin/app-config.zsh +++ b/darwin/app-config.zsh @@ -6,11 +6,7 @@ # Date Created: 11/15/2017 # Updated: 08/21/2020 # -# Author: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Author: See AUTHORS # # Requires: # git diff --git a/darwin/before-nrtest.zsh b/darwin/before-nrtest.zsh index fbeb134..fdbb678 100755 --- a/darwin/before-nrtest.zsh +++ b/darwin/before-nrtest.zsh @@ -5,11 +5,7 @@ # Date Created: 11/15/2017 # Updated: 08/21/2020 # -# Author: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Author: See AUTHORS # # Dependencies: # curl diff --git a/darwin/make.zsh b/darwin/make.zsh index cd392c1..22b2d49 100755 --- a/darwin/make.zsh +++ b/darwin/make.zsh @@ -6,11 +6,7 @@ # Date Created: 06/29/2020 # Updated: 08/21/2020 # -# Authors: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Authors: See AUTHORS # # Environment Variables: # PROJECT diff --git a/darwin/requirements-swmm.txt b/darwin/requirements-swmm.txt index 400e8c6..8010c4c 100644 --- a/darwin/requirements-swmm.txt +++ b/darwin/requirements-swmm.txt @@ -4,11 +4,7 @@ # Date Created: 10/17/2019 # Date Updated: 11/26/2019 # -# Author: Michael E. Tryby -# US EPA ORD/CESER -# -# Caleb A. Buahin -# Xylem Inc. +# Author: See AUTHORS # # Useful for configuring a python environment to run nrtests on swmm. # diff --git a/darwin/run-nrtests.zsh b/darwin/run-nrtests.zsh index 2551581..6ca259b 100755 --- a/darwin/run-nrtests.zsh +++ b/darwin/run-nrtests.zsh @@ -6,11 +6,7 @@ # Date Created: 04/01/2020 # Updated: 08/21/2020 # -# Author: Michael E. Tryby -# US EPA - ORD/CESER -# -# Caleb A. Buahin -# Xylem Inc. +# Author: See AUTHORS # # Dependencies: # python -m pip install -r requirements.txt diff --git a/linux/app-config.sh b/linux/app-config.sh index 1927ee4..c63b826 100755 --- a/linux/app-config.sh +++ b/linux/app-config.sh @@ -6,25 +6,21 @@ # Date Created: 11/15/2017 # Updated: 08/21/2020 # -# Authors: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Authors: See AUTHORS # # Requires: # git # # Environment Variables: # PROJECT -# +# # Arguments: # 1 - absolute path to test executable # 2 - Platform # 3 - build identifier for SUT # -# Check requirements +# Check requirements type git >/dev/null 2>&1 || { echo "ERROR: git not installed"; exit 1; } diff --git a/linux/before-nrtest.sh b/linux/before-nrtest.sh index ccef9a7..8e15870 100755 --- a/linux/before-nrtest.sh +++ b/linux/before-nrtest.sh @@ -1,14 +1,10 @@ #! /bin/bash -# +# # before-test.sh - Prepares Travis CI worker to run swmm regression tests # # Date Created: 04/05/2018 # -# Authors: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Authors: See AUTHORS # # Dependencies: # curl @@ -23,11 +19,11 @@ # Arguments: # 1 - (RELEASE_TAG) - Release tag # -# Note: +# Note: # Tests and benchmark files are stored in the swmm-example-networks repo. -# This script retreives them using a stable URL associated with a release on -# GitHub and stages the files for nrtest to run. The script assumes that -# before-test.sh and app-config.sh are located together in the same folder. +# This script retreives them using a stable URL associated with a release on +# GitHub and stages the files for nrtest to run. The script assumes that +# before-test.sh and app-config.sh are located together in the same folder. export TEST_HOME="nrtests" @@ -38,7 +34,7 @@ REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'PLATFORM') for i in ${REQUIRED_VARS[@]} do if [[ -z "${i}" ]]; then - echo "ERROR: $i must be defined"; exit 1; + echo "ERROR: $i must be defined"; exit 1; fi done @@ -94,7 +90,7 @@ mkdir ${TEST_HOME} cd ${TEST_HOME} -# retrieve swmm-examples for regression testing tar.gz +# retrieve swmm-examples for regression testing tar.gz curl -fsSL -o nrtestfiles.tar.gz ${TESTFILES_URL} # retrieve swmm benchmark results @@ -131,5 +127,3 @@ echo "REF_BUILD_ID=$REF_BUILD_ID" >> $GITHUB_ENV # return user to current dir cd ${PROJECT_DIR} - - diff --git a/linux/make.sh b/linux/make.sh index 1f99483..4444e7b 100755 --- a/linux/make.sh +++ b/linux/make.sh @@ -6,11 +6,7 @@ # Date Created: 06/29/2020 # Date Modified: 07/06/2020 # -# Authors: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Authors: See AUTHORS # # Environment Variables: # PROJECT name for project @@ -23,8 +19,8 @@ # Check to make sure PROJECT is defined if [[ -z "${PROJECT}" ]]; then echo "ERROR: PROJECT could not be determined" - exit 1 -else + exit 1 +else echo INFO: Building ${PROJECT} ... fi @@ -41,7 +37,7 @@ PROJECT_DIR=${PWD} # prepare for artifact upload if [ ! -d upload ]; then mkdir upload -fi +fi echo INFO: Building ${PROJECT} ... @@ -76,7 +72,7 @@ cmake -E make_directory ${BUILD_HOME} RESULT=$? -if [ ${TESTING} -eq 1 ]; +if [ ${TESTING} -eq 1 ]; then cmake -E chdir ./${BUILD_HOME} cmake -G "${GENERATOR}" -DBUILD_TESTS=ON .. \ && cmake --build ./${BUILD_HOME} --config Debug \ diff --git a/linux/requirements-swmm.txt b/linux/requirements-swmm.txt index 66f3395..b4959c4 100644 --- a/linux/requirements-swmm.txt +++ b/linux/requirements-swmm.txt @@ -1,14 +1,10 @@ # -# requirements-appveyor.txt -# +# requirements-appveyor.txt +# # Date Created: 3/15/2018 -# Author: Michael E. Tryby -# US EPA ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. -# -# Useful for configuring a python environment to run swmm-nrtestsuite. +# Author: See AUTHORS +# +# Useful for configuring a python environment to run swmm-nrtestsuite. # # command: pip install -r tools/requirements-appveyor.txt # diff --git a/linux/run-nrtests.sh b/linux/run-nrtests.sh index ed4c0e4..da149ef 100755 --- a/linux/run-nrtests.sh +++ b/linux/run-nrtests.sh @@ -4,11 +4,7 @@ # # Date Created: 11/15/2017 # -# Author: Michael E. Tryby -# US EPA - ORD/NRMRL -# -# Caleb A. Buahin -# Xylem Inc. +# Author: See AUTHORS # # Dependencies: # python -m pip install -r requirements.txt @@ -28,7 +24,7 @@ REQUIRED_VARS=('PROJECT' 'BUILD_HOME' 'TEST_HOME' 'PLATFORM' 'REF_BUILD_ID') for i in ${REQUIRED_VARS[@]} do if [[ -z "${i}" ]]; then - echo "ERROR: $i must be defined"; exit 1; + echo "ERROR: $i must be defined"; exit 1; fi done diff --git a/windows/app-config.cmd b/windows/app-config.cmd index 2eef7b1..d039bf3 100644 --- a/windows/app-config.cmd +++ b/windows/app-config.cmd @@ -4,8 +4,7 @@ :: Date Created: 10/16/2019 :: Date Modified: 10/17/2019 :: -:: Author: Michael E. Tryby -:: US EPA - ORD/CESER +:: Author: See AUTHORS :: :: Requires: :: git diff --git a/windows/before-nrtest.cmd b/windows/before-nrtest.cmd index 192f9a7..22068c0 100644 --- a/windows/before-nrtest.cmd +++ b/windows/before-nrtest.cmd @@ -4,8 +4,7 @@ :: Created: Oct 16, 2019 :: Updated: May 29, 2020 :: -:: Author: Michael E. Tryby -:: US EPA - ORD/CESER +:: Author: See AUTHORS :: :: Dependencies: :: curl diff --git a/windows/make.cmd b/windows/make.cmd index a848ca4..6f8c566 100644 --- a/windows/make.cmd +++ b/windows/make.cmd @@ -4,8 +4,7 @@ :: Created: Oct 15, 2019 :: Updated: May 29, 2020 :: -:: Author: Michael E. Tryby -:: US EPA - ORD/CESER +:: Author: See AUTHORS :: :: Requires: :: Build Tools for Visual Studio download: diff --git a/windows/requirements-epanet.txt b/windows/requirements-epanet.txt index b2f9b8f..b33d5c7 100644 --- a/windows/requirements-epanet.txt +++ b/windows/requirements-epanet.txt @@ -4,8 +4,7 @@ # Created: Jun 3, 2020 # Updated: # -# Author: Michael E. Tryby -# US EPA ORD/CESER +# Author: See AUTHORS # # Useful for configuring a python environment to run epanet-nrtestsuite # diff --git a/windows/requirements-swmm.txt b/windows/requirements-swmm.txt index 35af4fc..be44771 100644 --- a/windows/requirements-swmm.txt +++ b/windows/requirements-swmm.txt @@ -4,8 +4,7 @@ # Created: Jun 3, 2020 # Updated: # -# Author: Michael E. Tryby -# US EPA ORD/CESER +# Author: See AUTHORS # # Useful for configuring a python environment to run nrtests on swmm. # diff --git a/windows/run-nrtests.cmd b/windows/run-nrtests.cmd index 5304d5e..d737fa2 100644 --- a/windows/run-nrtests.cmd +++ b/windows/run-nrtests.cmd @@ -4,8 +4,7 @@ :: Created: Oct 16, 2019 :: Updated: Jun 2, 2020 :: -:: Author: Michael E. Tryby -:: US EPA - ORD/CESER +:: Author: See AUTHORS :: :: Dependencies: :: python -m pip install -r requirements.txt From 6a636baadb70fcb546ce7f32ae41419e53df9606 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Wed, 16 Dec 2020 14:59:16 -0500 Subject: [PATCH 85/85] Updating header --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index d40962a..92c346f 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,7 @@ Created: May 3, 2020 Updated: - Author: Michael E. Tryby - US EPA - ORD/CESER + Author: See AUTHORS ---> # ci-tools