summaryrefslogtreecommitdiff
path: root/test/ruby/test_argf.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-31 01:41:35 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-31 01:41:35 +0000
commit7fed54570fe5e31c3b42c947c8bce4c9dd1dea38 (patch)
treee7e37058a9edd037b6ba5317767b1909a42a0e18 /test/ruby/test_argf.rb
parent44320bc32c34ed0b330c647258f623af6d1dd17a (diff)
* 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
Diffstat (limited to 'test/ruby/test_argf.rb')
-rw-r--r--test/ruby/test_argf.rb82
1 files changed, 29 insertions, 53 deletions
diff --git a/test/ruby/test_argf.rb b/test/ruby/test_argf.rb
index ed92a516ad4..6f6622e66b4 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