#!/usr/bin/env bash # Exit on any error. set -e test_version() { version=$1 # TODO(teboring): timestamp parsing is incorrect only on mac due to mktime. if [[ $(uname -s) == Linux ]] then RUBY_CONFORMANCE=test_ruby elif [[ $(uname -s) == Darwin ]] then # TODO(teboring): timestamp parsing is incorrect only on mac due to mktime. RUBY_CONFORMANCE=test_ruby_mac fi if [ "$version" == "jruby-1.7" ] ; then # No conformance tests yet -- JRuby is too broken to run them. bash --login -c \ "rvm install $version && rvm use $version && rvm get head && \ which ruby && \ git clean -f && \ gem install bundler && bundle && \ rake test" elif [ "$version" == "ruby-2.6.0" ] ; then bash --login -c \ "rvm install $version && rvm use $version && \ which ruby && \ git clean -f && \ gem install bundler -v 1.17.3 && bundle && \ rake test && rake gc_test && cd ../conformance && make ${RUBY_CONFORMANCE} && cd ../ruby/compatibility_tests/v3.0.0 && cp -R ../../lib lib && ./test.sh" else # Recent versions of OSX have deprecated OpenSSL, so we have to explicitly # provide a path to the OpenSSL directory installed via Homebrew. bash --login -c \ "rvm install $version --with-openssl-dir=`brew --prefix openssl` && \ rvm use $version && \ which ruby && \ git clean -f && \ gem install bundler -v 1.17.3 && bundle && \ rake test && rake gc_test && cd ../conformance && make ${RUBY_CONFORMANCE} && cd ../ruby/compatibility_tests/v3.0.0 && ./test.sh" fi } test_version $1