byebug 3.0.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|