[macruby-changes] [3043] MacRuby/trunk/test_vm/gcd.rb
source_changes at macosforge.org
source_changes at macosforge.org
Tue Nov 24 18:36:13 PST 2009
Revision: 3043
http://trac.macosforge.org/projects/ruby/changeset/3043
Author: lsansonetti at apple.com
Date: 2009-11-24 18:36:10 -0800 (Tue, 24 Nov 2009)
Log Message:
-----------
added initial test file for GCD
Added Paths:
-----------
MacRuby/trunk/test_vm/gcd.rb
Added: MacRuby/trunk/test_vm/gcd.rb
===================================================================
--- MacRuby/trunk/test_vm/gcd.rb (rev 0)
+++ MacRuby/trunk/test_vm/gcd.rb 2009-11-25 02:36:10 UTC (rev 3043)
@@ -0,0 +1,64 @@
+n = (0..999).to_a.inject(0) { |b, i| b + i }.to_s
+
+assert n, %{
+ n = 0
+ q = Dispatch::Queue.new('foo')
+ g = Dispatch::Group.new
+ 1000.times do |i|
+ g.dispatch(q) { n += i }
+ end
+ g.wait
+ p n
+}
+
+assert n, %{
+ n = 0
+ q = Dispatch::Queue.new('foo')
+ g = Dispatch::Group.new
+ 1000.times do |i|
+ g.dispatch(Dispatch::Queue.concurrent) do
+ g.dispatch(q) { n += i }
+ end
+ end
+ g.wait
+ p n
+}
+
+assert n, %{
+ n = 0
+ q = Dispatch::Queue.new('foo')
+ g = Dispatch::Group.new
+ 1000.times do |i|
+ g.dispatch(Dispatch::Queue.concurrent) do
+ q.dispatch(true) { n += i }
+ end
+ end
+ g.wait
+ p n
+}
+
+assert n, %{
+ n = 0
+ q = Dispatch::Queue.new('foo')
+ q.apply(1000) do |i|
+ n += i
+ end
+ p n
+}
+
+assert n, %{
+ n = 0
+ q = Dispatch::Queue.new('foo')
+ Dispatch::Queue.concurrent.apply(1000) do |i|
+ q.dispatch { n += i }
+ end
+ q.dispatch(true) {}
+ p n
+}
+
+assert ':ok', %{
+ g = Dispatch::Group.new
+ g.dispatch(Dispatch::Queue.concurrent) { raise('hey') }
+ g.wait
+ p :ok
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091124/71fb9085/attachment.html>
More information about the macruby-changes
mailing list