Sha256: cf150b0fef95732a884e56d7d44ac8101ae05a4680504f8421e3e448fdb67231

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

#!/usr/bin/env ruby -w

require 'multiruby'

root_dir = Multiruby.root_dir
versions = Multiruby.build_and_install
versions = ENV['VERSIONS'].split(/:/) if ENV.has_key? 'VERSIONS'

if ENV.has_key? 'EXCLUDED_VERSIONS' then
  excludes = Regexp.union(*ENV['EXCLUDED_VERSIONS'].split(/:/))
  versions = versions.delete_if { |v| v =~ excludes }
end

# safekeep original PATH
original_path = ENV['PATH']

results = {}
versions.each do |version|
  ruby = "#{root_dir}/install/#{version}/bin/ruby"

  ruby.sub!(/bin.ruby/, 'bin/rbx') if version =~ /rubinius/

  puts
  puts "VERSION = #{version}"
  cmd = [ruby, ARGV].flatten.map { |s| s =~ /\"/ ? "'#{s}'" : s }.join(' ')
  cmd.sub!(/#{ENV['HOME']}/, '~')
  puts "CMD     = #{cmd}"
  puts

  # prepend ruby binary path prior execution
  ENV['PATH'] = [File.dirname(ruby), original_path].join(File::PATH_SEPARATOR)

  system ruby, *ARGV
  puts
  puts "RESULT = #{$?}"
  results[version] = $?

  # restore the path to original state
  ENV['PATH'] = original_path
end

passed, failed = results.keys.partition { |v| results[v] == 0 }

puts
puts "TOTAL RESULT = #{failed.size} failures out of #{results.size}"
puts
puts "Passed: #{passed.join(", ")}"
puts "Failed: #{failed.join(", ")}"

exit failed.size

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zentest-without-autotest-4.1.4 bin/multiruby