OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 library fasta.testing.suite; | 5 library fasta.testing.suite; |
6 | 6 |
7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 | 8 |
9 import 'dart:io' show File; | 9 import 'dart:io' show File; |
10 | 10 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 class Run extends Step<Uri, int, FastaContext> { | 173 class Run extends Step<Uri, int, FastaContext> { |
174 const Run(); | 174 const Run(); |
175 | 175 |
176 String get name => "run"; | 176 String get name => "run"; |
177 | 177 |
178 bool get isAsync => true; | 178 bool get isAsync => true; |
179 | 179 |
180 bool get isRuntime => true; | 180 bool get isRuntime => true; |
181 | 181 |
182 Future<Result<int>> run(Uri uri, FastaContext context) async { | 182 Future<Result<int>> run(Uri uri, FastaContext context) async { |
| 183 if (context.platformUri == null) { |
| 184 throw "Executed `Run` step before initializing the context."; |
| 185 } |
183 File generated = new File.fromUri(uri); | 186 File generated = new File.fromUri(uri); |
184 StdioProcess process; | 187 StdioProcess process; |
185 try { | 188 try { |
186 await context.ensurePlatformUris(); | |
187 var platformDill = context.platformUri.toFilePath(); | 189 var platformDill = context.platformUri.toFilePath(); |
188 var args = ['--platform=$platformDill', generated.path, "Hello, World!"]; | 190 var args = ['--platform=$platformDill', generated.path, "Hello, World!"]; |
189 process = await StdioProcess.run(context.vm.toFilePath(), args); | 191 process = await StdioProcess.run(context.vm.toFilePath(), args); |
190 print(process.output); | 192 print(process.output); |
191 } finally { | 193 } finally { |
192 generated.parent.delete(recursive: true); | 194 generated.parent.delete(recursive: true); |
193 } | 195 } |
194 return process.toResult(); | 196 return process.toResult(); |
195 } | 197 } |
196 } | 198 } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 return fail(null, instrumentation.problemsAsString); | 258 return fail(null, instrumentation.problemsAsString); |
257 } | 259 } |
258 } | 260 } |
259 } | 261 } |
260 } on InputError catch (e, s) { | 262 } on InputError catch (e, s) { |
261 return fail(null, e.error, s); | 263 return fail(null, e.error, s); |
262 } | 264 } |
263 return pass(p); | 265 return pass(p); |
264 } | 266 } |
265 } | 267 } |
OLD | NEW |