* test/ruby/test_rubyoptions.rb (test_shebang): adjust only
  expected stderr as a warning, assertion has meaning on all
  platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-03-07 19:39:32 +00:00
Родитель e89d48a1e6
Коммит b8f987b36c
2 изменённых файлов: 5 добавлений и 6 удалений

6
ruby.c
Просмотреть файл

@ -1676,6 +1676,8 @@ warn_cr_in_shebang(const char *str, long len)
rb_warn("shebang line ends with \\r may cause a problem");
}
}
#else
#define warn_cr_in_shebang(str, len) (void)0
#endif
struct load_file_arg {
@ -1725,9 +1727,7 @@ load_file_internal(VALUE argp_v)
line_start++;
RSTRING_GETMEM(line, str, len);
if (len > 2 && str[0] == '#' && str[1] == '!') {
#ifndef DOSISH
if (line_start == 1) warn_cr_in_shebang(str, len);
#endif
if ((p = strstr(str+2, ruby_engine)) != 0) {
goto start_read;
}
@ -1745,9 +1745,7 @@ load_file_internal(VALUE argp_v)
return 0;
RSTRING_GETMEM(line, str, len);
#ifndef DOSISH
warn_cr_in_shebang(str, len);
#endif
if ((p = strstr(str, ruby_engine)) == 0) {
/* not ruby script, assume -x flag */
goto search_shebang;

Просмотреть файл

@ -312,9 +312,10 @@ class TestRubyOptions < Test::Unit::TestCase
assert_in_out_err([], "#! /test_r_u_b_y_test_r_u_b_y_options_foobarbazqux -foo -bar\r\np 1\r\n",
[], /: no Ruby script found in input/)
warning = /mswin|mingw/ =~ RUBY_PLATFORM ? [] : /shebang line ends with \\r/
assert_in_out_err([{'RUBYOPT' => nil}], "#!ruby -KU -Eutf-8\r\np \"\u3042\"\r\n",
["\"\u3042\""], /shebang line ends with \\r/,
encoding: Encoding::UTF_8) if /mswin|mingw/ !~ RUBY_PLATFORM
["\"\u3042\""], warning,
encoding: Encoding::UTF_8)
bug4118 = '[ruby-dev:42680]'
assert_in_out_err(%w[], "#!/bin/sh\n""#!shebang\n""#!ruby\n""puts __LINE__\n",