diff options
author | elijah <elijah@riseup.net> | 2012-10-23 03:50:52 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2012-10-23 03:50:52 -0700 |
commit | d385da49ef6c17c64cf8be66002f5744c1ee38f7 (patch) | |
tree | 6e19772d6adf2b302e73dbd9229eb3618d19bab0 /vendor/supply_drop/test/async_test.rb | |
parent | 3a27d87e6a28e4b58842ca4cb7a1ddc4e6637b36 (diff) | |
download | leap_cli-d385da49ef6c17c64cf8be66002f5744c1ee38f7.tar.gz leap_cli-d385da49ef6c17c64cf8be66002f5744c1ee38f7.tar.bz2 |
patched supply_drop gem and vendored it
Diffstat (limited to 'vendor/supply_drop/test/async_test.rb')
-rw-r--r-- | vendor/supply_drop/test/async_test.rb | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/vendor/supply_drop/test/async_test.rb b/vendor/supply_drop/test/async_test.rb new file mode 100644 index 0000000..0b9bc3a --- /dev/null +++ b/vendor/supply_drop/test/async_test.rb @@ -0,0 +1,67 @@ +require 'test/unit' +require File.expand_path('../../lib/supply_drop/util', __FILE__) +require File.expand_path('../../lib/supply_drop/async_enumerable', __FILE__) +require File.expand_path('../../lib/supply_drop/thread_pool', __FILE__) + +class AsyncTest < Test::Unit::TestCase + def teardown + SupplyDrop::Util.thread_pool_size = SupplyDrop::Util::DEFAULT_THREAD_POOL_SIZE + end + + def test_can_enumerate_asynchronously + collection = (1..10).to_a + elapsed = timed do + SupplyDrop::Util.optionally_async(collection, true).each do |item| + sleep 0.1 + end + end + assert elapsed < 1 + end + + def test_can_enumerate_asynchronously_with_map + collection = (1..10).to_a + returned_values = nil + elapsed = timed do + returned_values = SupplyDrop::Util.optionally_async(collection, true).map do |item| + sleep 0.1 + :somevalue + end + end + assert returned_values == Array.new(10, :somevalue) + assert elapsed < 1 + end + + def test_can_enumerate_normally_and_does_not_leak_after_extending + collection = (1..10).to_a + elapsed = timed do + SupplyDrop::Util.optionally_async(collection, true).each do |item| + sleep 0.1 + end + end + assert elapsed < 1 + + elapsed = timed do + SupplyDrop::Util.optionally_async(collection, false).each do |item| + sleep 0.1 + end + end + assert elapsed >= 1 + end + + def test_can_configure_thread_pool_size + collection = (1..10).to_a + SupplyDrop::Util.thread_pool_size = 1 + elapsed = timed do + returned_values = SupplyDrop::Util.optionally_async(collection, true).map do |item| + sleep 0.1 + end + end + assert elapsed >= 1 + end + + def timed + start = Time.now + yield + Time.now - start + end +end |