Sha256: 59b2d83c72b0642b4d356dc16d0963ac40db077693f1b5d52798852541b807ce
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require "cutest" $VERBOSE = 1 require_relative "../lib/redis/pool" at_exit do if $redis Process.kill(:TERM, $redis) end Process.waitpid end $redis = spawn("redis-server --port 9999 --logfile /dev/null") def teardown(r) r.pool.shutdown(&:disconnect) end setup do Redis::Pool.new(port: 9999, size: 10) end test "Pool" do |r| threads = Array.new(100) do Thread.new do 10.times do r.get("foo") end end end threads.each(&:join) assert_equal "10", r.info["connected_clients"] teardown(r) end test "MULTI return value with WATCH" do |r| r.del("foo") r.pool.with do r.watch("foo", "bar") assert r.multi { r.set("foo", "bar") } end assert_equal r.get("foo"), "bar" teardown(r) end test "Pipelining" do |r| r.del("foo") catch(:out) do r.pipelined do r.set("foo", "bar") throw(:out) end end assert_equal r.get("foo"), nil teardown(r) end test "Pipelining with nesting" do |r| r.del("foo") r.pipelined do r.del("foo") r.pipelined do r.set("foo", "bar") end end assert_equal r.get("foo"), "bar" teardown(r) end test "Pipelining contention" do |r| threads = Array.new(100) do Thread.new do 10.times do r.pipelined do r.set("foo", "bar") r.pipelined do r.del("foo") end end end end end threads += Array.new(100) do Thread.new do 10.times do r.multi do r.set("foo", "bar") r.del("foo") end end end end threads.each(&:join) assert_equal "10", r.info["connected_clients"] assert_equal nil, r.get("foo") teardown(r) end test "MULTI fails when no block given" do |r| assert_raise(ArgumentError) do r.multi end teardown(r) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
redis-pool-0.1.1 | test/pool_test.rb |