Add configs for testing on Vagrant-managed VMs.
This commit is contained in:
parent
6dd03c06f6
commit
970b43bddf
|
@ -6,4 +6,5 @@ dist/
|
||||||
MANIFEST
|
MANIFEST
|
||||||
tornado.egg-info
|
tornado.egg-info
|
||||||
_auto2to3*
|
_auto2to3*
|
||||||
.tox
|
.tox
|
||||||
|
.vagrant
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
This directory contains tools and scripts that are used in the development
|
||||||
|
and maintainance of Tornado itself, but are probably not of interest to
|
||||||
|
Tornado users.
|
|
@ -0,0 +1,23 @@
|
||||||
|
This directory contains virtual machine setup scripts for testing Tornado.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
|
||||||
|
Vagrant (http://vagrantup.com) and VirtualBox (http://virtualbox.org).
|
||||||
|
Vagrant provides an easy download for Ubuntu 10.04 (aka lucid64); base
|
||||||
|
images for other platforms are harder to find and can be built with
|
||||||
|
VeeWee (https://github.com/jedi4ever/veewee).
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
cd to the appropriate directory and run `vagrant up`, then `vagrant ssh`.
|
||||||
|
From there, simply run `tox` to run the full test suite, or cd to /tornado
|
||||||
|
and test manually. Afterwards, use `vagrant suspend` or `vagrant destroy`
|
||||||
|
to clean up.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
|
||||||
|
Python distutils (and therefore tox) assume that if the platform
|
||||||
|
supports hard links, they can be used in the Tornado source directory.
|
||||||
|
VirtualBox's shared folder filesystem does not support hard links (or
|
||||||
|
symlinks), so we have to use NFS shared folders instead. (which has
|
||||||
|
the unfortunate side effect of requiring sudo on the host machine)
|
|
@ -0,0 +1,27 @@
|
||||||
|
require 'vagrant/systems/freebsd'
|
||||||
|
|
||||||
|
Vagrant::Config.run do |config|
|
||||||
|
# A freebsd image can be created with veewee
|
||||||
|
# https://github.com/jedi4ever/veewee
|
||||||
|
#
|
||||||
|
# vagrant basebox define freebsd freebsd-8.2-pcbsd-i386-netboot
|
||||||
|
# vagrant basebox build freebsd
|
||||||
|
# vagrant basebox export freebsd
|
||||||
|
# vagrant box add freebsd freebsd.box
|
||||||
|
config.vm.box = "freebsd"
|
||||||
|
|
||||||
|
config.vm.system = :freebsd
|
||||||
|
|
||||||
|
# Note that virtualbox shared folders don't work with freebsd, so
|
||||||
|
# we'd need nfs shared folders here even if virtualbox gains
|
||||||
|
# support for symlinks.
|
||||||
|
config.vm.network "172.19.1.3"
|
||||||
|
config.vm.share_folder("tornado", "/tornado", "../../..", :nfs => true)
|
||||||
|
|
||||||
|
# This doesn't seem to get mounted by default for freebsd,
|
||||||
|
# but that's actually a good thing since there are apparently issues
|
||||||
|
# when one nfs export is a subfolder of another.
|
||||||
|
#config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true)
|
||||||
|
|
||||||
|
config.vm.provision :shell, :path => "setup.sh"
|
||||||
|
end
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
chsh -s bash vagrant
|
||||||
|
|
||||||
|
# This doesn't get created automatically for freebsd since virtualbox
|
||||||
|
# shared folders don't work.
|
||||||
|
ln -snf /tornado/maint/vm/freebsd /vagrant
|
||||||
|
|
||||||
|
PORTS="
|
||||||
|
lang/python27
|
||||||
|
devel/py-pip
|
||||||
|
devel/py-virtualenv
|
||||||
|
ftp/curl
|
||||||
|
"
|
||||||
|
|
||||||
|
PIP_PACKAGES="
|
||||||
|
tox
|
||||||
|
pycurl
|
||||||
|
"
|
||||||
|
|
||||||
|
cd /usr/ports
|
||||||
|
|
||||||
|
for port in $PORTS; do
|
||||||
|
make -C $port -DBATCH install
|
||||||
|
done
|
||||||
|
|
||||||
|
pip install $PIP_PACKAGES
|
||||||
|
|
||||||
|
/tornado/maint/vm/shared-setup.sh
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
[tox]
|
||||||
|
envlist=py27-full, py27
|
||||||
|
setupdir=/tornado
|
||||||
|
# /home is a symlink to /usr/home, but tox doesn't like symlinks here
|
||||||
|
toxworkdir=/usr/home/vagrant/tox-tornado
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
commands = python -m tornado.test.runtests {posargs:}
|
||||||
|
|
||||||
|
[testenv:py27-full]
|
||||||
|
# other dependencies aren't really worth the install time
|
||||||
|
deps =
|
||||||
|
pycurl
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Run at the end of each vm's provisioning script
|
||||||
|
|
||||||
|
# Link tox.ini into the home directory so you can run tox immediately
|
||||||
|
# after ssh'ing in without cd'ing to /vagrant (since cd'ing to /tornado
|
||||||
|
# gets the wrong config)
|
||||||
|
ln -sf /vagrant/tox.ini ~vagrant/tox.ini
|
|
@ -0,0 +1,9 @@
|
||||||
|
Vagrant::Config.run do |config|
|
||||||
|
config.vm.box = "lucid64"
|
||||||
|
config.vm.box_url = "http://files.vagrantup.com/lucid64.box"
|
||||||
|
|
||||||
|
config.vm.network "172.19.1.2"
|
||||||
|
config.vm.share_folder("tornado", "/tornado", "../../..", :nfs=> true)
|
||||||
|
|
||||||
|
config.vm.provision :shell, :path => "setup.sh"
|
||||||
|
end
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# libcurl4-gnutls-dev is the default if you ask for libcurl4-dev, but it
|
||||||
|
# has bugs that make our tests deadlock (the relevant tests detect this and
|
||||||
|
# disable themselves, but it means that to get full coverage we have to use
|
||||||
|
# the openssl version)
|
||||||
|
APT_PACKAGES="
|
||||||
|
python-pip
|
||||||
|
python-virtualenv
|
||||||
|
python-dev
|
||||||
|
libmysqlclient-dev
|
||||||
|
libcurl4-openssl-dev
|
||||||
|
"
|
||||||
|
|
||||||
|
PIP_PACKAGES="
|
||||||
|
tox
|
||||||
|
MySQL-python
|
||||||
|
pycurl
|
||||||
|
twisted
|
||||||
|
"
|
||||||
|
|
||||||
|
apt-get -y install $APT_PACKAGES
|
||||||
|
pip install $PIP_PACKAGES
|
||||||
|
|
||||||
|
/tornado/maint/vm/shared-setup.sh
|
|
@ -0,0 +1,13 @@
|
||||||
|
[tox]
|
||||||
|
envlist=py26-full, py26
|
||||||
|
setupdir=/tornado
|
||||||
|
toxworkdir=/home/vagrant/tox-tornado
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
commands = python -m tornado.test.runtests {posargs:}
|
||||||
|
|
||||||
|
[testenv:py26-full]
|
||||||
|
deps =
|
||||||
|
MySQL-python
|
||||||
|
pycurl
|
||||||
|
twisted
|
Loading…
Reference in New Issue