diff options
Diffstat (limited to 'test/irb')
-rw-r--r-- | test/irb/test_cmd.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/irb/test_cmd.rb b/test/irb/test_cmd.rb index 106e4d2add..045ce0f0e7 100644 --- a/test/irb/test_cmd.rb +++ b/test/irb/test_cmd.rb @@ -276,6 +276,40 @@ module TestIRB assert_match(/\A=> 3\nCUSTOM is added\.\n=> nil\ncustom processing time: .+\n=> 3\n=> nil\n=> 3\n/, out) end + def test_measure_with_proc + IRB.init_config(nil) + IRB.conf[:PROMPT] = { + DEFAULT: { + PROMPT_I: '> ', + PROMPT_S: '> ', + PROMPT_C: '> ', + PROMPT_N: '> ' + } + } + IRB.conf[:VERBOSE] = false + IRB.conf[:PROMPT_MODE] = :DEFAULT + IRB.conf[:MEASURE] = false + input = TestInputMethod.new([ + "3\n", + "measure { |context, code, line_no, &block|\n", + " result = block.()\n", + " puts 'aaa' if IRB.conf[:MEASURE]\n", + "}\n", + "3\n", + "measure :off\n", + "3\n", + ]) + c = Class.new(Object) + irb = IRB::Irb.new(IRB::WorkSpace.new(c.new), input) + irb.context.return_format = "=> %s\n" + out, err = capture_output do + irb.eval_input + end + assert_empty err + assert_match(/\A=> 3\nBLOCK is added\.\n=> nil\naaa\n=> 3\n=> nil\n=> 3\n/, out) + assert_empty(c.class_variables) + end + def test_irb_source IRB.init_config(nil) File.write("#{@tmpdir}/a.rb", "a = 'hi'\n") |