Skip to content

Commit

Permalink
Run binding.irb in cleaner environment and clean the history file
Browse files Browse the repository at this point in the history
  • Loading branch information
nobu committed Mar 6, 2024
1 parent b543a4e commit 29d3d13
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
1 change: 0 additions & 1 deletion spec/ruby/core/binding/fixtures/irbrc

This file was deleted.

17 changes: 9 additions & 8 deletions spec/ruby/core/binding/irb_spec.rb
@@ -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

0 comments on commit 29d3d13

Please sign in to comment.