diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2019-06-27 17:28:47 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-07-10 13:34:15 -0500 |
commit | c1030f009e8a439da8496ca58a0fe2ab0327e77b (patch) | |
tree | bfa34069f298589f7a1c5f6765e56c372bddbae3 /src/build/citest | |
parent | ca15d68452e8ad54f73c3f1c1247ba70eda8a56d (diff) | |
download | talos-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-x | src/build/citest/build-script | 167 |
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 |