Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

`prerelease` script helps determine the worthiness of a commit for re…

…lease.
  • Loading branch information...
commit e56964cec2b95031309e10494c8156d3d01a9e69 1 parent b846d01
@flavorjones flavorjones authored
Showing with 84 additions and 0 deletions.
  1. +84 −0 prerelease
View
84 prerelease
@@ -0,0 +1,84 @@
+#! /usr/bin/env bash
+#
+# script to run tests on all relevant rubies, and valgrind on supported rubies.
+# outputs tests to `test.log` and valgrind output to `valgrind.log`.
+#
+# requires `rvm` to be installed. sorry about that, multiruby dudes.
+#
+
+RUBIES="ruby-1.9.3 jruby-1.6.5 ree-1.8.7 ruby-1.9.2 ruby-1.8.7"
+TEST_LOG=test.log
+VALGRIND_LOG=valgrind.log
+
+# Load RVM into a shell session *as a function*
+if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
+ source "$HOME/.rvm/scripts/rvm"
+elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
+ source "/usr/local/rvm/scripts/rvm"
+else
+ echo "ERROR: An RVM installation was not found.\n"
+fi
+
+> $TEST_LOG
+> $VALGRIND_LOG
+set -o errexit
+
+function rvm_use {
+ current_ruby=$1
+ rvm use "${1}@nokogiri" --create
+}
+
+function generate_parser_and_tokenizer {
+ old_ruby=$current_ruby
+ rvm_use ruby-1.8.7
+ bundle exec rake generate 2>&1 > /dev/null
+ rvm_use $old_ruby
+}
+
+function clean {
+ bundle exec rake clean clobber 2>&1 > /dev/null
+}
+
+function compile {
+ echo "** compiling ..."
+ generate_parser_and_tokenizer
+ bundle exec rake compile 2>&1 > /dev/null
+}
+
+for ruby in $RUBIES ; do
+ rvm_use ${ruby}
+ if gem list bundler | fgrep -v 1.1.rc 2>&1 > /dev/null ; then
+ gem install bundler --pre
+ fi
+ bundle install --quiet --local || bundle install
+ clean
+done
+
+for ruby in $RUBIES ; do
+ rvm_use ${ruby}
+ echo "** nokogiri prerelease: ${ruby}" | tee -a $TEST_LOG
+ clean
+ compile
+ echo "** running tests ..."
+ if [[ $ruby =~ "jruby" ]] ; then
+ # I get:
+ # /usr/lib/jvm/java-7-oracle/bin/java: symbol lookup error: /home/mike/.rvm/gems/jruby-1.6.5@nokogiri/gems/racc-1.4.7/lib/racc/cparse.so: undefined symbol: rb_catch
+ # if I use 'bundle exec' with jruby. Anybody?
+ rake test 2>&1 | tee -a $TEST_LOG
+ else
+ bundle exec rake test 2>&1 | tee -a $TEST_LOG
+ fi
+ clean
+done
+
+for ruby in $RUBIES ; do
+ if [[ ! $ruby =~ "jruby" ]] ; then
+ rvm_use ${ruby}
+ echo "** nokogiri prerelease: ${ruby}" | tee -a $VALGRIND_LOG
+ clean
+ compile
+ echo "** running valgrind on tests ..."
+ bundle exec rake test:valgrind 2>&1 | tee -a $VALGRIND_LOG
+ clean
+ fi
+done
Please sign in to comment.
Something went wrong with that request. Please try again.