[macruby-changes] [2488] MacRuby/trunk/spec/frozen

source_changes at macosforge.org source_changes at macosforge.org
Sat Sep 5 09:27:09 PDT 2009


Revision: 2488
          http://trac.macosforge.org/projects/ruby/changeset/2488
Author:   eloy.de.enige at gmail.com
Date:     2009-09-05 09:27:09 -0700 (Sat, 05 Sep 2009)
Log Message:
-----------
Updated RubySpec to eaa3a371fabfcf84f8e04f98c3c53f3eff90f1c8

Modified Paths:
--------------
    MacRuby/trunk/spec/frozen/TODO
    MacRuby/trunk/spec/frozen/core/argf/lineno_spec.rb
    MacRuby/trunk/spec/frozen/core/array/pack_spec.rb
    MacRuby/trunk/spec/frozen/core/bignum/comparison_spec.rb
    MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb
    MacRuby/trunk/spec/frozen/core/dir/chroot_spec.rb
    MacRuby/trunk/spec/frozen/core/dir/entries_spec.rb
    MacRuby/trunk/spec/frozen/core/dir/foreach_spec.rb
    MacRuby/trunk/spec/frozen/core/dir/mkdir_spec.rb
    MacRuby/trunk/spec/frozen/core/dir/path_spec.rb
    MacRuby/trunk/spec/frozen/core/dir/shared/delete.rb
    MacRuby/trunk/spec/frozen/core/dir/shared/exists.rb
    MacRuby/trunk/spec/frozen/core/dir/shared/open.rb
    MacRuby/trunk/spec/frozen/core/file/absolute_path_spec.rb
    MacRuby/trunk/spec/frozen/core/file/atime_spec.rb
    MacRuby/trunk/spec/frozen/core/file/basename_spec.rb
    MacRuby/trunk/spec/frozen/core/file/chmod_spec.rb
    MacRuby/trunk/spec/frozen/core/file/chown_spec.rb
    MacRuby/trunk/spec/frozen/core/file/ctime_spec.rb
    MacRuby/trunk/spec/frozen/core/file/dirname_spec.rb
    MacRuby/trunk/spec/frozen/core/file/expand_path_spec.rb
    MacRuby/trunk/spec/frozen/core/file/extname_spec.rb
    MacRuby/trunk/spec/frozen/core/file/initialize_spec.rb
    MacRuby/trunk/spec/frozen/core/file/shared/fnmatch.rb
    MacRuby/trunk/spec/frozen/core/file/shared/stat.rb
    MacRuby/trunk/spec/frozen/core/file/shared/unlink.rb
    MacRuby/trunk/spec/frozen/core/file/size_spec.rb
    MacRuby/trunk/spec/frozen/core/file/split_spec.rb
    MacRuby/trunk/spec/frozen/core/file/stat/new_spec.rb
    MacRuby/trunk/spec/frozen/core/file/symlink_spec.rb
    MacRuby/trunk/spec/frozen/core/file/truncate_spec.rb
    MacRuby/trunk/spec/frozen/core/file/utime_spec.rb
    MacRuby/trunk/spec/frozen/core/float/comparison_spec.rb
    MacRuby/trunk/spec/frozen/core/hash/merge_spec.rb
    MacRuby/trunk/spec/frozen/core/io/foreach_spec.rb
    MacRuby/trunk/spec/frozen/core/io/read_spec.rb
    MacRuby/trunk/spec/frozen/core/io/reopen_spec.rb
    MacRuby/trunk/spec/frozen/core/io/sysopen_spec.rb
    MacRuby/trunk/spec/frozen/core/kernel/autoload_spec.rb
    MacRuby/trunk/spec/frozen/core/kernel/load_spec.rb
    MacRuby/trunk/spec/frozen/core/kernel/test_spec.rb
    MacRuby/trunk/spec/frozen/core/module/autoload_spec.rb
    MacRuby/trunk/spec/frozen/core/module/fixtures/classes.rb
    MacRuby/trunk/spec/frozen/core/module/public_spec.rb
    MacRuby/trunk/spec/frozen/core/random/rand_spec.rb
    MacRuby/trunk/spec/frozen/core/range/to_a_spec.rb
    MacRuby/trunk/spec/frozen/core/string/each_spec.rb
    MacRuby/trunk/spec/frozen/core/string/sub_spec.rb
    MacRuby/trunk/spec/frozen/core/struct/eql_spec.rb
    MacRuby/trunk/spec/frozen/core/struct/shared/equal_value.rb
    MacRuby/trunk/spec/frozen/core/symbol/intern_spec.rb
    MacRuby/trunk/spec/frozen/language/super_spec.rb
    MacRuby/trunk/spec/frozen/language/variables_spec.rb
    MacRuby/trunk/spec/frozen/ruby.1.8.mspec
    MacRuby/trunk/spec/frozen/shared/enumerator/next.rb
    MacRuby/trunk/spec/frozen/shared/file/blockdev.rb
    MacRuby/trunk/spec/frozen/shared/file/chardev.rb
    MacRuby/trunk/spec/frozen/shared/file/directory.rb
    MacRuby/trunk/spec/frozen/shared/file/executable.rb
    MacRuby/trunk/spec/frozen/shared/file/executable_real.rb
    MacRuby/trunk/spec/frozen/shared/file/exist.rb
    MacRuby/trunk/spec/frozen/shared/file/file.rb
    MacRuby/trunk/spec/frozen/shared/file/grpowned.rb
    MacRuby/trunk/spec/frozen/shared/file/identical.rb
    MacRuby/trunk/spec/frozen/shared/file/owned.rb
    MacRuby/trunk/spec/frozen/shared/file/pipe.rb
    MacRuby/trunk/spec/frozen/shared/file/readable.rb
    MacRuby/trunk/spec/frozen/shared/file/readable_real.rb
    MacRuby/trunk/spec/frozen/shared/file/size.rb
    MacRuby/trunk/spec/frozen/shared/file/socket.rb
    MacRuby/trunk/spec/frozen/shared/file/sticky.rb
    MacRuby/trunk/spec/frozen/shared/file/symlink.rb
    MacRuby/trunk/spec/frozen/shared/file/world_readable.rb
    MacRuby/trunk/spec/frozen/shared/file/world_writable.rb
    MacRuby/trunk/spec/frozen/shared/file/writable.rb
    MacRuby/trunk/spec/frozen/shared/file/writable_real.rb
    MacRuby/trunk/spec/frozen/shared/file/zero.rb
    MacRuby/trunk/spec/frozen/tags/1.9/core/argf/each_byte_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/array/pack_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/join_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/fixnum/exponent_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/ungetc_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/eval_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/instance_eval_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/acos_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/atanh_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/string/element_set_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/string/gsub_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/inspect_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/status_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/stop_tags.txt
    MacRuby/trunk/spec/frozen/upstream

Added Paths:
-----------
    MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.orig
    MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.rej
    MacRuby/trunk/spec/frozen/core/dir/shared/path.rb
    MacRuby/trunk/spec/frozen/core/dir/to_path.rb
    MacRuby/trunk/spec/frozen/core/file/reopen_spec.rb
    MacRuby/trunk/spec/frozen/core/io/codepoints_spec.rb
    MacRuby/trunk/spec/frozen/core/io/each_codepoint_spec.rb
    MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.orig
    MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.rej
    MacRuby/trunk/spec/frozen/core/symbol/casecmp_spec.rb
    MacRuby/trunk/spec/frozen/core/symbol/comparison_spec.rb
    MacRuby/trunk/spec/frozen/language/versions/variables_1.9.rb

Removed Paths:
-------------
    MacRuby/trunk/spec/frozen/core/io/codepoints.rb
    MacRuby/trunk/spec/frozen/core/io/each_codepoint.rb
    MacRuby/trunk/spec/frozen/core/random/float_spec.rb
    MacRuby/trunk/spec/frozen/core/random/int_spec.rb
    MacRuby/trunk/spec/frozen/tags/1.9/core/argf/skip_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/array/zip_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_and_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_or_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_xor_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/comparison_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/class/new_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/class/superclass_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/partition_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/reject_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/file/chmod_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/file/expand_path_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/float/to_s_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/eof_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/for_fd_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/inspect_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/new_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/open_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/print_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/io/read_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/callcc_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/global_variables_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/load_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/local_variables_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/p_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/private_methods_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/protected_methods_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/public_methods_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/singleton_methods_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/warn_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/dump_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/load_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/acosh_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/asin_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/asinh_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan2_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/cos_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/cosh_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/exp_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/log10_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/log_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/sin_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/sinh_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/sqrt_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/tan_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/math/tanh_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/method/clone_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/quo_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/step_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/proc/to_s_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/regexp/inspect_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/string/scan_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/struct/inspect_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/alive_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_reference_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_set_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/join_tags.txt
    MacRuby/trunk/spec/frozen/tags/1.9/core/thread/key_tags.txt

