From 12de92a3682f7a54941c511e6394068df2adefb3 Mon Sep 17 00:00:00 2001 From: 卜部昌平 Date: Thu, 12 Dec 2019 11:11:39 +0900 Subject: 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. --- tool/lib/test/unit.rb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'tool') diff --git a/tool/lib/test/unit.rb b/tool/lib/test/unit.rb index 928c896865..42d1d83442 100644 --- a/tool/lib/test/unit.rb +++ b/tool/lib/test/unit.rb @@ -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 -- cgit v1.2.3