#!/bin/sh # IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/build/citest/setup-env $ # # OpenPOWER HostBoot Project # # Contributors Listed Below - COPYRIGHT 2014,2019 # [+] International Business Machines Corp. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. See the License for the specific language governing # permissions and limitations under the License. # # IBM_PROLOG_END_TAG export CITESTPATH=${PROJECT_ROOT}/src/build/citest export PATH=${CITESTPATH}:${PATH} export CXXPATH=/opt/rh/devtoolset-3/root/usr/bin # Determine backing build. export BACKING_BUILD=`cat ${CITESTPATH}/etc/bbuild` # Limit pnor image to be built to murano for standalone simics export MACHINE=$CHIP echo "MACHINE IS $MACHINE" if [ "$CHIP" == "NIMBUS" ]; then export PNOR=nimbus.pnor unset CONFIG_FILE elif [ "$CHIP" == "CUMULUS" ]; then export PNOR=cumulus.pnor unset CONFIG_FILE elif [ "$CHIP" == "CUMULUS_CDIMM" ]; then export PNOR=cumulus_cdimm.pnor unset CONFIG_FILE elif [ "$CHIP" == "AXONE" ]; then export PNOR=axone.pnor export CONFIG_FILE=src/build/configs/simics_axone.config export MACHINE=AXONE elif [ "$CHIP" == "FSPBUILD" ]; then export PNOR=ZZ.pnor export CONFIG_FILE=src/build/configs/fsprelease.config export MACHINE=NIMBUS fi # If we are running under Jenkins we need to pick a random-ish sandbox name # so that the autoipl tools do not have a /tmp name collision. if [ -z $JOB_NAME -o -z $BUILD_NUMBER ]; then CXXTEST_SANDBOX="cxxtest_sb" else export RUNNING_UNDER_JENKINS=1 CXXTEST_SANDBOX=`echo $JOB_NAME $BUILD_NUMBER | md5sum | head -c10` fi # Setup sandbox location variables. if [ -z $SANDBOXROOT ]; then export SANDBOXROOT=${PROJECT_ROOT} fi if [ -z $SANDBOXNAME ]; then export SANDBOXNAME=${CXXTEST_SANDBOX} fi if [ -z $SANDBOXBASE ]; then export SANDBOXBASE=${SANDBOXROOT}/${SANDBOXNAME} fi if [ -z $SANDBOXRC ]; then export SANDBOXRC=${SANDBOXROOT}/hbsandboxrc fi # Useful utility function. execute_in_sandbox() { WORKON_CMD="workon -rc ${SANDBOXRC} -sb ${SANDBOXNAME} -m $2 " echo $1 > ${SANDBOXBASE}/src/sandbox_execute_cmd chmod 700 ${SANDBOXBASE}/src/sandbox_execute_cmd ${WORKON_CMD} -c ./sandbox_execute_cmd # capture the return code from previous command rc=$? # If return code is not 0 (indicating failure), do some # cleanup and perpetuate the return code up the call chain. # For sh/bash, should use 0 for success and 1 to 255 for failures, don't use # negative numbers (-1). The shell interprets the '-' as an option # for the return command. If you insist on using negative numbers # do '-- -' to use the negative number, however it will be interpreted # as a positive number (-1 will become 255.) if [ $rc -ne 0 ]; then rm ${SANDBOXBASE}/src/sandbox_execute_cmd return $rc fi rm ${SANDBOXBASE}/src/sandbox_execute_cmd return 0; } export -f execute_in_sandbox # Determine if sandbox is in /tmp, which requires -nre to simics. echo $SANDBOXROOT | grep "/tmp" > /dev/null if [ $? -eq 0 ]; then export SANDBOX_IN_TEMP=1 fi # Setup machine type. export MACHINE=${MACHINE:-$DEFAULT_MACHINE} # Indicate we setup the CI environment. export HOSTBOOT_CI_ENV_SETUP=1