Modified: MacRuby/trunk/spec/frozen/TODO
===================================================================
--- MacRuby/trunk/spec/frozen/TODO	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/TODO	2009-09-05 16:27:09 UTC (rev 2488)
@@ -11,10 +11,6 @@
 * File ticket: $ ruby86 -e 'p ARGF.skip'
   -e:1:in `skip': undefined method `close' for false:FalseClass (NoMethodError)
   from -e:1 (Reported as bug #1653; update spec based on outcome).
-* The failing ARGF#lineno tests are due to a race-ish condition whereby if the
-  test is executed in the same run as other ARGF tests the #lineno value isn't
-  reset. This can be fixed by explicitly reseting #lineno in the test, but
-  that could mask another bug... Figure out who's to blame here.
 * Use the variable matchers which take into consideration the difference of the
   returned type of variable name. Which is String on 1.8 and Symbol on 1.9.
   Examples include: have_constant, have_instance_variable, etc.
@@ -37,27 +33,18 @@
 
 # 1.9
 =========
-* Methods expecting filenames or paths should call #to_path on non-String
-  arguments. Tests need adding, and tickets may need filing for non-conforming
-  methods.
 * Methods that could modify a frozen receiver should raise RuntimeError, even
   if the method's arguments are such that no modification would occur.
 * The inclusion of 'rational' by default has resulted in ZeroDivisionErrors
   being raised where they previously weren't. What is the rule of thumb in
   determining whether this outcome is intentional?
-* Discover why core/kernel/caller_spec.rb has failures on 1.9. What's the
-  cause of this behaviour?
 * Unify treatment of bugs after conversation with brixen. Bugs that occur only
   in 1.9 shouldn't be guarded; we just tag them with the bug number, e.g. " mspec
   tag --add 'fails(#555)' -e 'the failing stuff' path/to/spec".
-* Ask Ruby core about what Array#pack should do to encoding; citing failing
-  tests as example questions.
 * Spec Ripper.
 * 1.9 defines methods such as instance_eval on BasicObject; not Kernel as in
   1.8. Do we need to share these specs so that the methods are specified in
   the correct place?
-* #public_send and #send could share some common functionality, but shared
-  specs use #send internally. Ask brixen what to do.
 * Determine how we're going to specify the vast Gem module...
 * Specify require_relative
 * Share Enumerable#join with Hash#join once Enumerable#join is more stable.

Modified: MacRuby/trunk/spec/frozen/core/argf/lineno_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/argf/lineno_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/argf/lineno_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -14,6 +14,7 @@
   # TODO: break this into four specs
   it "returns the current line number on each file" do
     argv [@file1, @file2, @file1, @file2] do
+      ARGF.lineno = 0
       ARGF.gets
       ARGF.lineno.should == 1
       ARGF.gets
@@ -22,26 +23,31 @@
       ARGF.lineno.should == 3
       ARGF.gets
       ARGF.lineno.should == 4
+    end
+  end
 
-      ARGF.rewind
-      ARGF.lineno.should == 4
-      ARGF.gets
-      ARGF.lineno.should == 3
+  ruby_bug "#1693", "1.8" do
+    it "resets to 0 after the stream is rewound" do
+      argv [@file1, @file2, @file1, @file2] do
+        ARGF.lineno = 0
+        ARGF.lineno.should == 0
+        ARGF.readline
+        ARGF.rewind
+        ARGF.lineno.should == 0
+      end
+    end
+  end
 
-      ARGF.lineno = 1000
-      $..should == 1000
+  it "aliases to $." do
+    argv [@file1, @file2, @file1, @file2] do
       ARGF.gets
-      $..should == 1001
+      $..should == 1
       ARGF.gets
-      $..should == 1002
-
-      $. = 2000
+      $..should == 2
       ARGF.gets
-      $..should == 2001
+      $..should == 3
       ARGF.gets
-      $..should == 2002
-      ARGF.read
-      $..should == 2002
+      $..should == 4
     end
   end
 end

Modified: MacRuby/trunk/spec/frozen/core/array/pack_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/array/pack_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/array/pack_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -2282,18 +2282,17 @@
   end
 
   ruby_version_is '1.9' do
-    it "doesn't change encoding of the result string" do
-      [0x41, 0x42, 0x43].pack('U3X').encoding.should == Encoding::UTF_8
+    it "returns an ASCII 8-bit String" do
+      [0x41, 0x42, 0x43].pack('U3X').encoding.should == Encoding::ASCII_8BIT
       [1, 2, 3].pack('w3X').encoding.should == Encoding::ASCII_8BIT
-      ["\x01\x02"].pack("mX").encoding.should == Encoding::US_ASCII
+      ["\x01\x02"].pack("mX").encoding.should == Encoding::ASCII_8BIT
     end
 
-    it "doesn't care even if breaks a character" do
+    it "doesn't care if it breaks a character" do
       str = nil
       lambda { str = [0x3042].pack("UX") }.should_not raise_error
-      str.encoding.should == Encoding::UTF_8
+      str.encoding.should == Encoding::ASCII_8BIT
       str.bytesize.should == 2
-      str.valid_encoding?.should be_false
     end
   end
 end
@@ -2317,18 +2316,17 @@
   end
 
   ruby_version_is '1.9' do
-    it "doesn't change encoding of the result string" do
-      [0x41, 0x42, 0x43].pack('U3 at 6').encoding.should == Encoding::UTF_8
+    it "returns a String in ASCII 8-bit" do
+      [0x41, 0x42, 0x43].pack('U3 at 6').encoding.should == Encoding::ASCII_8BIT
       [1, 2, 3].pack('w3 at 3').encoding.should == Encoding::ASCII_8BIT
-      ["\x01\x02"].pack("m at 4").encoding.should == Encoding::US_ASCII
+      ["\x01\x02"].pack("m at 4").encoding.should == Encoding::ASCII_8BIT
     end
 
     it "doesn't care even if breaks a character" do
       str = nil
       lambda { str = [0x3042].pack("U at 2") }.should_not raise_error
-      str.encoding.should == Encoding::UTF_8
+      str.encoding.should == Encoding::ASCII_8BIT
       str.bytesize.should == 2
-      str.valid_encoding?.should be_false
     end
   end
 end

Modified: MacRuby/trunk/spec/frozen/core/bignum/comparison_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/bignum/comparison_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/bignum/comparison_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -49,7 +49,7 @@
     end
   end
 
-  ruby_bug "[ruby-dev:38672] [Bug #1645]", "1.8.6.369" do
+  ruby_bug "[ruby-dev:38672] [Bug #1645]", "1.8.7" do
     # The 4 tests below are taken from matz's revision 23730 for Ruby trunk
     #
     it "returns 1 when self is Infinity and other is a Bignum" do

Modified: MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -4,7 +4,7 @@
 describe "Class.inherited" do
 
   before :each do
-    CoreClassSpecs::Record.called nil
+    ::CoreClassSpecs::Record.called(nil)
   end
   
   it "is invoked with the child Class when self is subclassed" do

Copied: MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.orig (from rev 2487, MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb)
===================================================================
--- MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.orig	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.orig	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,88 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+require File.dirname(__FILE__) + '/fixtures/classes'
+
+describe "Class.inherited" do
+
+  before :each do
+    CoreClassSpecs::Record.called nil
+  end
+  
+  it "is invoked with the child Class when self is subclassed" do
+    begin
+      top = Class.new do
+        def self.inherited(cls)
+          $child_class = cls
+        end
+      end
+      
+      child = Class.new(top)
+      $child_class.should == child
+
+      other_child = Class.new(top)
+      $child_class.should == other_child
+    ensure
+      $child_class = nil
+    end
+  end
+
+  it "is invoked only once per subclass" do
+    expected = [
+      [CoreClassSpecs::Inherited::A, CoreClassSpecs::Inherited::B],
+      [CoreClassSpecs::Inherited::B, CoreClassSpecs::Inherited::C],
+    ]
+
+    CoreClassSpecs::Inherited::A::SUBCLASSES.should == expected
+  end
+
+  it "is called when marked as a private class method" do
+    CoreClassSpecs::A.private_class_method :inherited
+    CoreClassSpecs::Record.called?.should == nil
+    module ::CoreClassSpecs; class B < A; end; end
+    CoreClassSpecs::Record.called?.should == CoreClassSpecs::B
+  end
+  
+  it "is called when marked as a protected class method" do
+    class << ::CoreClassSpecs::A
+      protected :inherited
+    end
+    CoreClassSpecs::Record.called?.should == nil
+    module ::CoreClassSpecs; class C < A; end; end
+    CoreClassSpecs::Record.called?.should == CoreClassSpecs::C
+  end
+  
+  it "is called when marked as a public class method" do
+    CoreClassSpecs::A.public_class_method :inherited
+    CoreClassSpecs::Record.called?.should == nil
+    module ::CoreClassSpecs; class D < A; end; end
+    CoreClassSpecs::Record.called?.should == CoreClassSpecs::D
+  end
+  
+  it "is called by super from a method provided by an included module" do
+    CoreClassSpecs::Record.called?.should == nil
+    module ::CoreClassSpecs; class E < F; end; end
+    CoreClassSpecs::Record.called?.should == CoreClassSpecs::E
+  end
+  
+  it "is called by super even when marked as a private class method" do
+    CoreClassSpecs::Record.called?.should == nil
+    CoreClassSpecs::H.private_class_method :inherited
+    module ::CoreClassSpecs; class I < H; end; end
+    CoreClassSpecs::Record.called?.should == CoreClassSpecs::I
+  end
+  
+  it "will be invoked by child class regardless of visibility" do
+    top = Class.new do
+      class << self
+        def inherited(cls); end
+      end
+    end
+
+    class << top; private :inherited; end
+    lambda { Class.new(top) }.should_not raise_error
+
+    class << top; protected :inherited; end
+    lambda { Class.new(top) }.should_not raise_error
+  end
+
+end
+

Added: MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.rej
===================================================================
--- MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.rej	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/class/inherited_spec.rb.rej	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,77 @@
+***************
+*** 37,73 ****
+    it "is called when marked as a private class method" do
+      CoreClassSpecs::A.private_class_method :inherited
+      CoreClassSpecs::Record.called?.should == nil
+-     module CoreClassSpecs; class B < A; end; end
+-     CoreClassSpecs::Record.called?.should == CoreClassSpecs::B
+    end
+    
+    it "is called when marked as a protected class method" do
+-     class << CoreClassSpecs::A
+        protected :inherited
+      end
+-     CoreClassSpecs::Record.called?.should == nil
+-     module CoreClassSpecs; class C < A; end; end
+-     CoreClassSpecs::Record.called?.should == CoreClassSpecs::C
+    end
+    
+    it "is called when marked as a public class method" do
+-     CoreClassSpecs::A.public_class_method :inherited
+-     CoreClassSpecs::Record.called?.should == nil
+-     module CoreClassSpecs; class D < A; end; end
+-     CoreClassSpecs::Record.called?.should == CoreClassSpecs::D
+    end
+    
+    it "is called by super from a method provided by an included module" do
+-     CoreClassSpecs::Record.called?.should == nil
+-     module CoreClassSpecs; class E < F; end; end
+-     CoreClassSpecs::Record.called?.should == CoreClassSpecs::E
+    end
+    
+    it "is called by super even when marked as a private class method" do
+-     CoreClassSpecs::Record.called?.should == nil
+-     CoreClassSpecs::H.private_class_method :inherited
+-     module CoreClassSpecs; class I < H; end; end
+-     CoreClassSpecs::Record.called?.should == CoreClassSpecs::I
+    end
+    
+    it "will be invoked by child class regardless of visibility" do
+--- 37,73 ----
+    it "is called when marked as a private class method" do
+      CoreClassSpecs::A.private_class_method :inherited
+      CoreClassSpecs::Record.called?.should == nil
++     module ::CoreClassSpecs; class B < A; end; end
++     ::CoreClassSpecs::Record.called?.should == ::CoreClassSpecs::B
+    end
+    
+    it "is called when marked as a protected class method" do
++     class << ::CoreClassSpecs::A
+        protected :inherited
+      end
++     ::CoreClassSpecs::Record.called?.should == nil
++     module ::CoreClassSpecs; class C < A; end; end
++     ::CoreClassSpecs::Record.called?.should == ::CoreClassSpecs::C
+    end
+    
+    it "is called when marked as a public class method" do
++     ::CoreClassSpecs::A.public_class_method :inherited
++     ::CoreClassSpecs::Record.called?.should == nil
++     module ::CoreClassSpecs; class D < A; end; end
++     ::CoreClassSpecs::Record.called?.should == ::CoreClassSpecs::D
+    end
+    
+    it "is called by super from a method provided by an included module" do
++     ::CoreClassSpecs::Record.called?.should == nil
++     module ::CoreClassSpecs; class E < F; end; end
++     ::CoreClassSpecs::Record.called?.should == ::CoreClassSpecs::E
+    end
+    
+    it "is called by super even when marked as a private class method" do
++     ::CoreClassSpecs::Record.called?.should == nil
++     ::CoreClassSpecs::H.private_class_method :inherited
++     module ::CoreClassSpecs; class I < H; end; end
++     ::CoreClassSpecs::Record.called?.should == ::CoreClassSpecs::I
+    end
+    
+    it "will be invoked by child class regardless of visibility" do

Modified: MacRuby/trunk/spec/frozen/core/dir/chroot_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/chroot_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/chroot_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -34,6 +34,14 @@
           File.exists?(@ref_dir).should be_true
           File.exists?("/#{File.basename(__FILE__)}").should be_false
         end
+
+        ruby_version_is "1.9" do
+          it "calls #to_path on non-String argument" do
+            p = mock('path')
+            p.should_receive(:to_path).and_return(@real_root)
+            Dir.chroot(p)
+          end
+        end
       end
     end
 
@@ -43,9 +51,17 @@
           lambda { Dir.chroot('.') }.should raise_error(Errno::EPERM)
         end
 
-        it "raises an Errno::ENOENT exception if the directory doesn't exist" do
-          lambda { Dir.chroot('xgwhwhsjai2222jg') }.should raise_error(Errno::ENOENT)
+        it "raises a SystemCallError if the directory doesn't exist" do
+          lambda { Dir.chroot('xgwhwhsjai2222jg') }.should raise_error(SystemCallError)
         end
+
+        ruby_version_is "1.9" do
+          it "calls #to_path on non-String argument" do
+            p = mock('path')
+            p.should_receive(:to_path).and_return('.')
+            lambda { Dir.chroot(p) }.should raise_error
+          end
+        end
       end
     end
   end

Modified: MacRuby/trunk/spec/frozen/core/dir/entries_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/entries_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/entries_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -11,6 +11,14 @@
     a.should == %w|. .. .dotfile.ext directory|
   end
   
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(DirSpecs.mock_dir)
+      Dir.entries(p)
+    end
+  end
+
   it "raises a SystemCallError if called with a nonexistent diretory" do
     lambda { Dir.entries DirSpecs.nonexistent }.should raise_error(SystemCallError)
   end

Modified: MacRuby/trunk/spec/frozen/core/dir/foreach_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/foreach_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/foreach_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -16,6 +16,14 @@
     Dir.foreach(DirSpecs.mock_dir) {|f| f}.should == nil
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(DirSpecs.mock_dir)
+      Dir.foreach(p).to_a
+    end
+  end
+
   it "raises a SystemCallError if passed a nonexistent directory" do
     lambda { Dir.foreach(DirSpecs.nonexistent) {} }.should raise_error(SystemCallError)
   end

Modified: MacRuby/trunk/spec/frozen/core/dir/mkdir_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/mkdir_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/mkdir_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -34,6 +34,16 @@
     end
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      DirSpecs.clear_dirs
+      p = mock('path')
+      p.should_receive(:to_path).and_return('nonexisting')
+      Dir.mkdir(p)
+      DirSpecs.clear_dirs
+    end
+  end
+
   it "raises a SystemCallError when lacking adequate permissions in the parent dir" do
     # In case something happened it it didn't get cleaned up.
       FileUtils.rm_rf 'noperms' if File.directory? 'noperms'

Modified: MacRuby/trunk/spec/frozen/core/dir/path_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/path_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/path_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,31 +1,7 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require File.dirname(__FILE__) + '/fixtures/common'
-require File.dirname(__FILE__) + '/shared/closed'
+require File.dirname(__FILE__) + '/shared/path'
 
 describe "Dir#path" do
-  it "returns the path that was supplied to .new or .open" do
-    dir = Dir.open DirSpecs.mock_dir
-    dir.path.should == DirSpecs.mock_dir
-    dir.close rescue nil
-  end
+  it_behaves_like(:dir_path, :path)
 end
-
-describe "Dir#path" do
-  ruby_version_is ""..."1.8.7" do
-    it "raises an IOError when called on a closed Dir instance" do
-      lambda {
-        dir = Dir.open DirSpecs.mock_dir
-        dir.close
-        dir.path
-      }.should raise_error(IOError)
-    end
-  end
-
-  ruby_version_is "1.8.7" do
-    it "returns the path even when called on a closed Dir instance" do
-      dir = Dir.open DirSpecs.mock_dir
-      dir.close
-      dir.path.should == DirSpecs.mock_dir
-    end
-  end
-end

Modified: MacRuby/trunk/spec/frozen/core/dir/shared/delete.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/shared/delete.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/shared/delete.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -11,6 +11,15 @@
     Dir.send(@method, DirSpecs.mock_rmdir("empty")).should == 0
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      DirSpecs.rmdir_dirs
+      p = mock('path')
+      p.should_receive(:to_path).and_return(DirSpecs.mock_rmdir("empty"))
+      Dir.send(@method, p)
+    end
+  end
+
   it "raises a SystemCallError when trying to remove a nonempty directory" do
     lambda do
       Dir.send @method, DirSpecs.mock_rmdir("nonempty")

Modified: MacRuby/trunk/spec/frozen/core/dir/shared/exists.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/shared/exists.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/shared/exists.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -43,4 +43,11 @@
     Dir.send(@method, __FILE__).should be_false
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(File.dirname(__FILE__))
+      Dir.send(@method, p)
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/dir/shared/open.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/shared/open.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/dir/shared/open.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -36,4 +36,12 @@
 
     lambda { @closed_dir.close }.should raise_error(IOError)
   end
+
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(DirSpecs.mock_dir)
+      Dir.send(@method, p) { true }
+    end
+  end
 end

Copied: MacRuby/trunk/spec/frozen/core/dir/shared/path.rb (from rev 2487, MacRuby/trunk/spec/frozen/core/dir/path_spec.rb)
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/shared/path.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/dir/shared/path.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,29 @@
+require File.dirname(__FILE__) + '/../../../spec_helper'
+require File.dirname(__FILE__) + '/../fixtures/common'
+require File.dirname(__FILE__) + '/closed'
+
+describe :dir_path, :shared => true do
+  it "returns the path that was supplied to .new or .open" do
+    dir = Dir.open DirSpecs.mock_dir
+    dir.send(@method).should == DirSpecs.mock_dir
+    dir.close rescue nil
+  end
+
+  ruby_version_is ""..."1.8.7" do
+    it "raises an IOError when called on a closed Dir instance" do
+      lambda {
+        dir = Dir.open DirSpecs.mock_dir
+        dir.close
+        dir.send(@method)
+      }.should raise_error(IOError)
+    end
+  end
+
+  ruby_version_is "1.8.7" do
+    it "returns the path even when called on a closed Dir instance" do
+      dir = Dir.open DirSpecs.mock_dir
+      dir.close
+      dir.send(@method).should == DirSpecs.mock_dir
+    end
+  end
+end

Added: MacRuby/trunk/spec/frozen/core/dir/to_path.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/dir/to_path.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/dir/to_path.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,9 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+require File.dirname(__FILE__) + '/fixtures/common'
+require File.dirname(__FILE__) + '/shared/path'
+
+ruby_version_is "1.9" do
+  describe "Dir#to_path" do
+    it_behaves_like(:dir_path, :to_path)
+  end
+end

Modified: MacRuby/trunk/spec/frozen/core/file/absolute_path_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/absolute_path_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/absolute_path_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -25,9 +25,7 @@
     end
 
     it "calls #to_path on its argument" do
-      obj = mock('path')
-      obj.should_receive(:to_path).and_return(@abs)
-      File.absolute_path(obj).should == @abs
+      File.absolute_path(mock_to_path(@abs)).should == @abs
     end
   end
 end

Modified: MacRuby/trunk/spec/frozen/core/file/atime_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/atime_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/atime_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -18,6 +18,12 @@
   it "raises an Errno::ENOENT exception if the file is not found" do
     lambda { File.atime('a_fake_file') }.should raise_error(Errno::ENOENT)
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.atime(mock_to_path(@file))
+    end
+  end
 end
 
 describe "File#atime" do

Modified: MacRuby/trunk/spec/frozen/core/file/basename_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/basename_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/basename_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -102,6 +102,12 @@
     lambda { File.basename(true)         }.should raise_error(TypeError)
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.basename(mock_to_path("foo.txt"))
+    end
+  end
+
   it "raises an ArgumentError if passed more than two arguments" do
     lambda { File.basename('bar.txt', '.txt', '.txt') }.should raise_error(ArgumentError)
   end

Modified: MacRuby/trunk/spec/frozen/core/file/chmod_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/chmod_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/chmod_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -131,6 +131,12 @@
     end
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.chmod(0, mock_to_path(@file))
+    end
+  end
+
   it "throws a TypeError if the given path is not coercable into a string" do
     lambda { File.chmod(0, []) }.should raise_error(TypeError)
   end
@@ -156,7 +162,7 @@
       File.writable?(@file).should == false
       File.executable?(@file).should == true
     end
-    
+
     it "with '0644' makes file readable and writable and also executable" do
       File.chmod(0644, @file)
       File.readable?(@file).should == true

Modified: MacRuby/trunk/spec/frozen/core/file/chown_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/chown_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/chown_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -61,6 +61,12 @@
       it "returns the number of files processed" do
         File.chown(nil, nil, @fname, @fname).should == 2
       end
+
+      ruby_version_is "1.9" do
+        it "accepts an object that has a #to_path method" do
+          File.chown(nil, nil, mock_to_path(@fname)).should == 1
+        end
+      end
     end
   end
 

Modified: MacRuby/trunk/spec/frozen/core/file/ctime_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/ctime_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/ctime_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -14,6 +14,12 @@
     File.ctime(@file).class.should == Time
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.ctime(mock_to_path(@file))
+    end
+  end
+
   it "raises an Errno::ENOENT exception if the file is not found" do
     lambda { File.ctime('bogus') }.should raise_error(Errno::ENOENT)
   end

Modified: MacRuby/trunk/spec/frozen/core/file/dirname_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/dirname_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/dirname_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -60,6 +60,12 @@
     end
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.dirname(mock_to_path("/")).should == "/"
+    end
+  end
+
   it "raises a TypeError if not passed a String type" do
     lambda { File.dirname(nil)   }.should raise_error(TypeError)
     lambda { File.dirname(0)     }.should raise_error(TypeError)

Modified: MacRuby/trunk/spec/frozen/core/file/expand_path_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/expand_path_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/expand_path_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -96,6 +96,12 @@
     lambda { File.expand_path '../', 'tmp', 'foo' }.should raise_error(ArgumentError)
   end
 
+  ruby_version_is "1.9" do
+    it "accepts objects that have a #to_path method" do
+      File.expand_path(mock_to_path("a"), mock_to_path("#{@tmpdir}"))
+    end
+  end
+
   it "raises a TypeError if not passed a String type" do
     lambda { File.expand_path(1)    }.should raise_error(TypeError)
     lambda { File.expand_path(nil)  }.should raise_error(TypeError)

Modified: MacRuby/trunk/spec/frozen/core/file/extname_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/extname_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/extname_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -27,6 +27,12 @@
     File.extname("a.b.c.d.e").should == ".e"
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.extname(mock_to_path("a.b.c.d.e")).should == ".e"
+    end
+  end
+
   it "raises a TypeError if not passed a String type" do
     lambda { File.extname(nil)   }.should raise_error(TypeError)
     lambda { File.extname(0)     }.should raise_error(TypeError)

Modified: MacRuby/trunk/spec/frozen/core/file/initialize_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/initialize_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/initialize_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -3,3 +3,19 @@
 describe "File#initialize" do
   it "needs to be reviewed for spec completeness"
 end
+
+ruby_version_is '1.9' do
+  describe "File#initialize" do
+    it 'accepts encoding options in mode parameter' do
+      io = File.new(__FILE__, 'r:UTF-8:iso-8859-1')
+      io.external_encoding.to_s.should == 'UTF-8'
+      io.internal_encoding.to_s.should == 'ISO-8859-1'
+    end
+    
+    it 'accepts encoding options as a hash parameter' do
+      io = File.new(__FILE__, 'r', :encoding => 'UTF-8:iso-8859-1')
+      io.external_encoding.to_s.should == 'UTF-8'
+      io.internal_encoding.to_s.should == 'ISO-8859-1'
+    end
+  end
+end

Added: MacRuby/trunk/spec/frozen/core/file/reopen_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/reopen_spec.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/file/reopen_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,29 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+ruby_version_is "1.9" do
+  describe "File#reopen" do
+    before :each do
+      @file = tmp('test.txt')
+      @fh = nil
+      File.open(@file, "w") {|f| f << "1234567890"}
+    end
+
+    after :each do
+      @fh.close if @fh
+      File.delete(@file) if File.exists?(@file)
+      @fh    = nil
+      @file  = nil
+    end
+
+    it "resets the stream to a new file path" do
+      @fh = File.new(@file)
+      text = @fh.read
+      @fh = @fh.reopen(@file, "r")
+      @fh.read.should == text
+    end
+
+    it "accepts an object that has a #to_path method" do
+      @fh = File.new(@file).reopen(mock_to_path(@file), "r")
+    end
+  end
+end

Modified: MacRuby/trunk/spec/frozen/core/file/shared/fnmatch.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/shared/fnmatch.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/shared/fnmatch.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -160,6 +160,12 @@
     File.send(@method, pattern, 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH).should be_true
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.send(@method, '\*', mock_to_path('a')).should == false
+    end
+  end
+
   it "raises a TypeError if the first and second arguments are not string-like" do
     lambda { File.send(@method, nil, nil, 0, 0) }.should raise_error(ArgumentError)
     lambda { File.send(@method, 1, 'some/thing') }.should raise_error(TypeError)

Modified: MacRuby/trunk/spec/frozen/core/file/shared/stat.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/shared/stat.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/shared/stat.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -34,6 +34,12 @@
     st.mtime.class.should == Time
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.send(@method, mock_to_path(@file))
+    end
+  end
+
   it "raises an Errno::ENOENT if the file does not exist" do
     lambda {
       File.send(@method, "fake_file")

Modified: MacRuby/trunk/spec/frozen/core/file/shared/unlink.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/shared/unlink.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/shared/unlink.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -49,4 +49,10 @@
 
     File.send(@method, Coercable.new).should == 1
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.send(@method, mock_to_path(@file1)).should == 1
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/file/size_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/size_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/size_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -12,19 +12,25 @@
   end
 
   it "returns the size of the file" do
-    File.size?(@file).should == 8
+    File.size(@file).should == 8
   end
 
   it "accepts a String-like (to_str) parameter" do
     o = [@file]
     def o.to_str; self[0]; end
 
-    File.size?(o).should == 8
+    File.size(o).should == 8
   end
 
   it "accepts a File argument" do
-    File.size?(File.open(@file)).should == 8
+    File.size(File.open(@file)).should == 8
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.size(mock_to_path(@file)).should == 8
+    end
+  end
 end
 
 describe "File.size?" do
@@ -34,7 +40,7 @@
 
 ruby_version_is "1.9" do
   describe "File#size" do
-    
+
     before :each do
       @file = tmp('i_exist')
       File.open(@file,'w'){|f| f.write 'rubinius'}
@@ -66,13 +72,13 @@
       File.open(@file,'a') {|f| f.write '!'}
       @file.size.should == 9
     end
-  
+
     it "returns 0 for an empty file" do
       @file = File.open(@file.path, 'w')
       @file.truncate(0)
       @file.size.should == 0
     end
-    
+
     platform_is_not :windows do
       it "follows symlinks if necessary" do
         ln_file = tmp('i_exist_ln')
@@ -82,4 +88,4 @@
       end
     end
   end
-end  
+end

Modified: MacRuby/trunk/spec/frozen/core/file/split_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/split_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/split_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -66,4 +66,10 @@
     class C; def to_str; "/rubinius/better/than/ruby"; end; end
     File.split(C.new).should == ["/rubinius/better/than", "ruby"]
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.split(mock_to_path("")).should == [".", ""]
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/file/stat/new_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/stat/new_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/stat/new_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -22,4 +22,11 @@
     st.ftype.should == 'file'
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return @file
+      File::Stat.new p
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/file/symlink_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/symlink_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/symlink_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -28,6 +28,13 @@
       File.symlink?(@link).should == true
     end
 
+    ruby_version_is "1.9" do
+      it "accepts args that have #to_path methods" do
+        File.symlink(mock_to_path(@file), mock_to_path(@link))
+        File.symlink?(@link).should == true
+      end
+    end
+
     it "raises an Errno::EEXIST if the target already exists" do
       File.symlink(@file, @link)
       lambda { File.symlink(@file, @link) }.should raise_error(Errno::EEXIST)

Modified: MacRuby/trunk/spec/frozen/core/file/truncate_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/truncate_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/truncate_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -86,6 +86,12 @@
     lambda { File.truncate(@name, nil) }.should raise_error(TypeError)
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.truncate(mock_to_path(@name), 0).should == 0
+    end
+  end
+
   platform_is_not :windows do
     it "truncates an absolute pathname file" do
       absolute_pathname_file = "/tmp/#{@name}"

Modified: MacRuby/trunk/spec/frozen/core/file/utime_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/file/utime_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/file/utime_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -22,4 +22,10 @@
     File.atime(@file2).to_i.should be_close(@atime.to_i, 2)
     File.mtime(@file2).to_i.should be_close(@mtime.to_i, 2)
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.utime(@atime, @mtime, mock_to_path(@file1), mock_to_path(@file2))
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/float/comparison_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/float/comparison_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/float/comparison_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -18,7 +18,7 @@
   end
 
   # TODO: Remove duplicate ruby_bug guards when ruby_bug is fixed.
-  ruby_bug "[ruby-dev:38672] [Bug #1645]", "1.8.6.369" do
+  ruby_bug "[ruby-dev:38672] [Bug #1645]", "1.8.7" do
     # The 4 tests below are taken from matz's revision 23730 for Ruby trunk
     #
     it "returns 1 when self is Infinity and other is a Bignum" do

Modified: MacRuby/trunk/spec/frozen/core/hash/merge_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/hash/merge_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/hash/merge_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -61,7 +61,7 @@
   # This bug is far too odd to explain in a comment; see
   # http://redmine.ruby-lang.org/issues/show/1535 for the closest I've got to
   # an explanation.
-  ruby_bug "#1535", "1.8.7.167" do
+  ruby_bug "#1535", "1.8.7.174" do
     it "shouldn't raise spurious RuntimeErrors" do
       hash = {1 => 2, 3 => 4, 5 => 6}
       big_hash = {}

Deleted: MacRuby/trunk/spec/frozen/core/io/codepoints.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/codepoints.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/io/codepoints.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,17 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-require File.dirname(__FILE__) + '/fixtures/classes'
-require File.dirname(__FILE__) + '/shared/codepoints'
-
-# See redmine #1667
-describe "IO#codepoints" do
-  ruby_version_is "1.9.2" do
-    it_behaves_like(:io_codepoints, :codepoints)
-
-    it "ignores a given block" do
-      File.open(IOSpecs.gets_fixtures) do |io|
-        enum = io.codepoints{ raise "Never called!"}
-        enum.first.should == 86
-      end
-    end
-  end
-end

Copied: MacRuby/trunk/spec/frozen/core/io/codepoints_spec.rb (from rev 2487, MacRuby/trunk/spec/frozen/core/io/codepoints.rb)
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/codepoints_spec.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/io/codepoints_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,17 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+require File.dirname(__FILE__) + '/fixtures/classes'
+require File.dirname(__FILE__) + '/shared/codepoints'
+
+# See redmine #1667
+describe "IO#codepoints" do
+  ruby_version_is "1.9.2" do
+    it_behaves_like(:io_codepoints, :codepoints)
+
+    it "ignores a given block" do
+      File.open(IOSpecs.gets_fixtures) do |io|
+        enum = io.codepoints{ raise "Never called!"}
+        enum.first.should == 86
+      end
+    end
+  end
+end

Deleted: MacRuby/trunk/spec/frozen/core/io/each_codepoint.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/each_codepoint.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/io/each_codepoint.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,26 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-require File.dirname(__FILE__) + '/fixtures/classes'
-require File.dirname(__FILE__) + '/shared/codepoints'
-
-# See redmine #1667
-describe "IO#each_codepoint" do
-  ruby_version_is "1.9.2" do
-    it_behaves_like(:io_codepoints, :codepoints)
-  
-    it "calls the given block" do
-      File.open(IOSpecs.gets_fixtures) do |io|
-        r = []
-        io.each_codepoint{|c| r << c }
-        r[24].should == 232
-        r.last.should == 10
-      end
-    end
-
-    it "returns self" do
-      File.open(IOSpecs.gets_fixtures) do |io|
-        io.each_codepoint {|l| l }.should equal(io)
-      end
-    end
-  end
-end
-

Copied: MacRuby/trunk/spec/frozen/core/io/each_codepoint_spec.rb (from rev 2487, MacRuby/trunk/spec/frozen/core/io/each_codepoint.rb)
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/each_codepoint_spec.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/io/each_codepoint_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,26 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+require File.dirname(__FILE__) + '/fixtures/classes'
+require File.dirname(__FILE__) + '/shared/codepoints'
+
+# See redmine #1667
+describe "IO#each_codepoint" do
+  ruby_version_is "1.9.2" do
+    it_behaves_like(:io_codepoints, :codepoints)
+  
+    it "calls the given block" do
+      File.open(IOSpecs.gets_fixtures) do |io|
+        r = []
+        io.each_codepoint{|c| r << c }
+        r[24].should == 232
+        r.last.should == 10
+      end
+    end
+
+    it "returns self" do
+      File.open(IOSpecs.gets_fixtures) do |io|
+        io.each_codepoint {|l| l }.should equal(io)
+      end
+    end
+  end
+end
+

Modified: MacRuby/trunk/spec/frozen/core/io/foreach_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/foreach_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/io/foreach_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -122,6 +122,12 @@
       end
       lines.should == @content_with_r
     end
+
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(@file)
+      IO.foreach(p).to_a
+    end
   end
 
   ruby_version_is "1.8.7" do

Added: MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.orig
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.orig	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.orig	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,37 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+require File.dirname(__FILE__) + '/fixtures/classes'
+
+describe "IO#initialize" do
+  before :each do
+    @io = IO.allocate
+  end
+
+  it "succeeds when fd is a Fixnum" do
+    lambda { @io.send :initialize, $stdout.fileno, 'w' }.should_not raise_error(TypeError)
+  end
+
+  it "succeeds when fd responds to #to_int" do
+    obj = mock('fileno')
+    def obj.to_int() $stdout.fileno end
+
+    lambda { @io.send :initialize, obj, 'w' }.should_not raise_error(TypeError)
+  end
+
+  it "raises a TypeError when fd is an IO" do
+    lambda { @io.send :initialize, $stdout, 'w' }.should raise_error(TypeError)
+  end
+
+  it "raises a TypeError when given a non-integer" do
+    lambda { @io.send :initialize, @fname, 'w' }.should raise_error(TypeError)
+  end
+  
+  it "raises IOError on closed stream" do
+    lambda { @io.send :initialize, IOSpecs.closed_file.fileno }.should raise_error(IOError)
+  end
+
+  # MacRuby TODO: for some reason only compiling this method leads to abort
+  # when running in spec:ci eventhough the example is tagged as critical.
+  # it "raises an Errno::EBADF when given an invalid file descriptor" do
+  #   lambda { @io.send :initialize, -1, 'w' }.should raise_error(Errno::EBADF)
+  # end
+end

Added: MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.rej
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.rej	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/io/initialize_spec_disabled.rb.rej	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,62 @@
+***************
+*** 32,35 ****
+    it "raises an Errno::EBADF when given an invalid file descriptor" do
+      lambda { @io.send :initialize, -1, 'w' }.should raise_error(Errno::EBADF)
+    end
+  end
+--- 32,86 ----
+    it "raises an Errno::EBADF when given an invalid file descriptor" do
+      lambda { @io.send :initialize, -1, 'w' }.should raise_error(Errno::EBADF)
+    end
++   
++   ruby_version_is '1.9' do
++     it "uses the external encoding specified in the mode argument" do
++       io = IO.new(2, 'w:UTF-8')
++       io.external_encoding.to_s.should == 'UTF-8'
++     end
++ 
++     it "uses the external and the internal encoding specified in the mode argument" do
++       io = IO.new(2, 'w:UTF-8:iso-8859-1')
++       io.external_encoding.to_s.should == 'UTF-8'
++       io.internal_encoding.to_s.should == 'ISO-8859-1'
++     end
++ 
++     it "uses the external encoding specified via the :external_encoding option" do
++       io = IO.new(2, 'w', {:external_encoding => 'UTF-8'})
++       io.external_encoding.to_s.should == 'UTF-8'
++     end
++ 
++     it "uses the internal encoding specified via the :internal_encoding option" do
++       io = IO.new(2, 'w', {:internal_encoding => 'ISO-8859-1'})
++       io.internal_encoding.to_s.should == 'ISO-8859-1'
++     end
++ 
++     it "uses the colon-separated encodings specified via the :encoding option" do
++       io = IO.new(2, 'w', {:encoding => 'UTF-8:iso-8859-1'})
++       io.external_encoding.to_s.should == 'UTF-8'
++       io.internal_encoding.to_s.should == 'ISO-8859-1'
++     end
++ 
++     it "ingores the :encoding option when the :external_encoding option is present" do
++       io = IO.new(2, 'w', {:external_encoding => 'UTF-8', :encoding => 'iso-8859-1:iso-8859-1'})
++       io.external_encoding.to_s.should == 'UTF-8'
++     end
++     
++     it "ingores the :encoding option when the :internal_encoding option is present" do
++       io = IO.new(2, 'w', {:internal_encoding => 'ISO-8859-1', :encoding => 'iso-8859-1:iso-8859-1'})
++       io.internal_encoding.to_s.should == 'ISO-8859-1'
++     end
++ 
++     it "uses the encoding specified via the :mode option hash" do
++       io = IO.new(2, {:mode => 'w:UTF-8:iso-8859-1'})
++       io.external_encoding.to_s.should == 'UTF-8'
++       io.internal_encoding.to_s.should == 'ISO-8859-1'
++     end
++     
++     it "ignores the :internal_encoding option when the same as the external encoding" do
++       io = IO.new(2, 'w', {:internal_encoding => 'UTF-8'})
++       io.external_encoding.to_s.should == 'UTF-8'
++       io.internal_encoding.to_s.should == ''
++     end
++   end
+  end

Modified: MacRuby/trunk/spec/frozen/core/io/read_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/read_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/io/read_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -17,6 +17,14 @@
     IO.read(@fname).should == @contents
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(@fname)
+      IO.read(p)
+    end
+  end
+
   it "treats second nil argument as no length limit" do
     IO.read(@fname, nil).should == @contents
     IO.read(@fname, nil, 5).should == IO.read(@fname, @contents.length, 5)
@@ -244,7 +252,7 @@
         path = tmp('%s-bom.txt' % name)
         content = text.encode(name)
         File.open(path,'w') { |f| f.print content }
-        result = File.read(path, :mode => 'rb:utf-7-bom')
+        result = File.read(path, :mode => "rb:BOM|#{name}")
         content[1].force_encoding("ascii-8bit").should == result.force_encoding("ascii-8bit")
         File.unlink(path)
       end

Modified: MacRuby/trunk/spec/frozen/core/io/reopen_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/reopen_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/io/reopen_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -113,4 +113,12 @@
     @file1.gets
     @file1.reopen(@file2).gets.should == "Line 1: One\n"
   end
+
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(@file2.to_path)
+      @file1.reopen(p)
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/io/sysopen_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/io/sysopen_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/io/sysopen_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -23,6 +23,14 @@
     fd.should_not equal(0)
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on first argument" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return(@filename)
+      IO.sysopen(p, 'w')
+    end
+  end
+
   it "accepts a mode as second argument" do
     fd = 0
     lambda { fd = IO.sysopen(@filename, "w") }.should_not raise_error

Modified: MacRuby/trunk/spec/frozen/core/kernel/autoload_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/kernel/autoload_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/kernel/autoload_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -98,6 +98,12 @@
         should have_constant(:KSAutoloadBB)
       end
     end
+
+    it "calls #to_path on non-String filenames" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return @non_existent
+      Kernel.autoload :KSAutoloadAA, p
+    end
   end
 end
 

Modified: MacRuby/trunk/spec/frozen/core/kernel/load_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/kernel/load_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/kernel/load_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -211,6 +211,14 @@
     lambda { load([]) }.should raise_error TypeError
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-String arguments" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return 'load_spec_1.rb'
+      load(p)
+    end
+  end
+
   runner_is_not :rspec do
     it "allows wrapping the code in the file in an anonymous module" do
       !!defined?(LoadSpecWrap).should == false

Modified: MacRuby/trunk/spec/frozen/core/kernel/test_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/kernel/test_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/kernel/test_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -22,6 +22,26 @@
   it "returns true when passed ?d if the argument is a directory" do
     Kernel.test(?d, @dir).should == true
   end
+
+  ruby_version_is "1.9" do
+    it "calls #to_path on second argument when passed ?f and a filename" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return @file
+      Kernel.test(?f, p)
+    end
+    
+    it "calls #to_path on second argument when passed ?e and a filename" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return @file
+      Kernel.test(?e, p)
+    end
+    
+    it "calls #to_path on second argument when passed ?d and a directory" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return @dir
+      Kernel.test(?d, p)
+    end
+  end
 end
 
 describe "Kernel.test" do

Modified: MacRuby/trunk/spec/frozen/core/module/autoload_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/module/autoload_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/module/autoload_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -234,6 +234,14 @@
     end
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_path on non-string filenames" do
+      p = mock('path')
+      p.should_receive(:to_path).and_return @non_existent
+      ModuleSpecs.autoload :A, p
+    end
+  end
+
   it "raises an ArgumentError when an empty filename is given" do
     lambda { ModuleSpecs.autoload :A, "" }.should raise_error(ArgumentError)
   end

Modified: MacRuby/trunk/spec/frozen/core/module/fixtures/classes.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/module/fixtures/classes.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/module/fixtures/classes.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -327,6 +327,23 @@
   class Detached
     DETATCHED_CONSTANT = :d
   end
+
+  class ParentPrivateMethodRedef
+    private
+    def private_method_redefined
+      :before_redefinition
+    end
+  end
+
+  class ChildPrivateMethodMadePublic < ParentPrivateMethodRedef
+    public :private_method_redefined
+  end
+
+  class ParentPrivateMethodRedef
+    def private_method_redefined
+      :after_redefinition
+    end
+  end
 end
 
 ModuleSpecs::Nesting[:root_level] = Module.nesting

Modified: MacRuby/trunk/spec/frozen/core/module/public_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/module/public_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/module/public_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1,8 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 require File.dirname(__FILE__) + '/fixtures/classes'
+
+describe "Module#public" do
+  it "on a superclass method calls the redefined method" do
+    ModuleSpecs::ChildPrivateMethodMadePublic.new.private_method_redefined.should == :after_redefinition
+  end
+end

Deleted: MacRuby/trunk/spec/frozen/core/random/float_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/random/float_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/random/float_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,84 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-ruby_version_is "1.9" do
-  describe "Random#float" do
-    
-    it "returns a Float object" do
-      Random.new.float.should be_an_instance_of(Float)
-    end
-
-    it "returns a number greater than or equal to 0.0" do
-      Random.new.float.should >= 0.0
-    end
-
-    it "returns a number less than 1.0 by default" do
-      Random.new.float.should < 1.0
-    end
-
-    it "returns a different number on each call" do
-      prng = Random.new
-      floats = 20.times.map{ prng.float }
-      floats.uniq.size.should == 20
-    end
-
-    it "returns the same sequence of values for a given seed" do
-      prng = Random.new(176)
-      2.times.map{ prng.float }.should == [0.3574378113049097, 0.21260493792986923]
-    end
-
-    it "only returns numbers less than the given argument" do
-      prng = Random.new
-      floats = 20.times.map{ prng.float(0.5) }
-      floats.max.should < 0.5
-    end
-
-    it "accepts an optional Integer argument" do
-      lambda do
-        Random.new.float(20)
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "accepts an optional Float argument" do
-      lambda do
-        Random.new.float(20.3)
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "accepts an optional Rational argument" do
-      lambda do
-        Random.new.float(Rational(267,20))
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "accepts an optional Complex (w/ imaginary part) argument" do
-      lambda do
-        Random.new.float(Complex(20))
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "raises Errno::EDOM for an argument of Infinity" do
-      lambda do
-        Random.new.float(infinity_value)
-      end.should raise_error(Errno::EDOM)
-    end
-
-    it "raises Errno::EDOM for an argument of NaN" do
-      lambda do
-        Random.new.float(nan_value)
-      end.should raise_error(Errno::EDOM)
-    end
-
-   it "raises a RangeError for a Complex (with imaginary part) argument" do
-      lambda do
-        Random.new.float(Complex(20,3))
-      end.should raise_error(RangeError)
-    end
-
-    it "raises a TypeError for a non-Floatish argument" do
-      lambda do
-        Random.new.float("swim")
-      end.should raise_error(TypeError)
-    end
-
-  end
-end

Deleted: MacRuby/trunk/spec/frozen/core/random/int_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/random/int_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/random/int_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,116 +0,0 @@
-require File.dirname(__FILE__) + '/../../spec_helper'
-
-ruby_version_is "1.9" do
-  describe "Random#int" do
-
-    it "accepts an Integer argument" do
-      lambda do
-        Random.new.int(20)
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "accepts a Bignum argument" do
-      lambda do
-        Random.new.int(bignum_value)
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "accepts a Range argument" do
-      lambda do
-        Random.new.int(1..3)
-      end.should_not raise_error(ArgumentError)
-    end
-
-    it "coerces the argument with #to_int" do
-      obj = mock_numeric('int')
-      obj.should_receive(:to_int).exactly(20).times.and_return(4)
-      prng = Random.new
-      ints = 20.times.map { prng.int(obj) }
-      ints.max.should < 4
-    end
-
-    it "returns an Integer" do
-      Random.new.int(12).should be_kind_of(Integer)
-    end
-
-    it "returns an number >= 0" do
-      prng = Random.new
-      ints = 20.times.map { prng.int(10) }
-      ints.min.should >= 0
-    end
-
-    it "returns a number < the argument" do
-      prng = Random.new
-      ints = 20.times.map { prng.int(10) }
-      ints.max.should < 10
-    end
-
-    it "returns a random number on each call that satisfies the given inequalities" do
-      prng_a = Random.new
-      ints_a = 20.times.map { prng_a.int(5) }
-
-      prng_b = Random.new
-      ints_b = 20.times.map { prng_b.int(5) }
-
-      ints_a.should_not == ints_b
-    end
-
-    it "returns the same sequence of numbers for a given seed" do
-      prng_a = Random.new(34)
-      ints_a = 20.times.map { prng_a.int(5) }
-
-      prng_b = Random.new(34)
-      ints_b = 20.times.map { prng_b.int(5) }
-
-      ints_a.should == ints_b
-    end
-
-    it "returns an integer from the inclusive Integer range if one is given" do
-      prng = Random.new
-      ints = 20.times.map { prng.int(10..12) }
-      ints.uniq.sort.should == [10,11,12]
-    end
-
-    it "returns an integer from the exclusive Integer range if one is given" do
-      prng = Random.new
-      ints = 20.times.map { prng.int(10...12) }
-      ints.uniq.sort.should == [10,11]
-    end
-
-    it "raises a TypeError if a String range is given" do
-      lambda do
-        Random.new.int('10'...'12')
-      end.should raise_error(TypeError)
-    end
-
-    # (#int(3.3..5) previously segfaulted (bug #1859) which is why we test it
-    # here. Now, #int(3.3..5) is interpreted as #int(3...5), which has been
-    # reported as part of the same bug
-    it "converts each endpoint of the supplied Range to Integers" do
-      prng = Random.new(272726)
-      ints_a = 10.times.map { prng.int(3.3..5) }
-      prng = Random.new(272726)
-      ints_b = 10.times.map { prng.int(3..5) }
-      ints_a.should == ints_b
-    end
-
-    # The following examples fail. This has been reported as bug #1858
-    it "returns an ArgumentError when the argument is 1" do
-      lambda do
-        Random.new.int(1)
-      end.should raise_error(ArgumentError)
-    end
-
-    it "returns an ArgumentError when the argument is 0" do
-      lambda do
-        Random.new.int(0)
-      end.should raise_error(ArgumentError)
-    end
-
-    it "returns an ArgumentError when the argument is negative" do
-      lambda do
-        Random.new.int(-17)
-      end.should raise_error(ArgumentError)
-    end
-  end
-end

Modified: MacRuby/trunk/spec/frozen/core/random/rand_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/random/rand_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/random/rand_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -52,4 +52,156 @@
       Random.rand(obj).should be_kind_of(Integer)
     end
   end
+
+  describe "Random#rand with Fixnum" do
+    it "returns an Integer" do
+      Random.new.rand(20).should be_an_instance_of(Fixnum)
+    end
+
+    it "returns a Fixnum greater than or equal to 0" do
+      prng = Random.new
+      ints = 20.times.map { prng.rand(5) }
+      ints.min.should == 0
+    end
+
+    it "returns a Fixnum less than the argument" do
+      prng = Random.new
+      ints = 20.times.map { prng.rand(5) }
+      ints.max.should == 4
+    end
+
+    it "returns the same sequence for a given seed" do
+      prng = Random.new 33
+      a = 20.times.map { prng.rand(90) }
+      prng = Random.new 33
+      b = 20.times.map { prng.rand(90) }
+      a.should == b
+    end
+    
+    it "raises an ArgumentError when the argument is 0" do
+      lambda do
+        Random.new.rand(0)
+      end.should raise_error(ArgumentError)
+    end
+
+    it "raises an ArgumentError when the argument is negative" do
+      lambda do
+        Random.new.rand(-12)
+      end.should raise_error(ArgumentError)
+    end
+  end
+
+  describe "Random#rand with Bignum" do
+    it "returns a Bignum" do
+      Random.new.rand(bignum_value).should be_an_instance_of(Bignum)
+    end
+
+    it "returns a Bignum greater than or equal to 0" do
+      prng = Random.new
+      bigs = 20.times.map { prng.rand(bignum_value) }
+      bigs.min.should >= 0
+    end
+
+    it "returns a Bignum less than the argument" do
+      prng = Random.new
+      bigs = 20.times.map { prng.rand(bignum_value) }
+      bigs.max.should < bignum_value
+    end
+
+    it "returns the same sequence for a given seed" do
+      prng = Random.new 33
+      a = 20.times.map { prng.rand(bignum_value) }
+      prng = Random.new 33
+      b = 20.times.map { prng.rand(bignum_value) }
+      a.should == b
+    end
+    
+    it "raises an ArgumentError when the argument is negative" do
+      lambda do
+        Random.new.rand(-bignum_value)
+      end.should raise_error(ArgumentError)
+    end
+  end
+
+  describe "Random#rand with Float" do
+    it "returns a Float" do
+      Random.new.rand(20.43).should be_an_instance_of(Float)
+    end
+
+    it "returns a Float greater than or equal to 0.0" do
+      prng = Random.new
+      floats = 20.times.map { prng.rand(5.2) }
+      floats.min.should >= 0.0
+    end
+
+    it "returns a Float less than the argument" do
+      prng = Random.new
+      floats = 20.times.map { prng.rand(4.30) }
+      floats.max.should < 4.30
+    end
+
+    it "returns the same sequence for a given seed" do
+      prng = Random.new 33
+      a = 20.times.map { prng.rand(89.2928) }
+      prng = Random.new 33
+      b = 20.times.map { prng.rand(89.2928) }
+      a.should == b
+    end
+    
+    it "raises an ArgumentError when the argument is negative" do
+      lambda do
+        Random.new.rand(-1.234567)
+      end.should raise_error(ArgumentError)
+    end
+  end
+
+  describe "Random#rand with Range" do
+    it "returns an element from the Range" do
+      Random.new.rand(20..43).should be_an_instance_of(Fixnum)
+    end
+
+    it "returns an object that is a member of the Range" do
+      prng = Random.new
+      r = 20..30
+      20.times { r.member?(prng.rand(r)).should be_true }
+    end
+
+    it "works with inclusive ranges" do
+      prng = Random.new
+      r = 3..5
+      20.times.map { prng.rand(r) }.uniq.sort.should == [3,4,5]
+    end
+
+    it "works with exclusive ranges" do
+      prng = Random.new
+      r = 3...5
+      20.times.map { prng.rand(r) }.uniq.sort.should == [3,4]
+    end
+
+    it "returns the same sequence for a given seed" do
+      prng = Random.new 33
+      a = 20.times.map { prng.rand(76890.028..800000.00) }
+      prng = Random.new 33
+      b = 20.times.map { prng.rand(76890.028..800000.00) }
+      a.should == b
+    end
+    
+    it "allows the startpoint to be an object of a different class to the endpoint" do
+      lambda do
+        Random.new.rand(89..100.87)
+      end.should_not raise_error      
+    end
+
+    it "raises an ArgumentError when the startpoint lacks #+ and #- methods" do
+      lambda do
+        Random.new.rand(Object.new..67)
+      end.should raise_error(ArgumentError)
+    end
+
+    it "raises an ArgumentError when the endpoint lacks #+ and #- methods" do
+      lambda do
+        Random.new.rand(68..Object.new)
+      end.should raise_error(ArgumentError)
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/core/range/to_a_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/range/to_a_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/range/to_a_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -8,4 +8,11 @@
     (0xfffd...0xffff).to_a.should == [0xfffd,0xfffe]
     lambda { (0.5..2.4).to_a }.should raise_error(TypeError)
   end
-end
\ No newline at end of file
+
+  ruby_version_is "1.9" do
+    # This crashed on 1.9 prior to r24573
+    it "works with Ranges of Symbols" do
+      (:A..:z).to_a.size.should == 58
+    end
+  end
+end

Modified: MacRuby/trunk/spec/frozen/core/string/each_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/string/each_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/string/each_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -6,4 +6,9 @@
   ruby_version_is ''...'1.9' do
     it_behaves_like(:string_each_line, :each)
   end
+
+  ruby_version_is '1.9' do
+    lambda { "gone in 1.9".each }.should raise_error(NoMethodError)
+  end
+
 end

Modified: MacRuby/trunk/spec/frozen/core/string/sub_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/string/sub_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/string/sub_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -233,17 +233,20 @@
     offsets.should == [[1, 2]]
   end
 
-  it "restores $~ after leaving the block" do
-    [/./, "l"].each do |pattern|
-      old_md = nil
-      "hello".sub(pattern) do
-        old_md = $~
-        "ok".match(/./)
-        "x"
+  # The conclusion of bug #1749 was that this example was version-specific...
+  ruby_version_is "".."1.9" do
+    it "restores $~ after leaving the block" do
+      [/./, "l"].each do |pattern|
+        old_md = nil
+        "hello".sub(pattern) do
+          old_md = $~
+          "ok".match(/./)
+          "x"
+        end
+
+        $~.should == old_md
+        $~.string.should == "hello"
       end
-
-      $~.should == old_md
-      $~.string.should == "hello"
     end
   end
 

Modified: MacRuby/trunk/spec/frozen/core/struct/eql_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/struct/eql_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/struct/eql_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -4,4 +4,10 @@
 
 describe "Struct#eql?" do
   it_behaves_like(:struct_equal_value, :eql?)
-end
\ No newline at end of file
+
+  it "returns false if any corresponding elements are not #eql?" do
+    car = Struct::Car.new("Honda", "Accord", 1998)
+    similar_car = Struct::Car.new("Honda", "Accord", 1998.0)
+    car.send(@method, similar_car).should be_false
+  end
+end

Modified: MacRuby/trunk/spec/frozen/core/struct/shared/equal_value.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/struct/shared/equal_value.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/struct/shared/equal_value.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -15,4 +15,20 @@
     different_car = Struct::Car.new("Honda", "Accord", "1995")
     car.send(@method, different_car).should == false
   end
+
+  ruby_bug "redmine #1885", "1.9.2" do
+    it "handles recursive structures by returning false if a difference can be found" do
+      MyClass = Struct.new(:foo)
+      x = Struct::Car.new("Honda", "Accord", "1998")
+      x[:make] = x
+      stepping = Struct::Car.new("Honda", "Accord", "1998")
+      stone = Struct::Car.new(stepping, "Accord", "1998")
+      stepping[:make] = stone
+      x.send(@method, stepping).should == true
+
+      stone[:year] = "1999" # introduce a difference
+      x.send(@method, stepping).should == false
+    end
+  end
+
 end

Added: MacRuby/trunk/spec/frozen/core/symbol/casecmp_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/symbol/casecmp_spec.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/symbol/casecmp_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,61 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+ruby_version_is "1.9" do
+  describe "Symbol#casecmp" do
+    it "compares symbols without regard to case" do
+      :abcdef.casecmp(:abcde).should == 1
+      :aBcDeF.casecmp(:abcdef).should == 0
+      :abcdef.casecmp(:abcdefg).should == -1
+      :abcdef.casecmp(:ABCDEF).should == 0
+    end
+    
+    # Broken in MRI 1.8.4
+    it "doesn't consider non-ascii characters equal that aren't" do
+      # -- Latin-1 --
+      upper_a_tilde  = :"\xC3"
+      upper_a_umlaut = :"\xC4"
+      lower_a_tilde  = :"\xE3"
+      lower_a_umlaut = :"\xE4"
+
+      lower_a_tilde.casecmp(lower_a_umlaut).should_not == 0
+      lower_a_umlaut.casecmp(lower_a_tilde).should_not == 0
+      upper_a_tilde.casecmp(upper_a_umlaut).should_not == 0
+      upper_a_umlaut.casecmp(upper_a_tilde).should_not == 0
+      
+      # -- UTF-8 --
+      upper_a_tilde  = :"\xC3\x83"
+      upper_a_umlaut = :"\xC3\x84"
+      lower_a_tilde  = :"\xC3\xA3"
+      lower_a_umlaut = :"\xC3\xA4"
+      
+      lower_a_tilde.casecmp(lower_a_umlaut).should_not == 0
+      lower_a_umlaut.casecmp(lower_a_tilde).should_not == 0
+      upper_a_tilde.casecmp(upper_a_umlaut).should_not == 0
+      upper_a_umlaut.casecmp(upper_a_tilde).should_not == 0
+    end
+    
+    it "doesn't do case mapping for non-ascii characters" do
+      # -- Latin-1 --
+      upper_a_tilde  = :"\xC3"
+      upper_a_umlaut = :"\xC4"
+      lower_a_tilde  = :"\xE3"
+      lower_a_umlaut = :"\xE4"
+      
+      upper_a_tilde.casecmp(lower_a_tilde).should == -1
+      upper_a_umlaut.casecmp(lower_a_umlaut).should == -1
+      lower_a_tilde.casecmp(upper_a_tilde).should == 1
+      lower_a_umlaut.casecmp(upper_a_umlaut).should == 1
+
+      # -- UTF-8 --
+      upper_a_tilde  = :"\xC3\x83"
+      upper_a_umlaut = :"\xC3\x84"
+      lower_a_tilde  = :"\xC3\xA3"
+      lower_a_umlaut = :"\xC3\xA4"
+
+      upper_a_tilde.casecmp(lower_a_tilde).should == -1
+      upper_a_umlaut.casecmp(lower_a_umlaut).should == -1
+      lower_a_tilde.casecmp(upper_a_tilde).should == 1
+      lower_a_umlaut.casecmp(upper_a_umlaut).should == 1
+    end
+  end
+end

Added: MacRuby/trunk/spec/frozen/core/symbol/comparison_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/symbol/comparison_spec.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/core/symbol/comparison_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,52 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+ruby_version_is "1.9" do
+  describe "Symbol#<=> with Symbol" do
+    it "compares individual characters based on their ascii value" do
+      ascii_order = Array.new(256) { |x| x.chr.to_sym }
+      sort_order = ascii_order.sort
+      sort_order.should == ascii_order
+    end
+    
+    it "returns -1 when self is less than other" do
+      (:this <=> :those).should == -1
+    end
+
+    it "returns 0 when self is equal to other" do
+      (:yep <=> :yep).should == 0
+    end
+
+    it "returns 1 when self is greater than other" do
+      (:yoddle <=> :griddle).should == 1
+    end
+    
+    it "considers symbol that comes lexicographically first to be less if the symbols have same size" do
+      (:aba <=> :abc).should == -1
+      (:abc <=> :aba).should == 1
+    end
+
+    it "doesn't consider shorter string to be less if longer string starts with shorter one" do
+      (:abc <=> :abcd).should == -1
+      (:abcd <=> :abc).should == 1
+    end
+
+    it "compares shorter string with corresponding number of first chars of longer string" do
+      (:abx <=> :abcd).should == 1
+      (:abcd <=> :abx).should == -1
+    end
+  end
+
+  # Note: This is inconsistent with Array#<=> which calls #to_ary instead of
+  # just using it as an indicator.
+  describe "Symbol#<=>" do
+    it "returns nil if its argument does not provide #to_sym" do
+      (:abc <=> 1).should == nil
+      (:abc <=> mock('x')).should == nil
+    end
+
+    it "returns nil if its argument does not provide #<=>" do
+      obj = mock('x')
+      (:abc <=> obj).should == nil
+    end
+  end
+end

Modified: MacRuby/trunk/spec/frozen/core/symbol/intern_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/core/symbol/intern_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/core/symbol/intern_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,4 +1,4 @@
-ruby_version_is "1.8.7" do
+ruby_version_is "1.9" do
   describe "Symbol#intern" do
     it "returns self" do
       :foo.intern.should == :foo

Modified: MacRuby/trunk/spec/frozen/language/super_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/language/super_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/language/super_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -57,7 +57,7 @@
     Super::S4::B.new.foo([],"test").should == ["B#foo(a,test)", "A#foo"]
   end
 
-  ruby_bug "#1151 [ruby-core:22040]", "1.8.6" do
+  ruby_bug "#1151 [ruby-core:22040]", "1.8.7.174" do
     it "raises an error error when super method does not exist" do
       sup = Class.new
       sub_normal = Class.new(sup) do

Modified: MacRuby/trunk/spec/frozen/language/variables_spec.rb
===================================================================
--- MacRuby/trunk/spec/frozen/language/variables_spec.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/language/variables_spec.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -272,62 +272,82 @@
     a.should == [[1]]
   end
 
-  it "calls #to_ary on rhs arg if rhs has only a single arg" do
-    x = VariablesSpecs::ParAsgn.new
-    a,b,c = x
-    a.should == 1
-    b.should == 2
-    c.should == 3
 
-    a,b,c = x,5
-    a.should == x
-    b.should == 5
-    c.should == nil
+  ruby_version_is ""..."1.9" do
+    it "calls #to_ary on rhs arg if rhs has only a single arg" do
+      x = VariablesSpecs::ParAsgn.new
+      a,b,c = x
+      a.should == 1
+      b.should == 2
+      c.should == 3
 
-    a,b,c = 5,x
-    a.should == 5
-    b.should == x
-    c.should == nil
+      a,b,c = x,5
+      a.should == x
+      b.should == 5
+      c.should == nil
 
-    a,b,*c = x,5
-    a.should == x
-    b.should == 5
-    c.should == []
+      a,b,c = 5,x
+      a.should == 5
+      b.should == x
+      c.should == nil
 
-    a,(*b),c = 5,x
-    a.should == 5
-    b.should == [x]
-    c.should == nil
+      a,b,*c = x,5
+      a.should == x
+      b.should == 5
+      c.should == []
 
-    a,(b,c) = 5,x
-    a.should == 5
-    b.should == 1
-    c.should == 2
+      a,(b,c) = 5,x
+      a.should == 5
+      b.should == 1
+      c.should == 2
 
-    a,(b,*c) = 5,x
-    a.should == 5
-    b.should == 1
-    c.should == [2,3,4]
+      a,(b,*c) = 5,x
+      a.should == 5
+      b.should == 1
+      c.should == [2,3,4]
 
-    a,(b,(*c)) = 5,x
-    a.should == 5
-    b.should == 1
-    c.should == [2]
+      a,(b,(*c)) = 5,x
+      a.should == 5
+      b.should == 1
+      c.should == [2]
 
-    a,(b,(*c),(*d)) = 5,x
-    a.should == 5
-    b.should == 1
-    c.should == [2]
-    d.should == [3]
+      a,(b,(*c),(*d)) = 5,x
+      a.should == 5
+      b.should == 1
+      c.should == [2]
+      d.should == [3]
 
-    a,(b,(*c),(d,*e)) = 5,x
-    a.should == 5
-    b.should == 1
-    c.should == [2]
-    d.should == 3
-    e.should == []
+      a,(b,(*c),(d,*e)) = 5,x
+      a.should == 5
+      b.should == 1
+      c.should == [2]
+      d.should == 3
+      e.should == []
+    end
   end
 
+  ruby_version_is "1.9" do
+    it "calls #to_ary on RHS arg if the corresponding LHS var is a splat" do
+      x = VariablesSpecs::ParAsgn.new
+
+      a,(*b),c = 5,x
+      a.should == 5
+      b.should == x.to_ary
+      c.should == nil
+    end
+  end
+
+  ruby_version_is ""..."1.9" do
+    it "doen't call #to_ary on RHS arg when the corresponding LHS var is a splat" do
+      x = VariablesSpecs::ParAsgn.new
+
+      a,(*b),c = 5,x
+      a.should == 5
+      b.should == [x]
+      c.should == nil
+    end
+  end
+
   it "allows complex parallel assignment" do
     a, (b, c), d = 1, [2, 3], 4
     a.should == 1
@@ -771,7 +791,8 @@
     (h['key2'] += 'ue').should == 'value'
     h.should == {'key1' => 3, 'key2' => 'value'}
   end
-
+  
+  # This example fails on 1.9 because of bug #2050
   it "returns result of rhs not result of []=" do
     a = VariablesSpecs::Hashalike.new
 
@@ -856,8 +877,10 @@
 end
 
 describe "Multiple assignments with splats" do
-  it "* on the lhs has to be applied to the last parameter" do
-    lambda { eval 'a, *b, c = 1, 2, 3' }.should raise_error(SyntaxError)
+  ruby_version_is ""..."1.9" do
+    it "* on the lhs has to be applied to the last parameter" do
+      lambda { eval 'a, *b, c = 1, 2, 3' }.should raise_error(SyntaxError)
+    end
   end
 
   it "* on the lhs collects all parameters from its position onwards as an Array or an empty Array" do
@@ -866,7 +889,6 @@
     e, *f = 1, 2, 3
     g, *h = 1, [2, 3]
     *i = 1, [2,3]
-    *j = [1,2,3]
     *k = 1,2,3
 
     a.should == 1
@@ -878,9 +900,22 @@
     g.should == 1
     h.should == [[2, 3]]
     i.should == [1, [2, 3]]
-    j.should == [[1,2,3]]
     k.should == [1,2,3]
   end
+
+  ruby_version_is ""..."1.9" do
+    it "* on the LHS returns the Array on the RHS enclosed in an Array" do
+      *j = [1,2,3]
+      j.should == [[1,2,3]]
+    end
+  end
+
+  ruby_version_is "1.9" do
+    it "* on the LHS returns the Array on the RHS without enclosing it in an Array" do
+      *j = [1,2,3]
+      j.should == [1,2,3]
+    end
+  end
 end
 
 describe "Multiple assignments with grouping" do
@@ -1034,3 +1069,4 @@
     instance.check_each_block
   end
 end
+language_version __FILE__, "variables"

Added: MacRuby/trunk/spec/frozen/language/versions/variables_1.9.rb
===================================================================
--- MacRuby/trunk/spec/frozen/language/versions/variables_1.9.rb	                        (rev 0)
+++ MacRuby/trunk/spec/frozen/language/versions/variables_1.9.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -0,0 +1,8 @@
+describe "Multiple assignments with splats" do
+  it "* on the LHS has to be applied to any parameter" do
+    a, *b, c = 1, 2, 3
+    a.should == 1
+    b.should == [2]
+    c.should == 3
+  end
+end

Modified: MacRuby/trunk/spec/frozen/ruby.1.8.mspec
===================================================================
--- MacRuby/trunk/spec/frozen/ruby.1.8.mspec	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/ruby.1.8.mspec	2009-09-05 16:27:09 UTC (rev 2488)
@@ -36,6 +36,9 @@
   # An ordered list of the directories containing specs to run
   set :files, get(:language) + get(:core) + get(:library)
 
+  # This set of files is run by mspec ci
+  set :ci_files, get(:files)
+
   # Optional library specs
   set :ffi, 'optional/ffi'
 

Modified: MacRuby/trunk/spec/frozen/shared/enumerator/next.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/enumerator/next.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/enumerator/next.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -17,9 +17,12 @@
     lambda { @enum.next }.should raise_error(StopIteration)
   end
 
-  it "rewinds the enumerator after raising StopIteration" do
+  it "cannot be called again until the enumerator is rewound" do
     3.times { @enum.next }
     lambda { @enum.next }.should raise_error(StopIteration)
+    lambda { @enum.next }.should raise_error(StopIteration)
+    lambda { @enum.next }.should raise_error(StopIteration)
+    @enum.rewind
     @enum.next.should == 1
   end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/blockdev.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/blockdev.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/blockdev.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -2,4 +2,10 @@
   it "returns true/false depending if the named file is a block device" do
     @object.send(@method, tmp("/")).should == false
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(tmp("/"))).should == false
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/chardev.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/chardev.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/chardev.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -2,4 +2,10 @@
   it "returns true/false depending if the named file is a char device" do
     @object.send(@method, tmp("/")).should == false
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(tmp("/"))).should == false
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/directory.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/directory.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/directory.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -2,7 +2,7 @@
   before :each do
     platform_is :windows do
       @dir  = "C:\\"
