From bf625b1809e01a8fe505f5a344149e8df8e3795e Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 5 Dec 2003 02:54:48 +0000 Subject: * ext/stringio/stringio.c (strio_read): follow IO#read. * test/ruby/ut_eof.rb, test/ruby/test_file.rb, test/ruby/test_pipe.rb, test/stringio/test_stringio.rb: add EOF test. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_beginendblock.rb | 2 +- test/ruby/test_file.rb | 11 ++++++++++ test/ruby/test_pipe.rb | 14 +++++++++++++ test/ruby/test_system.rb | 2 +- test/ruby/ut_eof.rb | 46 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 test/ruby/test_pipe.rb create mode 100644 test/ruby/ut_eof.rb (limited to 'test/ruby') diff --git a/test/ruby/test_beginendblock.rb b/test/ruby/test_beginendblock.rb index e8d25a102..b56b596a6 100644 --- a/test/ruby/test_beginendblock.rb +++ b/test/ruby/test_beginendblock.rb @@ -1,6 +1,6 @@ require 'test/unit' require 'tempfile' -$:.unshift(File.dirname(File.expand_path(__FILE__))) +$:.replace([File.dirname(File.expand_path(__FILE__))] | $:) require 'envutil' class TestBeginEndBlock < Test::Unit::TestCase diff --git a/test/ruby/test_file.rb b/test/ruby/test_file.rb index 0d0ea389a..f51e55f0c 100644 --- a/test/ruby/test_file.rb +++ b/test/ruby/test_file.rb @@ -1,4 +1,7 @@ require 'test/unit' +require 'tempfile' +$:.replace([File.dirname(File.expand_path(__FILE__))] | $:) +require 'ut_eof' $KCODE = 'none' @@ -29,4 +32,12 @@ class TestFile < Test::Unit::TestCase File.unlink(filename) if File.exist?(filename) end end + + include TestEOF + def open_file(content) + f = Tempfile.new("test-eof") + f << content + f.rewind + yield f + end end diff --git a/test/ruby/test_pipe.rb b/test/ruby/test_pipe.rb new file mode 100644 index 000000000..a6363ef78 --- /dev/null +++ b/test/ruby/test_pipe.rb @@ -0,0 +1,14 @@ +require 'test/unit' +$:.replace([File.dirname(File.expand_path(__FILE__))] | $:) +require 'ut_eof' +require 'envutil' + +$KCODE = 'none' + +class TestPipe < Test::Unit::TestCase + include TestEOF + def open_file(content) + f = IO.popen("echo -n #{content}") + yield f + end +end diff --git a/test/ruby/test_system.rb b/test/ruby/test_system.rb index ed7f8b8fd..d756e4a2d 100644 --- a/test/ruby/test_system.rb +++ b/test/ruby/test_system.rb @@ -1,5 +1,5 @@ require 'test/unit' -$:.unshift(File.dirname(File.expand_path(__FILE__))) +$:.replace([File.dirname(File.expand_path(__FILE__))] | $:) require 'envutil' $KCODE = 'none' diff --git a/test/ruby/ut_eof.rb b/test/ruby/ut_eof.rb new file mode 100644 index 000000000..d1ad9a5fe --- /dev/null +++ b/test/ruby/ut_eof.rb @@ -0,0 +1,46 @@ +require 'test/unit' + +module TestEOF + def test_eof_0 + open_file("") {|f| + assert_equal("", f.read(0)) + assert_equal("", f.read(0)) + assert_equal("", f.read) + assert_equal(nil, f.read(0)) + assert_equal(nil, f.read(0)) + } + open_file("") {|f| + assert_equal(nil, f.read(1)) + assert_equal(nil, f.read) + assert_equal(nil, f.read(1)) + } + end + + def test_eof_1 + open_file("a") {|f| + assert_equal("", f.read(0)) + assert_equal("a", f.read(1)) + assert_equal("" , f.read(0)) + assert_equal("" , f.read(0)) + assert_equal("", f.read) + assert_equal(nil, f.read(0)) + assert_equal(nil, f.read(0)) + } + open_file("a") {|f| + assert_equal("a", f.read(1)) + assert_equal(nil, f.read(1)) + } + open_file("a") {|f| + assert_equal("a", f.read(2)) + assert_equal(nil, f.read(1)) + assert_equal(nil, f.read) + assert_equal(nil, f.read(1)) + } + open_file("a") {|f| + assert_equal("a", f.read) + assert_equal(nil, f.read(1)) + assert_equal(nil, f.read) + assert_equal(nil, f.read(1)) + } + end +end -- cgit