| #!/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 |