summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb
diff options
context:
space:
mode:
authorBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
committerBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
commit5571dc766e2143e39762ff0b47c41d1c2e154f4c (patch)
treef4f124d314a7e76c04484515aa0fd1f2e271a601 /vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb
parent359f3309c97fc894b63e0a295c76ab298504d635 (diff)
Vendor bundled gems for deployment
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb64
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb b/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb
new file mode 100644
index 0000000..34278c0
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_queue.rb
@@ -0,0 +1,64 @@
+require 'em_test_helper'
+
+class TestEMQueue < Test::Unit::TestCase
+ def test_queue_push
+ s = 0
+ EM.run do
+ q = EM::Queue.new
+ q.push(1)
+ EM.next_tick { s = q.size; EM.stop }
+ end
+ assert_equal 1, s
+ end
+
+ def test_queue_pop
+ x,y,z = nil
+ EM.run do
+ q = EM::Queue.new
+ q.push(1,2,3)
+ q.pop { |v| x = v }
+ q.pop { |v| y = v }
+ q.pop { |v| z = v; EM.stop }
+ end
+ assert_equal 1, x
+ assert_equal 2, y
+ assert_equal 3, z
+ end
+
+ def test_queue_reactor_thread
+ q = EM::Queue.new
+
+ Thread.new { q.push(1,2,3) }.join
+ assert q.empty?
+ EM.run { EM.next_tick { EM.stop } }
+ assert_equal 3, q.size
+
+ x = nil
+ Thread.new { q.pop { |v| x = v } }.join
+ assert_equal nil, x
+ EM.run { EM.next_tick { EM.stop } }
+ assert_equal 1, x
+ end
+
+ def test_num_waiting
+ q = EM::Queue.new
+ many = 3
+ many.times { q.pop {} }
+ EM.run { EM.next_tick { EM.stop } }
+ assert_equal many, q.num_waiting
+ end
+
+ def test_big_queue
+ EM.run do
+ q = EM::Queue.new
+ 2000.times do |i|
+ q.push(*0..1000)
+ q.pop { |v| assert_equal v, i % 1001 }
+ end
+ q.pop do
+ assert_equal 1_999_999, q.size
+ EM.stop
+ end
+ end
+ end
+end