зеркало из https://github.com/github/ruby.git
37 строки
710 B
Ruby
37 строки
710 B
Ruby
# 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']
|