From 5d10728fd200ee26d3184d05d7bfb055b818143f Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 08:21:17 -0500 Subject: [PATCH 01/10] Fixing call to determine latest git tag --- tools/before-test.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index 7588d16..d2144f7 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -50,19 +50,21 @@ else TEST_HOME=$5; fi +echo INFO: Staging files for regression testing + + SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" BUILD_HOME="$(dirname "$SCRIPT_HOME")" SUT_PATH=(`find $BUILD_HOME -name "bin" -type d`) - # TODO: determine platform # determine latest tag from GitHub API LATEST_URL="https://api.github.com/repos/openwateranalytics/epanet-example-networks/releases/latest" LATEST_TAG=(`curl --silent ${LATEST_URL} | jq -r .tag_name`) -if [ -z $LATEST_TAG ]; then +if [ ${LATEST_TAG} == 'null' ]; then echo "ERROR: curl | jq - ${LATEST_URL}" exit 1 fi @@ -71,8 +73,6 @@ TEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/archive/ BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/${LATEST_TAG}/benchmark-${PLATFORM}-${REF_BUILD_ID}.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} From fbaf2d7d0239652aad6d3d5025ff67cd9d9f522d Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 08:31:30 -0500 Subject: [PATCH 02/10] Testing jq install --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4c65360..0dbafd9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,8 @@ before_install: - eval "${MATRIX_EVAL}" install: - - sudo apt-get install jq + - sudo apt-get install jq + - jq --help # - sudo apt-get install -y libboost-test-dev # - sudo apt-get install -y libboost-thread-dev From d0633515ccfb3c8f1429b572e01f265861bc9c81 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 08:40:37 -0500 Subject: [PATCH 03/10] Testing curl call --- tools/before-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index d2144f7..d4f3187 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -63,7 +63,7 @@ SUT_PATH=(`find $BUILD_HOME -name "bin" -type d`) # determine latest tag from GitHub API LATEST_URL="https://api.github.com/repos/openwateranalytics/epanet-example-networks/releases/latest" -LATEST_TAG=(`curl --silent ${LATEST_URL} | jq -r .tag_name`) +LATEST_TAG=(`curl ${LATEST_URL} | jq -r .tag_name`) if [ ${LATEST_TAG} == 'null' ]; then echo "ERROR: curl | jq - ${LATEST_URL}" exit 1 From 9f78cd104175b4a72c503801f54e9e766c80f3c4 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 09:40:17 -0500 Subject: [PATCH 04/10] Updating method for getting latest tag --- .travis.yml | 4 +--- tools/before-test.sh | 12 +++++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0dbafd9..fc37c27 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,9 +31,7 @@ before_install: - sudo apt-get -qq update - eval "${MATRIX_EVAL}" -install: - - sudo apt-get install jq - - jq --help +#install: # - sudo apt-get install -y libboost-test-dev # - sudo apt-get install -y libboost-thread-dev diff --git a/tools/before-test.sh b/tools/before-test.sh index d4f3187..155cbc1 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -21,6 +21,7 @@ # 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. + if [ -z $1 ]; then unset PLATFORM; else @@ -61,13 +62,10 @@ SUT_PATH=(`find $BUILD_HOME -name "bin" -type d`) # TODO: determine platform -# determine latest tag from GitHub API -LATEST_URL="https://api.github.com/repos/openwateranalytics/epanet-example-networks/releases/latest" -LATEST_TAG=(`curl ${LATEST_URL} | jq -r .tag_name`) -if [ ${LATEST_TAG} == 'null' ]; then - echo "ERROR: curl | jq - ${LATEST_URL}" - exit 1 -fi +# hack to determine latest tag from GitHub +LATEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/latest" +temp_url=$(curl -sI ${LATEST_URL} | grep -iE "^Location:") +LATEST_TAG=$(echo ${temp_url##*/}) TEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/archive/${LATEST_TAG}.tar.gz" BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/${LATEST_TAG}/benchmark-${PLATFORM}-${REF_BUILD_ID}.tar.gz" From 13160e13663a097a2fd78033b623717dfcb9a81b Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 10:17:09 -0500 Subject: [PATCH 05/10] Quoting the command --- tools/before-test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index 155cbc1..45a5805 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -64,8 +64,8 @@ SUT_PATH=(`find $BUILD_HOME -name "bin" -type d`) # hack to determine latest tag from GitHub LATEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/latest" -temp_url=$(curl -sI ${LATEST_URL} | grep -iE "^Location:") -LATEST_TAG=$(echo ${temp_url##*/}) +temp_url="$(curl -sI ${LATEST_URL} | grep -iE "^Location:")" +LATEST_TAG="$(echo ${temp_url##*/})" TEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/archive/${LATEST_TAG}.tar.gz" BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/${LATEST_TAG}/benchmark-${PLATFORM}-${REF_BUILD_ID}.tar.gz" From 93363dccfcaa29203b4e0b9fb59b566fe0b7cf3c Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 10:29:27 -0500 Subject: [PATCH 06/10] Quoting the URLs --- tools/before-test.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index 45a5805..8e817eb 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -64,8 +64,8 @@ SUT_PATH=(`find $BUILD_HOME -name "bin" -type d`) # hack to determine latest tag from GitHub LATEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/latest" -temp_url="$(curl -sI ${LATEST_URL} | grep -iE "^Location:")" -LATEST_TAG="$(echo ${temp_url##*/})" +temp_url=$(curl -sI ${LATEST_URL} | grep -iE "^Location:") +LATEST_TAG=${temp_url##*/} TEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/archive/${LATEST_TAG}.tar.gz" BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/${LATEST_TAG}/benchmark-${PLATFORM}-${REF_BUILD_ID}.tar.gz" @@ -80,12 +80,12 @@ cd ${TEST_HOME} # retrieve epanet-examples for regression testing -if ! curl -fsSL -o examples.tar.gz ${TEST_URL}; then +if ! curl -fsSL -o examples.tar.gz "${TEST_URL}"; then echo "ERROR: curl - ${TEST_URL}" fi # retrieve epanet benchmark results -if ! curl -fsSL -o benchmark.tar.gz ${BENCH_URL}; then +if ! curl -fsSL -o benchmark.tar.gz "${BENCH_URL}"; then echo "ERROR: curl - ${BENCH_URL}" fi From 8d1b49045835cfacc0d959d890fa44a7af6f3d14 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 11:03:41 -0500 Subject: [PATCH 07/10] Shellchecked script and eliminated redirect --- tools/before-test.sh | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index 8e817eb..e3693e7 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -22,30 +22,30 @@ # before-test.sh and gen-config.sh are located together in the same folder. -if [ -z $1 ]; then +if [ -z "$1" ]; then unset PLATFORM; else PLATFORM=$1; fi -if [ -z $2 ]; then +if [ -z "$2" ]; then echo "ERROR: REF_BUILD_ID must be defined"; exit 1; else REF_BUILD_ID=$2; fi -if [ -z $3 ]; then +if [ -z "$3" ]; then SUT_BUILD_ID="local"; else SUT_BUILD_ID=$3; fi -if [ -z $4 ]; then +if [ -z "$4" ]; then SUT_VERSION="unknown"; else SUT_VERSION=$4; fi -if [ -z $5 ]; then +if [ -z "$5" ]; then TEST_HOME="nrtestsuite"; else TEST_HOME=$5; fi @@ -58,25 +58,26 @@ SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" BUILD_HOME="$(dirname "$SCRIPT_HOME")" -SUT_PATH=(`find $BUILD_HOME -name "bin" -type d`) +SUT_PATH="$(find "$BUILD_HOME" -name "bin" -type d)" # TODO: determine platform # hack to determine latest tag from GitHub LATEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/latest" -temp_url=$(curl -sI ${LATEST_URL} | grep -iE "^Location:") -LATEST_TAG=${temp_url##*/} +temp_url="$(curl -sI "${LATEST_URL}" | grep -iE "^Location:")" +LATEST_TAG="${temp_url##*/}" -TEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/archive/${LATEST_TAG}.tar.gz" +TEST_URL="https://codeload.github.com/OpenWaterAnalytics/epanet-example-networks/tar.gz/${LATEST_TAG}" BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/${LATEST_TAG}/benchmark-${PLATFORM}-${REF_BUILD_ID}.tar.gz" # create a clean directory for staging regression tests -if [ -d ${TEST_HOME} ]; then - rm -rf ${TEST_HOME} +# create a clean directory for staging regression tests +if [ -d "${TEST_HOME}" ]; then + rm -rf "${TEST_HOME}" fi -mkdir ${TEST_HOME} -cd ${TEST_HOME} +mkdir "${TEST_HOME}" +cd "${TEST_HOME}" || exit 1 # retrieve epanet-examples for regression testing @@ -91,7 +92,7 @@ fi # extract tests, benchmarks, and manifest tar xzf examples.tar.gz -ln -s epanet-example-networks-${LATEST_TAG:1}/epanet-tests tests +ln -s "epanet-example-networks-${LATEST_TAG:1}/epanet-tests" tests mkdir benchmark tar xzf benchmark.tar.gz -C benchmark @@ -100,4 +101,4 @@ tar xzf benchmark.tar.gz --wildcards --no-anchored --strip-components=1 '*/manif # generate json configuration file for software under test mkdir apps -${SCRIPT_HOME}/gen-config.sh ${SUT_PATH} ${PLATFORM} ${SUT_BUILD_ID} ${SUT_VERSION} > apps/epanet-${SUT_BUILD_ID}.json +"${SCRIPT_HOME}/gen-config.sh" "${SUT_PATH}" "${PLATFORM}" "${SUT_BUILD_ID}" "${SUT_VERSION}" > "apps/epanet-${SUT_BUILD_ID}.json" From 2ef4241c02090570997b422f97312878205ca167 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 11:35:48 -0500 Subject: [PATCH 08/10] Adding exit conditions --- tools/before-test.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index e3693e7..a7e148c 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -58,7 +58,7 @@ SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" BUILD_HOME="$(dirname "$SCRIPT_HOME")" -SUT_PATH="$(find "$BUILD_HOME" -name "bin" -type d)" +SUT_PATH=(`find "$BUILD_HOME" -name "bin" -type d`) # TODO: determine platform @@ -82,12 +82,12 @@ cd "${TEST_HOME}" || exit 1 # retrieve epanet-examples for regression testing if ! curl -fsSL -o examples.tar.gz "${TEST_URL}"; then - echo "ERROR: curl - ${TEST_URL}" + echo "ERROR: curl - ${TEST_URL}" & exit 2 fi # retrieve epanet benchmark results if ! curl -fsSL -o benchmark.tar.gz "${BENCH_URL}"; then - echo "ERROR: curl - ${BENCH_URL}" + echo "ERROR: curl - ${BENCH_URL}" & exit 3 fi # extract tests, benchmarks, and manifest @@ -101,4 +101,5 @@ tar xzf benchmark.tar.gz --wildcards --no-anchored --strip-components=1 '*/manif # generate json configuration file for software under test mkdir apps -"${SCRIPT_HOME}/gen-config.sh" "${SUT_PATH}" "${PLATFORM}" "${SUT_BUILD_ID}" "${SUT_VERSION}" > "apps/epanet-${SUT_BUILD_ID}.json" +gen_config_cmd="${SCRIPT_HOME}/gen-config.sh ${SUT_PATH} ${PLATFORM} ${SUT_BUILD_ID} ${SUT_VERSION} > apps/epanet-${SUT_BUILD_ID}.json" +return_value=$( $gen_config_cmd ) From 4f23a038298d1550df6281cf9bb075b12e2dc4e8 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 12:42:29 -0500 Subject: [PATCH 09/10] Fancy grep regex --- tools/before-test.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index a7e148c..3405c86 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -64,8 +64,7 @@ SUT_PATH=(`find "$BUILD_HOME" -name "bin" -type d`) # hack to determine latest tag from GitHub LATEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/latest" -temp_url="$(curl -sI "${LATEST_URL}" | grep -iE "^Location:")" -LATEST_TAG="${temp_url##*/}" +LATEST_TAG="$(curl -sI "${LATEST_URL}" | grep -Po 'tag\/\K(v\S+)')" TEST_URL="https://codeload.github.com/OpenWaterAnalytics/epanet-example-networks/tar.gz/${LATEST_TAG}" BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/${LATEST_TAG}/benchmark-${PLATFORM}-${REF_BUILD_ID}.tar.gz" From fafa223d914aa90a9a8ec29fa9a218ecb7f0a1d4 Mon Sep 17 00:00:00 2001 From: Michael Tryby Date: Thu, 7 Mar 2019 15:41:54 -0500 Subject: [PATCH 10/10] Fixing call to gen-config --- tools/before-test.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/before-test.sh b/tools/before-test.sh index 3405c86..16917ac 100755 --- a/tools/before-test.sh +++ b/tools/before-test.sh @@ -100,5 +100,4 @@ tar xzf benchmark.tar.gz --wildcards --no-anchored --strip-components=1 '*/manif # generate json configuration file for software under test mkdir apps -gen_config_cmd="${SCRIPT_HOME}/gen-config.sh ${SUT_PATH} ${PLATFORM} ${SUT_BUILD_ID} ${SUT_VERSION} > apps/epanet-${SUT_BUILD_ID}.json" -return_value=$( $gen_config_cmd ) +${SCRIPT_HOME}/gen-config.sh ${SUT_PATH} ${PLATFORM} ${SUT_BUILD_ID} ${SUT_VERSION} > apps/epanet-${SUT_BUILD_ID}.json