Module: Test::Unit::GCStressOption

Included in:
Runner
Defined in:
lib/test/unit.rb

Overview

:nodoc: all

Instance Method Summary collapse

Instance Method Details

#non_options(files, options) ⇒ Object


223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# File 'lib/test/unit.rb', line 223

def non_options(files, options)
  if options.delete(:gc_stress)
    MiniTest::Unit::TestCase.class_eval do
      oldrun = instance_method(:run)
      define_method(:run) do |runner|
        begin
          gc_stress, GC.stress = GC.stress, true
          oldrun.bind(self).call(runner)
        ensure
          GC.stress = gc_stress
        end
      end
    end
  end
  super
end

#setup_options(parser, options) ⇒ Object


216
217
218
219
220
221
# File 'lib/test/unit.rb', line 216

def setup_options(parser, options)
  super
  parser.on '--[no-]gc-stress', 'Set GC.stress as true' do |flag|
    options[:gc_stress] = flag
  end
end