aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-12-30 14:31:30 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-12-30 14:31:30 -0800
commitb1ac881433b95498e3b63b2686d1e31f1bdb93fc (patch)
treec1ee45de23f738fdfc7cbaa41cf647cabcb58628 /activerecord/test/cases
parent86729eb733ce67818f079744fdea5ec63e25259a (diff)
downloadrails-b1ac881433b95498e3b63b2686d1e31f1bdb93fc.tar.gz
rails-b1ac881433b95498e3b63b2686d1e31f1bdb93fc.tar.bz2
rails-b1ac881433b95498e3b63b2686d1e31f1bdb93fc.zip
connections are only removed if they are inactve
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/connection_pool_test.rb20
1 files changed, 18 insertions, 2 deletions
diff --git a/activerecord/test/cases/connection_pool_test.rb b/activerecord/test/cases/connection_pool_test.rb
index 015c1c7ce7..3887a4fe96 100644
--- a/activerecord/test/cases/connection_pool_test.rb
+++ b/activerecord/test/cases/connection_pool_test.rb
@@ -25,7 +25,7 @@ module ActiveRecord
@pool.connections.each(&:close)
end
- def test_reap
+ def test_reap_and_active
@pool.checkout
@pool.checkout
@pool.checkout
@@ -35,9 +35,25 @@ module ActiveRecord
@pool.reap
+ assert_equal connections.length, @pool.connections.length
+ end
+
+ def test_reap_inactive
+ @pool.checkout
+ @pool.checkout
+ @pool.checkout
+ @pool.timeout = 0
+
+ connections = @pool.connections.dup
+ connections.each do |conn|
+ conn.extend(Module.new { def active?; false; end; })
+ end
+
+ @pool.reap
+
assert_equal 0, @pool.connections.length
ensure
- connections.map(&:close)
+ connections.each(&:close)
end
def test_remove_connection