summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2014-06-02 16:14:14 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2014-06-02 16:14:14 -0700
commit646ff07d969987584752758eb8b8a8db7571c52e (patch)
treee30bd0cbe91313cb87aa1c4a7f29ec9ed8bd5699
parent8445ffdeee37771cf54bb0f6307af5e2e980f954 (diff)
downloadffi-yajl-646ff07d969987584752758eb8b8a8db7571c52e.tar.gz
WIP: test-kitchen support
-rw-r--r--.gitignore1
-rw-r--r--.kitchen.yml21
-rwxr-xr-xbootstrap.sh79
3 files changed, 101 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 61dd31e..e28d492 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,7 @@
.bundle
.config
.idea
+.kitchen
.rvmrc
.yardoc
Gemfile.lock
diff --git a/.kitchen.yml b/.kitchen.yml
new file mode 100644
index 0000000..441605e
--- /dev/null
+++ b/.kitchen.yml
@@ -0,0 +1,21 @@
+driver:
+ name: vagrant
+ customize:
+ memory: 1024
+ cpus: 4
+
+provisioner:
+ name: shell
+ data_path: .
+
+platforms:
+ - name: ubuntu-10.04
+ - name: ubuntu-12.04
+ - name: ubuntu-12.10
+ - name: ubuntu-13.04
+ - name: ubuntu-13.10
+ - name: ubuntu-14.04
+ - name: freebsd-9.2
+
+suites:
+ - name: default
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..b6d4ad5
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# bootstrap.sh file for test-kitchen shell provisioner to run tests on
+# remote server.
+#
+
+set -e
+set -x
+
+machine=`uname -m`
+os=`uname -s`
+
+if test -f "/etc/lsb-release" && grep -q DISTRIB_ID /etc/lsb-release; then
+ platform=`grep DISTRIB_ID /etc/lsb-release | cut -d "=" -f 2 | tr '[A-Z]' '[a-z]'`
+ platform_version=`grep DISTRIB_RELEASE /etc/lsb-release | cut -d "=" -f 2`
+fi
+
+if test "x$os" = "xFreeBSD"; then
+ platform="freebsd"
+ platform_version=`uname -r | sed 's/-.*//'`
+fi
+
+compile_rubygems() {
+ cd /tmp
+ wget http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz -O - | tar zxf -
+ cd rubygems-1.6.2 && ruby setup.rb --no-format-executable
+ # i think this assumes running under bash
+ cd -
+}
+
+
+case $platform in
+ "ubuntu")
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get -y -y install bc
+ ubuntu_before_12_04=`echo "$platform_version < 12.04" | bc`
+ ubuntu_before_14_04=`echo "$platform_version < 14.04" | bc`
+ if [ "x$ubuntu_before_12_04" = "x1" ]; then
+ apt-get -q -y install ruby1.8 ruby1.8-dev rubygems1.8 libopenssl-ruby1.8
+ apt-get -q -y install git-core cmake build-essential wget
+ update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.8 500
+ update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.8 500
+ update-alternatives --config ruby
+ update-alternatives --config gem
+ compile_rubygems
+ elif [ "x$ubuntu_before_14_04" = "x1" ]; then
+ apt-get -q -y purge ruby1.8 ruby1.8-dev rubygems1.8 libopenssl-ruby1.8
+ apt-get -q -y install ruby1.9.1 ruby1.9.1-dev rubygems1.9.1 libopenssl-ruby1.9.1
+ apt-get -q -y install git cmake build-essential
+ update-alternatives --config ruby
+ update-alternatives --config gem
+ else
+ apt-get -q -y purge ruby1.8
+ apt-get -q -y install ruby1.9.1 ruby1.9.1-dev rubygems1.9.1 libopenssl-ruby1.9.1
+ apt-get -q -y install git cmake build-essential
+ fi
+ ;;
+ freebsd)
+ if pkg -N 2>&1 | grep "pkg is not installed"; then
+ export ASSUME_ALWAYS_YES=YES
+ pkg bootstrap
+ pkg2ng
+ fi
+ pkg install -y ruby
+ pkg install -y ruby19-gems
+ ;;
+ *)
+ echo "i don't know how to setup base o/s on platform $platform, hope it works!"
+ ;;
+esac
+
+rm -f Gemfile.lock
+gem install bundler --no-rdoc --no-ri
+
+cd /tmp/kitchen/data
+bundle install --without development_extras
+rake compile
+rake spec