-      @file = "C:\\winnt\\notepad.exe"
+      @file = "C:\\windows\\notepad.exe"
     end
 
     platform_is_not :windows do
@@ -20,6 +20,12 @@
     @object.send(@method, @file).should == false
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(@dir)).should == true
+    end
+  end
+
   it "raises an ArgumentError if not passed one argument" do
     lambda { @object.send(@method)              }.should raise_error(ArgumentError)
     lambda { @object.send(@method, @dir, @file) }.should raise_error(ArgumentError)

Modified: MacRuby/trunk/spec/frozen/shared/file/executable.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/executable.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/executable.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -28,6 +28,12 @@
       @object.send(@method, @file1).should == true
       @object.send(@method, @file2).should == false
     end
+
+    ruby_version_is "1.9" do
+      it "accepts an object that has a #to_path method" do
+        @object.send(@method, mock_to_path(@file1)).should == true
+      end
+    end
   end
 
   it "raises an ArgumentError if not passed one argument" do

Modified: MacRuby/trunk/spec/frozen/shared/file/executable_real.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/executable_real.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/executable_real.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -22,6 +22,12 @@
       @object.send(@method, @file1).should == true
       @object.send(@method, @file2).should == false
     end
+
+    ruby_version_is "1.9" do
+      it "accepts an object that has a #to_path method" do
+        @object.send(@method, mock_to_path(@file1)).should == true
+      end
+    end
   end
 
   it "returns true if named file is readable by the real user id of the process, otherwise false" do

