diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -25,6 +25,7 @@ tests/*.err tests/htmlcov build contrib/hgsh/hgsh +contrib/vagrant/.vagrant dist packages doc/common.txt diff --git a/contrib/vagrant/README.md b/contrib/vagrant/README.md new file mode 100644 --- /dev/null +++ b/contrib/vagrant/README.md @@ -0,0 +1,4 @@ +Run Mercurial tests with Vagrant: + +$ vagrant up +$ vagrant ssh -c ./run-tests.sh diff --git a/contrib/vagrant/Vagrantfile b/contrib/vagrant/Vagrantfile new file mode 100644 --- /dev/null +++ b/contrib/vagrant/Vagrantfile @@ -0,0 +1,14 @@ +# -*- mode: ruby -*- + +Vagrant.configure('2') do |config| + # Debian 7.4 32-bit i386 without configuration management software + config.vm.box = "puppetlabs/debian-7.4-32-nocm" + #config.vm.box = "pnd/debian-wheezy32-basebox" + config.vm.hostname = "tests" + + config.vm.define "tests" do |conf| + conf.vm.provision :file, source: "run-tests.sh", destination:"run-tests.sh" + conf.vm.provision :shell, path: "provision.sh" + conf.vm.synced_folder "../..", "/hgshared" + end +end diff --git a/contrib/vagrant/provision.sh b/contrib/vagrant/provision.sh new file mode 100644 --- /dev/null +++ b/contrib/vagrant/provision.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# This scripts is used to install dependencies for +# testing Mercurial. Mainly used by Vagrant (see +# Vagrantfile for details). + +export DEBIAN_FRONTEND=noninteractive +apt-get update +apt-get install -y -q python-dev unzip +# run-tests.sh is added by Vagrantfile +chmod +x run-tests.sh diff --git a/contrib/vagrant/run-tests.sh b/contrib/vagrant/run-tests.sh new file mode 100644 --- /dev/null +++ b/contrib/vagrant/run-tests.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# This scripts is used to setup temp directory in memory +# for running Mercurial tests in vritual machine managed +# by Vagrant (see Vagrantfile for details). + +cd /hgshared +make local +cd tests +mkdir /tmp/ram +sudo mount -t tmpfs -o size=100M tmpfs /tmp/ram +export TMPDIR=/tmp/ram +./run-tests.py -l --time +