summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/irb/test_history.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/irb/test_history.rb b/test/irb/test_history.rb
index 81b7fe8679..38a002d319 100644
--- a/test/irb/test_history.rb
+++ b/test/irb/test_history.rb
@@ -158,6 +158,28 @@ module TestIRB
end
end
+ def test_history_concurrent_use_not_present
+ backup_home = ENV["HOME"]
+ backup_xdg_config_home = ENV.delete("XDG_CONFIG_HOME")
+ IRB.conf[:SAVE_HISTORY] = 1
+ Dir.mktmpdir("test_irb_history_#{$$}") do |tmpdir|
+ ENV["HOME"] = tmpdir
+ io = TestInputMethod.new
+ io.class::HISTORY.clear
+ io.load_history
+ io.class::HISTORY.concat(%w"line1 line2")
+
+ history_file = IRB.rc_file("_history")
+ assert !File.file?(history_file)
+ File.write(history_file, "line0\n")
+ io.save_history
+ assert_equal(%w"line0 line1 line2", File.read(history_file).split)
+ end
+ ensure
+ ENV["HOME"] = backup_home
+ ENV["XDG_CONFIG_HOME"] = backup_xdg_config_home
+ end
+
private
def assert_history(expected_history, initial_irb_history, input)