Modified: MacRuby/trunk/spec/frozen/shared/file/exist.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/exist.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/exist.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -17,4 +17,10 @@
   it "raises a TypeError if not passed a String type" do
     lambda { @object.send(@method, nil) }.should raise_error(TypeError)
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(__FILE__)).should == true
+    end
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/file.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/file.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/file.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -25,6 +25,13 @@
     @object.send(@method, @dir).should == false
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+    @object.send(@method, mock_to_path(@file)).should == true
+    end
+  end
+
+
   platform_is_not :windows do
     it "return true if the null device exists and is a regular file." do
       @object.send(@method, @null).should == false # May fail on MS Windows

Modified: MacRuby/trunk/spec/frozen/shared/file/grpowned.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/grpowned.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/grpowned.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -13,6 +13,12 @@
     it "return true if the file exist" do
       @object.send(@method, @file).should == true
     end
+
+    ruby_version_is "1.9" do
+      it "accepts an object that has a #to_path method" do
+        @object.send(@method, mock_to_path(@file)).should == true
+      end
+    end
   end
 
   platform_is :windows do

Modified: MacRuby/trunk/spec/frozen/shared/file/identical.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/identical.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/identical.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -22,6 +22,13 @@
     @object.send(@method, @file1, @file3).should == true
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(@file1), mock_to_path(@file3)).should == true
+    end
+  end
+
+
   it "raises an ArgumentError if not passed two arguments" do
     lambda { @object.send(@method, @file1, @file2, @file3) }.should raise_error(ArgumentError)
     lambda { @object.send(@method, @file1) }.should raise_error(ArgumentError)

