byebug 1.8.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/GUIDE.md +14 -22
- data/README.md +69 -6
- data/bin/byebug +3 -20
- data/ext/byebug/breakpoint.c +185 -101
- data/ext/byebug/byebug.c +393 -214
- data/ext/byebug/byebug.h +34 -15
- data/ext/byebug/context.c +327 -102
- data/ext/byebug/extconf.rb +1 -1
- data/ext/byebug/locker.c +54 -0
- data/ext/byebug/threads.c +113 -0
- data/lib/byebug.rb +19 -58
- data/lib/byebug/command.rb +18 -19
- data/lib/byebug/commands/breakpoints.rb +1 -4
- data/lib/byebug/commands/catchpoint.rb +1 -1
- data/lib/byebug/commands/condition.rb +1 -1
- data/lib/byebug/commands/control.rb +2 -3
- data/lib/byebug/commands/display.rb +2 -7
- data/lib/byebug/commands/edit.rb +1 -1
- data/lib/byebug/commands/enable.rb +12 -12
- data/lib/byebug/commands/eval.rb +4 -4
- data/lib/byebug/commands/finish.rb +1 -1
- data/lib/byebug/commands/frame.rb +12 -8
- data/lib/byebug/commands/info.rb +20 -52
- data/lib/byebug/commands/kill.rb +1 -5
- data/lib/byebug/commands/list.rb +2 -1
- data/lib/byebug/commands/quit.rb +1 -1
- data/lib/byebug/commands/repl.rb +2 -2
- data/lib/byebug/commands/save.rb +1 -1
- data/lib/byebug/commands/set.rb +84 -90
- data/lib/byebug/commands/show.rb +44 -53
- data/lib/byebug/commands/skip.rb +1 -1
- data/lib/byebug/commands/stepping.rb +5 -4
- data/lib/byebug/commands/threads.rb +202 -0
- data/lib/byebug/commands/trace.rb +1 -1
- data/lib/byebug/helper.rb +3 -3
- data/lib/byebug/interface.rb +2 -20
- data/lib/byebug/processor.rb +21 -100
- data/lib/byebug/remote.rb +3 -3
- data/lib/byebug/version.rb +1 -1
- data/old_doc/byebug.1 +0 -6
- data/old_doc/byebug.texi +29 -46
- data/test/breakpoints_test.rb +44 -65
- data/test/conditions_test.rb +0 -9
- data/test/continue_test.rb +2 -2
- data/test/display_test.rb +4 -23
- data/test/edit_test.rb +2 -16
- data/test/eval_test.rb +4 -13
- data/test/examples/thread.rb +32 -0
- data/test/finish_test.rb +1 -13
- data/test/frame_test.rb +5 -12
- data/test/help_test.rb +2 -12
- data/test/info_test.rb +8 -18
- data/test/kill_test.rb +1 -10
- data/test/list_test.rb +5 -14
- data/test/method_test.rb +1 -10
- data/test/post_mortem_test.rb +247 -14
- data/test/quit_test.rb +0 -9
- data/test/reload_test.rb +1 -15
- data/test/repl_test.rb +1 -9
- data/test/restart_test.rb +3 -18
- data/test/save_test.rb +1 -13
- data/test/set_test.rb +35 -32
- data/test/show_test.rb +8 -27
- data/test/source_test.rb +1 -8
- data/test/stepping_test.rb +65 -96
- data/test/support/test_dsl.rb +12 -17
- data/test/test_helper.rb +1 -1
- data/test/thread_test.rb +106 -0
- data/test/trace_test.rb +5 -17
- data/test/variables_test.rb +1 -10
- metadata +9 -7
- data/lib/byebug/commands/jump.rb +0 -52
- data/test/jump_test.rb +0 -77
- data/test/support/context.rb +0 -15
data/test/conditions_test.rb
CHANGED
@@ -69,13 +69,4 @@ class TestConditions < TestDsl::TestCase
|
|
69
69
|
debug_file('conditions') { $state.line.must_equal 3 }
|
70
70
|
end
|
71
71
|
end
|
72
|
-
|
73
|
-
describe 'Post Mortem' do
|
74
|
-
it 'must be able to set conditions in post-mortem mode' do
|
75
|
-
enter 'cont', 'break 12', ->{ "cond #{Byebug.breakpoints.first.id} true" },
|
76
|
-
'cont'
|
77
|
-
debug_file('post_mortem') { $state.line.must_equal 12 }
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
72
|
end
|
data/test/continue_test.rb
CHANGED
@@ -28,8 +28,8 @@ class TestContinue < TestDsl::TestCase
|
|
28
28
|
it "must show error if specified line is not valid" do
|
29
29
|
enter 'cont 123'
|
30
30
|
debug_file 'continue'
|
31
|
-
|
32
|
-
|
31
|
+
check_error_includes \
|
32
|
+
"Line 123 is not a stopping point in file \"#{fullpath('continue')}\""
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
data/test/display_test.rb
CHANGED
@@ -24,7 +24,7 @@ class TestDisplay < TestDsl::TestCase
|
|
24
24
|
Byebug.handler.display.concat([[true, 'abc'], [true, 'd']]); 'display'
|
25
25
|
end
|
26
26
|
debug_file 'display'
|
27
|
-
check_output_includes '1: ', 'abc = ', '2: ', 'd = 4'
|
27
|
+
check_output_includes '1: ', 'abc = nil', '2: ', 'd = 4'
|
28
28
|
end
|
29
29
|
|
30
30
|
describe 'undisplay' do
|
@@ -52,7 +52,7 @@ class TestDisplay < TestDsl::TestCase
|
|
52
52
|
|
53
53
|
it 'must not show any output' do
|
54
54
|
debug_file 'display'
|
55
|
-
check_output_doesnt_include '1: ', 'abc = ', '2: ', 'd = 4'
|
55
|
+
check_output_doesnt_include '1: ', 'abc = nil', '2: ', 'd = 4'
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -66,7 +66,7 @@ class TestDisplay < TestDsl::TestCase
|
|
66
66
|
|
67
67
|
it 'must not show any output' do
|
68
68
|
debug_file 'display'
|
69
|
-
check_output_includes '1: ', 'abc = ', '2: ', 'd = 4'
|
69
|
+
check_output_includes '1: ', 'abc = nil', '2: ', 'd = 4'
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
@@ -113,7 +113,7 @@ class TestDisplay < TestDsl::TestCase
|
|
113
113
|
enter 'display d', 'disable display 4'
|
114
114
|
debug_file 'display'
|
115
115
|
check_output_includes \
|
116
|
-
'
|
116
|
+
'"disable display" argument "4" needs to be at most 1.'
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -123,23 +123,4 @@ class TestDisplay < TestDsl::TestCase
|
|
123
123
|
debug_file('display') { $state.display.must_equal [[true, 'd']] }
|
124
124
|
end
|
125
125
|
end
|
126
|
-
|
127
|
-
describe 'annotate' do
|
128
|
-
after { Byebug.annotate = 0 }
|
129
|
-
|
130
|
-
it 'must show display expression in annotation' do
|
131
|
-
enter 'display 2 + 2', 'set annotate 3', 'next', 'next'
|
132
|
-
debug_file 'display'
|
133
|
-
check_output_includes "\u001A\u001Adisplay", '1:', '2 + 2 = 4'
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
describe 'Post Mortem' do
|
138
|
-
it 'must be able to set display expressions in post-mortem mode' do
|
139
|
-
enter 'cont', 'display 2 + 2'
|
140
|
-
debug_file 'post_mortem'
|
141
|
-
check_output_includes '1:', '2 + 2 = 4'
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
126
|
end
|
data/test/edit_test.rb
CHANGED
@@ -38,26 +38,12 @@ class TestEdit < TestDsl::TestCase
|
|
38
38
|
it 'must show an error if there is no such line' do
|
39
39
|
enter "edit #{fullpath('edit3')}:6"
|
40
40
|
debug_file 'edit'
|
41
|
-
|
42
|
-
"File \"#{fullpath('edit3')}\" is not readable.", interface.error_queue
|
41
|
+
check_error_includes "File \"#{fullpath('edit3')}\" is not readable."
|
43
42
|
end
|
44
43
|
|
45
44
|
it 'must show an error if there is incorrect syntax' do
|
46
45
|
enter 'edit blabla'
|
47
46
|
debug_file 'edit'
|
48
|
-
|
49
|
-
'Invalid file/line number specification: blabla', interface.error_queue
|
47
|
+
check_error_includes 'Invalid file/line number specification: blabla'
|
50
48
|
end
|
51
|
-
|
52
|
-
describe 'Post Mortem' do
|
53
|
-
temporary_change_hash ENV, 'EDITOR', 'editr'
|
54
|
-
|
55
|
-
it 'must work in post-mortem mode' do
|
56
|
-
Byebug::Edit.any_instance.expects(:system).
|
57
|
-
with("editr +2 #{fullpath('edit')}")
|
58
|
-
enter 'cont', "edit #{fullpath('edit')}:2", 'cont'
|
59
|
-
debug_file 'post_mortem'
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
49
|
end
|
data/test/eval_test.rb
CHANGED
@@ -38,7 +38,7 @@ class TestEval < TestDsl::TestCase
|
|
38
38
|
|
39
39
|
describe 'stack trace on error' do
|
40
40
|
describe 'when enabled' do
|
41
|
-
temporary_change_hash Byebug
|
41
|
+
temporary_change_hash Byebug.settings, :stack_trace_on_error, true
|
42
42
|
|
43
43
|
it 'must show a stack trace' do
|
44
44
|
enter 'eval 2 / 0'
|
@@ -49,7 +49,7 @@ class TestEval < TestDsl::TestCase
|
|
49
49
|
end
|
50
50
|
|
51
51
|
describe 'when disabled' do
|
52
|
-
temporary_change_hash Byebug
|
52
|
+
temporary_change_hash Byebug.settings, :stack_trace_on_error, false
|
53
53
|
|
54
54
|
it 'must only show exception' do
|
55
55
|
enter 'eval 2 / 0'
|
@@ -69,7 +69,7 @@ class TestEval < TestDsl::TestCase
|
|
69
69
|
end
|
70
70
|
|
71
71
|
describe 'putl' do
|
72
|
-
temporary_change_hash Byebug
|
72
|
+
temporary_change_hash Byebug.settings, :width, 20
|
73
73
|
|
74
74
|
it 'must print expression and columnize the result' do
|
75
75
|
enter 'putl [1, 2, 3, 4, 5, 9, 8, 7, 6]'
|
@@ -79,7 +79,7 @@ class TestEval < TestDsl::TestCase
|
|
79
79
|
end
|
80
80
|
|
81
81
|
describe 'ps' do
|
82
|
-
temporary_change_hash Byebug
|
82
|
+
temporary_change_hash Byebug.settings, :width, 20
|
83
83
|
|
84
84
|
it 'must print expression and sort and columnize the result' do
|
85
85
|
enter 'ps [1, 2, 3, 4, 5, 9, 8, 7, 6]'
|
@@ -87,13 +87,4 @@ class TestEval < TestDsl::TestCase
|
|
87
87
|
check_output_includes "1 3 5 7 9\n2 4 6 8"
|
88
88
|
end
|
89
89
|
end
|
90
|
-
|
91
|
-
describe 'Post Mortem' do
|
92
|
-
it 'must work in post-mortem mode' do
|
93
|
-
enter 'cont', 'eval 2 + 2'
|
94
|
-
debug_file 'post_mortem'
|
95
|
-
check_output_includes '4'
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
90
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
byebug
|
2
|
+
class ThreadExample
|
3
|
+
def initialize
|
4
|
+
Thread.main[:should_break] = false
|
5
|
+
end
|
6
|
+
|
7
|
+
def launch
|
8
|
+
@t1 = Thread.new do
|
9
|
+
while true
|
10
|
+
break if Thread.main[:should_break]
|
11
|
+
sleep 0.02
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
@t2 = Thread.new do
|
16
|
+
while true
|
17
|
+
sleep 0.02
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
@t1.join
|
22
|
+
Thread.main[:should_break]
|
23
|
+
end
|
24
|
+
|
25
|
+
def kill
|
26
|
+
@t2.kill
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
t = ThreadExample.new
|
31
|
+
t.launch
|
32
|
+
t.kill
|
data/test/finish_test.rb
CHANGED
@@ -27,23 +27,11 @@ class TestFinish < TestDsl::TestCase
|
|
27
27
|
|
28
28
|
it 'must show an error' do
|
29
29
|
debug_file('finish')
|
30
|
-
check_output_includes '
|
30
|
+
check_output_includes '"finish" argument "foo" needs to be a number.'
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'must be on the same line' do
|
34
34
|
debug_file('finish') { $state.line.must_equal 16 }
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
38
|
-
describe 'Post Mortem' do
|
39
|
-
temporary_change_hash Byebug::Command.settings, :autoeval, false
|
40
|
-
|
41
|
-
it 'must not work in post-mortem mode' do
|
42
|
-
enter 'cont', 'finish'
|
43
|
-
debug_file 'post_mortem'
|
44
|
-
check_output_includes \
|
45
|
-
'Unknown command: "finish". Try "help".', interface.error_queue
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
37
|
end
|
data/test/frame_test.rb
CHANGED
@@ -44,9 +44,8 @@ class TestFrame < TestDsl::TestCase
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'must set frame to the last one' do
|
47
|
-
enter '
|
47
|
+
enter 'frame -1'
|
48
48
|
debug_file('frame') { $state.file.must_match /minitest\/unit.rb/ }
|
49
|
-
check_output_doesnt_include "at #{@tst_file}:"
|
50
49
|
end
|
51
50
|
|
52
51
|
it 'must not set frame if the frame number is too low' do
|
@@ -70,7 +69,7 @@ class TestFrame < TestDsl::TestCase
|
|
70
69
|
end
|
71
70
|
|
72
71
|
describe 'when set' do
|
73
|
-
temporary_change_hash Byebug
|
72
|
+
temporary_change_hash Byebug.settings, :fullpath, true
|
74
73
|
|
75
74
|
it 'must display current backtrace with fullpaths' do
|
76
75
|
enter 'where'
|
@@ -83,7 +82,7 @@ class TestFrame < TestDsl::TestCase
|
|
83
82
|
end
|
84
83
|
|
85
84
|
describe 'when unset' do
|
86
|
-
temporary_change_hash Byebug
|
85
|
+
temporary_change_hash Byebug.settings, :fullpath, false
|
87
86
|
|
88
87
|
it 'must display current backtrace with shortpaths' do
|
89
88
|
enter 'where'
|
@@ -99,7 +98,7 @@ class TestFrame < TestDsl::TestCase
|
|
99
98
|
|
100
99
|
describe 'callstyle' do
|
101
100
|
describe 'long' do
|
102
|
-
temporary_change_hash Byebug
|
101
|
+
temporary_change_hash Byebug.settings, :callstyle, :long
|
103
102
|
|
104
103
|
it 'displays current backtrace with callstyle "long"' do
|
105
104
|
enter 'where'
|
@@ -113,7 +112,7 @@ class TestFrame < TestDsl::TestCase
|
|
113
112
|
end
|
114
113
|
|
115
114
|
describe 'short' do
|
116
|
-
temporary_change_hash Byebug
|
115
|
+
temporary_change_hash Byebug.settings, :callstyle, :short
|
117
116
|
|
118
117
|
it 'displays current backtrace with callstyle "short"' do
|
119
118
|
enter 'where'
|
@@ -195,10 +194,4 @@ class TestFrame < TestDsl::TestCase
|
|
195
194
|
end
|
196
195
|
end
|
197
196
|
|
198
|
-
describe 'Post Mortem' do
|
199
|
-
it 'must work in post-mortem mode' do
|
200
|
-
enter 'cont', 'frame'
|
201
|
-
debug_file('post_mortem') { $state.line.must_equal 8 }
|
202
|
-
end
|
203
|
-
end
|
204
197
|
end
|
data/test/help_test.rb
CHANGED
@@ -7,7 +7,7 @@ class TestHelp < TestDsl::TestCase
|
|
7
7
|
Byebug::Command.commands.select(&:event).map(&:names).flatten.uniq.sort }
|
8
8
|
|
9
9
|
describe 'when typed alone' do
|
10
|
-
temporary_change_hash Byebug
|
10
|
+
temporary_change_hash Byebug.settings, :width, 50
|
11
11
|
|
12
12
|
it 'must show self help when typed alone' do
|
13
13
|
enter 'help'
|
@@ -29,8 +29,7 @@ class TestHelp < TestDsl::TestCase
|
|
29
29
|
it 'must show an error if an undefined command is specified' do
|
30
30
|
enter 'help foobar'
|
31
31
|
debug_file 'help'
|
32
|
-
|
33
|
-
'Undefined command: "foobar". Try "help".', interface.error_queue
|
32
|
+
check_error_includes 'Undefined command: "foobar". Try "help".'
|
34
33
|
end
|
35
34
|
|
36
35
|
it "must show a command's help" do
|
@@ -53,13 +52,4 @@ class TestHelp < TestDsl::TestCase
|
|
53
52
|
"With an integer argument, list info on that breakpoint."
|
54
53
|
end
|
55
54
|
end
|
56
|
-
|
57
|
-
describe 'Post Mortem' do
|
58
|
-
it 'must work in post-mortem mode' do
|
59
|
-
enter 'cont', 'help'
|
60
|
-
debug_file 'post_mortem'
|
61
|
-
check_output_includes 'Available commands:'
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
55
|
end
|
data/test/info_test.rb
CHANGED
@@ -4,7 +4,7 @@ class TestInfo < TestDsl::TestCase
|
|
4
4
|
include Columnize
|
5
5
|
|
6
6
|
describe 'Args info' do
|
7
|
-
temporary_change_hash Byebug
|
7
|
+
temporary_change_hash Byebug.settings, :width, 15
|
8
8
|
|
9
9
|
it 'must show info about all args' do
|
10
10
|
enter 'break 3', 'cont', 'info args'
|
@@ -39,8 +39,7 @@ class TestInfo < TestDsl::TestCase
|
|
39
39
|
it 'must show an error if no breakpoints are found' do
|
40
40
|
enter 'break 7', 'info breakpoints 123'
|
41
41
|
debug_file 'info'
|
42
|
-
|
43
|
-
'No breakpoints found among list given.', interface.error_queue
|
42
|
+
check_error_includes 'No breakpoints found among list given.'
|
44
43
|
end
|
45
44
|
|
46
45
|
it 'must show hit count' do
|
@@ -99,7 +98,7 @@ class TestInfo < TestDsl::TestCase
|
|
99
98
|
let(:sha1) { LineCache.sha1(file) }
|
100
99
|
let(:breakpoint_line_numbers) {
|
101
100
|
columnize(LineCache.trace_line_numbers(file).to_a.sort,
|
102
|
-
Byebug
|
101
|
+
Byebug.settings[:width]) }
|
103
102
|
|
104
103
|
it 'must show basic info about the file' do
|
105
104
|
enter "info file #{file} basic"
|
@@ -155,7 +154,7 @@ class TestInfo < TestDsl::TestCase
|
|
155
154
|
it 'must not show any info if the parameter is invalid' do
|
156
155
|
enter "info file #{file} blabla"
|
157
156
|
debug_file 'info'
|
158
|
-
|
157
|
+
check_error_includes 'Invalid parameter blabla'
|
159
158
|
end
|
160
159
|
end
|
161
160
|
|
@@ -176,18 +175,18 @@ class TestInfo < TestDsl::TestCase
|
|
176
175
|
end
|
177
176
|
|
178
177
|
describe 'Locals info' do
|
179
|
-
temporary_change_hash Byebug
|
178
|
+
temporary_change_hash Byebug.settings, :width, 28
|
180
179
|
|
181
180
|
it 'must show the current local variables' do
|
182
181
|
enter 'break 21', 'cont', 'info locals'
|
183
182
|
debug_file 'info'
|
184
|
-
check_output_includes 'a = "
|
183
|
+
check_output_includes 'a = "11111111111111111111...', 'b = 2'
|
185
184
|
end
|
186
185
|
|
187
186
|
it 'must fail if local variable doesn\'t respond to #to_s or to #inspect' do
|
188
187
|
enter 'break 26', 'cont', 'info locals'
|
189
188
|
debug_file 'info'
|
190
|
-
check_output_includes '*Error in evaluation*'
|
189
|
+
check_output_includes 'a = *Error in evaluation*'
|
191
190
|
end
|
192
191
|
end
|
193
192
|
|
@@ -248,7 +247,7 @@ class TestInfo < TestDsl::TestCase
|
|
248
247
|
end
|
249
248
|
|
250
249
|
describe 'Variables info' do
|
251
|
-
temporary_change_hash Byebug
|
250
|
+
temporary_change_hash Byebug.settings, :width, 30
|
252
251
|
|
253
252
|
it 'must show all variables' do
|
254
253
|
enter 'break 21', 'cont', 'info variables'
|
@@ -283,13 +282,4 @@ class TestInfo < TestDsl::TestCase
|
|
283
282
|
check_output_includes /List of "info" subcommands:/
|
284
283
|
end
|
285
284
|
end
|
286
|
-
|
287
|
-
describe 'Post Mortem' do
|
288
|
-
it 'must work in post-mortem mode' do
|
289
|
-
enter 'cont', 'info line'
|
290
|
-
debug_file 'post_mortem'
|
291
|
-
check_output_includes "Line 8 of \"#{fullpath('post_mortem')}\""
|
292
|
-
end
|
293
|
-
end
|
294
|
-
|
295
285
|
end
|
data/test/kill_test.rb
CHANGED
@@ -32,16 +32,7 @@ class TestKill < TestDsl::TestCase
|
|
32
32
|
it 'must show an error' do
|
33
33
|
enter 'kill BLA'
|
34
34
|
debug_file('kill')
|
35
|
-
|
36
|
-
'signal name BLA is not a signal I know about', interface.error_queue
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe 'Post Mortem' do
|
41
|
-
it 'must work in post-mortem mode' do
|
42
|
-
Process.expects(:kill).with('USR1', Process.pid)
|
43
|
-
enter 'cont', 'kill USR1'
|
44
|
-
debug_file 'post_mortem'
|
35
|
+
check_error_includes 'signal name BLA is not a signal I know about'
|
45
36
|
end
|
46
37
|
end
|
47
38
|
end
|
data/test/list_test.rb
CHANGED
@@ -28,7 +28,7 @@ class TestList < TestDsl::TestCase
|
|
28
28
|
end
|
29
29
|
|
30
30
|
describe 'very large' do
|
31
|
-
temporary_change_hash Byebug
|
31
|
+
temporary_change_hash Byebug.settings, :listsize, 50
|
32
32
|
|
33
33
|
it 'must list whole file if number of lines is smaller than listsize' do
|
34
34
|
enter 'break 3', 'cont'
|
@@ -57,7 +57,7 @@ class TestList < TestDsl::TestCase
|
|
57
57
|
end
|
58
58
|
|
59
59
|
describe 'list backwards' do
|
60
|
-
temporary_change_hash Byebug
|
60
|
+
temporary_change_hash Byebug.settings, :autolist, 0
|
61
61
|
|
62
62
|
it 'must show surrounding lines with the first call' do
|
63
63
|
enter 'break 15', 'cont', 'list -'
|
@@ -77,7 +77,7 @@ class TestList < TestDsl::TestCase
|
|
77
77
|
end
|
78
78
|
|
79
79
|
describe 'list surrounding' do
|
80
|
-
temporary_change_hash Byebug
|
80
|
+
temporary_change_hash Byebug.settings, :autolist, 0
|
81
81
|
|
82
82
|
it 'must show the surrounding lines with =' do
|
83
83
|
enter 'break 5', 'cont', 'list ='
|
@@ -140,7 +140,7 @@ class TestList < TestDsl::TestCase
|
|
140
140
|
after { change_line_in_file(fullpath('list'), 4, 'a = 4') }
|
141
141
|
|
142
142
|
describe 'when autoreload is false' do
|
143
|
-
temporary_change_hash Byebug
|
143
|
+
temporary_change_hash Byebug.settings, :autoreload, false
|
144
144
|
|
145
145
|
it 'must not reload listing with file changes' do
|
146
146
|
enter -> { change_line_in_file fullpath('list'), 4, 'a = 100' ;
|
@@ -163,8 +163,7 @@ class TestList < TestDsl::TestCase
|
|
163
163
|
it 'must show an error when there is no such file' do
|
164
164
|
enter -> { $state.file = 'blabla'; 'list 4-4' }
|
165
165
|
debug_file 'list'
|
166
|
-
|
167
|
-
interface.error_queue
|
166
|
+
check_error_includes 'No sourcefile available for blabla'
|
168
167
|
end
|
169
168
|
|
170
169
|
it 'must correctly print lines containing % sign' do
|
@@ -172,12 +171,4 @@ class TestList < TestDsl::TestCase
|
|
172
171
|
debug_file 'list'
|
173
172
|
check_output_includes "23: a = '%23'"
|
174
173
|
end
|
175
|
-
|
176
|
-
describe 'Post Mortem' do
|
177
|
-
it 'must work in post-mortem mode' do
|
178
|
-
enter 'cont'
|
179
|
-
debug_file 'post_mortem'
|
180
|
-
check_output_includes "[3, 12] in #{fullpath('post_mortem')}"
|
181
|
-
end
|
182
|
-
end
|
183
174
|
end
|