From 7fed54570fe5e31c3b42c947c8bce4c9dd1dea38 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 31 Aug 2009 01:41:35 +0000 Subject: * test/ruby/test_argf.rb (assert_src_expected): refactored. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_argf.rb | 82 ++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 53 deletions(-) (limited to 'test/ruby/test_argf.rb') diff --git a/test/ruby/test_argf.rb b/test/ruby/test_argf.rb index ed92a516ad..6f6622e66b 100644 --- a/test/ruby/test_argf.rb +++ b/test/ruby/test_argf.rb @@ -54,8 +54,21 @@ class TestArgf < Test::Unit::TestCase /cygwin|mswin|mingw|bccwin/ =~ RUBY_PLATFORM end + def assert_src_expected(line, src, args = nil) + args ||= [@t1.path, @t2.path, @t3.path] + expected = src.split(/^/) + ruby('-e', src, *args) do |f| + expected.each_with_index do |e, i| + /#=> *(.*)/ =~ e or next + a = f.gets + assert_not_nil(a, "[ruby-dev:34445]: remained") + assert_equal($1, a.chomp, "[ruby-dev:34445]: line #{line+i}") + end + end + end + def test_argf - src = <<-SRC + assert_src_expected(__LINE__+1, <<-'SRC') a = ARGF b = a.dup p [a.gets.chomp, a.lineno, b.gets.chomp, b.lineno] #=> ["1", 1, "1", 1] @@ -72,20 +85,10 @@ class TestArgf < Test::Unit::TestCase p [a.gets.chomp, a.lineno, b.gets.chomp, b.lineno] #=> ["5", 5, "5", 8] p [a.gets.chomp, a.lineno, b.gets.chomp, b.lineno] #=> ["6", 6, "6", 9] SRC - expected = src.scan(/\#=> *(.+)/).flatten - ruby('-e', src, @t1.path, @t2.path, @t3.path) do |f| - f.each_with_index do |a, i| - assert_equal(expected.shift, a.chomp, "[ruby-dev:34445]: line #{i}") - end - - assert_empty(expected, "[ruby-dev:34445]: remained") - - # is this test OK? [ruby-dev:34445] - end end def test_lineno - src = <<-SRC + assert_src_expected(__LINE__+1, <<-'SRC') a = ARGF a.gets; p $. #=> 1 a.gets; p $. #=> 2 @@ -102,14 +105,10 @@ class TestArgf < Test::Unit::TestCase a.gets; p $. #=> 2001 a.gets; p $. #=> 2001 SRC - expected = src.scan(/\#=> *(.+)/).join(",") - ruby('-e', src, @t1.path, @t2.path, @t3.path) do |f| - assert_equal(expected, f.read.chomp.gsub("\n", ",")) - end end def test_lineno2 - src = <<-SRC + assert_src_expected(__LINE__+1, <<-'SRC') a = ARGF.dup a.gets; p $. #=> 1 a.gets; p $. #=> 2 @@ -125,10 +124,6 @@ class TestArgf < Test::Unit::TestCase a.gets; p $. #=> 2000 a.gets; p $. #=> 2000 SRC - expected = src.scan(/\#=> *(.+)/).join(",") - ruby('-e', src, @t1.path, @t2.path, @t3.path) do |f| - assert_equal(expected, f.read.chomp.gsub("\n", ",")) - end end def test_inplace @@ -304,73 +299,54 @@ class TestArgf < Test::Unit::TestCase end def test_seek - ruby('-e', <<-SRC, @t1.path, @t2.path, @t3.path) do |f| + assert_src_expected(__LINE__+1, <<-'SRC') ARGF.seek(4) - p ARGF.gets #=> "3" + p ARGF.gets #=> "3\n" ARGF.seek(0, IO::SEEK_END) - p ARGF.gets #=> "5" + p ARGF.gets #=> "5\n" ARGF.seek(4) p ARGF.gets #=> nil begin ARGF.seek(0) rescue - puts "end" + puts "end" #=> end end SRC - a = f.read.split("\n") - assert_equal('"3\n"', a.shift) - assert_equal('"5\n"', a.shift) - assert_equal('nil', a.shift) - assert_equal('end', a.shift) - end end def test_set_pos - ruby('-e', <<-SRC, @t1.path, @t2.path, @t3.path) do |f| + assert_src_expected(__LINE__+1, <<-'SRC') ARGF.pos = 4 - p ARGF.gets #=> "3" + p ARGF.gets #=> "3\n" ARGF.pos = 4 - p ARGF.gets #=> "5" + p ARGF.gets #=> "5\n" ARGF.pos = 4 p ARGF.gets #=> nil begin ARGF.pos = 4 rescue - puts "end" + puts "end" #=> end end SRC - a = f.read.split("\n") - assert_equal('"3\n"', a.shift) - assert_equal('"5\n"', a.shift) - assert_equal('nil', a.shift) - assert_equal('end', a.shift) - end end def test_rewind - ruby('-e', <<-SRC, @t1.path, @t2.path, @t3.path) do |f| + assert_src_expected(__LINE__+1, <<-'SRC') ARGF.pos = 4 ARGF.rewind - p ARGF.gets #=> "1" + p ARGF.gets #=> "1\n" ARGF.pos = 4 - p ARGF.gets #=> "3" + p ARGF.gets #=> "3\n" ARGF.pos = 4 - p ARGF.gets #=> "5" + p ARGF.gets #=> "5\n" ARGF.pos = 4 p ARGF.gets #=> nil begin ARGF.rewind rescue - puts "end" + puts "end" #=> end end SRC - a = f.read.split("\n") - assert_equal('"1\n"', a.shift) - assert_equal('"3\n"', a.shift) - assert_equal('"5\n"', a.shift) - assert_equal('nil', a.shift) - assert_equal('end', a.shift) - end end def test_fileno -- cgit v1.2.3