Modified: MacRuby/trunk/spec/frozen/shared/file/owned.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/owned.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/owned.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1,6 @@
 describe :file_owned, :shared => true do
+  ruby_version_is "1.9" do
+# please add a 1.9 test that accepts a mock_to_path("/path") argument
+#    it "accepts an object that has a #to_path method"
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/pipe.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/pipe.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/pipe.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1,6 @@
 describe :file_pipe, :shared => true do
+  ruby_version_is "1.9" do
+# please add a 1.9 test that accepts a mock_to_path("/path") argument
+#    it "accepts an object that has a #to_path method"
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/readable.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/readable.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/readable.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,6 +1,12 @@
 describe :file_readable, :shared => true do
   before :each do
-    @file = '/tmp/i_exist'
+    @file = tmp('i_exist')
+    platform_is :windows do
+      @file2 = "C:\\windows\\notepad.exe"
+    end
+    platform_is_not :windows do
+      @file2 = "/etc/passwd"
+    end
   end
 
   after :each do
@@ -8,9 +14,15 @@
   end
 
   it "returns true if named file is readable by the effective user id of the process, otherwise false" do
-    @object.send(@method, '/etc/passwd').should == true
+    @object.send(@method, @file2).should == true
     File.open(@file,'w') { @object.send(@method, @file).should == true }
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(@file2)).should == true
+    end
+  end
 end
 
 describe :file_readable_missing, :shared => true do

