зеркало из https://github.com/github/ruby.git
Run `binding.irb` in cleaner environment and clean the history file
This commit is contained in:
Родитель
b543a4e9da
Коммит
29d3d13a1f
|
@ -1 +0,0 @@
|
|||
# empty configuration
|
|
@ -1,18 +1,19 @@
|
|||
require_relative '../../spec_helper'
|
||||
require 'tmpdir'
|
||||
|
||||
describe "Binding#irb" do
|
||||
it "creates an IRB session with the binding in scope" do
|
||||
irb_fixture = fixture __FILE__, "irb.rb"
|
||||
irbrc_fixture = fixture __FILE__, "irbrc"
|
||||
envs = %w[IRBRC HOME XDG_CONFIG_HOME].to_h {|e| [e, nil]}
|
||||
|
||||
out = IO.popen([{"IRBRC"=>irbrc_fixture}, *ruby_exe, irb_fixture], "r+") do |pipe|
|
||||
pipe.puts "a ** 2"
|
||||
pipe.puts "exit"
|
||||
pipe.readlines.map(&:chomp)
|
||||
out = Dir.mktmpdir do |dir|
|
||||
IO.popen([envs, *ruby_exe, irb_fixture, chdir: dir], "r+") do |pipe|
|
||||
pipe.puts "a ** 2"
|
||||
pipe.puts "exit"
|
||||
pipe.readlines.map(&:chomp)
|
||||
end
|
||||
end
|
||||
|
||||
[out[-3..-1], ["a ** 2", "100", "exit"]].transpose.each do |actual, expected|
|
||||
actual.should include(expected)
|
||||
end
|
||||
out.last(3).should == ["a ** 2", "100", "exit"]
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче