[MacRuby-devel] [macruby-changes] [3092] MacRuby/trunk/spec/macruby/core

William Siegrist wsiegrist at apple.com
Thu Dec 10 13:32:19 PST 2009


Sorry about the typo, it has been fixed. 

-Bill

On Dec 10, 2009, at 1:03 PM, Jordan Breeding wrote:

> Could we get the reply-to field on messages from macruby-changes at lists.macosforge.org changed from:
> 
> macruby-dev at lists.macosforge.org
> 
> to:
> 
> macruby-devel at lists.macosforge.org
> 
> That way just hitting reply or reply to all should work to send a question about a commit to the devel list?
> 
> On Dec 10, 2009, at 14:58, source_changes at macosforge.org wrote:
> 
>> Revision
>> 3092
>> Author
>> ernest.prabhakar at gmail.com
>> Date
>> 2009-12-10 12:58:41 -0800 (Thu, 10 Dec 2009)
>> Log Message
>> 
>> Per #496, migrated gcd_spec.rb into gcd/{queue,group}_spec.rb
>> Added Paths
>> 
>> 	• MacRuby/trunk/spec/macruby/core/gcd/
>> 	• MacRuby/trunk/spec/macruby/core/gcd/group_spec.rb
>> 	• MacRuby/trunk/spec/macruby/core/gcd/queue_spec.rb
>> Diff
>> 
>> Added: MacRuby/trunk/spec/macruby/core/gcd/group_spec.rb (0 => 3092)
>> 
>> --- MacRuby/trunk/spec/macruby/core/gcd/group_spec.rb	                        (rev 0)
>> +++ MacRuby/trunk/spec/macruby/core/gcd/group_spec.rb	2009-12-10 20:58:41 UTC (rev 3092)
>> 
>> @@ -0,0 +1,16 @@
>> 
>> +require File.dirname(__FILE__) + "/../../spec_helper"
>> +
>> +if MACOSX_VERSION >= 10.6  
>> +  describe "Dispatch::Group" do
>> +    it "returns an instance of Group" do
>> +      @group = Dispatch::Group.new
>> +      @group.should be_kind_of(Dispatch::Group)
>> +    end
>> +    
>> +    describe "#notify" do
>> +    end
>> +    
>> +    describe "#wait" do
>> +    end
>> +  end
>> +end
>> 
>> Added: MacRuby/trunk/spec/macruby/core/gcd/queue_spec.rb (0 => 3092)
>> 
>> --- MacRuby/trunk/spec/macruby/core/gcd/queue_spec.rb	                        (rev 0)
>> +++ MacRuby/trunk/spec/macruby/core/gcd/queue_spec.rb	2009-12-10 20:58:41 UTC (rev 3092)
>> 
>> @@ -0,0 +1,186 @@
>> 
>> +require File.dirname(__FILE__) + "/../../spec_helper"
>> +
>> +if MACOSX_VERSION >= 10.6
>> +  describe "Dispatch::Queue.concurrent" do
>> +    it "returns an instance of Queue" do
>> +      o = Dispatch::Queue.concurrent
>> +      o.should be_kind_of(Dispatch::Queue)
>> +    end
>> +
>> +    it "can accept a symbol argument which represents the priority" do
>> +      o = Dispatch::Queue.concurrent(:low)
>> +      o.should be_kind_of(Dispatch::Queue)
>> + 
>> +      o = Dispatch::Queue.concurrent(:default)
>> +      o.should be_kind_of(Dispatch::Queue)
>> +
>> +      o = Dispatch::Queue.concurrent(:high)
>> +      o.should be_kind_of(Dispatch::Queue)
>> +
>> +      lambda { Dispatch::Queue.concurrent(42) }.should raise_error(TypeError)
>> +    end
>> +
>> +    it "raises an ArgumentError if the given argument is not a valid priority symbol" do
>> +      lambda { Dispatch::Queue.concurrent(:foo) }.should raise_error(ArgumentError)
>> +    end
>> +    
>> +    it "should return the same queue object across invocations" do
>> +      a = Dispatch::Queue.concurrent(:low)
>> +      b = Dispatch::Queue.concurrent(:low)
>> +      a.should eql?(b)
>> +    end
>> +    
>> +    it "raises a TypeError if the provided priority is not a symbol" do
>> +      lambda { Dispatch::Queue.concurrent(42) }.should raise_error(TypeError)
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue.current" do
>> +    it "returns an instance of Queue" do
>> +      o = Dispatch::Queue.current
>> +      o.should be_kind_of(Dispatch::Queue)
>> +    end
>> +    
>> +    it "should return the parent queue when inside an executing block" do
>> +      q = Dispatch::Queue.new('org.macruby.rubyspecs.gcd.test')
>> +      @q2 = nil
>> +      q.async do
>> +        @q2 = Dispatch::Queue.current
>> +      end
>> +      q.sync {}
>> +      q.label.should == @q2.label
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue.main" do
>> +    it "returns an instance of Queue" do
>> +      o = Dispatch::Queue.main
>> +      o.should be_kind_of(Dispatch::Queue)
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue.new" do
>> +    it "accepts a name and returns an instance of Queue" do
>> +      o = Dispatch::Queue.new('foo')
>> +      o.should be_kind_of(Dispatch::Queue)
>> +
>> +      lambda { Dispatch::Queue.new('foo', 42) }.should raise_error(ArgumentError)
>> +      lambda { Dispatch::Queue.new(42) }.should raise_error(TypeError)
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue#async" do
>> +    it "accepts a block and yields it asynchronously" do
>> +      o = Dispatch::Queue.new('foo')
>> +      @i = 0
>> +      o.async { @i = 42 }
>> +      while @i == 0 do; end
>> +      @i.should == 42
>> +    end
>> +
>> +    it "accepts a block and yields it asynchronously through a group if given" do
>> +      o = Dispatch::Queue.new('foo')
>> +      g = Dispatch::Group.new
>> +      @i = 0
>> +      o.async(g) { @i = 42 }
>> +      g.wait
>> +      @i.should == 42
>> +
>> +      lambda { o.async(42) }.should raise_error(ArgumentError)
>> +    end
>> +
>> +    it "raises an ArgumentError if no block is given" do
>> +      o = Dispatch::Queue.new('foo')
>> +      lambda { o.async }.should raise_error(ArgumentError) 
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue#sync" do
>> +    it "accepts a block and yields it synchronously" do
>> +      o = Dispatch::Queue.new('foo')
>> +      @i = 0
>> +      o.sync { @i = 42 }
>> +      @i.should == 42
>> +    end
>> +
>> +    it "raises an ArgumentError if no block is given" do
>> +      o = Dispatch::Queue.new('foo')
>> +      lambda { o.sync }.should raise_error(ArgumentError) 
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue#apply" do
>> +    it "accepts an input size and a block and yields it as many times" do
>> +      o = Dispatch::Queue.new('foo')
>> +      @i = 0
>> +      o.apply(10) { @i += 1 }
>> +      @i.should == 10
>> +      @i = 42
>> +      o.apply(0) { @i += 1 }
>> +      @i.should == 42
>> +
>> +      lambda { o.apply(nil) {} }.should raise_error(TypeError) 
>> +    end
>> +
>> +    it "raises an ArgumentError if no block is given" do
>> +      o = Dispatch::Queue.new('foo')
>> +      lambda { o.apply(42) }.should raise_error(ArgumentError) 
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue#after" do
>> +    it "accepts a given time (in seconds) and a block and yields it after" do
>> +      o = Dispatch::Queue.new('foo')
>> +      @i = 0
>> +      t = Time.now
>> +      o.after(0.2) { @i = 42 }
>> +      while @i == 0 do; end
>> +      t2 = Time.now - t
>> +      t2.should >= 0.2
>> +      t2.should < 0.5
>> +      @i.should == 42
>> +
>> +      lambda { o.after(nil) {} }.should raise_error(TypeError) 
>> +    end
>> +
>> +    it "raises an ArgumentError if no block is given" do
>> +      o = Dispatch::Queue.new('foo')
>> +      lambda { o.after(42) }.should raise_error(ArgumentError) 
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue#label" do
>> +    it "returns the name of the queue" do
>> +      o = Dispatch::Queue.new('foo')
>> +      o.label.should == 'foo'
>> +
>> +      o = Dispatch::Queue.main
>> +      o.label.should == 'com.apple.main-thread'
>> +    end
>> +  end
>> +
>> +  describe "Dispatch::Queue#suspend!" do
>> +    it "suspends the queue which can be resumed by calling #resume!" do
>> +      o = Dispatch::Queue.new('foo')
>> +      o.async { sleep 1 }
>> +      o.suspended?.should == false
>> +      o.suspend! 
>> +      o.suspended?.should == true
>> +      o.resume!
>> +      o.suspended?.should == false
>> +    end
>> +  end
>> +  
>> +  describe "Dispatch::Group" do
>> +    it "returns an instance of Group" do
>> +      @group = Dispatch::Group.new
>> +      @group.should be_kind_of(Dispatch::Group)
>> +    end
>> +    
>> +    describe "#notify" do
>> +    end
>> +    
>> +    describe "#wait" do
>> +    end
>> +  end
>> +end
>> 
>> _______________________________________________
>> macruby-changes mailing list
>> macruby-changes at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-changes
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list