From f39fa2021bc5a02e8a1cf365372a97a72911fbde Mon Sep 17 00:00:00 2001 From: Naoto Ono Date: Sat, 25 Jun 2022 23:34:02 +0900 Subject: [PATCH 1/2] Fix bug that "record on" doesn't work after stopping record once --- lib/debug/thread_client.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/debug/thread_client.rb b/lib/debug/thread_client.rb index 8abc2996a..7186ee496 100644 --- a/lib/debug/thread_client.rb +++ b/lib/debug/thread_client.rb @@ -1019,8 +1019,8 @@ def wait_next_action_ # enable recording if !@recorder @recorder = Recorder.new - @recorder.enable end + @recorder.enable when :off if @recorder&.enabled? @recorder.disable From d9dc5bf3cd51d6a99fa2dbd83eb19e8140f37731 Mon Sep 17 00:00:00 2001 From: ono-max Date: Sun, 26 Jun 2022 19:09:39 +0900 Subject: [PATCH 2/2] Add the test case for f39fa20 --- test/console/record_test.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/console/record_test.rb b/test/console/record_test.rb index f1dda10b0..5f47c9664 100644 --- a/test/console/record_test.rb +++ b/test/console/record_test.rb @@ -138,4 +138,33 @@ def test_1629263892 end end end + + class RecordOnAfterStoppingOnceTest < TestCase + def program + <<~RUBY + 1| a=1 + 2| + 3| b=1 + 4| + 5| c=1 + 6| p a + RUBY + end + + def test_1656237686 + debug_code(program) do + type 'record on' + type 'record off' + type 'record on' + type 'b 5' + type 'c' + assert_line_num 5 + type 'step back' + assert_line_text([ + /\[replay\] =>\#0\t
at .*/ + ]) + type 'q!' + end + end + end end