[macruby-changes] [3104] MacRuby/trunk/spec/macruby

source_changes at macosforge.org source_changes at macosforge.org
Fri Dec 11 09:09:11 PST 2009


Revision: 3104
          http://trac.macosforge.org/projects/ruby/changeset/3104
Author:   eloy.de.enige at gmail.com
Date:     2009-12-11 09:09:10 -0800 (Fri, 11 Dec 2009)
Log Message:
-----------
Disable the GCD source spec for now and tagged failing examples.

The disabled spec can still be run by specifying it explicitely.

Modified Paths:
--------------
    MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/semaphore_tags.txt

Added Paths:
-----------
    MacRuby/trunk/spec/macruby/core/gcd/source_spec_disabled.rb
    MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/group_tags.txt

Removed Paths:
-------------
    MacRuby/trunk/spec/macruby/core/gcd/source_spec.rb
    MacRuby/trunk/spec/macruby/tags/macruby/core/group_tags.txt

Deleted: MacRuby/trunk/spec/macruby/core/gcd/source_spec.rb
===================================================================
--- MacRuby/trunk/spec/macruby/core/gcd/source_spec.rb	2009-12-11 16:55:48 UTC (rev 3103)
+++ MacRuby/trunk/spec/macruby/core/gcd/source_spec.rb	2009-12-11 17:09:10 UTC (rev 3104)
@@ -1,315 +0,0 @@
-require File.dirname(__FILE__) + "/../../spec_helper"
-
-if MACOSX_VERSION >= 10.6
-
-  describe "Dispatch::Source" do
-    before :each do
-      @q = Dispatch::Queue.new('org.macruby.gcd_spec.sources')
-    end
-
-    describe "custom events" do
-      describe "on_add" do
-        before :each do
-          @src = @q.on_add {|count| count.should == 42}
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_add }.should raise_error(ArgumentError)
-        end
-
-        it "takes no arguments" do
-          lambda { @q.on_add(1) { }}.should raise_error(ArgumentError)
-        end
-
-        it "should execute event handler when Fixnum merged with <<" do
-          @src.suspend
-          @src << 20
-          @src << 22
-          @src.resume
-          @q.sync {}
-        end
-
-        it "will only merge Fixnum arguments" do
-          lambda { @src << :foo}.should raise_error(ArgumentError)
-        end
-      end    
-
-      describe "on_or" do
-        before :each do
-          @src = @q.on_or {|count| count.should == 0b1011}
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_or }.should raise_error(ArgumentError)
-        end
-
-        it "takes no arguments" do
-          lambda { @q.on_or(1) { }}.should raise_error(ArgumentError)
-        end
-
-        it "fires the event handler when merging data using <<" do
-          @src.suspend
-          @src << 0b0011
-          @src << 0b1010
-          @src.resume
-          @q.sync {}
-        end
-
-        it "will only merge Fixnum arguments" do
-          lambda { @src << :foo}.should raise_error(ArgumentError)
-        end
-      end    
-    end
-
-    describe "process events" do
-      before :each do
-        @test_signal = "USR1"
-      end
-
-      describe "on_process_event" do
-        before :each do
-          @src = @q.on_process_event($$, :exit, :fork, :exec, :reap, :signal) { |mask| mask[0].should == :signal }
-        end
-
-        after :each do
-          @src.cancel
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_process_event($$, :exit, :fork, :exec, :reap, :signal) }.should raise_error(ArgumentError)
-        end
-
-        it "takes a process_id plus one or more symbols" do
-          lambda { @q.on_process_event(:exit, :fork, :exec, :reap, :signal) {} }.should raise_error(ArgumentError)
-          lambda { @q.on_process_event($$) {} }.should raise_error(ArgumentError)
-        end
-
-        it "should automatically mask any handled signals (?)" do
-          @q.on_signal(:KILL) {}
-          #@Process.kill(:KILL, $$) Don't try this very often until it works :-)
-          @q.sync {}
-
-        end
-
-        it "fires the event handler with a mask indicating the process event" do
-          Process.kill(@test_signal, $$)                # send myself a SIGUSR1
-          @q.sync {}
-        end
-      end
-
-      describe "on_signal" do
-        before :each do
-          @src = @q.on_signal(@test_signal) { |count| count == 2 }
-        end
-
-        after :each do
-          @src.cancel
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_signal(@test_signal) }.should raise_error(ArgumentError)
-        end
-
-        it "takes the same signal identifiers as Process#kill" do
-          lambda { @q.on_signal(9) {} }.should_not raise_error(ArgumentError)
-          lambda { @q.on_signal("KILL") {} }.should_not raise_error(ArgumentError)
-          lambda { @q.on_signal("SIG_KILL") {} }.should_not raise_error(ArgumentError)
-          lambda { @q.on_signal(:KILL) {} }.should_not raise_error(ArgumentError)
-          lambda { @q.on_signal(9.5) {} }.should raise_error(ArgumentError)
-        end
-
-        it "fires the event handler with count of how often the current process is signaled" do
-          @src.suspend
-          Process.kill(@test_signal, $$)                # send myself a SIGUSR1
-          Process.kill(@test_signal, $$)                # send myself a SIGUSR1
-          @src.resume
-          @q.sync {}
-        end
-
-      end    
-
-    end    
-
-    describe "on_timer" do
-      before :each do
-        @src = @q.on_timer(Time.now, 0.1, 0.01) { |count| count.should >= 2 }
-      end
-
-      after :each do
-        @src.cancel
-      end
-
-      it "returns a Source for a queue " do
-        @src.should be_kind_of(Dispatch::Source)
-      end
-
-      it "should not be suspended" do
-        @src.suspended?.should == false
-      end
-
-      it "takes an event handler block" do
-        lambda { @q.on_timer(Time.now, 0.1, 0.01) }.should raise_error(ArgumentError)
-      end
-
-      it "takes start time, interval in seconds, and optional leeway" do
-        lambda { @q.on_timer(Time.now, 0.1, 0.01) {} }.should_not raise_error(ArgumentError)
-        lambda { @q.on_timer(Time.now, 0.1) {} }.should_not raise_error(ArgumentError)
-        lambda { @q.on_timer(0.1, Time.now) {} }.should raise_error(TypeError)
-      end
-
-      it "fires the event handler with count of how often the timer has fired" do
-        sleep 0.3
-        @q.sync {}
-      end
-
-    end    
-
-    describe "file events" do
-      before :each do
-        @filename = tmp("gcd_spec_source-#{$$}")
-          @msg = "#{Time.now}: on_file_event"
-      end
-
-      describe "on_file_event" do
-        before :each do
-          @file = File.open(@filename, "w")
-          @src = @q.on_file_event(@file, :delete, :write, :extend, :attrib, :link, :rename, :revoke) {|mask| mask[0].should == :write}
-        end
-
-        after :each do
-          @src.cancel
-          @file.close
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_file_event(file, :delete) }.should raise_error(ArgumentError)
-        end
-
-        it "takes an IO object plus one or more symbols" do
-          lambda { @q.on_file_event(file, :delete) {}}.should_not raise_error(ArgumentError)
-          lambda { @q.on_file_event(file) {} }.should raise_error(ArgumentError)
-          lambda { @q.on_file_event(:delete) {} }.should raise_error(ArgumentError)
-        end
-
-        it "fires the event handler with a mask indicating the file event" do
-          @file.puts @msg
-          @q.sync {}
-        end
-      end    
-
-      describe "on_write" do
-        before :each do
-          @file = File.open(@filename, "w")
-          @src = @q.on_write(@file) { |count| @file.puts @msg if @msg.size < count}
-        end
-
-        after :each do
-          @file.close
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_write(@file) }.should raise_error(ArgumentError)
-        end
-
-        it "takes an IO object" do
-          lambda { @q.on_write(@file) {}}.should_not raise_error(ArgumentError)
-          lambda { @q.on_write(@filename) {}}.should raise_error(ArgumentError)
-        end
-
-        it "fires the event handler with the number of bytes that can be written" do
-          @q.sync {}
-        end
-
-        it "should ensure the file is closed when the source is cancelled (?)" do
-        end
-      end    
-
- 
-      describe "on_read" do
-        before :each do
-          @file = File.open(@filename, "r")
-          @src = @q.on_read(@file) { |count| d = file.gets if count > @msg.size }
-        end
-
-        after :each do
-          @file.close
-        end
-
-        it "returns a Source for a queue " do
-          @src.should be_kind_of(Dispatch::Source)
-        end
-
-        it "should not be suspended" do
-          @src.suspended?.should == false
-        end
-
-        it "takes an event handler block" do
-          lambda { @q.on_read(@file) }.should raise_error(ArgumentError)
-        end
-
-        it "takes an IO object" do
-          lambda { @q.on_read(@file) {}}.should_not raise_error(ArgumentError)
-          lambda { @q.on_read(@filename) {}}.should raise_error(ArgumentError)
-        end
-
-        it "fires the event handler with the number of bytes that can be read" do
-          @q.sync {}
-        end
-
-        it "should ensure the file is closed when the source is cancelled (?)" do
-        end
-
-      end    
-   end
-
-  end
-
-end

