implement make test-all TESTS=--gc-compact

79eb5e1acac2339c6ec71db723298bdfcd92b233 implemented
RUBY_TEST_GC_COMPACT=1 so why not make it also possible via the command
line argument.
This commit is contained in:
卜部昌平 2019-12-12 11:11:39 +09:00
parent 53e8589c69
commit 12de92a368

View File

@ -922,13 +922,16 @@ module Test
end
end
module GCStressOption # :nodoc: all
module GCOption # :nodoc: all
def setup_options(parser, options)
super
parser.separator "GC options:"
parser.on '--[no-]gc-stress', 'Set GC.stress as true' do |flag|
options[:gc_stress] = flag
end
parser.on '--[no-]gc-compact', 'GC.compact every time' do |flag|
options[:gc_compact] = flag
end
end
def non_options(files, options)
@ -945,6 +948,18 @@ module Test
end
end
end
if options.delete(:gc_compact)
MiniTest::Unit::TestCase.class_eval do
oldrun = instance_method(:run)
define_method(:run) do |runner|
begin
oldrun.bind_call(self, runner)
ensure
GC.compact
end
end
end
end
super
end
end
@ -1080,7 +1095,7 @@ module Test
include Test::Unit::GlobOption
include Test::Unit::RepeatOption
include Test::Unit::LoadPathOption
include Test::Unit::GCStressOption
include Test::Unit::GCOption
include Test::Unit::ExcludesOption
include Test::Unit::TimeoutOption
include Test::Unit::RunCount