Remove jenkins/scripts/run-tox.sh
Now all users of this script are gone, time to delete it. Change-Id: Ic452adf1265b63ef76731700fc8ee4a2058e8f9b Depends-On: https://review.openstack.org/540603 Depends-On: https://review.openstack.org/540596 Depends-On: https://review.openstack.org/540595 Depends-On: https://review.openstack.org/539207 Depends-On: https://review.openstack.org/537789 Depends-On: https://review.openstack.org/540659 Depends-On: https://review.openstack.org/538344
This commit is contained in:
parent
d02e593642
commit
6c189c6117
@ -1,151 +0,0 @@
|
||||
#!/bin/bash -x
|
||||
|
||||
# If a bundle file is present, call tox with the jenkins version of
|
||||
# the test environment so it is used. Otherwise, use the normal
|
||||
# (non-bundle) test environment. Also, run pbr freeze on the
|
||||
# resulting environment at the end so that we have a record of exactly
|
||||
# what packages we ended up testing.
|
||||
#
|
||||
# Usage: run-tox.sh VENV
|
||||
#
|
||||
# Where VENV is the name of the tox environment to run (specified in the
|
||||
# project's tox.ini file).
|
||||
|
||||
venv=$1
|
||||
|
||||
if [[ -z "$venv" ]]; then
|
||||
echo "Usage: $?"
|
||||
echo
|
||||
echo "VENV: The tox environment to run (eg 'python27')"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function freeze_venv {
|
||||
[ -e $bin_path/pbr ] && freezecmd=pbr || freezecmd=pip
|
||||
|
||||
echo "Begin $freezecmd freeze output from test virtualenv:"
|
||||
echo "======================================================================"
|
||||
${bin_path}/${freezecmd} freeze | sort -f
|
||||
echo "======================================================================"
|
||||
}
|
||||
|
||||
function process_testr_artifacts {
|
||||
if [ -d ".stestr" ] ; then
|
||||
if [ -f ".stestr/0" ] ; then
|
||||
$bin_path/stestr last --subunit > ./testrepository.subunit
|
||||
fi
|
||||
else
|
||||
if [ ! -d ".testrepository" ] ; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -f ".testrepository/0.2" ] ; then
|
||||
cp .testrepository/0.2 ./testrepository.subunit
|
||||
elif [ -f ".testrepository/0" ] ; then
|
||||
$bin_path/testr last --subunit > ./testrepository.subunit
|
||||
fi
|
||||
fi
|
||||
/usr/os-testr-env/bin/subunit2html ./testrepository.subunit testr_results.html
|
||||
SUBUNIT_SIZE=$(du -k ./testrepository.subunit | awk '{print $1}')
|
||||
gzip -9 ./testrepository.subunit
|
||||
gzip -9 ./testr_results.html
|
||||
|
||||
if [[ "$SUBUNIT_SIZE" -gt 50000 ]]; then
|
||||
echo
|
||||
echo "testrepository.subunit was > 50 MB of uncompressed data!!!"
|
||||
echo "Something is causing tests for this project to log significant amounts"
|
||||
echo "of data. This may be writers to python logging, stdout, or stderr."
|
||||
echo "Failing this test as a result"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# By default stestr will fail if no tests are run.
|
||||
if [[ ! -d ".stestr" ]] ; then
|
||||
rancount=$($bin_path/testr last | sed -ne 's/Ran \([0-9]\+\).*tests in.*/\1/p')
|
||||
if [ -z "$rancount" ] || [ "$rancount" -eq "0" ] ; then
|
||||
echo
|
||||
echo "Zero tests were run. At least one test should have been run."
|
||||
echo "Failing this test as a result"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function check_sudo_usage {
|
||||
sudo $script_path/zuul-sudo-grep.sh post
|
||||
sudoresult=$?
|
||||
|
||||
if [ $sudoresult -ne "0" ]; then
|
||||
echo
|
||||
echo "This test has failed because it attempted to execute commands"
|
||||
echo "with sudo. See above for the exact commands used."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function check_oom {
|
||||
$script_path/jenkins-oom-grep.sh post
|
||||
oomresult=$?
|
||||
|
||||
if [ $oomresult -ne "0" ]; then
|
||||
echo
|
||||
echo "This test has failed because it attempted to exceed configured"
|
||||
echo "memory limits and was killed prior to completion. See above"
|
||||
echo "for related kernel messages."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function check_nose_html {
|
||||
htmlreport=$(find . -name $NOSE_HTML_OUT_FILE)
|
||||
if [ -f "$htmlreport" ]; then
|
||||
passcount=$(grep -c 'tr class=.passClass' $htmlreport)
|
||||
if [ $passcount -eq "0" ]; then
|
||||
echo
|
||||
echo "Zero tests passed, which probably means there was an error"
|
||||
echo "parsing one of the python files, or that some other failure"
|
||||
echo "during test setup prevented a sane run."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
script_path=/usr/local/jenkins/slave_scripts
|
||||
bin_path=.tox/$venv/bin
|
||||
|
||||
export PYTHON=$bin_path/python
|
||||
export NOSE_WITH_XUNIT=1
|
||||
export NOSE_WITH_HTML_OUTPUT=1
|
||||
export NOSE_HTML_OUT_FILE='nose_results.html'
|
||||
if [[ -z "$TMPDIR" ]]; then
|
||||
export TMPDIR=$(/bin/mktemp -d)
|
||||
fi
|
||||
export UPPER_CONSTRAINTS_FILE=$(pwd)/upper-constraints.txt
|
||||
trap "rm -rf $TMPDIR" EXIT
|
||||
|
||||
cat /etc/image-hostname.txt
|
||||
|
||||
$script_path/jenkins-oom-grep.sh pre
|
||||
|
||||
sudo $script_path/zuul-sudo-grep.sh pre
|
||||
|
||||
tox -vv -e$venv
|
||||
result=$?
|
||||
|
||||
freeze_venv
|
||||
process_testr_artifacts
|
||||
check_sudo_usage
|
||||
check_oom
|
||||
check_nose_html
|
||||
|
||||
# Rename tox' .log files to .log.txt so that Apache serves them as
|
||||
# text/plain files since it can handle .txt special - and .log is
|
||||
# unknown and therefore served as binary.
|
||||
find .tox -type f -name "*.log" -exec mv {} {}.txt \;
|
||||
|
||||
exit $result
|
Loading…
x
Reference in New Issue
Block a user