Index: third_party/pexpect/tools/teamcity-runtests.sh |
diff --git a/third_party/pexpect/tools/teamcity-runtests.sh b/third_party/pexpect/tools/teamcity-runtests.sh |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bcb28f78aa60a44a137832e000c98e62b296e036 |
--- /dev/null |
+++ b/third_party/pexpect/tools/teamcity-runtests.sh |
@@ -0,0 +1,64 @@ |
+#!/bin/bash |
+# |
+# This script assumes that the project 'ptyprocess' is |
+# available in the parent of the project's folder. |
+set -e |
+set -o pipefail |
+ |
+if [ -z $1 ]; then |
+ echo "$0 (2.6|2.7|3.3|3.4)" |
+ exit 1 |
+fi |
+ |
+export PYTHONIOENCODING=UTF8 |
+export LANG=en_US.UTF-8 |
+ |
+pyversion=$1 |
+shift |
+here=$(cd `dirname $0`; pwd) |
+osrel=$(uname -s) |
+venv=teamcity-pexpect |
+venv_wrapper=$(which virtualenvwrapper.sh) |
+ |
+if [ -z $venv_wrapper ]; then |
+ echo "virtualenvwrapper.sh not found in PATH." >&2 |
+ exit 1 |
+fi |
+ |
+. ${venv_wrapper} |
+rmvirtualenv ${venv} || true |
+mkvirtualenv -p `which python${pyversion}` ${venv} || true |
+workon ${venv} |
+ |
+# install ptyprocess |
+cd $here/../../ptyprocess |
+pip uninstall --yes ptyprocess || true |
+python setup.py install |
+ |
+# install all test requirements |
+pip install --upgrade pytest-cov coverage coveralls pytest-capturelog |
+ |
+# run tests |
+cd $here/.. |
+ret=0 |
+py.test \ |
+ --cov pexpect \ |
+ --cov-config .coveragerc \ |
+ --junit-xml=results.${osrel}.py${pyversion}.xml \ |
+ --verbose \ |
+ --verbose \ |
+ "$@" || ret=$? |
+ |
+if [ $ret -ne 0 ]; then |
+ # we always exit 0, preferring instead the jUnit XML |
+ # results to be the dominate cause of a failed build. |
+ echo "py.test returned exit code ${ret}." >&2 |
+ echo "the build should detect and report these failing tests." >&2 |
+fi |
+ |
+# combine all coverage to single file, report for this build, |
+# then move into ./build-output/ as a unique artifact to allow |
+# the final "Full build" step to combine and report to coveralls.io |
+`dirname $0`/teamcity-coverage-report.sh |
+mkdir -p build-output |
+mv .coverage build-output/.coverage.${osrel}.py{$pyversion}.$RANDOM.$$ |