Modified: MacRuby/trunk/spec/frozen/shared/file/readable_real.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/readable_real.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/readable_real.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -10,6 +10,12 @@
   it "returns true if named file is readable by the real user id of the process, otherwise false" do
     File.open(@file,'w') { @object.send(@method, @file).should == true }
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.open(@file,'w') { @object.send(@method, mock_to_path(@file)).should == true }
+    end
+  end
 end
 
 describe :file_readable_real_missing, :shared => true do

Modified: MacRuby/trunk/spec/frozen/shared/file/size.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/size.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/size.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -20,6 +20,12 @@
   it "returns the size of the file if it exists and is not empty" do
     @object.send(@method, @exists).should == 8
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(@exists)).should == 8
+    end
+  end
 end
 
 describe :file_size_missing, :shared => true do

Modified: MacRuby/trunk/spec/frozen/shared/file/socket.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/socket.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/socket.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1,6 @@
 describe :file_socket, :shared => true do
+  ruby_version_is "1.9" do
+# please add a 1.9 test that accepts a mock_to_path("/path") argument
+#    it "accepts an object that has a #to_path method"
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/sticky.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/sticky.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/sticky.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1,6 @@
 describe :file_sticky, :shared => true do
+  ruby_version_is "1.9" do
+# please add a 1.9 test that accepts a mock_to_path("/path") argument
+#    it "accepts an object that has a #to_path method"
+  end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/symlink.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/symlink.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/symlink.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -17,6 +17,13 @@
       File.symlink(@file, @link)
       @object.send(@method, @link).should == true
     end
+
+    ruby_version_is "1.9" do
+      it "accepts an object that has a #to_path method" do
+        File.symlink(@file, @link)
+        @object.send(@method, mock_to_path(@link)).should == true
+      end
+    end
   end
 end
 

Modified: MacRuby/trunk/spec/frozen/shared/file/world_readable.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/world_readable.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/world_readable.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,12 +1,12 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 describe :file_world_readable, :shared => true do
-  
+
   before(:each) do
     @file = tmp('world-readable')
     File.open(@file,'w') {|f| f.puts }
   end
-  
+
   after(:each) do
     File.unlink(@file) if File.exists?(@file)
   end
@@ -43,8 +43,6 @@
   end
 
   it "coerces the argument with #to_path" do
-    obj = mock('path')
-    obj.should_receive(:to_path).and_return(@file)
-    @object.world_readable?(obj)
+    @object.world_readable?(mock_to_path(@file))
   end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/world_writable.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/world_writable.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/world_writable.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,12 +1,12 @@
 require File.dirname(__FILE__) + '/../../spec_helper'
 
 describe :file_world_writable, :shared => true do
-  
+
   before(:each) do
     @file = tmp('world-writable')
     File.open(@file,'w') {|f| f.puts }
   end
-  
+
   after(:each) do
     File.unlink(@file) if File.exists?(@file)
   end
@@ -43,8 +43,6 @@
   end
 
   it "coerces the argument with #to_path" do
-    obj = mock('path')
-    obj.should_receive(:to_path).and_return(@file)
-    @object.world_writable?(obj)
+    @object.world_writable?(mock_to_path(@file))
   end
 end

Modified: MacRuby/trunk/spec/frozen/shared/file/writable.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/writable.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/writable.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -8,9 +8,17 @@
   end
 
   it "returns true if named file is writable by the effective user id of the process, otherwise false" do
-    @object.send(@method, '/etc/passwd').should == false
+    platform_is_not :windows do
+      @object.send(@method, "/etc/passwd").should == false
+    end
     File.open(@file,'w') { @object.send(@method, @file).should == true }
   end
+
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.open(@file,'w') { @object.send(@method, mock_to_path(@file)).should == true }
+    end
+  end
 end
 
 describe :file_writable_missing, :shared => true do

Modified: MacRuby/trunk/spec/frozen/shared/file/writable_real.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/writable_real.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/writable_real.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -11,6 +11,12 @@
     File.open(@file,'w') { @object.send(@method, @file).should == true }
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      File.open(@file,'w') { @object.send(@method, mock_to_path(@file)).should == true }
+    end
+  end
+
   it "raises an ArgumentError if not passed one argument" do
     lambda { File.writable_real?        }.should raise_error(ArgumentError)
   end

Modified: MacRuby/trunk/spec/frozen/shared/file/zero.rb
===================================================================
--- MacRuby/trunk/spec/frozen/shared/file/zero.rb	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/shared/file/zero.rb	2009-09-05 16:27:09 UTC (rev 2488)
@@ -27,6 +27,12 @@
     @object.send(@method, @nonzero_file).should == false
   end
 
