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

Side by Side Diff: dart/tests/compiler/dart2js/incremental/compile_all.dart

Issue 344203004: Improve incremental compilation. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address Kasper's comments. Created 6 years, 6 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 | Annotate | Revision Log
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 // Helper file that can be used to manually test the stability of incremental
6 // compilation. Currently this test is not run automatically.
7
8 import 'dart:async';
9
10 import 'dart:io';
11
12 import 'dart:profiler' show
13 UserTag;
14
15 import '../memory_source_file_helper.dart' show
16 Compiler;
17
18 import '../memory_compiler.dart' show
19 compilerFor;
20
21 import '../../../../site/try/src/caching_compiler.dart' show
22 reuseCompiler;
23
24 import 'incremental_helper.dart';
25
26 const bool verbose = false;
27
28 main(List<String> arguments) {
29 Stopwatch sw = new Stopwatch()..start();
30 Map<String, String> sources = <String, String>{};
31 for (String argument in arguments) {
32 Uri uri = new Uri(scheme: 'memory', path: argument);
33 String source =
34 new File.fromUri(Uri.base.resolve(argument)).readAsStringSync();
35 sources['${uri.path}'] = source;
36 }
37 sw.stop();
38 print(sw.elapsedMilliseconds);
39 compileTests(sources);
40 }
41
42 void compileTests(Map<String, String> sources) {
43 int cancellations = 0;
44 int testCount = 0;
45 int skipCount = 0;
46 Set<String> crashes = new Set<String>();
47 Compiler memoryCompiler = compilerFor(sources);
48 memoryCompiler.handler.verbose = verbose;
49 Compiler compiler;
50 var options = new List<String>.from(INCREMENTAL_OPTIONS);
51 if (true || verbose) options.add('--verbose');
52 Future.forEach(sources.keys, (String path) {
53 UserTag.defaultTag.makeCurrent();
54 if (!path.endsWith('_test.dart')) return new Future.value(null);
55 testCount++;
56 for (String brokenTest in brokenTests) {
57 if (path.endsWith(brokenTest)) {
58 print('Skipped broken test $path');
59 skipCount++;
60 return new Future.value(null);
61 }
62 }
63 Stopwatch sw = new Stopwatch()..start();
64 compiler = reuseCompiler(
65 libraryRoot: memoryCompiler.libraryRoot,
66 inputProvider: memoryCompiler.provider,
67 outputProvider: memoryCompiler.outputProvider,
68 diagnosticHandler: memoryCompiler.handler,
69 packageRoot: memoryCompiler.packageRoot,
70 cachedCompiler: compiler,
71 options: options);
72 return compiler.run(Uri.parse('memory:$path')).then((bool success) {
73 UserTag.defaultTag.makeCurrent();
74 sw.stop();
75 print('Compiled $path in ${sw.elapsedMilliseconds}');
76 if (compiler.compilerWasCancelled) cancellations++;
77 sw..reset()..start();
78 }).catchError((error, trace) {
79 sw.stop();
80 print('$error\n$trace');
81 print('Crash when compiling $path after ${sw.elapsedMilliseconds}');
82 sw..reset()..start();
83 crashes.add(path);
84 });
85 }).then((_) {
86 percent(i) => '${(i/testCount*100).toStringAsFixed(3)}%';
87 print('''
88
89 Total: $testCount tests
90 * $cancellations tests (${percent(cancellations)}) cancelled the compiler
91 * ${crashes.length} tests (${percent(crashes.length)}) crashed the compiler
92 * $skipCount tests (${percent(skipCount)}) were skipped
93 ''');
94 for (String crash in crashes) {
95 print('Crashed: $crash');
96 }
97 if (!crashes.isEmpty) {
98 throw 'Test had crashes';
99 }
100 });
101 }
102
103 Set<String> brokenTests = new Set<String>.from([
104 // TODO(ahe): Fix the outputProvider to not throw an error.
105 "/dart2js_extra/deferred/deferred_class_library.dart",
106 "/dart2js_extra/deferred/deferred_class_library2.dart",
107 "/dart2js_extra/deferred/deferred_class_test.dart",
108 "/dart2js_extra/deferred/deferred_constant2_test.dart",
109 "/dart2js_extra/deferred/deferred_constant3_test.dart",
110 "/dart2js_extra/deferred/deferred_constant4_test.dart",
111 "/dart2js_extra/deferred/deferred_constant_test.dart",
112 "/dart2js_extra/deferred/deferred_function_library.dart",
113 "/dart2js_extra/deferred/deferred_function_test.dart",
114 "/dart2js_extra/deferred/deferred_overlapping_lib1.dart",
115 "/dart2js_extra/deferred/deferred_overlapping_lib2.dart",
116 "/dart2js_extra/deferred/deferred_overlapping_lib3.dart",
117 "/dart2js_extra/deferred/deferred_overlapping_test.dart",
118 "/dart2js_extra/deferred/deferred_unused_classes_test.dart",
119 "/language/deferred_closurize_load_library_lib.dart",
120 "/language/deferred_closurize_load_library_test.dart",
121 "/language/deferred_constraints_constants_lib.dart",
122 "/language/deferred_constraints_constants_old_syntax_lib.dart",
123 "/language/deferred_constraints_constants_old_syntax_test.dart",
124 "/language/deferred_constraints_constants_test.dart",
125 "/language/deferred_constraints_lib.dart",
126 "/language/deferred_constraints_lib2.dart",
127 "/language/deferred_constraints_old_syntax_lib.dart",
128 "/language/deferred_constraints_type_annotation_old_syntax_test.dart",
129 "/language/deferred_constraints_type_annotation_test.dart",
130 "/language/deferred_duplicate_prefix1_test.dart",
131 "/language/deferred_duplicate_prefix2_test.dart",
132 "/language/deferred_duplicate_prefix3_test.dart",
133 "/language/deferred_load_inval_code_lib.dart",
134 "/language/deferred_load_inval_code_test.dart",
135 "/language/deferred_load_library_wrong_args_lib.dart",
136 "/language/deferred_load_library_wrong_args_test.dart",
137 "/language/deferred_no_prefix_test.dart",
138 "/language/deferred_no_such_method_lib.dart",
139 "/language/deferred_no_such_method_test.dart",
140 "/language/deferred_not_loaded_check_lib.dart",
141 "/language/deferred_not_loaded_check_test.dart",
142 "/language/deferred_prefix_constraints_lib.dart",
143 "/language/deferred_prefix_constraints_lib2.dart",
144 "/language/deferred_shadow_load_library_lib.dart",
145 "/language/deferred_shadow_load_library_test.dart",
146
147 "/language/bad_constructor_test.dart",
148 "/language/black_listed_test.dart",
149 "/language/built_in_identifier_illegal_test.dart",
150 "/language/built_in_identifier_prefix_test.dart",
151 "/language/built_in_identifier_test.dart",
152 "/language/class_cycle2_test.dart",
153 "/language/class_syntax_test.dart",
154 "/language/cyclic_typedef_test.dart",
155 "/language/external_test.dart",
156 "/language/factory3_negative_test.dart",
157 "/language/generic_field_mixin4_test.dart",
158 "/language/generic_field_mixin5_test.dart",
159 "/language/interface_cycle_test.dart",
160 "/language/interface_injection1_negative_test.dart",
161 "/language/interface_injection2_negative_test.dart",
162 "/language/internal_library_test.dart",
163 "/language/malformed_inheritance_test.dart",
164 "/language/metadata_test.dart",
165 "/language/method_override2_test.dart",
166 "/language/mixin_illegal_syntax_test.dart",
167 "/language/mixin_invalid_inheritance1_test.dart",
168 "/language/null_test.dart",
169 "/language/override_inheritance_generic_test.dart",
170 "/language/prefix18_negative_test.dart",
171 "/language/prefix3_negative_test.dart",
172 "/language/script2_negative_test.dart",
173 "/language/setter_declaration2_negative_test.dart",
174 "/language/source_self_negative_test.dart",
175 "/language/syntax_test.dart",
176 "/language/type_variable_bounds2_test.dart",
177 "/language/type_variable_conflict2_test.dart",
178 "/language/type_variable_field_initializer_test.dart",
179 "/language/type_variable_nested_test.dart",
180 "/language/vm/reflect_core_vm_test.dart",
181 "/language/vm/regress_14903_test.dart",
182 ]);
OLDNEW
« no previous file with comments | « dart/site/try/src/compiler_isolate.dart ('k') | dart/tests/compiler/dart2js/incremental/hello_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698