1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/irb/test_init.rb
k0kubun 89c7e6de44 irb/test_init.rb: add test to ensure $0
is not changed.

At first `ARGV.unshift('something')` was suggested for r61149,
but it wasn't sufficient because it modifies $0.

Not only to preserve ARGV, but also r61149 intends to preserve $0.
This test prevents future breakage of the behavior.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-12 13:56:48 +00:00

31 lines
632 B
Ruby

# frozen_string_literal: false
require "test/unit"
require "irb"
module TestIRB
class TestInit < Test::Unit::TestCase
def test_setup_with_argv_preserves_global_argv
argv = ["foo", "bar"]
with_argv(argv) do
IRB.setup(eval("__FILE__"), argv: [])
assert_equal argv, ARGV
end
end
def test_setup_with_empty_argv_does_not_change_dollar0
orig = $0.dup
IRB.setup(eval("__FILE__"), argv: [])
assert_equal orig, $0
end
private
def with_argv(argv)
orig = ARGV.dup
ARGV.replace(argv)
yield
ensure
ARGV.replace(orig)
end
end
end