+  ruby_version_is "1.9" do
+    it "accepts an object that has a #to_path method" do
+      @object.send(@method, mock_to_path(@zero_file)).should == true
+    end
+  end
+
   platform_is :windows do
     it "returns true for NUL" do
       @object.send(@method, 'NUL').should == true

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/argf/each_byte_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/argf/each_byte_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/argf/each_byte_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +1,2 @@
-fails:ARGF.each_byte yields each byte of all streams to the passed block
 fails:ARGF.each_byte returns self when passed a block
 fails:ARGF.each_byte returns an Enumerable::Enumerator when passed no block

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/argf/skip_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/argf/skip_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/argf/skip_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +0,0 @@
-fails:ARGF.skip skips the current file
-fails:ARGF.skip has no effect when called twice in a row
-fails:ARGF.skip has no effect at end of stream

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/array/pack_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/array/pack_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/array/pack_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,288 +1,18 @@
-fails:Array#pack sequentially processes each pack format, which consumes element in the array, and finally concatenates their result
-fails:Array#pack ignores white spaces
-fails:Array#pack with format 'B' returns packed bit-string descending order
-fails:Array#pack with format 'B' conversion edge case: all zeros
-fails:Array#pack with format 'B' conversion edge case: all ones
-fails:Array#pack with format 'B' conversion edge case: left one
-fails:Array#pack with format 'B' conversion edge case: right one
-fails:Array#pack with format 'B' conversion edge case: edge sequences not in first char
-fails:Array#pack with format 'B' returns zero-char for each 2 of count that greater than string length
-fails:Array#pack with format 'B' returns extra zero char if count is odd and greater than string length
-fails:Array#pack with format 'B' starts new char if string is ended before char's 8 bits
-fails:Array#pack with format 'B' returns empty string if count = 0
-fails:Array#pack with format 'b' returns packed bit-string descending order
-fails:Array#pack with format 'b' conversion edge case: all zeros
-fails:Array#pack with format 'b' conversion edge case: all ones
-fails:Array#pack with format 'b' conversion edge case: left one
-fails:Array#pack with format 'b' conversion edge case: right one
-fails:Array#pack with format 'b' conversion edge case: edge sequences not in first char
-fails:Array#pack with format 'b' returns zero-char for each 2 of count that greater than string length
-fails:Array#pack with format 'b' returns extra zero char if count is odd and greater than string length
-fails:Array#pack with format 'b' starts new char if argument string is ended before char's 8 bits
-fails:Array#pack with format 'b' returns empty string if count = 0
-fails:Array#pack with format 'H' encodes hexadecimal digits to byte sequence in the order of high-nibble first
-fails:Array#pack with format 'H' ignores rest of the pack argument when the argument is too long
-fails:Array#pack with format 'H' fills low-nibble of the last byte with 0 when count is odd
-fails:Array#pack with format 'H' fills the rest bytes with 0 if pack argument has insufficient length
-fails:Array#pack with format 'H' returns the whole argument string with star parameter
-fails:Array#pack with format 'H' consumes only one array item per a format
-fails:Array#pack with format 'h' encodes hexadecimal digits to byte sequence in the order of low-nibble first
-fails:Array#pack with format 'h' ignores rest of the pack argument when the argument is too long
-fails:Array#pack with format 'h' fills low-nibble of the last byte with 0 when count is odd
-fails:Array#pack with format 'h' fills the rest bytes with 0 if pack argument has insufficient length
-fails:Array#pack with format 'h' returns the whole argument string with star parameter
-fails:Array#pack with format 'h' consumes only one array item per a format
-fails:Array#pack with format 'C' returns a string with byte of appropriate number
-fails:Array#pack with format 'C' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'C' reduces value to fit in byte
-fails:Array#pack with format 'C' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'C' processes count number of array elements if count given
-fails:Array#pack with format 'C' returns empty string if count = 0
-fails:Array#pack with format 'C' with star parameter processes all remaining array items
-fails:Array#pack with format 'c' returns a string with byte of appropriate number
-fails:Array#pack with format 'c' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'c' reduces value to fit in byte
-fails:Array#pack with format 'c' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'c' processes count number of array elements if count given
-fails:Array#pack with format 'c' returns empty string if count = 0
-fails:Array#pack with format 'c' with star parameter processes all remaining array items
-fails:Array#pack with format 'n' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 'n' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'n' drops higher bytes when a pack argument is >= 2**32
-fails:Array#pack with format 'n' drops higher bytes when a pack argument is < -2**32
-fails:Array#pack with format 'n' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'n' processes count number of array elements if count given
-fails:Array#pack with format 'n' returns empty string if count = 0
-fails:Array#pack with format 'n' with star parameter processes all remaining array items
-fails:Array#pack with format 'v' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 'v' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'v' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 'v' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 'v' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'v' processes count number of array elements if count given
-fails:Array#pack with format 'v' returns empty string if count = 0
-fails:Array#pack with format 'v' with star parameter processes all remaining array items
-fails:Array#pack with format 'N' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'N' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'N' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'N' processes count number of array elements if count given
-fails:Array#pack with format 'N' returns empty string if count = 0
-fails:Array#pack with format 'N' with star parameter processes all remaining array items
-fails:Array#pack with format 'V' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'V' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'V' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'V' processes count number of array elements if count given
-fails:Array#pack with format 'V' returns empty string if count = 0
-fails:Array#pack with format 'V' with star parameter processes all remaining array items
-fails:Array#pack with format 's' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 's' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 's' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 's' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 's' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 's' processes count number of array elements if count given
-fails:Array#pack with format 's' returns empty string if count = 0
-fails:Array#pack with format 's' with star parameter processes all remaining array items
-fails:Array#pack with format 'S' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 'S' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'S' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 'S' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 'S' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'S' processes count number of array elements if count given
-fails:Array#pack with format 'S' returns empty string if count = 0
-fails:Array#pack with format 'S' with star parameter processes all remaining array items
-fails:Array#pack with format 'l' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'l' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'l' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'l' processes count number of array elements if count given
-fails:Array#pack with format 'l' returns empty string if count = 0
-fails:Array#pack with format 'l' with star parameter processes all remaining array items
-fails:Array#pack with format 'L' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'L' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'L' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'L' processes count number of array elements if count given
-fails:Array#pack with format 'L' returns empty string if count = 0
-fails:Array#pack with format 'L' with star parameter processes all remaining array items
-fails:Array#pack with format 'q' returns a string containing 8 bytes for an integer
-fails:Array#pack with format 'q' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'q' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'q' processes count number of array elements if count given
-fails:Array#pack with format 'q' returns empty string if count = 0
-fails:Array#pack with format 'q' with star parameter processes all remaining array items
-fails:Array#pack with format 'Q' returns a string containing 8 bytes for an integer
-fails:Array#pack with format 'Q' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'Q' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'Q' processes count number of array elements if count given
-fails:Array#pack with format 'Q' returns empty string if count = 0
-fails:Array#pack with format 'Q' with star parameter processes all remaining array items
-fails:Array#pack with format 's!' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 's!' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 's!' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 's!' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 's!' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 's!' processes count number of array elements if count given
-fails:Array#pack with format 's!' returns empty string if count = 0
-fails:Array#pack with format 's!' with star parameter processes all remaining array items
-fails:Array#pack with format 's_' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 's_' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 's_' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 's_' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 's_' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 's_' processes count number of array elements if count given
-fails:Array#pack with format 's_' returns empty string if count = 0
-fails:Array#pack with format 's_' with star parameter processes all remaining array items
-fails:Array#pack with format 'S!' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 'S!' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'S!' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 'S!' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 'S!' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'S!' processes count number of array elements if count given
-fails:Array#pack with format 'S!' returns empty string if count = 0
-fails:Array#pack with format 'S!' with star parameter processes all remaining array items
-fails:Array#pack with format 'S_' returns a string containing 2 bytes for an integer
-fails:Array#pack with format 'S_' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'S_' drops higher bytes when a pack argument is >= 2**16
-fails:Array#pack with format 'S_' drops higher bytes when a pack argument is < -2**16
-fails:Array#pack with format 'S_' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'S_' processes count number of array elements if count given
-fails:Array#pack with format 'S_' returns empty string if count = 0
-fails:Array#pack with format 'S_' with star parameter processes all remaining array items
-fails:Array#pack with format 'i' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'i' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'i' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'i' processes count number of array elements if count given
-fails:Array#pack with format 'i' returns empty string if count = 0
-fails:Array#pack with format 'i' with star parameter processes all remaining array items
-fails:Array#pack with format 'i!' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'i!' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'i!' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'i!' processes count number of array elements if count given
-fails:Array#pack with format 'i!' returns empty string if count = 0
-fails:Array#pack with format 'i!' with star parameter processes all remaining array items
-fails:Array#pack with format 'i_' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'i_' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'i_' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'i_' processes count number of array elements if count given
-fails:Array#pack with format 'i_' returns empty string if count = 0
-fails:Array#pack with format 'i_' with star parameter processes all remaining array items
-fails:Array#pack with format 'I' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'I' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'I' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'I' processes count number of array elements if count given
-fails:Array#pack with format 'I' returns empty string if count = 0
-fails:Array#pack with format 'I' with star parameter processes all remaining array items
-fails:Array#pack with format 'I!' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'I!' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'I!' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'I!' processes count number of array elements if count given
-fails:Array#pack with format 'I!' returns empty string if count = 0
-fails:Array#pack with format 'I!' with star parameter processes all remaining array items
-fails:Array#pack with format 'I_' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'I_' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'I_' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'I_' processes count number of array elements if count given
-fails:Array#pack with format 'I_' returns empty string if count = 0
-fails:Array#pack with format 'I_' with star parameter processes all remaining array items
-fails:Array#pack with format 'l!' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'l!' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'l!' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'l!' processes count number of array elements if count given
-fails:Array#pack with format 'l!' returns empty string if count = 0
-fails:Array#pack with format 'l!' with star parameter processes all remaining array items
-fails:Array#pack with format 'l_' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'l_' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'l_' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'l_' processes count number of array elements if count given
-fails:Array#pack with format 'l_' returns empty string if count = 0
-fails:Array#pack with format 'l_' with star parameter processes all remaining array items
-fails:Array#pack with format 'L!' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'L!' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'L!' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'L!' processes count number of array elements if count given
-fails:Array#pack with format 'L!' returns empty string if count = 0
-fails:Array#pack with format 'L!' with star parameter processes all remaining array items
-fails:Array#pack with format 'L_' returns a string containing 4 bytes for an integer
-fails:Array#pack with format 'L_' regards negative values as 2's complement in order to converts it to positive
-fails:Array#pack with format 'L_' tries to convert the pack argument to an Integer using #to_int
-fails:Array#pack with format 'L_' processes count number of array elements if count given
-fails:Array#pack with format 'L_' returns empty string if count = 0
-fails:Array#pack with format 'L_' with star parameter processes all remaining array items
-fails:Array#pack with format 'f' tries to convert the pack argument to a Float using #to_f
 fails:Array#pack with format 'f' accepts a string representation of real number as the pack argument
-fails:Array#pack with format 'f' accepts the positive zero
-fails:Array#pack with format 'f' accepts the negative zero
-fails:Array#pack with format 'f' accepts a positive value
-fails:Array#pack with format 'f' accepts a negative value
-fails:Array#pack with format 'f' accepts the positive infinity
-fails:Array#pack with format 'f' accepts the negative infinity
-fails:Array#pack with format 'd' tries to convert the pack argument to a Float using #to_f
 fails:Array#pack with format 'd' accepts a string representation of real number as the pack argument
-fails:Array#pack with format 'd' accepts the positive zero
-fails:Array#pack with format 'd' accepts the negative zero
-fails:Array#pack with format 'd' accepts a positive value
-fails:Array#pack with format 'd' accepts a negative value
-fails:Array#pack with format 'd' accepts the positive infinity
-fails:Array#pack with format 'd' accepts the negative infinity
-fails:Array#pack with format 'e' tries to convert the pack argument to a Float using #to_f
 fails:Array#pack with format 'e' accepts a string representation of real number as the pack argument
-fails:Array#pack with format 'e' accepts the positive zero
-fails:Array#pack with format 'e' accepts the negative zero
-fails:Array#pack with format 'e' accepts a positive value
-fails:Array#pack with format 'e' accepts a negative value
-fails:Array#pack with format 'e' accepts the positive infinity
-fails:Array#pack with format 'e' accepts the negative infinity
-fails:Array#pack with format 'E' tries to convert the pack argument to a Float using #to_f
 fails:Array#pack with format 'E' accepts a string representation of real number as the pack argument
-fails:Array#pack with format 'E' accepts the positive zero
-fails:Array#pack with format 'E' accepts the negative zero
-fails:Array#pack with format 'E' accepts a positive value
-fails:Array#pack with format 'E' accepts a negative value
-fails:Array#pack with format 'E' accepts the positive infinity
-fails:Array#pack with format 'E' accepts the negative infinity
-fails:Array#pack with format 'g' tries to convert the pack argument to a Float using #to_f
 fails:Array#pack with format 'g' accepts a string representation of real number as the pack argument
-fails:Array#pack with format 'g' accepts the positive zero
-fails:Array#pack with format 'g' accepts the negative zero
-fails:Array#pack with format 'g' accepts a positive value
-fails:Array#pack with format 'g' accepts a negative value
-fails:Array#pack with format 'g' accepts the positive infinity
-fails:Array#pack with format 'g' accepts the negative infinity
-fails:Array#pack with format 'G' tries to convert the pack argument to a Float using #to_f
 fails:Array#pack with format 'G' accepts a string representation of real number as the pack argument
-fails:Array#pack with format 'G' accepts the positive zero
-fails:Array#pack with format 'G' accepts the negative zero
-fails:Array#pack with format 'G' accepts a positive value
-fails:Array#pack with format 'G' accepts a negative value
-fails:Array#pack with format 'G' accepts the positive infinity
-fails:Array#pack with format 'G' accepts the negative infinity
-fails:Array#pack with format 'U' regards a integer as a Unicode codepoint and encodes into UTF-8 byte sequence
-fails:Array#pack with format 'w' converts to BER-compressed integer
-fails:Array#pack with format 'w' calls to_int on non-integer values before packing
-fails:Array#pack with '@' moves the end of result string into the specified position by offset from head
-fails:Array#pack with '@' fills blank with NUL bytes if the position exceeds the end of string
-fails:Array#pack with '@' concatenates successing formats at the position '@' moves it into
-fails:Array#pack with '@' does not recover lost bytes when shorten the string and then extends it again
-fails:Array#pack with '@' is able to work with 'X'
 fails:Array#pack with format 'p' returns a pointer which is able to dereferenced into NUL terminated byte sequence
 fails:Array#pack with format 'p' returns a pointer which is able to dereferenced into a right value
 fails:Array#pack with format 'P' returns a pointer which is able to dereferenced into NUL terminated byte sequence
 fails:Array#pack with format 'P' returns a pointer which is able to dereferenced into a right value
-fails:Array#pack returns a string in encoding of common to the concatenated results
 fails:Array#pack with the empty format returns an ASCII-8BIT
-fails:Array#pack with format 'A' raises a TypeError if array item is not String with ('A<count>')
 fails:Array#pack with format 'A' keeps encoding of source strings
-fails:Array#pack with format 'A' cuts byte sequence even if it breaks a multibyte character
-fails:Array#pack with format 'a' raises a TypeError if array item is not String with ('A<count>')
 fails:Array#pack with format 'a' keeps encoding of source strings
-fails:Array#pack with format 'a' cuts byte sequence even if it breaks a multibyte character
-fails:Array#pack with format 'Z' raises a TypeError if array item is not String with ('A<count>')
 fails:Array#pack with format 'Z' keeps encoding of source strings
-fails:Array#pack with format 'Z' cuts byte sequence even if it breaks a multibyte character
-fails:Array#pack with format 'B' raises a TypeError if corresponding array item is not String
-fails:Array#pack with format 'b' raises a TypeError if corresponding array item is not String
-fails:Array#pack with format 'm' raises a TypeError if corresponding array item is not string
-fails:Array#pack with format 'u' raises a TypeError if corresponding array item is not string
 fails:Array#pack with format 'X' doesn't change encoding of the result string
 fails:Array#pack with format 'X' doesn't care even if breaks a character
 fails:Array#pack with '@' doesn't change encoding of the result string
 fails:Array#pack with '@' doesn't care even if breaks a character
