test/test_async.rb in swift-0.14.0 vs test/test_async.rb in swift-1.0.0
- old
+ new
@@ -1,27 +1,24 @@
require_relative 'helper'
describe 'Adapter' do
- supported_by Swift::DB::Postgres do
+ supported_by Swift::Adapter::Postgres, Swift::Adapter::Mysql do
describe 'async operations' do
it 'can runs queries async' do
rows = []
- pool = 3.times.map.with_index {|n| Swift.setup n, Swift::DB::Postgres, db: 'swift' }
-
- Thread.new do
- pool[0].async_execute('select pg_sleep(0.3), 1 as query_id') {|row| rows << row[:query_id]}
+ pool = 3.times.map.with_index {|n| Swift.setup n, Swift.db.class, db: 'swift_test' }
+ func = case Swift.db
+ when Swift::Adapter::Mysql then 'sleep'
+ when Swift::Adapter::Postgres then 'pg_sleep'
end
- Thread.new do
- pool[1].async_execute('select pg_sleep(0.2), 2 as query_id') {|row| rows << row[:query_id]}
+ 3.times do |n|
+ Thread.new do
+ pool[n].query("select #{func}(#{(3 - n) / 10.0}), #{n + 1} as query_id") {|row| rows << row[:query_id]}
+ end
end
- Thread.new do
- pool[2].async_execute('select pg_sleep(0.1), 3 as query_id') {|row| rows << row[:query_id]}
- end
-
Thread.list.reject {|thread| Thread.current == thread}.each(&:join)
-
assert_equal [3, 2, 1], rows
end
end
end
end