class ActiveRecord::ConnectionAdapters::ReaperTest

Attributes

pool[R]

Public Instance Methods

setup() click to toggle source
Calls superclass method
# File activerecord/test/cases/reaper_test.rb, line 10
def setup
  super
  @pool = ConnectionPool.new ActiveRecord::Base.connection_pool.spec
end
test_connection_pool_starts_reaper() click to toggle source
# File activerecord/test/cases/reaper_test.rb, line 63
def test_connection_pool_starts_reaper
  spec = ActiveRecord::Base.connection_pool.spec.dup
  spec.config[:reaping_frequency] = "0.0001"

  pool = ConnectionPool.new spec

  conn = nil
  child = Thread.new do
    conn = pool.checkout
    Thread.stop
  end
  Thread.pass while conn.nil?

  assert conn.in_use?

  child.terminate

  while conn.in_use?
    Thread.pass
  end
  assert !conn.in_use?
end
test_nil_time() click to toggle source

A reaper with nil time should never reap connections

# File activerecord/test/cases/reaper_test.rb, line 32
def test_nil_time
  fp = FakePool.new
  assert !fp.reaped
  reaper = ConnectionPool::Reaper.new(fp, nil)
  reaper.run
  assert !fp.reaped
end
test_pool_has_reaper() click to toggle source
# File activerecord/test/cases/reaper_test.rb, line 52
def test_pool_has_reaper
  assert pool.reaper
end
test_reaping_frequency_configuration() click to toggle source
# File activerecord/test/cases/reaper_test.rb, line 56
def test_reaping_frequency_configuration
  spec = ActiveRecord::Base.connection_pool.spec.dup
  spec.config[:reaping_frequency] = 100
  pool = ConnectionPool.new spec
  assert_equal 100, pool.reaper.frequency
end
test_some_time() click to toggle source
# File activerecord/test/cases/reaper_test.rb, line 40
def test_some_time
  fp = FakePool.new
  assert !fp.reaped

  reaper = ConnectionPool::Reaper.new(fp, 0.0001)
  reaper.run
  until fp.reaped
    Thread.pass
  end
  assert fp.reaped
end