@@ -150,6 +150,23 @@ void main() {
150
150
await client.resume (isolate.id! );
151
151
}
152
152
153
+ // When the program is executing, we want to check that at some point it
154
+ // will execute code that will emit [expectedString].
155
+ Future <void > resumeAndExpectLog (String expectedString) async {
156
+ final completer = Completer <void >();
157
+ final newSubscription = context.webkitDebugger.onConsoleAPICalled.listen ((
158
+ e,
159
+ ) {
160
+ if (e.args.first.value == expectedString) {
161
+ completer.complete ();
162
+ }
163
+ });
164
+ await resume ();
165
+ await completer.future.then ((_) {
166
+ newSubscription.cancel ();
167
+ });
168
+ }
169
+
153
170
Future <void > hotRestartAndHandlePausePost (
154
171
List <({String file, String breakpointMarker})> breakpoints,
155
172
) async {
@@ -182,6 +199,10 @@ void main() {
182
199
// reregister breakpoints (which will be registered in the new files), and
183
200
// resume.
184
201
await waitForPausePost;
202
+ // Verify DWDS has already removed the breakpoints at this point.
203
+ final vm = await client.getVM ();
204
+ final isolate = await service.getIsolate (vm.isolates! .first.id! );
205
+ expect (isolate.breakpoints, isEmpty);
185
206
for (final breakpoint in breakpoints) {
186
207
await addBreakpoint (
187
208
file: breakpoint.file,
@@ -208,8 +229,7 @@ void main() {
208
229
(event) => event.kind == EventKind .kPauseBreakpoint,
209
230
);
210
231
expect (consoleLogs.contains (newLog), false );
211
- await resume ();
212
- expect (consoleLogs.contains (newLog), true );
232
+ await resumeAndExpectLog (newLog);
213
233
});
214
234
215
235
test ('after adding line, hot restart, removing line, and hot restart, '
@@ -234,8 +254,7 @@ void main() {
234
254
);
235
255
expect (consoleLogs.contains (extraLog), true );
236
256
expect (consoleLogs.contains (genLog), false );
237
- await resume ();
238
- expect (consoleLogs.contains (genLog), true );
257
+ await resumeAndExpectLog (genLog);
239
258
240
259
consoleLogs.clear ();
241
260
@@ -252,8 +271,7 @@ void main() {
252
271
);
253
272
expect (consoleLogs.contains (extraLog), false );
254
273
expect (consoleLogs.contains (genLog), false );
255
- await resume ();
256
- expect (consoleLogs.contains (genLog), true );
274
+ await resumeAndExpectLog (genLog);
257
275
});
258
276
259
277
test (
@@ -299,8 +317,7 @@ void main() {
299
317
(event) => event.kind == EventKind .kPauseBreakpoint,
300
318
);
301
319
expect (consoleLogs.contains (libGenLog), false );
302
- await resume ();
303
- expect (consoleLogs.contains (libGenLog), true );
320
+ await resumeAndExpectLog (libGenLog);
304
321
305
322
context.removeLibraryFile (libFileName: libFile);
306
323
},
0 commit comments