diff options
author | Nick Sieger <nick@nicksieger.com> | 2008-08-07 01:27:40 -0700 |
---|---|---|
committer | Nick Sieger <nick@nicksieger.com> | 2008-08-29 14:12:11 -0500 |
commit | fe575dd4a9f0fa0e71a89fae9f4a951a9fb36058 (patch) | |
tree | beffe2d6830b32cf9b10050adaffb812c9140301 /activerecord/test/cases | |
parent | 82fcd9d85fe245e8041f8d375175dde13688fce4 (diff) | |
download | rails-fe575dd4a9f0fa0e71a89fae9f4a951a9fb36058.tar.gz rails-fe575dd4a9f0fa0e71a89fae9f4a951a9fb36058.tar.bz2 rails-fe575dd4a9f0fa0e71a89fae9f4a951a9fb36058.zip |
Nearing the finish line. Initial fixed-size connection pool implemented, more docs
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/threaded_connections_test.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/test/cases/threaded_connections_test.rb b/activerecord/test/cases/threaded_connections_test.rb index 3f88f79189..3abe9aea56 100644 --- a/activerecord/test/cases/threaded_connections_test.rb +++ b/activerecord/test/cases/threaded_connections_test.rb @@ -40,4 +40,40 @@ unless %w(FrontBase).include? ActiveRecord::Base.connection.adapter_name assert_equal @connections.length, 5 end end + + class PooledConnectionsTest < ActiveRecord::TestCase + def setup + @connection = ActiveRecord::Base.remove_connection + @connections = [] + @allow_concurrency = ActiveRecord::Base.allow_concurrency + ActiveRecord::Base.allow_concurrency = true + end + + def teardown + ActiveRecord::Base.clear_all_connections! + ActiveRecord::Base.allow_concurrency = @allow_concurrency + ActiveRecord::Base.establish_connection(@connection) + end + + def gather_connections + ActiveRecord::Base.establish_connection(@connection.merge({:pool => 2, :wait_timeout => 0.3})) + @timed_out = 0 + + 4.times do + Thread.new do + begin + @connections << ActiveRecord::Base.connection_pool.checkout + rescue ActiveRecord::ConnectionTimeoutError + @timed_out += 1 + end + end.join + end + end + + def test_threaded_connections + gather_connections + assert_equal @connections.length, 2 + assert_equal @timed_out, 2 + end + end end |