1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

btest: assign $stderr = STDOUT instead of IO#reopen to be more portable

`IO#reopen` internally uses dup syscall but some platforms don't support
the syscall. re-assigning `$stderr` is enough to capture the interpreter's
errors and warnings.
This commit is contained in:
Yuta Saito 2021-12-13 16:48:57 +09:00 committed by Yusuke Endoh
parent 69a7eaae38
commit 332d1e52e6
Notes: git 2021-12-16 16:16:59 +09:00
3 changed files with 5 additions and 5 deletions

View file

@ -218,7 +218,7 @@ assert_equal %q{[10, main]}, %q{
%w[break next redo].each do |keyword| %w[break next redo].each do |keyword|
assert_match %r"Can't escape from eval with #{keyword}\b", %{ assert_match %r"Can't escape from eval with #{keyword}\b", %{
STDERR.reopen(STDOUT) $stderr = STDOUT
begin begin
eval "0 rescue #{keyword}" eval "0 rescue #{keyword}"
rescue SyntaxError => e rescue SyntaxError => e
@ -228,7 +228,7 @@ assert_equal %q{[10, main]}, %q{
end end
assert_normal_exit %q{ assert_normal_exit %q{
STDERR.reopen(STDOUT) $stderr = STDOUT
class Foo class Foo
def self.add_method def self.add_method
class_eval("def some-bad-name; puts 'hello' unless @some_variable.some_function(''); end") class_eval("def some-bad-name; puts 'hello' unless @some_variable.some_function(''); end")

View file

@ -147,7 +147,7 @@ assert_equal %q{131}, %q{
} }
} }
assert_match %r{Invalid retry}, %q{ assert_match %r{Invalid retry}, %q{
STDERR.reopen(STDOUT) $stderr = STDOUT
begin begin
eval %q{ eval %q{
1.times{ 1.times{
@ -297,7 +297,7 @@ assert_equal "true", %q{
}, '[ruby-core:21379]' }, '[ruby-core:21379]'
assert_match %r{Invalid yield}, %q{ assert_match %r{Invalid yield}, %q{
STDERR.reopen(STDOUT) $stderr = STDOUT
begin begin
eval %q{ eval %q{
class Object class Object

View file

@ -628,7 +628,7 @@ assert_equal '2', %q{
} }
assert_match /invalid multibyte char/, %q{ assert_match /invalid multibyte char/, %q{
STDERR.reopen(STDOUT) $stderr = STDOUT
eval("\"\xf0".force_encoding("utf-8")) eval("\"\xf0".force_encoding("utf-8"))
}, '[ruby-dev:32429]' }, '[ruby-dev:32429]'