<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -51,17 +51,17 @@ module Test
         proclaim(got != expected, desc)
     end
 
-    def todo(reason,count=1)
+    def todo(reason,issue=&quot;&quot;,count=1)
         $todo_upto = $testnum + count
-        $todo_reason = '# TODO ' + reason
+        $todo_reason = &quot; # TODO #{reason} See issue ##{issue}.&quot; 
     end
 
-    def skip(reason='',count=1)
-        1.upto(count) { flunk('# SKIP ' + reason) }
+    def skip(reason='',issue=&quot;&quot;,count=1)
+        1.upto(count) { flunk(&quot;# SKIP #{reason} See issue ##{issue}.&quot;) }
     end
 
-    def skip_rest(reason='')
-        skip(reason,$planned - $testnum + 1)
+    def skip_rest(reason='',issue=&quot;&quot;)
+        skip(reason,issue,$planned - $testnum + 1)
     end
 
     def proclaim(cond,desc)</diff>
      <filename>Test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ end
 
 a = [ 5, 6, 7, 8 ]
 
-skip(&quot;for x in y doesn't work&quot;, 8)
+skip &quot;for x in y doesn't work&quot;, &quot;2&quot;, 8
 #for i in a
 #    ok(i &lt; 9, 'for loop')
 #end</diff>
      <filename>t/07-loops.t</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ include Test
 plan 4
 
 def foo(*n)
-    todo &quot;Slurpy param is apparently not an array.&quot;
+    todo &quot;Slurpy param is apparently not an array.&quot;, &quot;3&quot;
     is n.WHAT, Array, &quot;slurpy param is an array&quot;
     i = 0
     n.each do |a|</diff>
      <filename>t/11-slurpy.t</filename>
    </modified>
    <modified>
      <diff>@@ -19,5 +19,5 @@ end
 
 obj = NumberHolder.new(0)
 is obj.inc, 1, '.alias method'
-skip(&quot;aliased methods don't seem to work&quot;)
+skip &quot;aliased methods don't seem to work&quot;, &quot;4&quot;
 #is obj.increment, 2, '.alias method'</diff>
      <filename>t/alias.t</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ a = Array.new(2)
 
 is a, [ nil, nil ], '.new on Array'
 
-todo &quot;Array.fill&quot;, 3
+todo &quot;Array.fill&quot;, &quot;5&quot;, 3
 #a = a.fill('-')
 is a, [ '-', '-' ], '.fill on Array'
 </diff>
      <filename>t/array/fill.t</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ is a, 1, 'single assignment per line'
 a = 2
 is a, 2, 'single assignment per line'
 
-todo(&quot;Multiple assignment is broken&quot;, 6)
+todo(&quot;Multiple assignment is broken&quot;, &quot;6&quot;, 6)
 #x, y, z = 3, 4, 5
 is x, 3, 'multiple assignment per line'
 is y, 4, 'multiple assignment per line'</diff>
      <filename>t/assignment.t</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ d = Dir.new('.')
 files = Dir.entries('.')
 if files.include?('tmp')
 	pass '.entries on Dir'
-	skip &quot;.mkdir on Dir, tmp dir already exists&quot;
+	nok &quot;.mkdir on Dir, tmp dir already exists&quot;
 else
 	Dir.mkdir('./tmp')
 	pass '.mkdir on Dir'</diff>
      <filename>t/file/dir.t</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'Test'
 include Test
 plan 12 
 
-skip_rest &quot;Class methods of File fail because File can't be found OSLT&quot;
+skip_rest &quot;Class methods of File fail because File can't be found OSLT&quot;, &quot;24&quot;
 
 #def cleanup(name)
 #	if File.exist?(name)</diff>
      <filename>t/file/file.t</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'Test'
 include Test
 plan 20
-skip_rest &quot;Fails because File can't be found OSLT.&quot;
+skip_rest &quot;Fails because File can't be found OSLT.&quot;, &quot;24&quot;
 # need a better test for these things. this shows that we at least can parse and execute these commands
 #name = &quot;file-stat-tmp.txt&quot;
 #f = File.new(name, &quot;w&quot;)</diff>
      <filename>t/file/stat.t</filename>
    </modified>
    <modified>
      <diff>@@ -19,5 +19,5 @@ end
 obj = NumberHolder.new(0)
 obj.inc
 obj.freeze
-todo &quot;Fix .freeze method&quot;
+todo &quot;Fix .freeze method&quot;, &quot;7&quot;
 isnt obj.inc, 2, '.freeze method'</diff>
      <filename>t/freeze.t</filename>
    </modified>
    <modified>
      <diff>@@ -15,10 +15,9 @@ is b[a['a']], 2, &quot;basic hash access&quot;
 
 #c = Hash.new('ok')
 
-skip(&quot;Complete failure, goes into double free loop when I try to trace.&quot;)
+skip &quot;Complete failure, goes into double free loop when I try to trace.&quot;, &quot;8&quot;, 2
 #is c['a'], 'ok', &quot;hash static default&quot;
 
-skip(&quot;same&quot;)
 #d = Hash.new() { |hash, key| pass &quot;hash block default&quot;; hash[key] = 5 }
 
 #is d['foo'], 5, &quot;hash block default&quot;</diff>
      <filename>t/hash/hash.t</filename>
    </modified>
    <modified>
      <diff>@@ -23,42 +23,42 @@ end
 
 int1 = 300
 int2 = -300
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int int1, int2, 'assignment of an Integer'
 
 str1 = int1.to_s
 str2 = int2.to_s
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_str str1, str2, '.to_s on Integer'
 
 test1 = int1.to_i
 test2 = int2.to_i
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int test1, test2, '.to_i on Integer'
 
 test1 = int1.to_int
 test2 = int2.to_int
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int test1, test2, '.to_int on Integer'
 
 test1 = int1.floor
 test2 = int2.floor
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int test1, test2, '.floor on Integer'
 
 test1 = int1.ceil
 test2 = int2.ceil
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int test1, test2, '.ceil on Integer'
 
 test1 = int1.round
 test2 = int2.round
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int test1, test2, '.round on Integer'
 
 test1 = int1.truncate
 test2 = int2.truncate
-todo &quot;Integers being autoconverted to string for comparison?&quot;, 2
+todo &quot;Integers being autoconverted to string for comparison?&quot;, &quot;9&quot;, 2
 test_by_int test1, test2, '.truncate on Integer'
 
 test1 = int1.succ</diff>
      <filename>t/integer/integer.t</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'Test'
 include Test
 plan 2
 
-skip_rest &quot;open() doesn't seem to exist&quot;
+skip_rest &quot;open() doesn't seem to exist&quot;, &quot;25&quot;
 #pipe = open(&quot;| echo *.t&quot;)
 #p pipe.class
 #files = pipe.readline</diff>
      <filename>t/kernel/open.t</filename>
    </modified>
    <modified>
      <diff>@@ -6,13 +6,13 @@ proc = Proc.new{ |n|
 	is n, 1, '.call on Proc'
 }
 pass '.new on Proc'
-todo &quot;.class of Proc is not Proc, apparently&quot;
+todo &quot;.class of Proc is not Proc, apparently&quot;, &quot;10&quot;
 is proc.class.to_s, 'Proc', '.class on Proc'
-todo &quot;Proc.arity is broken&quot;
+todo &quot;Proc.arity is broken&quot;, &quot;11&quot;
 is proc.arity, 1, '.arity on Proc'
 proc.call(1)
 myself = proc.to_proc
-todo &quot;Proc.to_proc is broken.&quot;
+todo &quot;Proc.to_proc is broken.&quot;, &quot;12&quot;
 is myself.class.to_s, 'Proc', '.to_proc on Proc'
 
 def gen_times(factor)
@@ -22,8 +22,8 @@ end
 times3 = gen_times(3)
 times5 = gen_times(5)
 
-todo &quot;Problem with Proc.call?&quot;
+todo &quot;Problem with Proc.call?&quot;, &quot;13&quot;
 is times3.call(12), 36, '.call on Proc'
 is times5.call(5), 25, '.call on Proc'
-todo &quot;Problem with Proc.call?&quot;
+todo &quot;Problem with Proc.call?&quot;, &quot;13&quot;
 is times3.call(times5.call(4)), 60, '.call on Proc' </diff>
      <filename>t/proc.t</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ include Test
 plan 9
 
 discrete = 1..4
-todo &quot;.class of Range is not Range.&quot;
+todo &quot;.class of Range is not Range.&quot;, &quot;10&quot;
 is discrete.class.to_s, 'Range', 'simple discrete Range creation'
 
 r = 5..6
@@ -11,11 +11,11 @@ proclaim r.include?(5), '.include? for Range'
 nok r.include?(100), '.include? for Range'
 proclaim r.member?(6), '.member? for Range'
 
-skip(&quot;Parens around a range are for some reason unparseable.&quot;)
+skip(&quot;Parens around a range are for some reason unparseable.&quot;, &quot;15&quot;)
 #arr = (7..9).to_a
 #is arr, [7, 8, 9], 'to_a for Range'
 
-skip(&quot;Something unparseable here.&quot;,3)
+skip(&quot;Something unparseable here.&quot;,&quot;15&quot;,3)
 #prev = 1
 #2...4.each do |cur|
 #   if(cur == (prev + 1))
@@ -24,7 +24,7 @@ skip(&quot;Something unparseable here.&quot;,3)
 #   prev = cur
 #end
 
-skip(&quot;Something else broken with parsing here, too.&quot;)
+skip(&quot;Something else broken with parsing here, too.&quot;, &quot;15&quot;)
 #find_me = 1337
 #rule = case find_me
 #	when 0..400</diff>
      <filename>t/range.t</filename>
    </modified>
    <modified>
      <diff>@@ -27,9 +27,9 @@ returned = splat(8)
 is returned , 8, 'splat'
 
 b = [11, 10, 9]
-skip(&quot;Splat syntax doesn't parse.&quot;,2)
+skip &quot;Splat syntax doesn't parse.&quot;, &quot;16&quot;, 2
 #returned = splat(*b)
-todo &quot;Splat syntax is broken?&quot;
+todo &quot;Splat syntax is broken?&quot;, &quot;16&quot;
 is returned, 11, 'splat'
 
 returned = splat(b)
@@ -43,7 +43,7 @@ def dec_three_ary(start)
 	a
 end
 
-skip(&quot;Splat syntax doesn't parse.&quot;, 2)
+skip(&quot;Splat syntax doesn't parse.&quot;, &quot;16&quot;, 2)
 #returned = splat(*dec_three_ary(15))
 todo &quot;Splat syntax is broken?&quot;
 is returned, 15, 'splat'</diff>
      <filename>t/splat.t</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ is s.size, 4, '.size for String'
 s = 'ruby'
 ruby = &quot;____&quot;
 i = 0
-skip('String.each_byte stopped working. See issue #22')
+skip 'String.each_byte stopped working.', &quot;22&quot;
 #s.each_byte() do |c|
 #   ruby[i] = c
 #   i = i + 1
@@ -18,11 +18,11 @@ parrot = 'parrot'
 i = 0
 parrot.each('r') do |split|
   if i == 0
-      todo &quot;Fix String.each(char)&quot; 
+      todo &quot;Fix String.each(char)&quot;, &quot;17&quot;
 	  is split, 'par', '.each(char) for String'
   end
   if i == 1
-    todo &quot;Fix String.each(char)&quot;
+    todo &quot;Fix String.each(char)&quot;, &quot;17&quot;
 	is split, 'r', '.each(char) for String'
   end
   if i == 2</diff>
      <filename>t/string/block.t</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'Test'
 include Test
 plan 2
 
-todo(&quot;String.reverse is kinda broken. See issue #22.&quot;,2)
+todo &quot;String.reverse is kinda broken.&quot;,&quot;22&quot;,2
 s1 = &quot;testset!&quot;
 #s2 = s1.reverse
 is s2, '!testset', '.reverse for String'</diff>
      <filename>t/string/reverse.t</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ if !t.gmt?
    epoch1 = t.to_i
    t.gmtime
    epoch2 = t.to_i
-   todo &quot;Fix gmtime&quot;
+   todo &quot;Fix gmtime&quot;, &quot;18&quot;
    isnt epoch1, epoch2, '.gmtime on Time when not gmt'
 else
    pass '.gmt? on Time when gmt'
@@ -43,6 +43,6 @@ proclaim sec &lt; sec2, 'sleep'
 t2_epoch = Time.new.to_i
 isgt t2_epoch, t1_epoch, '.to_i on Time'
 
-todo 'fix Floats in Cardinal'
+todo 'fix Floats in Cardinal', &quot;19&quot;
 class_name = sprintf(&quot;%s&quot;, t.to_f.class)
 is class_name, 'Float', '.to_f on Time'</diff>
      <filename>t/time.t</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>77d6f8e483039072422cdade98514679818c9a65</id>
    </parent>
  </parents>
  <author>
    <name>Ted Reed</name>
    <email>ted.reed@gmail.com</email>
  </author>
  <url>http://github.com/cardinal/cardinal/commit/0b92deb71b6fe32e37c2bf9703bf5c7ca25c7111</url>
  <id>0b92deb71b6fe32e37c2bf9703bf5c7ca25c7111</id>
  <committed-date>2009-07-24T21:17:52-07:00</committed-date>
  <authored-date>2009-07-24T21:17:52-07:00</authored-date>
  <message>Add code to Test.rb to permit todo/skip to note the issue number that the problem is associated with. Also update the tests to take advantage of it.</message>
  <tree>8da7d1493198146a70dc37c47cedac069e28e4a8</tree>
  <committer>
    <name>Ted Reed</name>
    <email>ted.reed@gmail.com</email>
  </committer>
</commit>