-fails:String#unpack with 'w' directive produces a BER-compressed integer

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/array/zip_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/array/zip_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/array/zip_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Array#zip calls #to_ary to convert the argument to an Array

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_and_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_and_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_and_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Bignum#& returns self bitwise AND other
-fails:Bignum#& tries to convert the given argument to an Integer using to_int

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_or_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_or_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_or_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Bignum#| returns self bitwise OR other
-fails:Bignum#| tries to convert the given argument to an Integer using to_int

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_xor_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_xor_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/bit_xor_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Bignum#^ returns self bitwise EXCLUSIVE OR other
-fails:Bignum#^ tries to convert the given argument to an Integer using to_int

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/comparison_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/comparison_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/bignum/comparison_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Bignum#<=> returns 1 when self is negative and other is -Infinity

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/class/new_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/class/new_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/class/new_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Class.new creates a class without a name
-fails:Class.new creates a class that can be given a name by assigning it to a constant

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/class/superclass_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/class/superclass_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/class/superclass_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Class#superclass returns the superclass of self

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/join_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/join_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/join_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,5 +1 @@
 fails:Enumerable#join handles recursive arrays
-fails:Enumerable#join returns a string which would be infected with taint of the array, its elements or the separator when the array is not empty
-fails:Enumerable#join returns a string which would be infected with untrustworthiness of the array, its elements or the separator when the array is not empty
-fails:Enumerable#join uses the same separator with nested arrays
-fails:Enumerable#join tries to convert the passed separator to a String using #to_str

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/partition_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/partition_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/partition_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Enumerable#partition returns an Enumerator if called without a block

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/reject_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/reject_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/enumerable/reject_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Enumerable#reject returns an Enumerator if called without a block

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/file/chmod_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/file/chmod_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/file/chmod_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:File.chmod throws a TypeError if the given path is not coercable into a string

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/file/expand_path_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/file/expand_path_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/file/expand_path_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:File.expand_path raises an ArgumentError if the path is not valid
-fails:File.expand_path expands ~ENV['USER'] to the user's home directory

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/fixnum/exponent_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/fixnum/exponent_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/fixnum/exponent_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1 @@
-fails:Fixnum#** returns self raised to the given power
 fails:Fixnum#** returns Infinity for 0**-1

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/float/to_s_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/float/to_s_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/float/to_s_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Float#to_s returns a string representation of self, possibly Nan, -Infinity, +Infinity

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/eof_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/eof_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/eof_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:IO#eof? should not consume the data from the stream

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/for_fd_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/for_fd_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/for_fd_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:IO.for_fd raises EINVAL if mode is not compatible with the descriptor's current mode
-fails:IO.for_fd cannot open an IO with incompatible flags

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/inspect_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/inspect_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/inspect_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:IO#inspect returns a string describing a stream

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/new_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/new_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/new_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:IO.new raises EINVAL if mode is not compatible with the descriptor's current mode
-fails:IO.new cannot open an IO with incompatible flags

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/open_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/open_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/open_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:IO.open raises EINVAL if mode is not compatible with the descriptor's current mode
-fails:IO.open cannot open an IO with incompatible flags

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/print_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/print_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/print_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +0,0 @@
-fails:IO#print writes obj.to_s followed by $\ (if any) to the stream when given one object
-fails:IO#print does not call obj.to_str
-fails:IO#print writes each obj.to_s to the stream and appends $\ (if any) given multiple objects

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/io/read_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/read_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/read_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:IO#read can read lots of data

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/io/ungetc_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/io/ungetc_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/io/ungetc_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,5 +1 @@
-fails:IO#ungetc pushes back one character onto stream
-fails:IO#ungetc pushes back one character when invoked at the end of the stream
-fails:IO#ungetc pushes back one character when invoked at the start of the stream
-fails:IO#ungetc pushes back one character when invoked on empty stream
 fails:IO#ungetc raises IOError when invoked on stream that was not yet read

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/callcc_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/callcc_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/callcc_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,9 +0,0 @@
-fails:Kernel#callcc is a private method
-fails:Kernel#callcc is possible to exit a loop like a break
-fails:Kernel#callcc is possible to call a continuation multiple times
-fails:Kernel#callcc returns the results of a block if continuation is not called
-fails:Kernel#callcc returns the results of continuation once called
-fails:Kernel#callcc returns the arguments to call
-fails:Kernel#callcc preserves changes to block-local scope
-fails:Kernel#callcc preserves changes to method-local scope
-fails:Kernel#callcc raises a LocalJumpError if callcc is not given a block

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/eval_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/eval_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/eval_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,9 +1,3 @@
 fails:Kernel#eval accepts a Proc object as a binding
-fails:Kernel#eval does not make Proc locals visible to evaluated code
-fails:Kernel#eval allows a binding to be captured inside an eval
 fails:Kernel#eval allows Proc and binding to be nested in horrible ways
-fails:Kernel#eval allows creating a new class in a binding
-fails:Kernel#eval allows creating a new class in a binding created by #eval
-fails:Kernel#eval allows creating a new class in a binding returned by a method defined with #eval
-fails:Kernel#eval should perform top level evaluations from inside a block
 fails:Kernel#eval uses the filename of the binding if none is provided

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/global_variables_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/global_variables_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/global_variables_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Kernel.global_variables finds subset starting with std

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/instance_eval_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/instance_eval_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/instance_eval_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +1,2 @@
 fails:Kernel#instance_eval passes the object to the block
 fails:Kernel#instance_eval shares a scope across sibling evals
-fails:Kernel#instance_eval sets class variables in the receiver

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/load_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/load_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/load_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Kernel#load produces __FILE__ as the given filename and __LINE__ as the source line number

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/local_variables_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/local_variables_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/local_variables_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Kernel.local_variables contains locals as they are added
-fails:Kernel.local_variables is accessable from bindings

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/p_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/p_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/p_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Kernel#p prints obj.inspect followed by system record separator for each argument given

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/private_methods_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/private_methods_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/private_methods_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Kernel#private_methods returns a list of the names of privately accessible methods in the object
-fails:Kernel#private_methods returns a list of the names of privately accessible methods in the object and its ancestors and mixed-in modules

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/protected_methods_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/protected_methods_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/protected_methods_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Kernel#protected_methods returns a list of the names of protected methods accessible in the object
-fails:Kernel#protected_methods returns a list of the names of protected methods accessible in the object and from its ancestors and mixed-in modules

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/public_methods_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/public_methods_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/public_methods_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Kernel#public_methods returns a list of the names of publicly accessible methods in the object
-fails:Kernel#public_methods returns a list of the names of publicly accessible methods in the object and its ancestors and mixed-in modules

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/singleton_methods_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/singleton_methods_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/singleton_methods_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Kernel#singleton_methods returns a list of the names of singleton methods in the object
-fails:Kernel#singleton_methods returns a list of the names of singleton methods in the object and its ancestors and mixed-in modules

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/warn_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/warn_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/kernel/warn_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +0,0 @@
-fails:Kernel.warn calls #write on $stderr if $VERBOSE is true
-fails:Kernel.warn calls #write on $stderr if $VERBOSE is false
-fails:Kernel.warn writes the default record separator and NOT $/ to $stderr after the warning message

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/dump_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/dump_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/dump_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,19 +0,0 @@
-fails:Marshal.dump raises an ArgumentError when the recursion limit is exceeded
-fails:Marshal.dump dumps an object having ivar
-fails:Marshal.dump dumps an extended_user_regexp having ivar
-fails:Marshal.dump dumps an extended_user_hash_default
-fails:Marshal.dump dumps an extended_user_hash with a parameter to initialize
-fails:Marshal.dump dumps an array containing objects having _dump method
-fails:Marshal.dump dumps an array containing objects having marshal_dump method
-fails:Marshal.dump dumps an array containing the same objects
-fails:Marshal.dump dumps an extended_array having ivar
-fails:Marshal.dump dumps an extended_struct having fields with same objects
-fails:Marshal.dump dumps a String empty
-fails:Marshal.dump dumps a String small
-fails:Marshal.dump dumps a String big
-fails:Marshal.dump dumps a String extended
-fails:Marshal.dump dumps a _dump object
-fails:Marshal.dump dumps a _dump object extended
-fails:Marshal.dump dumps a marshal_dump object
-fails:Marshal.dump dumps a Regexp
-fails:Marshal.dump dumps a Regexp subclass /i

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/load_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/load_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/marshal/load_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +0,0 @@
-fails:Marshal::load loads a array containing objects having _dump method, and with proc
-fails:Marshal::load loads an array containing objects having marshal_dump method, and with proc
-fails:Marshal::load loads an Array with proc

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/math/acos_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/acos_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/acos_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,9 +1,3 @@
 fails:Math.acos raises an ArgumentError if the argument cannot be coerced with Float()
-fails:Math.acos accepts any argument that can be coerced with Float()
 fails:Math.acos raises an ArgumentError if the string argument cannot be coerced with Float()
 fails:Math.acos coerces string argument with Float() without calling to_f
-fails:Math.acos raises an Errno::EDOM if the argument is greater than 1.0
-fails:Math.acos raises an Errno::EDOM if the argument is less than -1.0
-fails:Math.acos raises a TypeError if the string argument cannot be coerced with Float()
-fails:Math.acos raises an TypeError if the argument cannot be coerced with Float()
-fails:Math.acos raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/acosh_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/acosh_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/acosh_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,4 +0,0 @@
-fails:Math.acosh it raises Errno::EDOM if the passed argument is less than -1.0 or greater than 1.0
-fails:Math.acosh raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.acosh raises a TypeError if the argument is nil
-fails:Math.acosh accepts any argument that can be coerced with Float()

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/asin_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/asin_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/asin_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,5 +0,0 @@
-fails:Math.asin raises an Errno::EDOM if the argument is greater than 1.0
-fails:Math.asin raises an Errno::EDOM if the argument is less than -1.0
-fails:Math.asin raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.asin raises a TypeError if the argument is nil
-fails:Math.asin accepts any argument that can be coerced with Float()

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/asinh_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/asinh_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/asinh_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.asinh raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.asinh raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan2_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan2_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan2_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.atan2 raises an TypeError if the argument cannot be coerced with Float()
-fails:Math.atan2 raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/atan_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.atan raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.atan raises a TypeError if the argument is nil

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/math/atanh_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/atanh_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/atanh_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,7 +1,2 @@
 fails:Math.atanh returns Infinity for 1.0
 fails:Math.atanh returns -Infinity for -1.0
-fails:Math.atanh raises an Errno::EDOM if the passed argument is greater than 1.0
-fails:Math.atanh raises an Errno::EDOM if the passed argument is less than -1.0
-fails:Math.atanh raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.atanh raises a TypeError if the argument is nil
-fails:Math.atanh accepts any argument that can be coerced with Float()

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/cos_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/cos_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/cos_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.cos raises a TypeError unless the argument is Numeric and has #to_f
-fails:Math.cos raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/cosh_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/cosh_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/cosh_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.cosh raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.cosh raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/exp_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/exp_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/exp_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.exp raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.exp raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/log10_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/log10_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/log10_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,4 +0,0 @@
-fails:Math.log10 raises an Errno::EDOM if the argument is less than 0
-fails:Math.log10 raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.log10 raises a TypeError if the argument is nil
-fails:Math.log10 accepts any argument that can be coerced with Float()

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/log_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/log_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/log_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,4 +0,0 @@
-fails:Math.log raises an Errno::EDOM if the argument is less than 0
-fails:Math.log raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.log raises a TypeError if the argument is nil
-fails:Math.log accepts any argument that can be coerced with Float()

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/sin_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/sin_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/sin_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.sin raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.sin raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/sinh_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/sinh_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/sinh_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.sinh raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.sinh raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/sqrt_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/sqrt_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/sqrt_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,3 +0,0 @@
-fails:Math.sqrt raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.sqrt raises a TypeError if the argument is nil
-fails:Math.sqrt accepts any argument that can be coerced with Float()

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/tan_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/tan_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/tan_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.tan raises a TypeError if the argument cannot be coerced with Float()
-fails:Math.tan raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/math/tanh_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/math/tanh_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/math/tanh_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Math.tanh raises an TypeError if the argument cannot be coerced with Float()
-fails:Math.tanh raises a TypeError if the argument is nil

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/method/clone_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/method/clone_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/method/clone_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Method#clone returns a copy of the method

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/quo_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/quo_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/quo_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Numeric#quo returns the result of calling self#/ with other

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/step_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/step_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/numeric/step_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +0,0 @@
-fails:Numeric#step with [stop, step] returns an Enumerator when passed no block and self > stop
-fails:Numeric#step with [stop, step] returns an Enumerator when passed no block and self < stop

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/proc/to_s_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/proc/to_s_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/proc/to_s_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Proc#to_s returns a description of self

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/regexp/inspect_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/regexp/inspect_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/regexp/inspect_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Regexp#inspect returns a formatted string that would eval to the same regexp

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/string/element_set_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/string/element_set_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/string/element_set_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1 @@
 fails:String#[]= with index raises an IndexError without changing self if idx is outside of self
-fails:String#[]= with String raises an IndexError without changing self if idx is outside of self

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/string/gsub_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/string/gsub_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/string/gsub_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,5 +1,2 @@
-fails:String#gsub with pattern and replacement raises a TypeError when pattern can't be converted to a string
-fails:String#gsub with pattern and replacement raises a TypeError when replacement can't be converted to a string
-fails:String#gsub with pattern and block restores $~ after leaving the block
 fails:String#gsub with pattern and block raises a RuntimeError if the string is modified while substituting
 fails:String#gsub! with pattern and replacement raises a TypeError when self is frozen

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/string/scan_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/string/scan_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/string/scan_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:String#scan with pattern and block restores $~ after leaving the block

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/struct/inspect_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/struct/inspect_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/struct/inspect_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Struct#inspect returns a string representation of some kind

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/alive_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/alive_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/alive_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Thread#alive? reports aborting on a killed thread

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_reference_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_reference_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_reference_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Thread#[] raises exceptions on the wrong type of keys

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_set_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_set_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/element_set_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Thread#[]= raises exceptions on the wrong type of keys

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/inspect_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/inspect_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/inspect_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1 @@
-fails:Thread#inspect reports aborting on a killed thread
 fails:Thread#inspect describes a dying running thread

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/join_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/join_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/join_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Thread#join returns the dead thread even if an uncaught exception is thrown from ensure block

Deleted: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/key_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/key_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/key_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +0,0 @@
-fails:Thread#key? raises exceptions on the wrong type of keys

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/status_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/status_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/status_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1 @@
 fails:Thread#status describes a dying running thread
-fails:Thread#status reports aborting on a killed thread

Modified: MacRuby/trunk/spec/frozen/tags/1.9/core/thread/stop_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/1.9/core/thread/stop_tags.txt	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/tags/1.9/core/thread/stop_tags.txt	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1,2 +1 @@
 critical:Thread.stop resets Thread.critical to false
-fails:Thread#stop? reports aborting on a killed thread

Modified: MacRuby/trunk/spec/frozen/upstream
===================================================================
--- MacRuby/trunk/spec/frozen/upstream	2009-09-05 16:25:23 UTC (rev 2487)
+++ MacRuby/trunk/spec/frozen/upstream	2009-09-05 16:27:09 UTC (rev 2488)
@@ -1 +1 @@
-16a88a4e3061edfae4d74def378e97bf2533e825
\ No newline at end of file
+eaa3a371fabfcf84f8e04f98c3c53f3eff90f1c8
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090905/c8682a99/attachment-0001.html>


More information about the macruby-changes mailing list