byebug 3.0.0 → 3.1.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 +15 -0
- data/GUIDE.md +2 -2
- data/LICENSE +3 -3
- data/README.md +5 -4
- data/byebug.gemspec +1 -1
- data/ext/byebug/byebug.c +20 -19
- data/lib/byebug.rb +2 -53
- data/lib/byebug/command.rb +9 -109
- data/lib/byebug/commands/breakpoints.rb +1 -1
- data/lib/byebug/commands/control.rb +20 -21
- data/lib/byebug/commands/display.rb +2 -3
- data/lib/byebug/commands/eval.rb +6 -16
- data/lib/byebug/commands/finish.rb +1 -1
- data/lib/byebug/commands/frame.rb +9 -9
- data/lib/byebug/commands/help.rb +2 -3
- data/lib/byebug/commands/history.rb +28 -0
- data/lib/byebug/commands/info.rb +3 -3
- data/lib/byebug/commands/list.rb +2 -13
- data/lib/byebug/commands/method.rb +5 -45
- data/lib/byebug/commands/reload.rb +1 -12
- data/lib/byebug/commands/repl.rb +6 -15
- data/lib/byebug/commands/save.rb +2 -7
- data/lib/byebug/commands/set.rb +45 -116
- data/lib/byebug/commands/show.rb +22 -126
- data/lib/byebug/commands/stepping.rb +1 -1
- data/lib/byebug/commands/trace.rb +14 -25
- data/lib/byebug/commands/variables.rb +3 -41
- data/lib/byebug/helper.rb +11 -42
- data/lib/byebug/history.rb +5 -13
- data/lib/byebug/processors/command_processor.rb +6 -6
- data/lib/byebug/setting.rb +82 -0
- data/lib/byebug/settings/autoeval.rb +20 -0
- data/lib/byebug/settings/autoirb.rb +19 -0
- data/lib/byebug/settings/autolist.rb +19 -0
- data/lib/byebug/settings/autoreload.rb +11 -0
- data/lib/byebug/settings/autosave.rb +11 -0
- data/lib/byebug/settings/basename.rb +7 -0
- data/lib/byebug/settings/callstyle.rb +15 -0
- data/lib/byebug/settings/forcestep.rb +11 -0
- data/lib/byebug/settings/fullpath.rb +11 -0
- data/lib/byebug/settings/histfile.rb +16 -0
- data/lib/byebug/settings/histsize.rb +18 -0
- data/lib/byebug/settings/linetrace.rb +15 -0
- data/lib/byebug/settings/listsize.rb +15 -0
- data/lib/byebug/settings/post_mortem.rb +15 -0
- data/lib/byebug/settings/stack_on_error.rb +7 -0
- data/lib/byebug/settings/testing.rb +7 -0
- data/lib/byebug/settings/tracing_plus.rb +7 -0
- data/lib/byebug/settings/verbose.rb +7 -0
- data/lib/byebug/settings/width.rb +29 -0
- data/lib/byebug/version.rb +1 -1
- data/test/breakpoints_test.rb +345 -324
- data/test/conditions_test.rb +61 -48
- data/test/continue_test.rb +38 -27
- data/test/debugger_alias_test.rb +5 -3
- data/test/display_test.rb +103 -92
- data/test/edit_test.rb +42 -34
- data/test/eval_test.rb +91 -75
- data/test/finish_test.rb +51 -40
- data/test/frame_test.rb +197 -184
- data/test/help_test.rb +47 -38
- data/test/history_test.rb +54 -0
- data/test/info_test.rb +306 -293
- data/test/interrupt_test.rb +44 -38
- data/test/kill_test.rb +40 -31
- data/test/list_test.rb +166 -133
- data/test/method_test.rb +67 -60
- data/test/post_mortem_test.rb +56 -48
- data/test/quit_test.rb +44 -35
- data/test/reload_test.rb +36 -24
- data/test/repl_test.rb +57 -47
- data/test/restart_test.rb +56 -69
- data/test/save_test.rb +62 -53
- data/test/set_test.rb +140 -118
- data/test/show_test.rb +68 -201
- data/test/source_test.rb +39 -29
- data/test/stepping_test.rb +163 -136
- data/test/support/test_dsl.rb +9 -11
- data/test/test_helper.rb +2 -7
- data/test/thread_test.rb +121 -107
- data/test/trace_test.rb +86 -83
- data/test/variables_test.rb +104 -98
- metadata +27 -86
- data/test/examples/breakpoint.rb +0 -6
- data/test/examples/breakpoint_deep.rb +0 -4
- data/test/examples/conditions.rb +0 -4
- data/test/examples/continue.rb +0 -5
- data/test/examples/display.rb +0 -5
- data/test/examples/edit.rb +0 -4
- data/test/examples/eval.rb +0 -4
- data/test/examples/finish.rb +0 -3
- data/test/examples/frame.rb +0 -4
- data/test/examples/frame_deep.rb +0 -1
- data/test/examples/gcd.rb +0 -15
- data/test/examples/hanoi.rb +0 -34
- data/test/examples/help.rb +0 -1
- data/test/examples/info.rb +0 -6
- data/test/examples/info2.rb +0 -3
- data/test/examples/interrupt.rb +0 -8
- data/test/examples/kill.rb +0 -2
- data/test/examples/list.rb +0 -23
- data/test/examples/method.rb +0 -4
- data/test/examples/post_mortem.rb +0 -4
- data/test/examples/primes.rb +0 -25
- data/test/examples/quit.rb +0 -2
- data/test/examples/reload.rb +0 -6
- data/test/examples/repl.rb +0 -6
- data/test/examples/restart.rb +0 -6
- data/test/examples/save.rb +0 -3
- data/test/examples/set.rb +0 -3
- data/test/examples/settings.rb +0 -1
- data/test/examples/show.rb +0 -1
- data/test/examples/source.rb +0 -3
- data/test/examples/stepping.rb +0 -8
- data/test/examples/stepping_raise_from_c_method.rb +0 -3
- data/test/examples/stepping_raise_from_ruby_method.rb +0 -3
- data/test/examples/test-triangle.rb +0 -14
- data/test/examples/thread.rb +0 -5
- data/test/examples/tmate.rb +0 -10
- data/test/examples/trace.rb +0 -8
- data/test/examples/tri3.rb +0 -6
- data/test/examples/triangle.rb +0 -13
- data/test/examples/variables.rb +0 -4
- data/test/timeout_test.rb +0 -9
data/test/method_test.rb
CHANGED
@@ -1,78 +1,85 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
module MethodTest
|
2
|
+
class Example
|
3
|
+
def initialize
|
4
|
+
@a = 'b'
|
5
|
+
@c = 'd'
|
6
|
+
end
|
7
|
+
def self.foo
|
8
|
+
"asdf"
|
9
|
+
end
|
10
|
+
def bla
|
11
|
+
"asdf"
|
12
|
+
end
|
11
13
|
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class TestMethod < TestDsl::TestCase
|
15
|
-
temporary_change_hash Byebug.settings, :autolist, 0
|
16
|
-
|
17
|
-
describe 'show instance method of a class' do
|
18
|
-
before { enter 'break 4', 'cont' }
|
19
14
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
15
|
+
class MethodTestCase < TestDsl::TestCase
|
16
|
+
before do
|
17
|
+
Byebug::Setting[:autolist] = false
|
18
|
+
@example = -> do
|
19
|
+
byebug
|
20
|
+
a = Example.new
|
21
|
+
a.bla
|
22
|
+
end
|
25
23
|
end
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
debug_file 'method'
|
30
|
-
check_output_includes(/bla/)
|
25
|
+
after do
|
26
|
+
Byebug::Setting[:autolist] = true
|
31
27
|
end
|
32
28
|
|
33
|
-
|
34
|
-
enter '
|
35
|
-
debug_file 'method'
|
36
|
-
check_output_includes 'Should be Class/Module: a'
|
37
|
-
end
|
38
|
-
end
|
29
|
+
describe 'show instance method of a class' do
|
30
|
+
before { enter 'break 4', 'cont' }
|
39
31
|
|
40
|
-
|
41
|
-
|
32
|
+
it 'must show using full command name' do
|
33
|
+
enter 'method Example'
|
34
|
+
debug_proc(@example)
|
35
|
+
check_output_includes(/bla/)
|
36
|
+
check_output_doesnt_include(/foo/)
|
37
|
+
end
|
42
38
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
end
|
39
|
+
it 'must show using shortcut' do
|
40
|
+
enter 'm Example'
|
41
|
+
debug_proc(@example)
|
42
|
+
check_output_includes(/bla/)
|
43
|
+
end
|
49
44
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
45
|
+
it 'must show an error if specified object is not a class or module' do
|
46
|
+
enter 'm a'
|
47
|
+
debug_proc(@example)
|
48
|
+
check_output_includes 'Should be Class/Module: a'
|
49
|
+
end
|
54
50
|
end
|
55
|
-
end
|
56
51
|
|
57
|
-
|
58
|
-
|
59
|
-
skip('TODO, can\'t install ruby-internal gem')
|
60
|
-
end
|
61
|
-
end
|
52
|
+
describe 'show methods of an object' do
|
53
|
+
before { enter 'break 21', 'cont' }
|
62
54
|
|
63
|
-
|
64
|
-
|
55
|
+
it 'must show using full command name' do
|
56
|
+
enter 'method instance a'
|
57
|
+
debug_proc(@example)
|
58
|
+
check_output_includes(/bla/)
|
59
|
+
check_output_doesnt_include(/foo/)
|
60
|
+
end
|
65
61
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
62
|
+
it 'must show using shortcut' do
|
63
|
+
enter 'm i a'
|
64
|
+
debug_proc(@example)
|
65
|
+
check_output_includes(/bla/)
|
66
|
+
end
|
70
67
|
end
|
71
68
|
|
72
|
-
|
73
|
-
enter '
|
74
|
-
|
75
|
-
|
69
|
+
describe 'show instance variables of an object' do
|
70
|
+
before { enter 'break 21', 'cont' }
|
71
|
+
|
72
|
+
it 'must show using full name command' do
|
73
|
+
enter 'method iv a'
|
74
|
+
debug_proc(@example)
|
75
|
+
check_output_includes '@a = "b"', '@c = "d"'
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'must show using shortcut' do
|
79
|
+
enter 'm iv a'
|
80
|
+
debug_proc(@example)
|
81
|
+
check_output_includes '@a = "b"', '@c = "d"'
|
82
|
+
end
|
76
83
|
end
|
77
84
|
end
|
78
85
|
end
|
data/test/post_mortem_test.rb
CHANGED
@@ -1,69 +1,77 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
module PostMortemTest
|
2
|
+
class Example
|
3
|
+
def a
|
4
|
+
z = 4
|
5
|
+
raise 'blabla'
|
6
|
+
x = 6
|
7
|
+
x + z
|
8
|
+
end
|
7
9
|
end
|
8
|
-
end
|
9
10
|
|
10
|
-
class
|
11
|
+
class PostMortemTestCase < TestDsl::TestCase
|
12
|
+
before do
|
13
|
+
@example = -> do
|
14
|
+
byebug
|
15
|
+
c = Example.new
|
16
|
+
c.a
|
17
|
+
end
|
18
|
+
end
|
11
19
|
|
12
|
-
|
13
|
-
|
14
|
-
|
20
|
+
describe 'Features' do
|
21
|
+
before { enter 'set post_mortem', 'cont' }
|
22
|
+
after { Byebug.post_mortem = false }
|
15
23
|
|
16
|
-
|
17
|
-
|
18
|
-
|
24
|
+
it 'is rising right before exiting' do
|
25
|
+
assert_raises(RuntimeError) do
|
26
|
+
debug_proc(@example)
|
27
|
+
end
|
19
28
|
end
|
20
|
-
end
|
21
29
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
30
|
+
it 'sets post_mortem to true' do
|
31
|
+
begin
|
32
|
+
debug_proc(@example)
|
33
|
+
rescue
|
34
|
+
Byebug.post_mortem?.must_equal true
|
35
|
+
end
|
27
36
|
end
|
28
|
-
end
|
29
37
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
38
|
+
it 'stops at the correct line' do
|
39
|
+
begin
|
40
|
+
debug_proc(@example)
|
41
|
+
rescue
|
42
|
+
Byebug.raised_exception.__bb_line.must_equal 5
|
43
|
+
end
|
35
44
|
end
|
36
45
|
end
|
37
|
-
end
|
38
46
|
|
39
|
-
|
40
|
-
|
47
|
+
describe 'Unavailable commands' do
|
48
|
+
temporary_change_hash Byebug::Setting, :autoeval, false
|
41
49
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
+
%w(step next finish break condition display reload).each do |cmd|
|
51
|
+
define_method "test_#{cmd}_is_forbidden_in_post_mortem_mode" do
|
52
|
+
enter "#{cmd}"
|
53
|
+
state.context.stubs(:dead?).returns(:true)
|
54
|
+
begin
|
55
|
+
debug_proc(@example)
|
56
|
+
rescue RuntimeError
|
57
|
+
check_error_includes 'Command unavailable in post mortem mode.'
|
58
|
+
end
|
50
59
|
end
|
51
60
|
end
|
52
61
|
end
|
53
|
-
end
|
54
62
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
63
|
+
describe 'Available commands' do
|
64
|
+
['restart', 'frame', 'quit', 'edit', 'info', 'irb', 'source', 'help',
|
65
|
+
'var class', 'list', 'method', 'kill', 'eval', 'set', 'save', 'show',
|
66
|
+
'trace', 'thread list'].each do |cmd|
|
67
|
+
define_method "test_#{cmd}_is_permitted_in_post_mortem_mode" do
|
68
|
+
enter "#{cmd}"
|
69
|
+
class_name = cmd.gsub(/(^| )\w/) { |b| b[-1,1].upcase } + 'Command'
|
62
70
|
|
63
|
-
|
64
|
-
|
71
|
+
Byebug.const_get(class_name).any_instance.stubs(:execute)
|
72
|
+
assert_raises(RuntimeError) { debug_proc(@example) }
|
73
|
+
end
|
65
74
|
end
|
66
75
|
end
|
67
76
|
end
|
68
|
-
|
69
77
|
end
|
data/test/quit_test.rb
CHANGED
@@ -1,42 +1,51 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
module QuitTest
|
2
|
+
class QuitTestCase < TestDsl::TestCase
|
3
|
+
before do
|
4
|
+
@example = -> do
|
5
|
+
byebug
|
6
|
+
Object.new
|
7
|
+
end
|
8
|
+
end
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
it 'must quit if user confirmed' do
|
11
|
+
Byebug::QuitCommand.any_instance.expects(:exit!)
|
12
|
+
enter 'quit', 'y'
|
13
|
+
debug_proc(@example)
|
14
|
+
check_output_includes 'Really quit? (y/n)', interface.confirm_queue
|
15
|
+
end
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
it 'must not quit if user didn\'t confirm' do
|
18
|
+
Byebug::QuitCommand.any_instance.expects(:exit!).never
|
19
|
+
enter 'quit', 'n'
|
20
|
+
debug_proc(@example)
|
21
|
+
check_output_includes 'Really quit? (y/n)', interface.confirm_queue
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
it 'must quit immediatly if used with !' do
|
25
|
+
Byebug::QuitCommand.any_instance.expects(:exit!)
|
26
|
+
enter 'quit!'
|
27
|
+
debug_proc(@example)
|
28
|
+
check_output_doesnt_include 'Really quit? (y/n)', interface.confirm_queue
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
it 'must quit immediatly if used with "unconditionally"' do
|
32
|
+
Byebug::QuitCommand.any_instance.expects(:exit!)
|
33
|
+
enter 'quit unconditionally'
|
34
|
+
debug_proc(@example)
|
35
|
+
check_output_doesnt_include 'Really quit? (y/n)', interface.confirm_queue
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'must close interface before quitting' do
|
39
|
+
Byebug::QuitCommand.any_instance.stubs(:exit!)
|
40
|
+
interface.expects(:close)
|
41
|
+
enter 'quit!'
|
42
|
+
debug_proc(@example)
|
43
|
+
end
|
36
44
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
45
|
+
it 'must quit if used "exit" alias' do
|
46
|
+
Byebug::QuitCommand.any_instance.expects(:exit!)
|
47
|
+
enter 'exit!'
|
48
|
+
debug_proc(@example)
|
49
|
+
end
|
41
50
|
end
|
42
51
|
end
|
data/test/reload_test.rb
CHANGED
@@ -1,32 +1,44 @@
|
|
1
|
-
|
1
|
+
module ReloadTest
|
2
|
+
class ReloadTestCase < TestDsl::TestCase
|
3
|
+
before do
|
4
|
+
@example = -> do
|
5
|
+
byebug
|
6
|
+
a = 6
|
7
|
+
a = 7
|
8
|
+
a = 8
|
9
|
+
a = 9
|
10
|
+
a = 10
|
11
|
+
end
|
12
|
+
end
|
2
13
|
|
3
|
-
|
4
|
-
|
14
|
+
describe 'autoreloading' do
|
15
|
+
after { Byebug::Setting[:autoreload] = true }
|
5
16
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
17
|
+
it 'must notify that automatic reloading is on by default' do
|
18
|
+
enter 'reload'
|
19
|
+
debug_proc(@example)
|
20
|
+
check_output_includes \
|
21
|
+
'Source code is reloaded. Automatic reloading is on.'
|
22
|
+
end
|
12
23
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
24
|
+
it 'must notify that automatic reloading is off if setting changed' do
|
25
|
+
enter 'set noautoreload', 'reload'
|
26
|
+
debug_proc(@example)
|
27
|
+
check_output_includes \
|
28
|
+
'Source code is reloaded. Automatic reloading is off.'
|
29
|
+
end
|
18
30
|
end
|
19
|
-
end
|
20
31
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
'reload'
|
27
|
-
|
28
|
-
|
29
|
-
|
32
|
+
describe 'reloading' do
|
33
|
+
after { change_line_in_file(__FILE__, 8, ' a = 8') }
|
34
|
+
|
35
|
+
it 'must reload the code' do
|
36
|
+
enter 'break 7', 'cont', 'l 8-8',
|
37
|
+
-> { change_line_in_file(__FILE__, 8, ' a = 100'); 'reload' },
|
38
|
+
'l 8-8'
|
39
|
+
debug_proc(@example)
|
40
|
+
check_output_includes '8: a = 100'
|
41
|
+
end
|
30
42
|
end
|
31
43
|
end
|
32
44
|
end
|
data/test/repl_test.rb
CHANGED
@@ -1,65 +1,75 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe 'Irb Command' do
|
1
|
+
module ReplTest
|
2
|
+
class ReplTestCase < TestDsl::TestCase
|
4
3
|
before do
|
5
|
-
|
6
|
-
|
4
|
+
@example = -> do
|
5
|
+
byebug
|
6
|
+
a = 2
|
7
|
+
a = 3
|
8
|
+
a = 4
|
9
|
+
a = 5
|
10
|
+
a = 6
|
11
|
+
end
|
7
12
|
end
|
8
13
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
debug_file('repl') { state.line.must_equal 3 }
|
15
|
-
end
|
14
|
+
describe 'Irb Command' do
|
15
|
+
before do
|
16
|
+
interface.stubs(:kind_of?).with(Byebug::LocalInterface).returns(true)
|
17
|
+
IRB::Irb.stubs(:new).returns(irb)
|
18
|
+
end
|
16
19
|
|
17
|
-
|
18
|
-
irb.stubs(:eval_input).throws(:IRB_EXIT, :step)
|
19
|
-
enter 'irb'
|
20
|
-
debug_file('repl') { state.line.must_equal 3 }
|
21
|
-
end
|
20
|
+
let(:irb) { stub(context: ->{}) }
|
22
21
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
it 'must support next command' do
|
23
|
+
irb.stubs(:eval_input).throws(:IRB_EXIT, :next)
|
24
|
+
enter 'irb'
|
25
|
+
debug_proc(@example) { state.line.must_equal 7 }
|
26
|
+
end
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
irb
|
32
|
-
|
33
|
-
debug_file 'repl'
|
28
|
+
it 'must support step command' do
|
29
|
+
irb.stubs(:eval_input).throws(:IRB_EXIT, :step)
|
30
|
+
enter 'irb'
|
31
|
+
debug_proc(@example) { state.line.must_equal 7 }
|
34
32
|
end
|
35
|
-
end
|
36
|
-
end
|
37
33
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
34
|
+
it 'must support cont command' do
|
35
|
+
irb.stubs(:eval_input).throws(:IRB_EXIT, :cont)
|
36
|
+
enter 'break 8', 'irb'
|
37
|
+
debug_proc(@example) { state.line.must_equal 8 }
|
38
|
+
end
|
44
39
|
|
45
|
-
|
46
|
-
|
40
|
+
it 'autoirb must call irb automatically after breakpoint' do
|
41
|
+
irb.expects(:eval_input)
|
42
|
+
enter 'set autoirb', 'break 8', 'cont', 'set noautoirb'
|
43
|
+
debug_proc(@example)
|
44
|
+
end
|
47
45
|
end
|
48
46
|
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
@has_pry = false
|
48
|
+
describe 'Pry command' do
|
49
|
+
before do
|
50
|
+
interface.stubs(:kind_of?).with(Byebug::LocalInterface).returns(true)
|
51
|
+
Byebug::PryCommand.any_instance.expects(:pry)
|
52
|
+
end
|
52
53
|
|
53
|
-
|
54
|
-
it 'must call pry automatically after breakpoint' do
|
54
|
+
it 'must support step command' do
|
55
55
|
skip 'TODO'
|
56
56
|
end
|
57
|
-
end
|
58
57
|
|
59
|
-
|
60
|
-
it 'must work in post-mortem mode' do
|
58
|
+
it 'must support cont command' do
|
61
59
|
skip 'TODO'
|
62
60
|
end
|
63
|
-
|
64
|
-
|
61
|
+
|
62
|
+
describe 'autopry' do
|
63
|
+
it 'must call pry automatically after breakpoint' do
|
64
|
+
skip 'TODO'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe 'post-mortem' do
|
69
|
+
it 'must work in post-mortem mode' do
|
70
|
+
skip 'TODO'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end if @has_pry
|
74
|
+
end
|
65
75
|
end
|