diff options
author | Koichi Sasada <ko1@atdot.net> | 2021-08-05 16:21:15 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2021-08-05 17:11:50 +0900 |
commit | 228b3e43be5e01e204751be2035fee3576a7ab74 (patch) | |
tree | 5bbffff35ee75d5e3fe597e19f50ba9b0d5967e6 | |
parent | 405644f38c64dca3524e3fa32fd9722bcd2a1e0b (diff) | |
download | ruby-228b3e43be5e01e204751be2035fee3576a7ab74.tar.gz |
check GC.enable'd status
Check GC.enable'd status before and after test execution.
Write this checker in gc_checker.rb, it was renamed from
gc_compact_checker.rb.
-rw-r--r-- | tool/lib/gc_checker.rb | 36 | ||||
-rw-r--r-- | tool/lib/gc_compact_checker.rb | 10 | ||||
-rw-r--r-- | tool/lib/test/unit/parallel.rb | 2 | ||||
-rw-r--r-- | tool/test/runner.rb | 2 |
4 files changed, 38 insertions, 12 deletions
diff --git a/tool/lib/gc_checker.rb b/tool/lib/gc_checker.rb new file mode 100644 index 0000000000..719da8cac0 --- /dev/null +++ b/tool/lib/gc_checker.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module GCDisabledChecker + def before_setup + if @__gc_disabled__ = GC.enable # return true if GC is disabled + GC.disable + end + + super + end + + def after_teardown + super + + disabled = GC.enable + GC.disable if @__gc_disabled__ + + if @__gc_disabled__ != disabled + label = { + true => 'disabled', + false => 'enabled', + } + raise "GC was #{label[@__gc_disabled__]}, but is #{label[disabled]} after the test." + end + end +end + +module GCCompactChecker + def after_teardown + super + GC.compact + end +end + +Test::Unit::TestCase.include GCDisabledChecker +Test::Unit::TestCase.include GCCompactChecker if ENV['RUBY_TEST_GC_COMPACT'] diff --git a/tool/lib/gc_compact_checker.rb b/tool/lib/gc_compact_checker.rb deleted file mode 100644 index a6ef3d3ce8..0000000000 --- a/tool/lib/gc_compact_checker.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -module GCCompactChecker - def after_teardown - super - GC.compact - end -end - -Test::Unit::TestCase.include GCCompactChecker if ENV['RUBY_TEST_GC_COMPACT'] diff --git a/tool/lib/test/unit/parallel.rb b/tool/lib/test/unit/parallel.rb index ccaf1a913a..0807b3916b 100644 --- a/tool/lib/test/unit/parallel.rb +++ b/tool/lib/test/unit/parallel.rb @@ -6,7 +6,7 @@ require "profile_test_all" if ENV.key?('RUBY_TEST_ALL_PROFILE') require "tracepointchecker" require "zombie_hunter" require "iseq_loader_checker" -require "gc_compact_checker" +require "gc_checker" module Test module Unit diff --git a/tool/test/runner.rb b/tool/test/runner.rb index 60d9af24b0..c629943090 100644 --- a/tool/test/runner.rb +++ b/tool/test/runner.rb @@ -9,7 +9,7 @@ require "profile_test_all" if ENV.key?('RUBY_TEST_ALL_PROFILE') require "tracepointchecker" require "zombie_hunter" require "iseq_loader_checker" -require "gc_compact_checker" +require "gc_checker" require_relative "../test-coverage.rb" if ENV.key?('COVERAGE') case $0 |