diff options
Diffstat (limited to 'spec/ruby/spec_helper.rb')
| -rw-r--r-- | spec/ruby/spec_helper.rb | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/spec/ruby/spec_helper.rb b/spec/ruby/spec_helper.rb index c275e320ec..af1c385878 100644 --- a/spec/ruby/spec_helper.rb +++ b/spec/ruby/spec_helper.rb @@ -1,18 +1,38 @@ use_realpath = File.respond_to?(:realpath) -root = File.dirname(__FILE__) +root = __dir__ dir = "fixtures/code" CODE_LOADING_DIR = use_realpath ? File.realpath(dir, root) : File.expand_path(dir, root) -# Running directly with ruby some_spec.rb -unless ENV['MSPEC_RUNNER'] +# Enable Thread.report_on_exception by default to catch thread errors earlier +if Thread.respond_to? :report_on_exception= + Thread.report_on_exception = true +else + class Thread + def report_on_exception=(value) + raise "shim Thread#report_on_exception used with true" if value + end + end +end + +unless ENV['MSPEC_RUNNER'] # Running directly with ruby some_spec.rb + mspec_lib = File.expand_path("../../mspec/lib", __FILE__) + $LOAD_PATH << mspec_lib if File.directory?(mspec_lib) + begin require 'mspec' require 'mspec/commands/mspec-run' rescue LoadError - puts "Please add -Ipath/to/mspec/lib or install the MSpec gem to run the specs." + puts "Please add -Ipath/to/mspec/lib or clone mspec as a sibling to run the specs." exit 1 end +end + +# Compare with SpecVersion directly here so it works even with --unguarded +if VersionGuard::FULL_RUBY_VERSION < SpecVersion.new('2.7') + abort "This version of ruby/spec requires Ruby 2.7+" +end +unless ENV['MSPEC_RUNNER'] # Running directly with ruby some_spec.rb ARGV.unshift $0 MSpecRun.main end |