Copied: MacRuby/trunk/spec/macruby/core/gcd/source_spec_disabled.rb (from rev 3103, MacRuby/trunk/spec/macruby/core/gcd/source_spec.rb)
===================================================================
--- MacRuby/trunk/spec/macruby/core/gcd/source_spec_disabled.rb	                        (rev 0)
+++ MacRuby/trunk/spec/macruby/core/gcd/source_spec_disabled.rb	2009-12-11 17:09:10 UTC (rev 3104)
@@ -0,0 +1,315 @@
+require File.dirname(__FILE__) + "/../../spec_helper"
+
+if MACOSX_VERSION >= 10.6
+
+  describe "Dispatch::Source" do
+    before :each do
+      @q = Dispatch::Queue.new('org.macruby.gcd_spec.sources')
+    end
+
+    describe "custom events" do
+      describe "on_add" do
+        before :each do
+          @src = @q.on_add {|count| count.should == 42}
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_add }.should raise_error(ArgumentError)
+        end
+
+        it "takes no arguments" do
+          lambda { @q.on_add(1) { }}.should raise_error(ArgumentError)
+        end
+
+        it "should execute event handler when Fixnum merged with <<" do
+          @src.suspend
+          @src << 20
+          @src << 22
+          @src.resume
+          @q.sync {}
+        end
+
+        it "will only merge Fixnum arguments" do
+          lambda { @src << :foo}.should raise_error(ArgumentError)
+        end
+      end    
+
+      describe "on_or" do
+        before :each do
+          @src = @q.on_or {|count| count.should == 0b1011}
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_or }.should raise_error(ArgumentError)
+        end
+
+        it "takes no arguments" do
+          lambda { @q.on_or(1) { }}.should raise_error(ArgumentError)
+        end
+
+        it "fires the event handler when merging data using <<" do
+          @src.suspend
+          @src << 0b0011
+          @src << 0b1010
+          @src.resume
+          @q.sync {}
+        end
+
+        it "will only merge Fixnum arguments" do
+          lambda { @src << :foo}.should raise_error(ArgumentError)
+        end
+      end    
+    end
+
+    describe "process events" do
+      before :each do
+        @test_signal = "USR1"
+      end
+
+      describe "on_process_event" do
+        before :each do
+          @src = @q.on_process_event($$, :exit, :fork, :exec, :reap, :signal) { |mask| mask[0].should == :signal }
+        end
+
+        after :each do
+          @src.cancel
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_process_event($$, :exit, :fork, :exec, :reap, :signal) }.should raise_error(ArgumentError)
+        end
+
+        it "takes a process_id plus one or more symbols" do
+          lambda { @q.on_process_event(:exit, :fork, :exec, :reap, :signal) {} }.should raise_error(ArgumentError)
+          lambda { @q.on_process_event($$) {} }.should raise_error(ArgumentError)
+        end
+
+        it "should automatically mask any handled signals (?)" do
+          @q.on_signal(:KILL) {}
+          #@Process.kill(:KILL, $$) Don't try this very often until it works :-)
+          @q.sync {}
+
+        end
+
+        it "fires the event handler with a mask indicating the process event" do
+          Process.kill(@test_signal, $$)                # send myself a SIGUSR1
+          @q.sync {}
+        end
+      end
+
+      describe "on_signal" do
+        before :each do
+          @src = @q.on_signal(@test_signal) { |count| count == 2 }
+        end
+
+        after :each do
+          @src.cancel
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_signal(@test_signal) }.should raise_error(ArgumentError)
+        end
+
+        it "takes the same signal identifiers as Process#kill" do
+          lambda { @q.on_signal(9) {} }.should_not raise_error(ArgumentError)
+          lambda { @q.on_signal("KILL") {} }.should_not raise_error(ArgumentError)
+          lambda { @q.on_signal("SIG_KILL") {} }.should_not raise_error(ArgumentError)
+          lambda { @q.on_signal(:KILL) {} }.should_not raise_error(ArgumentError)
+          lambda { @q.on_signal(9.5) {} }.should raise_error(ArgumentError)
+        end
+
+        it "fires the event handler with count of how often the current process is signaled" do
+          @src.suspend
+          Process.kill(@test_signal, $$)                # send myself a SIGUSR1
+          Process.kill(@test_signal, $$)                # send myself a SIGUSR1
+          @src.resume
+          @q.sync {}
+        end
+
+      end    
+
+    end    
+
+    describe "on_timer" do
+      before :each do
+        @src = @q.on_timer(Time.now, 0.1, 0.01) { |count| count.should >= 2 }
+      end
+
+      after :each do
+        @src.cancel
+      end
+
+      it "returns a Source for a queue " do
+        @src.should be_kind_of(Dispatch::Source)
+      end
+
+      it "should not be suspended" do
+        @src.suspended?.should == false
+      end
+
+      it "takes an event handler block" do
+        lambda { @q.on_timer(Time.now, 0.1, 0.01) }.should raise_error(ArgumentError)
+      end
+
+      it "takes start time, interval in seconds, and optional leeway" do
+        lambda { @q.on_timer(Time.now, 0.1, 0.01) {} }.should_not raise_error(ArgumentError)
+        lambda { @q.on_timer(Time.now, 0.1) {} }.should_not raise_error(ArgumentError)
+        lambda { @q.on_timer(0.1, Time.now) {} }.should raise_error(TypeError)
+      end
+
+      it "fires the event handler with count of how often the timer has fired" do
+        sleep 0.3
+        @q.sync {}
+      end
+
+    end    
+
+    describe "file events" do
+      before :each do
+        @filename = tmp("gcd_spec_source-#{$$}")
+          @msg = "#{Time.now}: on_file_event"
+      end
+
+      describe "on_file_event" do
+        before :each do
+          @file = File.open(@filename, "w")
+          @src = @q.on_file_event(@file, :delete, :write, :extend, :attrib, :link, :rename, :revoke) {|mask| mask[0].should == :write}
+        end
+
+        after :each do
+          @src.cancel
+          @file.close
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_file_event(file, :delete) }.should raise_error(ArgumentError)
+        end
+
+        it "takes an IO object plus one or more symbols" do
+          lambda { @q.on_file_event(file, :delete) {}}.should_not raise_error(ArgumentError)
+          lambda { @q.on_file_event(file) {} }.should raise_error(ArgumentError)
+          lambda { @q.on_file_event(:delete) {} }.should raise_error(ArgumentError)
+        end
+
+        it "fires the event handler with a mask indicating the file event" do
+          @file.puts @msg
+          @q.sync {}
+        end
+      end    
+
+      describe "on_write" do
+        before :each do
+          @file = File.open(@filename, "w")
+          @src = @q.on_write(@file) { |count| @file.puts @msg if @msg.size < count}
+        end
+
+        after :each do
+          @file.close
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_write(@file) }.should raise_error(ArgumentError)
+        end
+
+        it "takes an IO object" do
+          lambda { @q.on_write(@file) {}}.should_not raise_error(ArgumentError)
+          lambda { @q.on_write(@filename) {}}.should raise_error(ArgumentError)
+        end
+
+        it "fires the event handler with the number of bytes that can be written" do
+          @q.sync {}
+        end
+
+        it "should ensure the file is closed when the source is cancelled (?)" do
+        end
+      end    
+
+ 
+      describe "on_read" do
+        before :each do
+          @file = File.open(@filename, "r")
+          @src = @q.on_read(@file) { |count| d = file.gets if count > @msg.size }
+        end
+
+        after :each do
+          @file.close
+        end
+
+        it "returns a Source for a queue " do
+          @src.should be_kind_of(Dispatch::Source)
+        end
+
+        it "should not be suspended" do
+          @src.suspended?.should == false
+        end
+
+        it "takes an event handler block" do
+          lambda { @q.on_read(@file) }.should raise_error(ArgumentError)
+        end
+
+        it "takes an IO object" do
+          lambda { @q.on_read(@file) {}}.should_not raise_error(ArgumentError)
+          lambda { @q.on_read(@filename) {}}.should raise_error(ArgumentError)
+        end
+
+        it "fires the event handler with the number of bytes that can be read" do
+          @q.sync {}
+        end
+
+        it "should ensure the file is closed when the source is cancelled (?)" do
+        end
+
+      end    
+   end
+
+  end
+
+end

Added: MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/group_tags.txt
===================================================================
--- MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/group_tags.txt	                        (rev 0)
+++ MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/group_tags.txt	2009-12-11 17:09:10 UTC (rev 3104)
@@ -0,0 +1 @@
+fails:Dispatch::Group wait can wait forever until associated blocks have been run

Modified: MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/semaphore_tags.txt
===================================================================
--- MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/semaphore_tags.txt	2009-12-11 16:55:48 UTC (rev 3103)
+++ MacRuby/trunk/spec/macruby/tags/macruby/core/gcd/semaphore_tags.txt	2009-12-11 17:09:10 UTC (rev 3104)
@@ -0,0 +1,6 @@
+fails:Dispatch::Semaphore raises an ArgumentError if the width isn't specified
+fails:Dispatch::Semaphore raises an TypeError if a non-integer width is provided
+fails:Dispatch::Semaphore returns nil object if the specified width is less than zero
+fails:Dispatch::Semaphore returns non-zero from 'signal' if it does wake a thread
+fails:Dispatch::Semaphore returns zero from wait if explicit timeout does NOT expire
+fails:Dispatch::Semaphore always returns zero from wait with default timeout FOREVER
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091211/7c25814e/attachment-0001.html>


More information about the macruby-changes mailing list