OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /// Integration test that runs the incremental compiler, runs the compiled | 5 /// Integration test that runs the incremental compiler, runs the compiled |
6 /// program, incrementally rebuild portions of the app, and triggers a hot | 6 /// program, incrementally rebuild portions of the app, and triggers a hot |
7 /// reload on the running program. | 7 /// reload on the running program. |
8 library front_end.incremental.hot_reload_e2e_test; | 8 library front_end.incremental.hot_reload_e2e_test; |
9 | 9 |
10 import 'dart:async'; | 10 import 'dart:async'; |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 } | 168 } |
169 | 169 |
170 var dartVm = Uri.base.resolve(Platform.resolvedExecutable); | 170 var dartVm = Uri.base.resolve(Platform.resolvedExecutable); |
171 var sdkRoot = dartVm.resolve("patched_sdk/"); | 171 var sdkRoot = dartVm.resolve("patched_sdk/"); |
172 | 172 |
173 Future<IncrementalKernelGenerator> createIncrementalCompiler( | 173 Future<IncrementalKernelGenerator> createIncrementalCompiler( |
174 String entry, FileSystem fs) { | 174 String entry, FileSystem fs) { |
175 var entryUri = Uri.base.resolve(entry); | 175 var entryUri = Uri.base.resolve(entry); |
176 var options = new CompilerOptions() | 176 var options = new CompilerOptions() |
177 ..sdkRoot = sdkRoot | 177 ..sdkRoot = sdkRoot |
| 178 ..sdkSummary = sdkRoot.resolve('outline.dill') |
178 ..packagesFileUri = Uri.parse('file:///.packages') | 179 ..packagesFileUri = Uri.parse('file:///.packages') |
179 ..strongMode = false | 180 ..strongMode = false |
180 ..compileSdk = true // the incremental generator requires the sdk sources | 181 ..dartLibraries = loadDartLibraries() |
181 ..fileSystem = fs | 182 ..fileSystem = fs |
182 ..byteStore = new MemoryByteStore(); | 183 ..byteStore = new MemoryByteStore(); |
183 return IncrementalKernelGenerator.newInstance(options, entryUri); | 184 return IncrementalKernelGenerator.newInstance(options, entryUri); |
184 } | 185 } |
185 | 186 |
| 187 Map<String, Uri> loadDartLibraries() { |
| 188 var libraries = sdkRoot.resolve('lib/libraries.json'); |
| 189 var map = |
| 190 JSON.decode(new File.fromUri(libraries).readAsStringSync())['libraries']; |
| 191 var dartLibraries = <String, Uri>{}; |
| 192 map.forEach((k, v) => dartLibraries[k] = libraries.resolve(v)); |
| 193 return dartLibraries; |
| 194 } |
| 195 |
186 Future<bool> rebuild(IncrementalKernelGenerator compiler, Uri outputUri) async { | 196 Future<bool> rebuild(IncrementalKernelGenerator compiler, Uri outputUri) async { |
187 compiler.invalidate(Uri.parse("file:///a.dart")); | 197 compiler.invalidate(Uri.parse("file:///a.dart")); |
188 compiler.invalidate(Uri.parse("file:///b.dart")); | 198 compiler.invalidate(Uri.parse("file:///b.dart")); |
189 var program = (await compiler.computeDelta()).newProgram; | 199 var program = (await compiler.computeDelta()).newProgram; |
190 if (program != null && !program.libraries.isEmpty) { | 200 if (program != null && !program.libraries.isEmpty) { |
191 await writeProgram(program, outputUri); | 201 await writeProgram(program, outputUri); |
192 return true; | 202 return true; |
193 } | 203 } |
194 return false; | 204 return false; |
195 } | 205 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 | 249 |
240 f() => "$line part2"; | 250 f() => "$line part2"; |
241 '''; | 251 '''; |
242 | 252 |
243 const sourceB = r''' | 253 const sourceB = r''' |
244 get line => "part1"; | 254 get line => "part1"; |
245 '''; | 255 '''; |
246 | 256 |
247 RegExp observatoryPortRegExp = | 257 RegExp observatoryPortRegExp = |
248 new RegExp("Observatory listening on http://127.0.0.1:\([0-9]*\)/"); | 258 new RegExp("Observatory listening on http://127.0.0.1:\([0-9]*\)/"); |
OLD | NEW |