#!/bin/bash -x
# Extract and run the OpenBMC robot test suite
#
# The robot test results will be copied to ${HOME}
#
#  Requires following env variables be set:
#   IP_ADDR     IP Address of openbmc
#   SSH_PORT    SSH port of openbmc
#   HTTPS_PORT  HTTPS port of openbmc
#
#  Optional env variable
#   ROBOT_CODE_HOME  Location to extract the code
#                    Default will be a temp location in /tmp/
#   ROBOT_TEST_CMD   Command to execute from within obmc robot test framework
#                    Default will be "tox -e qemu -- --include QEMU_CI tests"
#   MACHINE          Type of system to run tests against
#                    Default is qemu

# we don't want to fail on bad rc since robot tests may fail

MACHINE=${MACHINE:-"qemu"}
ROBOT_CODE_HOME=${ROBOT_CODE_HOME:-/tmp/$(whoami)/${RANDOM}/obmc-robot/}
ROBOT_TEST_CMD=${ROBOT_TEST_CMD:-"python3 -m robot\
    -v OPENBMC_HOST:${IP_ADDR}\
    -v SSH_PORT:${SSH_PORT}\
    -v HTTPS_PORT:${HTTPS_PORT}\
    -v REDFISH_SUPPORT_TRANS_STATE:1\
    --argumentfile ./test_lists/QEMU_CI ./tests ./redfish ./ipmi"}

git clone https://github.com/openbmc/openbmc-test-automation.git \
        "${ROBOT_CODE_HOME}"

cd "${ROBOT_CODE_HOME}" || exit

chmod ugo+rw -R "${ROBOT_CODE_HOME}"/*

# Execute the CI tests
eval "${ROBOT_TEST_CMD}"

cp "${ROBOT_CODE_HOME}"/*.xml "${HOME}/"
cp "${ROBOT_CODE_HOME}"/*.html "${HOME}/"
if [ -d logs ] ; then
    cp -Rf "${ROBOT_CODE_HOME}"/logs "${HOME}"/ ;
fi

#rm -rf ${ROBOT_CODE_HOME}
