From: nobu.nokada@... Date: 2004-03-02T17:32:27+09:00 Subject: test/scanf failure Hi, test/scanf/test_scanfio.rb fails at `make test-all', and "iotest.dat" file remains. Also, it confused me to inspect escaped string and eval it again. Index: test/scanf/test_scanf.rb =================================================================== RCS file: /cvs/ruby/src/ruby/test/scanf/test_scanf.rb,v retrieving revision 1.1 diff -u -2 -p -d -w -r1.1 test_scanf.rb --- test/scanf/test_scanf.rb 1 Mar 2004 12:24:42 -0000 1.1 +++ test/scanf/test_scanf.rb 2 Mar 2004 02:34:29 -0000 @@ -6,5 +6,4 @@ # -$:.unshift("..") require 'scanf' require 'test/unit' @@ -53,5 +52,5 @@ def tests [ "", "", [] ], [ "", "abc 123", [] ], - [ '%[^\\\\w]%c', "a...1", [] ], + [ '%[^\\w]%c', "a...1", [] ], # Testing 'x' @@ -98,11 +97,10 @@ def tests # various mixed specifiers - [ "%[^\\\\w]%c", "...1", [ "...", "1"] ], - [ '%[^\\\\w]%c', "...1", [ "...", "1"] ], + [ "%[^\\w]%c", "...1", [ "...", "1"] ], + [ '%[^\\w]%c', "...1", [ "...", "1"] ], [ "%[abc\n]%d", "a\n\nb\n\nc 123", [ "a\n\nb\n\nc", 123 ] ], [ "%[abc\n]%d", "a\n\nb\n\nc \t 123", [ "a\n\nb\n\nc", 123 ] ], [ "%[abc\t]%d", "a\t\tb\t\tc 123", [ "a\t\tb\t\tc", 123 ] ], [ "%d%3[abc\n]", "123a\nbeaab", [ 123, "a\nb" ] ], - [ "%d%3[abc\n]", "123a\\nbeaab", [ 123, "a\nb" ] ], [ "%d%20c", "42 is the key", [ 42, " is the key" ] ], [ "%d %20c", "42 is the key", [ 42, "is the key" ] ], @@ -165,6 +163,6 @@ def tests [ "%s%[ xyz]%d", "hello x 32", ["hello", " x ", 32] ], [ "%5s%8[a-z]%d", "helloblahblah 32", ["hello", "blahblah", 32] ], - [ '%s%[abcde\\\\s]%d', "hello badea 32", ["hello", " badea ", 32] ], - [ '%d%[\\\\s]%c', "123 \n\t X", [ 123," \n\t ", "X"] ], + [ '%s%[abcde\\s]%d', "hello badea 32", ["hello", " badea ", 32] ], + [ '%d%[\\s]%c', "123 \n\t X", [ 123," \n\t ", "X"] ], [ "%4s%2c%c", "1.2x\n\ny", [ "1.2x", "\n\n","y"] ], [ "%f%c %3c%d", "1.2x\n\ny123", [ 1.2, "x", "y12", 3 ] ], @@ -286,19 +284,15 @@ class TestStringScanf extend ScanfTests - def tes_f + def test_f assert_equal(1.23e45.to_s, "1.23e45".scanf("%f")[0].to_s) end - i = 1 - tests = self.tests - tests.each do |test| - eval <<-EOE - def test_#{i} - assert_equal(#{test[2].inspect},"#{test[1]}".scanf("#{test[0]}")) + i = 1 + self.tests.each do |test| + define_method("test_#{i}") do || + assert_equal(test[2], test[1].scanf(test[0])) end - EOE i += 1 end - end @@ -308,16 +302,12 @@ class TestIOScanf i = 1 - tests = self.tests - tests.each do |test| - str = <<-EOE - def test_#{i} - File.open("iotest.dat", "w") { |fh| fh.print "#{test[1]}" } + self.tests.each do |test| + define_method("test_#{i}") do || + File.open("iotest.dat", "w") {|fh| fh.print test[1]} File.open("iotest.dat", "r") { |fh| - assert_equal(#{test[2].inspect},fh.scanf("#{test[0]}")) + assert_equal(test[2], fh.scanf(test[0])) } File.delete("iotest.dat") end - EOE - eval str i += 1 end Index: test/scanf/test_scanfblocks.rb =================================================================== RCS file: /cvs/ruby/src/ruby/test/scanf/test_scanfblocks.rb,v retrieving revision 1.1 diff -u -2 -p -d -w -r1.1 test_scanfblocks.rb --- test/scanf/test_scanfblocks.rb 1 Mar 2004 12:24:42 -0000 1.1 +++ test/scanf/test_scanfblocks.rb 2 Mar 2004 02:36:10 -0000 @@ -6,9 +6,8 @@ -$:.unshift("..") require 'test/unit' -require 'scanf.rb' +require 'scanf' -class TestMe < Test::Unit::TestCase +class TestScanfBlock < Test::Unit::TestCase def setup @@ -62,5 +61,6 @@ alias set_up setup "Brahms was born in 1833." ],res) fh.close -# File.delete("iotest.dat") + ensure + File.delete("iotest.dat") end @@ -72,5 +72,6 @@ alias set_up setup assert_equal(fh.scanf("%d%f%s") {}, []) fh.close - # File.delete("iotest.dat") + ensure + File.delete("iotest.dat") end Index: test/scanf/test_scanfio.rb =================================================================== RCS file: /cvs/ruby/src/ruby/test/scanf/test_scanfio.rb,v retrieving revision 1.1 diff -u -2 -p -d -w -r1.1 test_scanfio.rb --- test/scanf/test_scanfio.rb 1 Mar 2004 12:24:42 -0000 1.1 +++ test/scanf/test_scanfio.rb 2 Mar 2004 02:35:01 -0000 @@ -6,10 +6,14 @@ -$:.unshift("..") -require "scanf.rb" +require "scanf" + +class TestScanfIO + def test_io + fh = File.new(File.join(File.dirname(__FILE__), "data.txt"), "r") + assert_equal(0, fh.pos) + assert_equal(["this", "is"], fh.scanf("%s%s")) + assert_equal([33, "littel"], fh.scanf("%da fun%s")) + #p fh.pos + end +end -fh = File.new("data.txt", "r") -p fh.pos -p fh.scanf("%s%s") -p fh.scanf("%da fun%s") -p fh.pos -- Nobu Nakada