Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: tests/try/poi/apply_updates_test.dart

Issue 2232273004: Delete site/try (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
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.
4
5 // Test of FunctionUpdate by pretty printing the updated element before and
6 // after.
7 library trydart.library_updater_test;
8
9 import 'package:dart2js_incremental/library_updater.dart' show
10 IncrementalCompilerContext,
11 LibraryUpdater,
12 Update;
13
14 import 'package:compiler/src/parser/partial_elements.dart' show
15 PartialFunctionElement;
16
17 import 'package:compiler/src/script.dart' show
18 Script;
19
20 import 'package:compiler/src/io/source_file.dart' show
21 StringSourceFile;
22
23 import 'compiler_test_case.dart';
24
25 import 'library_updater_test.dart' show
26 LibraryUpdaterTestCase,
27 newScriptFrom,
28 nolog;
29
30 class ApplyUpdateTestCase extends LibraryUpdaterTestCase {
31 final String expectedUpdate;
32
33 ApplyUpdateTestCase(
34 {String before,
35 String after,
36 String update})
37 : this.expectedUpdate = update,
38 super(before: before, after: after, canReuse: true);
39
40 Future run() => loadMainApp().then((LibraryElement library) {
41 // Capture the current version of [before] before invoking the [updater].
42 PartialFunctionElement before = library.localLookup(expectedUpdate);
43 var beforeNode = before.parseNode(compiler.parsingContext);
44
45 var context = new IncrementalCompilerContext();
46 LibraryUpdater updater =
47 new LibraryUpdater(this.compiler, null, nolog, nolog, context);
48 context.registerUriWithUpdates([scriptUri]);
49
50 bool actualCanReuse =
51 updater.canReuseLibrary(
52 library, <Script>[newScriptFrom(library, newSource)]);
53 Expect.equals(expectedCanReuse, actualCanReuse);
54
55 Update update = updater.updates.single;
56
57 // Check that the [updater] didn't modify the changed element.
58 Expect.identical(before, update.before);
59 Expect.identical(beforeNode, before.parseNode(compiler.parsingContext));
60
61 PartialFunctionElement after = update.after;
62 var afterNode = after.parseNode(compiler.parsingContext);
63
64 // Check that pretty-printing the elements match [source] (before), and
65 // [newSource] (after).
66 Expect.stringEquals(source, '$beforeNode');
67 Expect.stringEquals(newSource, '$afterNode');
68 Expect.notEquals(source, newSource);
69
70 // Apply the update.
71 update.apply();
72
73 // Check that the update was applied by pretty-printing [before]. Make no
74 // assumptions about [after], as the update may destroy that element.
75 beforeNode = before.parseNode(compiler.parsingContext);
76 Expect.notEquals(source, '$beforeNode');
77 Expect.stringEquals(newSource, '$beforeNode');
78 });
79 }
80
81 void main() {
82 runTests(
83 [
84 new ApplyUpdateTestCase(
85 before: 'main(){print("Hello, World!");}',
86 after: 'main(){print("Hello, Brave New World!");}',
87 update: 'main'),
88
89 new ApplyUpdateTestCase(
90 before: 'main(){foo(){return 1;}return foo();}',
91 after: 'main(){bar(){return "1";}return bar();}',
92 update: 'main'),
93
94 new ApplyUpdateTestCase(
95 before: 'main()=>null;',
96 after: 'main(){}',
97 update: 'main'),
98
99 new ApplyUpdateTestCase(
100 before: 'main(){}',
101 after: 'main()=>null;',
102 update: 'main'),
103
104 // TODO(ahe): When supporting class members, test abstract methods.
105 ]
106 );
107 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698