summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_io.rb24
-rw-r--r--test/ruby/test_io_m17n.rb15
2 files changed, 39 insertions, 0 deletions
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb
index bb6f239509..edf449dd5c 100644
--- a/test/ruby/test_io.rb
+++ b/test/ruby/test_io.rb
@@ -1307,6 +1307,30 @@ class TestIO < Test::Unit::TestCase
end
end
+ def test_pos_with_getc
+ bug6179 = '[ruby-core:43497]'
+ t = make_tempfile
+ ["", "t", "b"].each do |mode|
+ open(t.path, "w#{mode}") do |f|
+ f.write "0123456789\n"
+ end
+
+ open(t.path, "r#{mode}") do |f|
+ assert_equal 0, f.pos, "mode=r#{mode}"
+ assert_equal '0', f.getc, "mode=r#{mode}"
+ assert_equal 1, f.pos, "mode=r#{mode}"
+ assert_equal '1', f.getc, "mode=r#{mode}"
+ assert_equal 2, f.pos, "mode=r#{mode}"
+ assert_equal '2', f.getc, "mode=r#{mode}"
+ assert_equal 3, f.pos, "mode=r#{mode}"
+ assert_equal '3', f.getc, "mode=r#{mode}"
+ assert_equal 4, f.pos, "mode=r#{mode}"
+ assert_equal '4', f.getc, "mode=r#{mode}"
+ end
+ end
+ end
+
+
def test_sysseek
t = make_tempfile
diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb
index 2f71356f8e..c6cff18957 100644
--- a/test/ruby/test_io_m17n.rb
+++ b/test/ruby/test_io_m17n.rb
@@ -2347,4 +2347,19 @@ EOT
}
assert_equal(paths.map(&:encoding), encs, bug6072)
end
+
+ def test_pos_dont_move_cursor_position
+ bug6179 = '[ruby-core:43497]'
+ with_tmpdir {
+ str = "line one\r\nline two\r\nline three\r\n"
+ generate_file("tmp", str)
+ open("tmp", "r") do |f|
+ assert_equal("line one\n", f.readline)
+ assert_equal(10, f.pos, bug6179)
+ assert_equal("line two\n", f.readline, bug6179)
+ assert_equal(20, f.pos, bug6179)
+ assert_equal("line three\n", f.readline, bug6179)
+ end
+ }
+ end if /mswin|mingw/ =~ RUBY_PLATFORM
end