Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Commit

Permalink
Fix warden test setup
Browse files Browse the repository at this point in the history
[#112741695]

Signed-off-by: Sandy Cash <[email protected]>
  • Loading branch information
swetharepakula authored and ScarletTanager committed Feb 3, 2016
1 parent d4796c8 commit d47a6eb
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 37 deletions.
2 changes: 2 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ Vagrant.configure("2") do |config|

config.vm.box = "cloudfoundry/warden-compatible"

config.vm.synced_folder '~/workspace/cf-release', '/var/cf-release'

# Requires vagrant-aws and unf plugins
config.vm.provider :aws do |aws, override|
override.vm.box = "dummy"
Expand Down
12 changes: 7 additions & 5 deletions bin/test
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
#!/bin/bash

set -e
set -x
set -e -x

# Assumes the rootfs is already installed to /var/warden/rootfs
# The warden test suite currently uses /tmp/warden/rootfs instead
mkdir -p /tmp/warden
sudo ln -sf /var/warden/rootfs_cflinuxfs2 /tmp/warden/rootfs
mkdir -p /tmp/warden/rootfs

echo -n "Extracting rootfs..."
sudo tar -xf /var/cf-release/.blobs/`basename $(readlink /var/cf-release/blobs/rootfs/*)` -C /tmp/warden/rootfs
echo "finished"

# Close stdin
exec 0>&-
Expand All @@ -17,7 +19,7 @@ exec 0>&-
# Install dependencies
# sudo apt-get -y install quota

cd warden
cd /var/cf-release/src/dea-hm-workspace/src/warden/warden
sudo bundle install
sudo bundle exec rake setup:bin
sudo bundle exec rake spec
42 changes: 10 additions & 32 deletions bin/test_in_vm
Original file line number Diff line number Diff line change
@@ -1,36 +1,14 @@
#!/usr/bin/env ruby
require 'tmpdir'
require 'timeout'
require 'fileutils'
#!/bin/bash
set -e -x -u

def system!(cmd)
system(cmd) or raise "Command failed: '#{cmd}'"
end
cd $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/..
vagrant up
echo "===== VAGRANT BOX PROVISIONED AND STARTED ====="

tmpdir = Dir.mktmpdir

FileUtils.copy("Vagrantfile", tmpdir)
FileUtils.copy("bin/rsync_workspace_into_vm.sh", tmpdir)
puts "Running vagrant in a temporary folder: #{tmpdir}"
echo "about to ssh to run tests"
date

build_timeout_in_seconds = 2400
warden_source_dir = Dir.pwd
Dir.chdir(tmpdir) do
begin
Timeout.timeout(build_timeout_in_seconds) do
system!("vagrant up --provider=virtualbox")
system!("./rsync_workspace_into_vm.sh #{warden_source_dir}")
system!("vagrant ssh -c 'cd ~/workspace && bin/test'")
end
rescue Timeout::Error => e
puts "Build took too long, killing the VM"
raise e
ensure
if ENV["NODESTROY"]
puts "Skipping vagrant destroy"
else
system!("vagrant destroy --force")
end
system!("vagrant status")
end
end
if [ -z ${NOTEST:=} ]; then
vagrant ssh -c "/var/cf-release/src/dea-hm-workspace/src/warden/bin/test"
fi

0 comments on commit d47a6eb

Please sign in to comment.