From 1f1937111dba69ee8deb6b0c23b11abddaeadbdc Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 27 Jun 2010 14:31:19 +0000 Subject: * include/ruby/io.h, io.c: reverted r21709. * ruby.c (load_file_internal): nothing to read if EOF reached while reading shebang. [ruby-core:30910] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_rubyoptions.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test') diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index afa5039353..cdde55153e 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -414,4 +414,28 @@ class TestRubyOptions < Test::Unit::TestCase ensure t.close(true) if t end + + def test_script_from_stdin + begin + require 'pty' + require 'io/console' + rescue LoadError + return + end + require 'timeout' + result = nil + PTY.spawn(EnvUtil.rubybin) do |s, m| + m.print("\C-d") + assert_nothing_raised('[ruby-dev:37798]') do + Timeout.timeout(3) {s.read} + end + end + PTY.spawn(EnvUtil.rubybin) do |s, m| + m.print("$stdin.read; p $stdin.gets\n\C-d") + m.print("abc\n\C-d") + m.print("zzz\n") + result = s.read + end + assert_match(/zzz\r\n"zzz\\n"\r\n\z/, result, '[ruby-core:30910]') + end end -- cgit v1.2.3