Run the test suite unprivileged

This commit is contained in:
Jean-Paul Calderone 2018-06-13 11:31:56 -04:00
parent 7c1ac62c78
commit 0b6cb1cceb
1 changed files with 27 additions and 3 deletions

View File

@ -38,8 +38,22 @@ jobs:
- run: - run:
name: "Bootstrap test environment" name: "Bootstrap test environment"
working_directory: "/tmp"
command: | command: |
# Avoid the /nonexistent home directory in nobody's /etc/passwd
# entry.
usermod --home /tmp/nobody nobody
# Grant read access to nobody, the user which will eventually try
# to test this checkout.
mv /root/project /tmp/project
# Python build/install toolchain wants to write to the source
# checkout, too.
chown --recursive nobody:nogroup /tmp/project
apt-get --quiet --yes install \ apt-get --quiet --yes install \
sudo \
build-essential \ build-essential \
python2.7 \ python2.7 \
python2.7-dev \ python2.7-dev \
@ -47,13 +61,23 @@ jobs:
libssl-dev \ libssl-dev \
libyaml-dev \ libyaml-dev \
virtualenv virtualenv
virtualenv --python python2.7 tests
tests/bin/pip install tox # Set up the virtualenv as a non-root user so we can run the test
# suite as a non-root user. See below.
sudo -u nobody virtualenv --python python2.7 /tmp/tests
sudo -u nobody /tmp/tests/bin/pip install tox
- run: - run:
name: "Run test suite" name: "Run test suite"
command: | command: |
tests/bin/tox -e py27 # Run the test suite as a non-root user. This is the expected
# usage some small areas of the test suite assume non-root
# privileges (such as unreadable files being unreadable).
#
# Also run with /tmp as a workdir because the non-root user won't
# be able to create the tox working filesystem state in the source
# checkout because it is owned by root.
sudo -u nobody /tmp/tests/bin/tox -c /tmp/project/tox.ini --workdir /tmp -e py27
debian-9: debian-9:
docker: docker: