debugger 1.4.0 → 1.5.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.
- data/CHANGELOG.md +4 -0
- data/README.md +9 -3
- data/debugger.gemspec +1 -1
- data/ext/ruby_debug/192/ruby_debug.c +21 -9
- data/ext/ruby_debug/193/ruby_debug.c +15 -5
- data/lib/debugger/test.rb +6 -0
- data/{test/support → lib/debugger/test}/breakpoint.rb +0 -0
- data/{test/support → lib/debugger/test}/context.rb +0 -0
- data/{test/support → lib/debugger/test}/matchers.rb +0 -0
- data/{test/support → lib/debugger/test}/mocha_extensions.rb +1 -1
- data/lib/debugger/test/printer_helpers.rb +8 -0
- data/{test/support → lib/debugger/test}/processor.rb +0 -0
- data/{test/support → lib/debugger/test}/test_dsl.rb +22 -2
- data/{test/support → lib/debugger/test}/test_interface.rb +4 -0
- data/lib/debugger/version.rb +1 -1
- data/lib/ruby-debug.rb +4 -1
- data/lib/ruby-debug/command.rb +18 -6
- data/lib/ruby-debug/commands/breakpoints.rb +27 -29
- data/lib/ruby-debug/commands/condition.rb +7 -2
- data/lib/ruby-debug/commands/continue.rb +1 -2
- data/lib/ruby-debug/commands/control.rb +8 -9
- data/lib/ruby-debug/commands/display.rb +7 -15
- data/lib/ruby-debug/commands/edit.rb +6 -6
- data/lib/ruby-debug/commands/enable.rb +6 -7
- data/lib/ruby-debug/commands/eval.rb +1 -3
- data/lib/ruby-debug/commands/frame.rb +72 -101
- data/lib/ruby-debug/commands/info.rb +8 -14
- data/lib/ruby-debug/commands/irb.rb +1 -1
- data/lib/ruby-debug/commands/jump.rb +6 -6
- data/lib/ruby-debug/commands/kill.rb +0 -1
- data/lib/ruby-debug/commands/list.rb +4 -4
- data/lib/ruby-debug/commands/method.rb +8 -11
- data/lib/ruby-debug/commands/quit.rb +1 -1
- data/lib/ruby-debug/commands/reload.rb +1 -1
- data/lib/ruby-debug/commands/save.rb +1 -1
- data/lib/ruby-debug/commands/set.rb +10 -15
- data/lib/ruby-debug/commands/show.rb +28 -42
- data/lib/ruby-debug/commands/skip.rb +1 -1
- data/lib/ruby-debug/commands/source.rb +1 -1
- data/lib/ruby-debug/commands/start.rb +26 -0
- data/lib/ruby-debug/commands/threads.rb +29 -18
- data/lib/ruby-debug/commands/tmate.rb +1 -1
- data/lib/ruby-debug/commands/trace.rb +6 -7
- data/lib/ruby-debug/commands/variables.rb +36 -19
- data/lib/ruby-debug/helper.rb +5 -5
- data/lib/ruby-debug/interface.rb +15 -3
- data/lib/ruby-debug/printers/base.rb +58 -0
- data/lib/ruby-debug/printers/plain.rb +41 -0
- data/lib/ruby-debug/printers/texts/base.yml +146 -0
- data/lib/ruby-debug/printers/texts/plain.yml +60 -0
- data/lib/ruby-debug/processor.rb +56 -47
- data/test/breakpoints_test.rb +43 -54
- data/test/conditions_test.rb +18 -6
- data/test/continue_test.rb +1 -1
- data/test/display_test.rb +11 -11
- data/test/edit_test.rb +1 -2
- data/test/eval_test.rb +5 -6
- data/test/finish_test.rb +1 -1
- data/test/frame_test.rb +29 -27
- data/test/help_test.rb +0 -1
- data/test/info_test.rb +10 -14
- data/test/irb_test.rb +0 -1
- data/test/jump_test.rb +21 -2
- data/test/method_test.rb +3 -3
- data/test/new/printers/plain_test.rb +84 -0
- data/test/reload_test.rb +2 -2
- data/test/restart_test.rb +1 -2
- data/test/set_test.rb +8 -7
- data/test/show_test.rb +22 -22
- data/test/source_test.rb +1 -1
- data/test/test_helper.rb +2 -1
- data/test/thread_test.rb +11 -13
- data/test/trace_test.rb +7 -7
- data/test/variables_test.rb +33 -15
- metadata +20 -12
data/test/method_test.rb
CHANGED
@@ -23,7 +23,7 @@ describe "Method Command" do
|
|
23
23
|
it "must show an error if specified object is not a class or module" do
|
24
24
|
enter 'break 15', 'cont', 'm a'
|
25
25
|
debug_file 'method'
|
26
|
-
check_output_includes "Should be Class/Module: a"
|
26
|
+
check_output_includes "Should be Class/Module: a", interface.error_queue
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -48,13 +48,13 @@ describe "Method Command" do
|
|
48
48
|
it "must show using full name command" do
|
49
49
|
enter 'break 15', 'cont', 'method iv a'
|
50
50
|
debug_file 'method'
|
51
|
-
check_output_includes
|
51
|
+
check_output_includes %{@a = b\n@c = d}
|
52
52
|
end
|
53
53
|
|
54
54
|
it "must show using shortcut" do
|
55
55
|
enter 'break 15', 'cont', 'm iv a'
|
56
56
|
debug_file 'method'
|
57
|
-
check_output_includes
|
57
|
+
check_output_includes %{@a = b\n@c = d}
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
describe "Printers::Plain" do
|
4
|
+
include PrinterHelpers
|
5
|
+
include TestDsl
|
6
|
+
|
7
|
+
let(:klass) { Printers::Plain }
|
8
|
+
let(:printer) { klass.new }
|
9
|
+
let(:yaml_plain) do
|
10
|
+
{
|
11
|
+
"foo" => {
|
12
|
+
"bar" => "plain {zee}, {uga} gaa",
|
13
|
+
"with_c" => "{arg} bla|c",
|
14
|
+
"confirmations" => {
|
15
|
+
"okay" => "Okay?"
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"variable" => {"variable" => "{key}: {value}"}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
let(:yaml_base) do
|
23
|
+
{
|
24
|
+
"foo" => {
|
25
|
+
"bar" => "base {zee}, {uga} gaa",
|
26
|
+
"boo" => "{zee}, gau"
|
27
|
+
}
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
before do
|
32
|
+
YAML.stubs(:load_file).with(yaml_file_path('plain')).returns(yaml_plain)
|
33
|
+
YAML.stubs(:load_file).with(yaml_file_path('base')).returns(yaml_base)
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "#print" do
|
37
|
+
it "must return correctly translated string" do
|
38
|
+
printer.print("foo.bar", zee: 'zuu', uga: 'aga').must_equal "plain zuu, aga gaa\n"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "must add (y/n) to the confirmation strings" do
|
42
|
+
printer.print("foo.confirmations.okay").must_equal "Okay? (y/n) \n"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "must use strings, inherited from base" do
|
46
|
+
printer.print("foo.boo", zee: 'zuu').must_equal "zuu, gau\n"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "errors" do
|
51
|
+
it "must show an error if there is no specified path" do
|
52
|
+
->{ printer.print("foo.bla") }.must_raise klass::MissedPath
|
53
|
+
end
|
54
|
+
|
55
|
+
it "must show an error if there is no specified argument" do
|
56
|
+
->{ printer.print("foo.bar", zee: 'zuu') }.must_raise klass::MissedArgument
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#print_collection" do
|
61
|
+
it "must print collection" do
|
62
|
+
printer.print_collection("foo.bar", [{uga: 'a'}, {uga: 'b'}]) do |item, index|
|
63
|
+
item.merge(zee: index)
|
64
|
+
end.must_equal "plain 0, a gaa\nplain 1, b gaa\n"
|
65
|
+
end
|
66
|
+
|
67
|
+
it "must columnize collection with modifier 'c'" do
|
68
|
+
temporary_change_hash_value(Debugger.settings, :width, 30) do
|
69
|
+
printer.print_collection("foo.with_c", (1..10)) { |i, _| {arg: i} }.must_equal(
|
70
|
+
"1 bla 4 bla 7 bla 10 bla\n" +
|
71
|
+
"2 bla 5 bla 8 bla\n" +
|
72
|
+
"3 bla 6 bla 9 bla\n"
|
73
|
+
)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "#print_variables" do
|
79
|
+
it "must print variables" do
|
80
|
+
printer.print_variables([['a', 'b'], ['c', 'd']], '').must_equal %{a: b\nc: d\n}
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
data/test/reload_test.rb
CHANGED
@@ -7,13 +7,13 @@ describe "Reload Command" do
|
|
7
7
|
it "must notify that automatic reloading is off" do
|
8
8
|
enter 'reload'
|
9
9
|
debug_file 'reload'
|
10
|
-
check_output_includes "Source code is reloaded. Automatic reloading is off
|
10
|
+
check_output_includes "Source code is reloaded. Automatic reloading is off"
|
11
11
|
end
|
12
12
|
|
13
13
|
it "must notify that automatic reloading is on" do
|
14
14
|
enter 'set autoreload', 'reload'
|
15
15
|
debug_file 'reload'
|
16
|
-
check_output_includes "Source code is reloaded. Automatic reloading is on
|
16
|
+
check_output_includes "Source code is reloaded. Automatic reloading is on"
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "reloading" do
|
data/test/restart_test.rb
CHANGED
@@ -111,8 +111,7 @@ describe "Restart Command" do
|
|
111
111
|
|
112
112
|
it "must show a warning message when prog script is not executable" do
|
113
113
|
debug_file('restart')
|
114
|
-
check_output_includes "Ruby program #{prog_script} doesn't seem to be executable
|
115
|
-
check_output_includes "We'll add a call to Ruby."
|
114
|
+
check_output_includes "Ruby program #{prog_script} doesn't seem to be executable...\nWe'll add a call to Ruby"
|
116
115
|
end
|
117
116
|
end
|
118
117
|
|
data/test/set_test.rb
CHANGED
@@ -59,7 +59,7 @@ describe "Set Command" do
|
|
59
59
|
it "must show a message after setting" do
|
60
60
|
enter 'set autolist on'
|
61
61
|
debug_file 'set'
|
62
|
-
check_output_includes "autolist is on
|
62
|
+
check_output_includes "autolist is on"
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -77,7 +77,7 @@ describe "Set Command" do
|
|
77
77
|
temporary_change_hash_value(Debugger::Command.settings, :basename, false) do
|
78
78
|
enter 'set debuggertesting', 'show basename'
|
79
79
|
debug_file('set')
|
80
|
-
check_output_includes "basename is on
|
80
|
+
check_output_includes "basename is on"
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -98,7 +98,7 @@ describe "Set Command" do
|
|
98
98
|
it "must show a message" do
|
99
99
|
enter 'set history save on'
|
100
100
|
debug_file 'set'
|
101
|
-
check_output_includes "Saving of history save is on
|
101
|
+
check_output_includes "Saving of history save is on"
|
102
102
|
end
|
103
103
|
|
104
104
|
it "must set history save to off" do
|
@@ -132,20 +132,21 @@ describe "Set Command" do
|
|
132
132
|
it "must show a message" do
|
133
133
|
enter 'set history filename .debugger-hist'
|
134
134
|
debug_file 'set'
|
135
|
-
|
135
|
+
history_filename = File.join(ENV["HOME"] || ENV["HOMEPATH"] || ".", ".debugger-hist")
|
136
|
+
check_output_includes "The filename in which to record the command history is '#{history_filename}'"
|
136
137
|
end
|
137
138
|
end
|
138
139
|
|
139
140
|
it "must show an error message if used wrong subcommand" do
|
140
141
|
enter 'set history bla 2'
|
141
142
|
debug_file 'set'
|
142
|
-
check_output_includes "Invalid history parameter bla. Should be 'filename', 'save' or 'size'
|
143
|
+
check_output_includes "Invalid history parameter bla. Should be 'filename', 'save' or 'size'"
|
143
144
|
end
|
144
145
|
|
145
146
|
it "must show an error message if provided only one argument" do
|
146
147
|
enter 'set history save'
|
147
148
|
debug_file 'set'
|
148
|
-
check_output_includes "Need two parameters for 'set history'; got 1
|
149
|
+
check_output_includes "Need two parameters for 'set history'; got 1"
|
149
150
|
end
|
150
151
|
end
|
151
152
|
|
@@ -170,7 +171,7 @@ describe "Set Command" do
|
|
170
171
|
it "must work in post-mortem mode" do
|
171
172
|
enter 'cont', "set autolist on"
|
172
173
|
debug_file 'post_mortem'
|
173
|
-
check_output_includes "autolist is on
|
174
|
+
check_output_includes "autolist is on"
|
174
175
|
end
|
175
176
|
end
|
176
177
|
|
data/test/show_test.rb
CHANGED
@@ -27,14 +27,14 @@ describe "Show Command" do
|
|
27
27
|
Debugger.send(:remove_const, "RDEBUG_SCRIPT") if Debugger.const_defined?("RDEBUG_SCRIPT")
|
28
28
|
enter 'show args'
|
29
29
|
debug_file 'show'
|
30
|
-
check_output_includes
|
30
|
+
check_output_includes "Argument list to give program being debugged when it is started is 'foo bar'"
|
31
31
|
end
|
32
32
|
|
33
33
|
it "must not show the first arg if RDEBUG_SCRIPT is defined" do
|
34
34
|
temporary_set_const(Debugger, "RDEBUG_SCRIPT", "bla") do
|
35
35
|
enter 'show args'
|
36
36
|
debug_file 'show'
|
37
|
-
check_output_includes
|
37
|
+
check_output_includes "Argument list to give program being debugged when it is started is 'bar'"
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -44,7 +44,7 @@ describe "Show Command" do
|
|
44
44
|
temporary_change_hash_value(Debugger::Command.settings, :autolist, 1) do
|
45
45
|
enter 'show autolist'
|
46
46
|
debug_file 'show'
|
47
|
-
check_output_includes 'autolist is on
|
47
|
+
check_output_includes 'autolist is on'
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -52,7 +52,7 @@ describe "Show Command" do
|
|
52
52
|
temporary_change_hash_value(Debugger::Command.settings, :autoeval, true) do
|
53
53
|
enter 'show autoeval'
|
54
54
|
debug_file 'show'
|
55
|
-
check_output_includes 'autoeval is on
|
55
|
+
check_output_includes 'autoeval is on'
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -60,7 +60,7 @@ describe "Show Command" do
|
|
60
60
|
temporary_change_hash_value(Debugger::Command.settings, :reload_source_on_change, true) do
|
61
61
|
enter 'show autoreload'
|
62
62
|
debug_file 'show'
|
63
|
-
check_output_includes 'autoreload is on
|
63
|
+
check_output_includes 'autoreload is on'
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -69,7 +69,7 @@ describe "Show Command" do
|
|
69
69
|
temporary_change_hash_value(Debugger::Command.settings, :autoirb, 1) do
|
70
70
|
enter 'show autoirb'
|
71
71
|
debug_file 'show'
|
72
|
-
check_output_includes 'autoirb is on
|
72
|
+
check_output_includes 'autoirb is on'
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -77,7 +77,7 @@ describe "Show Command" do
|
|
77
77
|
temporary_change_hash_value(Debugger::Command.settings, :basename, true) do
|
78
78
|
enter 'show basename'
|
79
79
|
debug_file 'show'
|
80
|
-
check_output_includes 'basename is on
|
80
|
+
check_output_includes 'basename is on'
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -85,7 +85,7 @@ describe "Show Command" do
|
|
85
85
|
temporary_change_hash_value(Debugger::Command.settings, :callstyle, :short) do
|
86
86
|
enter 'show callstyle'
|
87
87
|
debug_file 'show'
|
88
|
-
check_output_includes 'Frame call-display style is short
|
88
|
+
check_output_includes 'Frame call-display style is short'
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
@@ -93,7 +93,7 @@ describe "Show Command" do
|
|
93
93
|
temporary_change_hash_value(Debugger::Command.settings, :force_stepping, true) do
|
94
94
|
enter 'show forcestep'
|
95
95
|
debug_file 'show'
|
96
|
-
check_output_includes 'force-stepping is on
|
96
|
+
check_output_includes 'force-stepping is on'
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
@@ -101,7 +101,7 @@ describe "Show Command" do
|
|
101
101
|
temporary_change_hash_value(Debugger::Command.settings, :full_path, true) do
|
102
102
|
enter 'show fullpath'
|
103
103
|
debug_file 'show'
|
104
|
-
check_output_includes "Displaying frame's full file names is on
|
104
|
+
check_output_includes "Displaying frame's full file names is on"
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -109,7 +109,7 @@ describe "Show Command" do
|
|
109
109
|
temporary_change_method_value(Debugger, :tracing, true) do
|
110
110
|
enter 'show linetrace'
|
111
111
|
debug_file 'show'
|
112
|
-
check_output_includes "line tracing is on
|
112
|
+
check_output_includes "line tracing is on"
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -119,7 +119,7 @@ describe "Show Command" do
|
|
119
119
|
temporary_change_hash_value(Debugger::Command.settings, :tracing_plus, true) do
|
120
120
|
enter 'show linetrace+'
|
121
121
|
debug_file 'show'
|
122
|
-
check_output_includes "line tracing style is different consecutive lines
|
122
|
+
check_output_includes "line tracing style is different consecutive lines"
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
@@ -127,7 +127,7 @@ describe "Show Command" do
|
|
127
127
|
temporary_change_hash_value(Debugger::Command.settings, :tracing_plus, false) do
|
128
128
|
enter 'show linetrace+'
|
129
129
|
debug_file 'show'
|
130
|
-
check_output_includes "line tracing style is every line
|
130
|
+
check_output_includes "line tracing style is every line"
|
131
131
|
end
|
132
132
|
end
|
133
133
|
end
|
@@ -137,7 +137,7 @@ describe "Show Command" do
|
|
137
137
|
temporary_change_hash_value(Debugger::Command.settings, :listsize, 10) do
|
138
138
|
enter 'show listsize'
|
139
139
|
debug_file 'show'
|
140
|
-
check_output_includes 'Number of source lines to list by default is 10
|
140
|
+
check_output_includes 'Number of source lines to list by default is 10'
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
@@ -145,7 +145,7 @@ describe "Show Command" do
|
|
145
145
|
temporary_set_const(Debugger, "PORT", 12345) do
|
146
146
|
enter 'show port'
|
147
147
|
debug_file 'show'
|
148
|
-
check_output_includes 'server port is 12345
|
148
|
+
check_output_includes 'server port is 12345'
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
@@ -153,7 +153,7 @@ describe "Show Command" do
|
|
153
153
|
temporary_change_hash_value(Debugger::Command.settings, :stack_trace_on_error, true) do
|
154
154
|
enter 'show trace'
|
155
155
|
debug_file 'show'
|
156
|
-
check_output_includes "Displaying stack trace is on
|
156
|
+
check_output_includes "Displaying stack trace is on"
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
@@ -167,7 +167,7 @@ describe "Show Command" do
|
|
167
167
|
temporary_change_hash_value(Debugger::Command.settings, :width, 35) do
|
168
168
|
enter 'show width'
|
169
169
|
debug_file 'show'
|
170
|
-
check_output_includes 'width is 35
|
170
|
+
check_output_includes 'width is 35'
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
@@ -189,11 +189,11 @@ describe "Show Command" do
|
|
189
189
|
end
|
190
190
|
|
191
191
|
it "must show history file" do
|
192
|
-
check_output_includes /filename: The filename in which to record the command history is
|
192
|
+
check_output_includes /filename: The filename in which to record the command history is 'hist_file\.txt'/
|
193
193
|
end
|
194
194
|
|
195
195
|
it "must show history save setting" do
|
196
|
-
check_output_includes /save: Saving of history save is on
|
196
|
+
check_output_includes /save: Saving of history save is on/
|
197
197
|
end
|
198
198
|
|
199
199
|
it "must show history length" do
|
@@ -206,14 +206,14 @@ describe "Show Command" do
|
|
206
206
|
interface.histfile = "hist_file.txt"
|
207
207
|
enter 'show history filename'
|
208
208
|
debug_file 'show'
|
209
|
-
check_output_includes
|
209
|
+
check_output_includes "The filename in which to record the command history is 'hist_file.txt'"
|
210
210
|
end
|
211
211
|
|
212
212
|
it "must show history save setting" do
|
213
213
|
interface.history_save = true
|
214
214
|
enter 'show history save'
|
215
215
|
debug_file 'show'
|
216
|
-
check_output_includes 'Saving of history save is on
|
216
|
+
check_output_includes 'Saving of history save is on'
|
217
217
|
end
|
218
218
|
|
219
219
|
it "must show history length" do
|
@@ -285,7 +285,7 @@ describe "Show Command" do
|
|
285
285
|
it "must work in post-mortem mode" do
|
286
286
|
enter 'cont', "show autolist"
|
287
287
|
debug_file 'post_mortem'
|
288
|
-
check_output_includes "autolist is off
|
288
|
+
check_output_includes "autolist is off"
|
289
289
|
end
|
290
290
|
end
|
291
291
|
|
data/test/source_test.rb
CHANGED
@@ -37,7 +37,7 @@ describe "Source Command" do
|
|
37
37
|
describe "Post Mortem" do
|
38
38
|
it "must work in post-mortem mode" do
|
39
39
|
enter 'cont', "so #{filename}"
|
40
|
-
debug_file('post_mortem') { Debugger.breakpoints[0].pos.must_equal
|
40
|
+
debug_file('post_mortem') { Debugger.breakpoints[0].pos.must_equal 2 }
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
data/test/test_helper.rb
CHANGED
@@ -3,6 +3,7 @@ require 'minitest/autorun'
|
|
3
3
|
require 'mocha/setup'
|
4
4
|
|
5
5
|
require 'debugger'
|
6
|
-
|
6
|
+
require 'debugger/test'
|
7
7
|
|
8
|
+
$debugger_test_dir = File.expand_path("..", __FILE__)
|
8
9
|
Debugger::Command.settings[:debuggertesting] = true
|
data/test/thread_test.rb
CHANGED
@@ -9,21 +9,20 @@ describe "Thread Command" do
|
|
9
9
|
thnum = nil
|
10
10
|
enter 'break 8', 'cont', 'thread list', release
|
11
11
|
debug_file('thread') { thnum = Debugger.contexts.first.thnum }
|
12
|
-
check_output_includes
|
12
|
+
check_output_includes /\+ #{thnum} #<Thread:\S+ run>\t#{fullpath('thread')}:8/
|
13
13
|
end
|
14
14
|
|
15
15
|
it "must work with shortcut" do
|
16
16
|
thnum = nil
|
17
17
|
enter 'break 8', 'cont', 'th list', release
|
18
18
|
debug_file('thread') { thnum = Debugger.contexts.first.thnum }
|
19
|
-
check_output_includes
|
19
|
+
check_output_includes /\+ #{thnum} #<Thread:\S+ run>\t#{fullpath('thread')}:8/
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
22
|
it "must show 3 available threads" do
|
24
23
|
enter 'break 21', 'cont', 'thread list', release
|
25
24
|
debug_file 'thread'
|
26
|
-
check_output_includes /#<Thread:\S+ (sleep|run)
|
25
|
+
check_output_includes /#<Thread:\S+ (sleep|run)>.*#<Thread:\S+ (sleep|run)>.*#<Thread:\S+ (sleep|run)>/m
|
27
26
|
end
|
28
27
|
end
|
29
28
|
|
@@ -33,7 +32,7 @@ describe "Thread Command" do
|
|
33
32
|
thnum = nil
|
34
33
|
enter 'break 21', 'cont', ->{"thread stop #{Debugger.contexts.last.thnum}"}, release
|
35
34
|
debug_file('thread') { thnum = Debugger.contexts.last.thnum }
|
36
|
-
check_output_includes
|
35
|
+
check_output_includes /\$ #{thnum} #<Thread:/
|
37
36
|
end
|
38
37
|
|
39
38
|
it "must show error message if thread number is not specified" do
|
@@ -45,7 +44,7 @@ describe "Thread Command" do
|
|
45
44
|
it "must show error message when trying to stop current thread" do
|
46
45
|
enter 'break 8', 'cont', ->{"thread stop #{Debugger.contexts.first.thnum}"}, release
|
47
46
|
debug_file 'thread'
|
48
|
-
check_output_includes "It's the current thread
|
47
|
+
check_output_includes "It's the current thread", interface.error_queue
|
49
48
|
end
|
50
49
|
end
|
51
50
|
|
@@ -79,14 +78,13 @@ describe "Thread Command" do
|
|
79
78
|
it "must show error message when trying to resume current thread" do
|
80
79
|
enter 'break 8', 'cont', ->{"thread resume #{Debugger.contexts.first.thnum}"}, release
|
81
80
|
debug_file 'thread'
|
82
|
-
check_output_includes "It's the current thread
|
81
|
+
check_output_includes "It's the current thread", interface.error_queue
|
83
82
|
end
|
84
83
|
|
85
84
|
it "must show error message if it is not stopped" do
|
86
|
-
thnum = nil
|
87
85
|
enter 'break 21', 'cont', ->{"thread resume #{Debugger.contexts.last.thnum}"}, release
|
88
|
-
debug_file('thread')
|
89
|
-
check_output_includes "Already running.
|
86
|
+
debug_file('thread')
|
87
|
+
check_output_includes "Already running", interface.error_queue
|
90
88
|
end
|
91
89
|
end
|
92
90
|
|
@@ -100,13 +98,13 @@ describe "Thread Command" do
|
|
100
98
|
it "must show error message if thread number is not specified" do
|
101
99
|
enter 'break 8', 'cont', "thread switch", release
|
102
100
|
debug_file 'thread'
|
103
|
-
check_output_includes "thread thread switch argument 'switch' needs to be a number
|
101
|
+
check_output_includes "thread thread switch argument 'switch' needs to be a number"
|
104
102
|
end
|
105
103
|
|
106
104
|
it "must show error message when trying to switch current thread" do
|
107
105
|
enter 'break 8', 'cont', ->{"thread switch #{Debugger.contexts.first.thnum}"}, release
|
108
106
|
debug_file 'thread'
|
109
|
-
check_output_includes "It's the current thread
|
107
|
+
check_output_includes "It's the current thread", interface.error_queue
|
110
108
|
end
|
111
109
|
end
|
112
110
|
|
@@ -115,7 +113,7 @@ describe "Thread Command" do
|
|
115
113
|
it "must work in post-mortem mode" do
|
116
114
|
enter 'cont', 'thread list'
|
117
115
|
debug_file('post_mortem')
|
118
|
-
check_output_includes
|
116
|
+
check_output_includes /\+ \d+ #<Thread:(\S+) run/
|
119
117
|
end
|
120
118
|
end
|
121
119
|
|