summaryrefslogtreecommitdiffstats
path: root/src/build/citest
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-06-27 17:28:47 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-07-10 13:34:15 -0500
commitc1030f009e8a439da8496ca58a0fe2ab0327e77b (patch)
treebfa34069f298589f7a1c5f6765e56c372bddbae3 /src/build/citest
parentca15d68452e8ad54f73c3f1c1247ba70eda8a56d (diff)
downloadtalos-hostboot-c1030f009e8a439da8496ca58a0fe2ab0327e77b.tar.gz
talos-hostboot-c1030f009e8a439da8496ca58a0fe2ab0327e77b.zip
Add optional params to build-script to skips some steps
build-script not only compiles Hostboot and primes the ODE sandbox it also performs a copyright check and runs cxx tests. There is a desire to run this script to generate a populated sandbox but we dont need to run the copyright check or test cases so we need flags to avoid that. Change-Id: I93b698a0b8d634bedba43e25361771a0e08875fa Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79692 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/build/citest')
-rwxr-xr-xsrc/build/citest/build-script167
1 files changed, 112 insertions, 55 deletions
diff --git a/src/build/citest/build-script b/src/build/citest/build-script
index 0327293c8..315735957 100755
--- a/src/build/citest/build-script
+++ b/src/build/citest/build-script
@@ -24,10 +24,62 @@
#
# IBM_PROLOG_END_TAG
+usage="
+$(basename "$0") [-h|--help] [--skipCxxTests] [--skipCopyrightCheck]
+
+Description:
+ The original use of this script was for the Hostboot standalone CI job,
+ so by default it will run a copyright check, then compile hostboot and
+ populate an ODE sandbox and run the CXX test suite in standalone simics.
+
+ Flags have been added to skip the copyright checks and the cxx tests
+ for cases where we only want to get a populated sandbox.
+
+Expectations:
+ This script is expected to be ran from the top level of the
+ hostboot directory. (ie src/build/citest/build-script <params>). It will
+ look at env variables PROJECT_ROOT, WORKSPACE, SANDBOXNAME, SANDBOXROOT,
+ CHIP, PNOR, CONFIG_FILE, and HOSTBOOT_PROFILE.
+
+Optional Flags:
+ -h|--help shows this help text
+ --skipCxxTests skips the execution of the cxx test suite
+ --skipCopyrightCheck skips the execution of the copyright check
+"
+
if [ -z $PROJECT_ROOT ]; then
source "$WORKSPACE/env.bash"
fi
+while [[ $# -gt 0 ]]
+do
+key="$1"
+
+case $key in
+ --skipCopyrightCheck)
+ SKIP_CR_CHECK=1
+ shift # past argument
+ ;;
+ --skipCxxTests)
+ SKIP_CXX_TESTS=1
+ shift # past argument
+ ;;
+ -h|--help)
+ echo "$usage"
+ exit 0
+ ;;
+ *)
+ echo "
+!!! Invalid argument \"$1\" passed into ${0} !!!!"
+ echo "$usage"
+ exit 22
+ ;;
+esac
+done
+
+echo "SKIP_CR_CHECK = ${SKIP_CR_CHECK}"
+echo "SKIP_CXX_TESTS = ${SKIP_CXX_TESTS}"
+
source "$PROJECT_ROOT/src/build/citest/setup-env"
echo "#--------------------------------"
echo "SANDBOXROOT=$SANDBOXROOT"
@@ -41,40 +93,43 @@ echo "#--------------------------------"
# Force simics into Secure Mode
export SECURITY_HW_POLICY="1"
-# Check copyright.
-check-copyright > copyright.log 2>&1
-if [ $? -eq 0 ]; then
- echo "----Copyright check succeeded."
- cat copyright.log
-else
- echo "----Copyright check failed."
- cat copyright.log
- exit -1
+if [ -z "$SKIP_CR_CHECK" ]; then
+ # Check copyright.
+ check-copyright > copyright.log 2>&1
+ if [ $? -eq 0 ]; then
+ echo "----Copyright check succeeded."
+ cat copyright.log
+ else
+ echo "----Copyright check failed."
+ cat copyright.log
+ exit -1
+ fi
fi
-
# Create simics sandbox.
create-sandbox > create-sandbox.log 2>&1 &
CREATESANDBOX_PID=$!
-my_date=$(date)
+start_time=$(date)
+
# Build Hostboot.
if [[ -z "${HOSTBOOT_PROFILE}" ]]; then
echo "#--------------------------------"
- printf "\n\n$(date): STARTED running \"make -j32\"\n\n"
+ printf "\n\n$start_time: STARTED running \"make -j32\"\n\n"
echo "#--------------------------------"
+ # if $POOL is defined then we are already in a vexec shell so do not vexec again
make -j32 || exit -1
echo "#--------------------------------"
- printf "\n\nrc=$?: $(date): FINISHED running (\"make -j32\" was started at $my_date)\n\n"
+ printf "\n\nrc=$?: $(date): FINISHED running (\"make -j32\" was started at $start_time)\n\n"
echo "#--------------------------------"
else
# Build with code coverage when HOSTBOOT_PROFILE=1
echo "#--------------------------------"
- printf "\n\n$(date): STARTED running \"make -j32 gcov\"\n\n"
+ printf "\n\n$start_time: STARTED running \"make -j32 gcov\"\n\n"
echo "#--------------------------------"
make -j32 gcov || exit -1
echo "#--------------------------------"
- printf "\n\nrc=$?: $(date): FINISHED running (\"make -j32 gcov\" was started at $my_date)\n\n"
+ printf "\n\nrc=$?: $(date): FINISHED running (\"make -j32 gcov\" was started at $start_time)\n\n"
echo "#--------------------------------"
fi
@@ -90,60 +145,62 @@ else
fi
# Add Hostboot files to simics sandbox.
-my_date=$(date)
+start_time=$(date)
echo "#--------------------------------"
-printf "\n\n$(date): STARTED running populate-sandbox....\n\n"
+printf "\n\n$start_time: STARTED running populate-sandbox....\n\n"
echo "#--------------------------------"
populate-sandbox || exit -1
echo "#--------------------------------"
-printf "\n\nrc=$?: $(date): FINISHED running (\"populate-sandbox\" was started at $my_date)\n\n"
+printf "\n\nrc=$?: $(date): FINISHED running (\"populate-sandbox\" was started at $start_time)\n\n"
echo "#--------------------------------"
-if [ "$CHIP" == "FSPBUILD" ];
-then
- # Start errl parser building.
- my_date=$(date)
- printf "\n\n$(date): STARTED running \"build-errl-parsers\"\n\n"
- build-errl-parsers > errl-parsers.log 2>&1 &
- ERRLPARSERS_PID=$!
-
- # Check errl parser completion.
- wait $ERRLPARSERS_PID
- if [ $? -ne 0 ]; then
- echo "----Error parsers failed."
- cat errl-parsers.log
- exit -1
- else
- printf "\n\n$(date): FINISHED running (\"build-errl-parsers\" was started at $my_date)\n\n"
- fi
-
-
-else
- printf "2) CHIP=$CHIP"
- echo "CHIP3=$CHIP"
-
-
- # Start CxxTest Simics execution.
- my_date=$(date)
- echo "#--------------------------------"
- printf "\n\n$(date): STARTED running cxxtest-start.sh....\n\n"
- echo "#--------------------------------"
- cxxtest-start.sh || exit -1
- echo "#--------------------------------"
- printf "\n\nrc=$?: $(date): FINISHED running (\"cxxtest-start.sh\" was started at $my_date)\n\n"
- echo "#--------------------------------"
+if [ -z "$SKIP_CXX_TESTS" ]; then
+
+ if [ "$CHIP" == "FSPBUILD" ]; then
+ # Start errl parser building.
+ start_time=$(date)
+ printf "\n\n$start_time: STARTED running \"build-errl-parsers\"\n\n"
+ build-errl-parsers > errl-parsers.log 2>&1 &
+ ERRLPARSERS_PID=$!
+
+ # Check errl parser completion.
+ wait $ERRLPARSERS_PID
+ if [ $? -ne 0 ]; then
+ echo "----Error parsers failed."
+ cat errl-parsers.log
+ exit -1
+ else
+ printf "\n\n$(date): FINISHED running (\"build-errl-parsers\" was started at $start_time)\n\n"
+ fi
+
+
+ else
+ printf "2) CHIP=$CHIP"
+ echo "CHIP3=$CHIP"
+
+ # Start CxxTest Simics execution.
+ start_time=$(date)
+ echo "#--------------------------------"
+ printf "\n\n$start_time: STARTED running cxxtest-start.sh....\n\n"
+ echo "#--------------------------------"
+ cxxtest-start.sh || exit -1
+ echo "#--------------------------------"
+ printf "\n\nrc=$?: $(date): FINISHED running (\"cxxtest-start.sh\" was started at $start_time)\n\n"
+ echo "#--------------------------------"
+
+ fi
fi
if [[ ! -z "${HOSTBOOT_PROFILE}" ]]; then
# Generate the code coverage report. Located obj/gcov_report
# Jenkins will artifact and can display html report
- my_date=$(date)
+ start_time=$(date)
echo "#--------------------------------"
- printf "\n\n$(date): STARTED running \"make lcov\"\n\n"
+ printf "\n\n$start_time: STARTED running \"make lcov\"\n\n"
echo "#--------------------------------"
make lcov || exit -1
echo "#--------------------------------"
- printf "\n\nrc=$?: $(date): FINISHED running (\"make lcov\" was started at $my_date)\n\n"
+ printf "\n\nrc=$?: $(date): FINISHED running (\"make lcov\" was started at $start_time)\n\n"
echo "#--------------------------------"
-fi \ No newline at end of file
+fi
OpenPOWER on IntegriCloud