45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# This is the test script that runs in the containers themselves.
|
|
|
|
WEST=/west
|
|
# Replace semicolon with dash
|
|
WEST_TARGET=${WEST_TARGET//:/-}
|
|
|
|
WEST_TOX_OUT=$WEST_TOX_OUT/$WEST_TARGET
|
|
WEST_TOX_OUT_IN_HOST=$WEST_TOX_OUT_IN_HOST/$WEST_TARGET
|
|
|
|
die() {
|
|
if [ $# -eq 0 ]; then
|
|
echo "error: $*" >&2
|
|
else
|
|
echo "error: unknown error in $0" >&2
|
|
fi
|
|
exit 1
|
|
}
|
|
|
|
main()
|
|
{
|
|
# Verify the container environment set up meets this script's requirements.
|
|
[ -n "$WEST_TOX_OUT" ] || die "missing $WEST_TOX_OUT"
|
|
[ -n "$WEST_TOX_OUT_IN_HOST" ] || die "missing $WEST_TOX_OUT_IN_HOST"
|
|
[ -d "$WEST" ] || die "missing $WEST in the container"
|
|
|
|
TOX_LOG="$WEST_TOX_OUT/tox.log"
|
|
TOX_LOG_IN_HOST="$WEST_TOX_OUT_IN_HOST/tox.log"
|
|
WEST_TESTDIR="/tmp/west"
|
|
|
|
mkdir "$WEST_TOX_OUT"
|
|
|
|
git clone -q "$WEST" "$WEST_TESTDIR" || die "failed to clone west to $WEST_TESTDIR in container"
|
|
cd "$WEST_TESTDIR"
|
|
|
|
echo "running tox, output in $TOX_LOG_IN_HOST in host"
|
|
tox run >"$TOX_LOG" 2>&1 || die "tox failed, see $TOX_LOG"
|
|
|
|
cp -R htmlcov "$WEST_TOX_OUT" || die "failed to copy coverage to $WEST_TOX_OUT_IN_HOST/htmlcov in host"
|
|
}
|
|
|
|
main "$@"
|