diff options
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_beginendblock.rb | 2 | ||||
-rw-r--r-- | test/ruby/test_file.rb | 11 | ||||
-rw-r--r-- | test/ruby/test_pipe.rb | 14 | ||||
-rw-r--r-- | test/ruby/test_system.rb | 2 | ||||
-rw-r--r-- | test/ruby/ut_eof.rb | 46 |
5 files changed, 73 insertions, 2 deletions
diff --git a/test/ruby/test_beginendblock.rb b/test/ruby/test_beginendblock.rb index e8d25a102d..b56b596a65 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 0d0ea389a4..f51e55f0c6 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 0000000000..a6363ef78b --- /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 ed7f8b8fd1..d756e4a2d5 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 0000000000..d1ad9a5fea --- /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 |