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

Side by Side Diff: pkg/dev_compiler/test/browser/language_tests.js

Issue 2989993002: fix unsound cast failures in tests (Closed)
Patch Set: fix Created 3 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
« no previous file with comments | « no previous file | tests/corelib_2/sort_helper.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 define(['dart_sdk', 'async_helper', 'expect', 'unittest', 'is', 'require'], 5 define(['dart_sdk', 'async_helper', 'expect', 'unittest', 'is', 'require'],
6 function(dart_sdk, async_helper, expect, unittest, is, require) { 6 function(dart_sdk, async_helper, expect, unittest, is, require) {
7 'use strict'; 7 'use strict';
8 8
9 async_helper = async_helper.async_helper; 9 async_helper = async_helper.async_helper;
10 let minitest = expect.minitest; 10 let minitest = expect.minitest;
(...skipping 10 matching lines...) Expand all
21 // Test attributes are a list of strings, or a string for a single 21 // Test attributes are a list of strings, or a string for a single
22 // attribute. Valid attributes are: 22 // attribute. Valid attributes are:
23 // 23 //
24 // 'pass' - test passes (default) 24 // 'pass' - test passes (default)
25 // 'skip' - don't run the test 25 // 'skip' - don't run the test
26 // 'fail' - test fails 26 // 'fail' - test fails
27 // 'timeout' - test times out 27 // 'timeout' - test times out
28 // 'slow' - use 5s timeout instead of default 2s. 28 // 'slow' - use 5s timeout instead of default 2s.
29 // 'helper' - not a test, used by other tests. 29 // 'helper' - not a test, used by other tests.
30 // 'unittest' - run separately as a unittest test. 30 // 'unittest' - run separately as a unittest test.
31 // 'whitelist' - run with whitelisted type errors allowed
32 // 31 //
33 // Common combinations: 32 // Common combinations:
34 const pass = 'pass'; 33 const pass = 'pass';
35 const fail = 'fail'; 34 const fail = 'fail';
36 const skip_timeout = ['skip', 'timeout']; 35 const skip_timeout = ['skip', 'timeout'];
37 36
38 // Browsers 37 // Browsers
39 const firefox_fail = is.firefox() ? fail : pass; 38 const firefox_fail = is.firefox() ? fail : pass;
40 const chrome_fail = is.chrome() ? fail : pass; 39 const chrome_fail = is.chrome() ? fail : pass;
41 40
42 // These are typically tests with asynchronous exceptions that our 41 // These are typically tests with asynchronous exceptions that our
43 // test framework doesn't always catch. 42 // test framework doesn't always catch.
44 const flaky = 'skip'; 43 const flaky = 'skip';
45 const whitelist = 'whitelist';
46 44
47 // Tests marked with this are still using the deprecated unittest package 45 // Tests marked with this are still using the deprecated unittest package
48 // because they rely on its support for futures and asynchronous tests, which 46 // because they rely on its support for futures and asynchronous tests, which
49 // expect and minitest do not handle. 47 // expect and minitest do not handle.
50 // TODO(rnystrom): Move all of these away from using the async test API so 48 // TODO(rnystrom): Move all of these away from using the async test API so
51 // they can stop using unittest. 49 // they can stop using unittest.
52 const async_unittest = ['unittest', 'skip', 'fail']; 50 const async_unittest = ['unittest', 'skip', 'fail'];
53 51
54 // The number of expected unittest errors should be zero but unfortunately 52 // The number of expected unittest errors should be zero but unfortunately
55 // there are a lot of broken html unittests. 53 // there are a lot of broken html unittests.
(...skipping 19 matching lines...) Expand all
75 73
76 // TODO(vsm): Re-enable (https://github.com/dart-lang/sdk/issues/28319) 74 // TODO(vsm): Re-enable (https://github.com/dart-lang/sdk/issues/28319)
77 'async_star_test_none_multi': async_unittest, 75 'async_star_test_none_multi': async_unittest,
78 'async_star_test_01_multi': async_unittest, 76 'async_star_test_01_multi': async_unittest,
79 'async_star_test_02_multi': async_unittest, 77 'async_star_test_02_multi': async_unittest,
80 'async_star_test_03_multi': async_unittest, 78 'async_star_test_03_multi': async_unittest,
81 'async_star_test_04_multi': async_unittest, 79 'async_star_test_04_multi': async_unittest,
82 'async_star_test_05_multi': async_unittest, 80 'async_star_test_05_multi': async_unittest,
83 81
84 'async_switch_test': fail, 82 'async_switch_test': fail,
85 'async_test': whitelist,
86 'async_this_bound_test': whitelist,
87 'asyncstar_throw_in_catch_test': ['skip', 'fail'], 83 'asyncstar_throw_in_catch_test': ['skip', 'fail'],
88 'await_future_test': skip_timeout, 84 'await_future_test': skip_timeout,
89 'await_for_test': 'slow', 85 'await_for_test': 'slow',
90 'bit_operations_test_none_multi': fail, // DDC/dart2js canonicalize bitop results to unsigned 86 'bit_operations_test_none_multi': fail, // DDC/dart2js canonicalize bitop results to unsigned
91 'branch_canonicalization_test': fail, // JS bit operations truncate to 32 bits. 87 'branch_canonicalization_test': fail, // JS bit operations truncate to 32 bits.
92 'call_closurization_test': fail, // Functions do not expose a "call" metho d. 88 'call_closurization_test': fail, // Functions do not expose a "call" metho d.
93 'canonical_const2_test': fail, 89 'canonical_const2_test': fail,
94 'canonical_const_test': fail, 90 'canonical_const_test': fail,
95 'compile_time_constant10_test_none_multi': fail, 91 'compile_time_constant10_test_none_multi': fail,
96 'compile_time_constant_a_test': fail, 92 'compile_time_constant_a_test': fail,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 'issue23244_test': fail, 157 'issue23244_test': fail,
162 'invocation_mirror_test': fail, // dcall does not correctly detect named a rguments 158 'invocation_mirror_test': fail, // dcall does not correctly detect named a rguments
163 'invocation_mirror2_test': fail, // JsInstanceMirror.delegate unimplemente d 159 'invocation_mirror2_test': fail, // JsInstanceMirror.delegate unimplemente d
164 'lazy_static3_test': fail, 160 'lazy_static3_test': fail,
165 'least_upper_bound_expansive_test_none_multi': fail, 161 'least_upper_bound_expansive_test_none_multi': fail,
166 'left_shift_test': fail, 162 'left_shift_test': fail,
167 'list_is_test': fail, 163 'list_is_test': fail,
168 'list_literal3_test': fail, 164 'list_literal3_test': fail,
169 'main_test_03_multi': fail, 165 'main_test_03_multi': fail,
170 'many_generic_instanceof_test': fail, 166 'many_generic_instanceof_test': fail,
171 'many_named_arguments_test': whitelist,
172 'map_literal10_test': fail, 167 'map_literal10_test': fail,
173 'map_literal7_test': fail, 168 'map_literal7_test': fail,
174 'memory_swap_test': skip_timeout, 169 'memory_swap_test': skip_timeout,
175 'mint_arithmetic_test': fail, 170 'mint_arithmetic_test': fail,
176 'modulo_test': fail, 171 'modulo_test': fail,
177 'named_parameter_clash_test': fail, 172 'named_parameter_clash_test': fail,
178 'named_parameters_passing_falsy_test': is.firefox('<=50') ? fail : pass, 173 'named_parameters_passing_falsy_test': is.firefox('<=50') ? fail : pass,
179 'nan_identical_test': fail, 174 'nan_identical_test': fail,
180 'nested_switch_label_test': fail, 175 'nested_switch_label_test': fail,
181 'number_identifier_test_05_multi': fail, 176 'number_identifier_test_05_multi': fail,
182 'number_identity2_test': fail, 177 'number_identity2_test': fail,
183 'numbers_test': fail, 178 'numbers_test': fail,
184 'reg_exp_test': whitelist,
185 'regress_16640_test': fail, 179 'regress_16640_test': fail,
186 'regress_22445_test': fail, 180 'regress_22445_test': fail,
187 'regress_22666_test': fail, 181 'regress_22666_test': fail,
188 'regress_22777_test': flaky, 182 'regress_22777_test': flaky,
189 'stack_overflow_stacktrace_test': fail, 183 'stack_overflow_stacktrace_test': fail,
190 'stack_overflow_test': fail, 184 'stack_overflow_test': fail,
191 'stacktrace_test': chrome_fail, 185 'stacktrace_test': chrome_fail,
192 'switch_label2_test': fail, 186 'switch_label2_test': fail,
193 'switch_label_test': fail, 187 'switch_label_test': fail,
194 'switch_try_catch_test': fail, 188 'switch_try_catch_test': fail,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 'hash_map2_test': skip_timeout, 251 'hash_map2_test': skip_timeout,
258 'hash_set_test_01_multi': fail, 252 'hash_set_test_01_multi': fail,
259 'int_modulo_arith_test_bignum_multi': fail, 253 'int_modulo_arith_test_bignum_multi': fail,
260 'int_modulo_arith_test_modPow_multi': fail, 254 'int_modulo_arith_test_modPow_multi': fail,
261 'int_modulo_arith_test_none_multi': fail, 255 'int_modulo_arith_test_none_multi': fail,
262 'int_parse_radix_test_01_multi': fail, // JS implementations disagree on U +0085 being whitespace. 256 'int_parse_radix_test_01_multi': fail, // JS implementations disagree on U +0085 being whitespace.
263 'int_parse_radix_test_02_multi': ['fail', 'timeout', 'skip'], // No bigint s. 257 'int_parse_radix_test_02_multi': ['fail', 'timeout', 'skip'], // No bigint s.
264 'int_parse_radix_test_none_multi': ['slow'], 258 'int_parse_radix_test_none_multi': ['slow'],
265 'integer_to_radix_string_test': fail, 259 'integer_to_radix_string_test': fail,
266 'integer_to_string_test_01_multi': fail, 260 'integer_to_string_test_01_multi': fail,
267 'iterable_empty_test': whitelist,
268 'iterable_join_test': whitelist,
269 'iterable_return_type_test_02_multi': fail, 261 'iterable_return_type_test_02_multi': fail,
270 'json_map_test': fail, 262 'json_map_test': fail,
271 'list_fill_range_test': fail, 263 'list_fill_range_test': fail,
272 'list_insert_all_test': whitelist,
273 'list_replace_range_test': fail, 264 'list_replace_range_test': fail,
274 'list_set_all_test': fail, 265 'list_set_all_test': fail,
275 'list_sort_test': fail, // runtime strong mode error
276 'list_test_01_multi': fail, 266 'list_test_01_multi': fail,
277 'list_test_none_multi': fail, 267 'list_test_none_multi': fail,
278 'main_test': fail, 268 'main_test': fail,
279 'map_keys2_test': fail, 269 'map_keys2_test': fail,
280 'map_from_iterable_test': is.firefox('<=50') ? fail : pass, 270 'map_from_iterable_test': is.firefox('<=50') ? fail : pass,
281 'nan_infinity_test_01_multi': fail, 271 'nan_infinity_test_01_multi': fail,
282 'null_nosuchmethod_test': fail, 272 'null_nosuchmethod_test': fail,
283 'reg_exp_all_matches_test': whitelist,
284 'reg_exp_start_end_test': whitelist,
285 'regress_r21715_test': fail, 273 'regress_r21715_test': fail,
286 'sort_test': whitelist,
287 'splay_tree_from_iterable_test': is.firefox('<=50') ? fail : pass, 274 'splay_tree_from_iterable_test': is.firefox('<=50') ? fail : pass,
288 'string_case_test_01_multi': firefox_fail, 275 'string_case_test_01_multi': firefox_fail,
289 'string_fromcharcodes_test': skip_timeout, 276 'string_fromcharcodes_test': skip_timeout,
290 'string_operations_with_null_test': fail, 277 'string_operations_with_null_test': fail,
291 'string_split_test': whitelist,
292 'string_trimlr_test_01_multi': is.chrome('<=58') ? fail : pass, 278 'string_trimlr_test_01_multi': is.chrome('<=58') ? fail : pass,
293 'string_trimlr_test_none_multi': is.chrome('<=58') ? fail : pass, 279 'string_trimlr_test_none_multi': is.chrome('<=58') ? fail : pass,
294 'symbol_operator_test_03_multi': fail, 280 'symbol_operator_test_03_multi': fail,
295 'symbol_operator_test_none_multi': fail, 281 'symbol_operator_test_none_multi': fail,
296 'symbol_reserved_word_test_06_multi': fail, 282 'symbol_reserved_word_test_06_multi': fail,
297 'symbol_reserved_word_test_09_multi': fail, 283 'symbol_reserved_word_test_09_multi': fail,
298 'symbol_reserved_word_test_12_multi': fail, 284 'symbol_reserved_word_test_12_multi': fail,
299 'symbol_test_none_multi': fail, 285 'symbol_test_none_multi': fail,
300 'unicode_test': firefox_fail, 286 'unicode_test': firefox_fail,
301 'uri_parameters_all_test': is.firefox('<=50') ? fail : pass, 287 'uri_parameters_all_test': is.firefox('<=50') ? fail : pass,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 'timer_isActive_test': async_unittest, 342 'timer_isActive_test': async_unittest,
357 'timer_not_available_test': fail, 343 'timer_not_available_test': fail,
358 'timer_repeat_test': async_unittest, 344 'timer_repeat_test': async_unittest,
359 'timer_test': async_unittest, 345 'timer_test': async_unittest,
360 'zone_bind_callback_test': fail, 346 'zone_bind_callback_test': fail,
361 'zone_error_callback_test': fail, 347 'zone_error_callback_test': fail,
362 'zone_register_callback_test': fail, 348 'zone_register_callback_test': fail,
363 'zone_run_unary_test': fail, 349 'zone_run_unary_test': fail,
364 }, 350 },
365 351
366 'lib/collection': { 352 'lib/collection': {},
367 'linked_list_test': whitelist,
368 },
369 353
370 'lib/convert': { 354 'lib/convert': {
371 'base64_test_01_multi': 'slow', 355 'base64_test_01_multi': 'slow',
372 'chunked_conversion_utf82_test': whitelist, 356 'chunked_conversion_utf85_test': 'slow',
373 'chunked_conversion_utf83_test': whitelist,
374 'chunked_conversion_utf85_test': ['whitelist', 'slow'],
375 'chunked_conversion_utf86_test': whitelist,
376 'chunked_conversion_utf87_test': whitelist,
377 357
378 'encoding_test': skip_timeout, 358 'encoding_test': skip_timeout,
379 359
380 'json_utf8_chunk_test': skip_timeout, 360 'json_utf8_chunk_test': skip_timeout,
381 'latin1_test': skip_timeout, 361 'latin1_test': skip_timeout,
382 362
383 'streamed_conversion_json_decode1_test': whitelist,
384 'streamed_conversion_json_encode1_test': skip_timeout, 363 'streamed_conversion_json_encode1_test': skip_timeout,
385 'streamed_conversion_json_utf8_decode_test': skip_timeout, 364 'streamed_conversion_json_utf8_decode_test': skip_timeout,
386 'streamed_conversion_json_utf8_encode_test': skip_timeout, 365 'streamed_conversion_json_utf8_encode_test': skip_timeout,
387 'streamed_conversion_utf8_decode_test': skip_timeout, 366 'streamed_conversion_utf8_decode_test': skip_timeout,
388 'streamed_conversion_utf8_encode_test': skip_timeout, 367 'streamed_conversion_utf8_encode_test': skip_timeout,
389 'utf82_test': whitelist,
390 'utf85_test': skip_timeout, 368 'utf85_test': skip_timeout,
391 'utf8_encode_test': whitelist,
392 'utf8_test': whitelist,
393 }, 369 },
394 370
395 'lib/html': { 371 'lib/html': {
396 'async_spawnuri_test': async_unittest, 372 'async_spawnuri_test': async_unittest,
397 'async_test': async_unittest, 373 'async_test': async_unittest,
398 374
399 // was https://github.com/dart-lang/sdk/issues/27578, needs triage 375 // was https://github.com/dart-lang/sdk/issues/27578, needs triage
400 'audiocontext_test': is.chrome('<=54') ? fail : pass, 376 'audiocontext_test': is.chrome('<=54') ? fail : pass,
401 377
402 'canvas_test': ['unittest'], 378 'canvas_test': ['unittest'],
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 'pi_test': skip_timeout, 498 'pi_test': skip_timeout,
523 'random_big_test': fail, 499 'random_big_test': fail,
524 }, 500 },
525 501
526 'lib/typed_data': { 502 'lib/typed_data': {
527 // No bigint or int64 support 503 // No bigint or int64 support
528 'int32x4_bigint_test': fail, 504 'int32x4_bigint_test': fail,
529 'int64_list_load_store_test': fail, 505 'int64_list_load_store_test': fail,
530 'typed_data_hierarchy_int64_test': fail, 506 'typed_data_hierarchy_int64_test': fail,
531 'typed_data_list_test': fail, 507 'typed_data_list_test': fail,
532 'typed_list_iterable_test': whitelist,
533 }, 508 },
534 509
535 'lib/mirrors': { 510 'lib/mirrors': {
536 'abstract_class_test_none_multi': fail, 511 'abstract_class_test_none_multi': fail,
537 'accessor_cache_overflow_test': fail, 512 'accessor_cache_overflow_test': fail,
538 'basic_types_in_dart_core_test': fail, 513 'basic_types_in_dart_core_test': fail,
539 'class_mirror_location_test': fail, 514 'class_mirror_location_test': fail,
540 'class_mirror_type_variables_test': fail, 515 'class_mirror_type_variables_test': fail,
541 'closurization_equivalence_test': fail, 516 'closurization_equivalence_test': fail,
542 'constructor_kinds_test_01_multi': fail, 517 'constructor_kinds_test_01_multi': fail,
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 // timeout. 747 // timeout.
773 // 748 //
774 // TODO(vsm): This currently doesn't handle tests that trigger multiple 749 // TODO(vsm): This currently doesn't handle tests that trigger multiple
775 // asynchronous exceptions. 750 // asynchronous exceptions.
776 751
777 let mainLibrary = require(module)[libraryName(name)]; 752 let mainLibrary = require(module)[libraryName(name)];
778 let negative = /negative_test/.test(name) || 753 let negative = /negative_test/.test(name) ||
779 mainLibrary._expectRuntimeError; 754 mainLibrary._expectRuntimeError;
780 let fail = has('fail'); 755 let fail = has('fail');
781 756
782 let whitelist = has('whitelist');
783 dart_sdk.dart.ignoreWhitelistedErrors(whitelist);
784
785 function finish(error) { 757 function finish(error) {
786 // If the test left any lingering detritus in the DOM, blow it away 758 // If the test left any lingering detritus in the DOM, blow it away
787 // so it doesn't interfere with later tests. 759 // so it doesn't interfere with later tests.
788 if (fail) { 760 if (fail) {
789 if (negative) { 761 if (negative) {
790 if (error) { 762 if (error) {
791 error = new Error( 763 error = new Error(
792 "negative test marked as 'fail' " + 764 "negative test marked as 'fail' " +
793 "but passed by throwing:\n" + error); 765 "but passed by throwing:\n" + error);
794 } 766 }
795 } else if (error) { 767 } else if (error) {
796 error = null 768 error = null
797 } else { 769 } else {
798 error = new Error("test marked as 'fail' but passed"); 770 error = new Error("test marked as 'fail' but passed");
799 } 771 }
800 } else if (negative) { 772 } else if (negative) {
801 if (!error) { 773 if (!error) {
802 error = new Error("test marked as 'negative' but did not throw"); 774 error = new Error("test marked as 'negative' but did not throw");
803 } else { 775 } else {
804 error = null; 776 error = null;
805 } 777 }
806 } 778 }
807 minitest.finishTests(); 779 minitest.finishTests();
808 document.body.innerHTML = ''; 780 document.body.innerHTML = '';
809 console.log("cleared"); 781 console.log("cleared");
810 if (error && !(error instanceof Error)) error = new Error(error); 782 if (error && !(error instanceof Error)) error = new Error(error);
811 dart_sdk.dart.ignoreWhitelistedErrors(false);
812 done(error); 783 done(error);
813 } 784 }
814 785
815 // Intercept uncaught exceptions 786 // Intercept uncaught exceptions
816 window.onerror = function(message, url, line, column, error) { 787 window.onerror = function(message, url, line, column, error) {
817 console.warn('Asynchronous error in ' + name + ': ' + message); 788 console.warn('Asynchronous error in ' + name + ': ' + message);
818 if (!error) { 789 if (!error) {
819 error = new Error(message); 790 error = new Error(message);
820 } 791 }
821 finish(error); 792 finish(error);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 881
911 for (let action of unittest_tests) { 882 for (let action of unittest_tests) {
912 try { 883 try {
913 action(); 884 action();
914 } catch (e) { 885 } catch (e) {
915 console.error("Caught error tying to setup test:", e); 886 console.error("Caught error tying to setup test:", e);
916 } 887 }
917 } 888 }
918 }); 889 });
919 }); 890 });
OLDNEW
« no previous file with comments | « no previous file | tests/corelib_2/sort_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698