aboutsummaryrefslogtreecommitdiffstats
path: root/tool
diff options
context:
space:
mode:
author卜部昌平 <shyouhei@ruby-lang.org>2019-12-12 11:11:39 +0900
committer卜部昌平 <shyouhei@ruby-lang.org>2019-12-12 11:13:42 +0900
commit12de92a3682f7a54941c511e6394068df2adefb3 (patch)
treed7fe8aed112220af0db2911e989af4b467e31e07 /tool
parent53e8589c69d1345235d9f02ecbcf6aa32fa9d39c (diff)
downloadruby-12de92a3682f7a54941c511e6394068df2adefb3.tar.gz
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.
Diffstat (limited to 'tool')
-rw-r--r--tool/lib/test/unit.rb19
1 files changed, 17 insertions, 2 deletions
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