#!/bin/bash

set -e -x

# idea taken from: http://blog.headius.com/2010/03/jruby-startup-time-tips.html
export JRUBY_OPTS='-X-C' # disable JIT since these processes are so short lived

# force jRuby to use client mode JVM or a compilation mode thats as close as possible,
# idea taken from https://github.com/jruby/jruby/wiki/Improving-startup-time
export JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1'

echo "Running rspec specs"
bin/rspec spec --format progress --profile

echo "Running cucumber specs"

if [ -z ${BRANCH+" is set"} ]; then
  echo "BRANCH must be set for this script."
  exit 1
else
  echo "Using $BRANCH"
fi

if ruby -e 'exit(ENV.fetch("BRANCH") =~ /3-[0-8]-maintenance/ ? 0 : 1)'; then
  TAGS="--tags @pre-3-9"
else
  TAGS="--tags @post-3-9"
fi;

if ruby -e "exit(defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java')"; then
  # This is JRUBY which requires this one weird path trick...
  PATH="${PWD}/bin:$PATH" \
  bundle exec cucumber --strict $TAGS
else
  bundle exec cucumber --strict $TAGS
fi;
