1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
if ENV['COVERAGE']
require 'simplecov'
require 'coveralls'
if ENV['TRAVIS']
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
SimpleCov::Formatter::HTMLFormatter,
Coveralls::SimpleCov::Formatter
]
else
SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
end
SimpleCov.start do
project_name 'concurrent-ruby'
add_filter '/examples/'
add_filter '/spec/'
end
end
if ENV['NO_PATH']
# Patch rspec not to add lib to $LOAD_PATH, allows to test installed gems
$LOAD_PATH.delete File.expand_path(File.join(__dir__, '..', 'lib'))
class RSpec::Core::Configuration
remove_method :requires=
def requires=(paths)
directories = [default_path].select { |p| File.directory? p }
RSpec::Core::RubyProject.add_to_load_path(*directories)
paths.each { |path| require path }
@requires += paths
end
end
end
$:.unshift File.expand_path('../../lib/concurrent-ruby', __FILE__)
require 'concurrent'
$:.unshift File.expand_path('../../lib/concurrent-ruby-edge', __FILE__)
require 'concurrent-edge'
Concurrent.use_simple_logger Logger::FATAL
require_relative 'support/example_group_extensions'
require_relative 'support/threadsafe_test'
RSpec.configure do |config|
#config.raise_errors_for_deprecations!
config.filter_run_excluding stress: true
config.order = 'random'
config.disable_monkey_patching!
config.example_status_persistence_file_path = 'spec/examples.txt'
config.include Concurrent::TestHelpers
config.extend Concurrent::TestHelpers
config.before :each do
expect(!defined?(@created_threads) || @created_threads.nil? || @created_threads.empty?).to be_truthy
end
config.after :each do
while defined?(@created_threads) && @created_threads && (thread = (@created_threads.pop(true) rescue nil))
thread.kill
thread_join = thread.join(0.25)
expect(thread_join).not_to be_nil, thread.inspect
end
end
end
|