@@ -61,7 +61,15 @@ void testAll({
61
61
}
62
62
}
63
63
64
- group ('shared context with evaluation' , () {
64
+ group ('shared context with evaluation - evaluateInFrame' , () {
65
+ late VmServiceInterface service;
66
+ late String isolateId;
67
+ late ScriptRef mainScript;
68
+ late ScriptRef part1Script;
69
+ late ScriptRef part2Script;
70
+ late ScriptRef part3Script;
71
+ late Stream <Event > stream;
72
+
65
73
setUpAll (() async {
66
74
setCurrentLogWriter (debug: debug);
67
75
await context.setUp (
@@ -72,147 +80,125 @@ void testAll({
72
80
verboseCompiler: debug,
73
81
),
74
82
);
83
+
84
+ service = context.service;
85
+ final vm = await service.getVM ();
86
+ final isolate = await service.getIsolate (vm.isolates! .first.id! );
87
+ isolateId = isolate.id! ;
88
+ final scripts = await service.getScripts (isolateId);
89
+
90
+ ScriptRef findScript (String path) {
91
+ return scripts.scripts! .firstWhere ((e) => e.uri! .contains (path));
92
+ }
93
+
94
+ await service.streamListen ('Debug' );
95
+ stream = service.onEvent ('Debug' );
96
+
97
+ final packageName = testParts.packageName;
98
+
99
+ mainScript = findScript ('package:$packageName /library.dart' );
100
+ part1Script = findScript ('package:$packageName /part1.dart' );
101
+ part2Script = findScript ('package:$packageName /part2.dart' );
102
+ part3Script = findScript ('package:$packageName /part3.dart' );
75
103
});
76
104
77
105
tearDownAll (() async {
78
106
await context.tearDown ();
79
107
});
80
108
81
- setUp (() => setCurrentLogWriter (debug: debug));
82
-
83
- group ('evaluateInFrame' , () {
84
- late VmServiceInterface service;
85
- VM vm;
86
- late Isolate isolate;
87
- late String isolateId;
88
- ScriptList scripts;
89
- late ScriptRef mainScript;
90
- late ScriptRef part1Script;
91
- late ScriptRef part2Script;
92
- late ScriptRef part3Script;
93
- late Stream <Event > stream;
94
-
95
- setUp (() async {
96
- setCurrentLogWriter (debug: debug);
97
- service = context.service;
98
- vm = await service.getVM ();
99
- isolate = await service.getIsolate (vm.isolates! .first.id! );
100
- isolateId = isolate.id! ;
101
- scripts = await service.getScripts (isolateId);
102
-
103
- await service.streamListen ('Debug' );
104
- stream = service.onEvent ('Debug' );
105
-
106
- final packageName = testParts.packageName;
107
-
108
- mainScript = scripts.scripts! .firstWhere (
109
- (each) => each.uri! .contains ('package:$packageName /library.dart' ),
110
- );
111
- part1Script = scripts.scripts! .firstWhere (
112
- (each) => each.uri! .contains ('package:$packageName /part1.dart' ),
109
+ tearDown (() async {
110
+ await service.resume (isolateId);
111
+ });
112
+
113
+ test ('evaluate expression in main library' , () async {
114
+ await onBreakPoint (isolateId, mainScript, 'Concatenate1' , () async {
115
+ final event = await stream.firstWhere (
116
+ (event) => event.kind == EventKind .kPauseBreakpoint,
113
117
);
114
- part2Script = scripts.scripts! .firstWhere (
115
- (each) => each.uri! .contains ('package:$packageName /part2.dart' ),
118
+
119
+ final result = await context.service.evaluateInFrame (
120
+ isolateId,
121
+ event.topFrame! .index! ,
122
+ 'a.substring(2, 4)' ,
116
123
);
117
- part3Script = scripts.scripts! .firstWhere (
118
- (each) => each.uri! .contains ('package:$packageName /part3.dart' ),
124
+
125
+ expect (
126
+ result,
127
+ isA <InstanceRef >().having (
128
+ (instance) => instance.valueAsString,
129
+ 'valueAsString' ,
130
+ 'll' ,
131
+ ),
119
132
);
120
133
});
134
+ });
121
135
122
- tearDown (() async {
123
- await service.resume (isolateId);
124
- });
136
+ test ('evaluate expression in part1' , () async {
137
+ await onBreakPoint (isolateId, part1Script, 'Concatenate2' , () async {
138
+ final event = await stream.firstWhere (
139
+ (event) => event.kind == EventKind .kPauseBreakpoint,
140
+ );
125
141
126
- test ('evaluate expression in main library' , () async {
127
- await onBreakPoint (isolateId, mainScript, 'Concatenate1' , () async {
128
- final event = await stream.firstWhere (
129
- (event) => event.kind == EventKind .kPauseBreakpoint,
130
- );
131
-
132
- final result = await context.service.evaluateInFrame (
133
- isolateId,
134
- event.topFrame! .index! ,
135
- 'a.substring(2, 4)' ,
136
- );
137
-
138
- expect (
139
- result,
140
- isA <InstanceRef >().having (
141
- (instance) => instance.valueAsString,
142
- 'valueAsString' ,
143
- 'll' ,
144
- ),
145
- );
146
- });
147
- });
142
+ final result = await context.service.evaluateInFrame (
143
+ isolateId,
144
+ event.topFrame! .index! ,
145
+ 'a + b + 37' ,
146
+ );
148
147
149
- test ('evaluate expression in part1' , () async {
150
- await onBreakPoint (isolateId, part1Script, 'Concatenate2' , () async {
151
- final event = await stream.firstWhere (
152
- (event) => event.kind == EventKind .kPauseBreakpoint,
153
- );
154
-
155
- final result = await context.service.evaluateInFrame (
156
- isolateId,
157
- event.topFrame! .index! ,
158
- 'a + b + 37' ,
159
- );
160
-
161
- expect (
162
- result,
163
- isA <InstanceRef >().having (
164
- (instance) => instance.valueAsString,
165
- 'valueAsString' ,
166
- '42' ,
167
- ),
168
- );
169
- });
148
+ expect (
149
+ result,
150
+ isA <InstanceRef >().having (
151
+ (instance) => instance.valueAsString,
152
+ 'valueAsString' ,
153
+ '42' ,
154
+ ),
155
+ );
170
156
});
157
+ });
158
+
159
+ test ('evaluate expression in part2' , () async {
160
+ await onBreakPoint (isolateId, part2Script, 'Concatenate3' , () async {
161
+ final event = await stream.firstWhere (
162
+ (event) => event.kind == EventKind .kPauseBreakpoint,
163
+ );
164
+
165
+ final result = await context.service.evaluateInFrame (
166
+ isolateId,
167
+ event.topFrame! .index! ,
168
+ 'a.length + b + 1' ,
169
+ );
171
170
172
- test ('evaluate expression in part2' , () async {
173
- await onBreakPoint (isolateId, part2Script, 'Concatenate3' , () async {
174
- final event = await stream.firstWhere (
175
- (event) => event.kind == EventKind .kPauseBreakpoint,
176
- );
177
-
178
- final result = await context.service.evaluateInFrame (
179
- isolateId,
180
- event.topFrame! .index! ,
181
- 'a.length + b + 1' ,
182
- );
183
-
184
- expect (
185
- result,
186
- isA <InstanceRef >().having (
187
- (instance) => instance.valueAsString,
188
- 'valueAsString' ,
189
- '42.42' ,
190
- ),
191
- );
192
- });
171
+ expect (
172
+ result,
173
+ isA <InstanceRef >().having (
174
+ (instance) => instance.valueAsString,
175
+ 'valueAsString' ,
176
+ '42.42' ,
177
+ ),
178
+ );
193
179
});
180
+ });
181
+
182
+ test ('evaluate expression in part3' , () async {
183
+ await onBreakPoint (isolateId, part3Script, 'Concatenate4' , () async {
184
+ final event = await stream.firstWhere (
185
+ (event) => event.kind == EventKind .kPauseBreakpoint,
186
+ );
194
187
195
- test ('evaluate expression in part3' , () async {
196
- await onBreakPoint (isolateId, part3Script, 'Concatenate4' , () async {
197
- final event = await stream.firstWhere (
198
- (event) => event.kind == EventKind .kPauseBreakpoint,
199
- );
200
-
201
- final result = await context.service.evaluateInFrame (
202
- isolateId,
203
- event.topFrame! .index! ,
204
- '(List.of(a)..add(b.keys.first)).toString()' ,
205
- );
206
-
207
- expect (
208
- result,
209
- isA <InstanceRef >().having (
210
- (instance) => instance.valueAsString,
211
- 'valueAsString' ,
212
- '[hello, world, foo]' ,
213
- ),
214
- );
215
- });
188
+ final result = await context.service.evaluateInFrame (
189
+ isolateId,
190
+ event.topFrame! .index! ,
191
+ '(List.of(a)..add(b.keys.first)).toString()' ,
192
+ );
193
+
194
+ expect (
195
+ result,
196
+ isA <InstanceRef >().having (
197
+ (instance) => instance.valueAsString,
198
+ 'valueAsString' ,
199
+ '[hello, world, foo]' ,
200
+ ),
201
+ );
216
202
});
217
203
});
218
204
});
0 commit comments