| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| (function() { |
| 'use strict'; |
| |
| let _isolate_helper = dart_library.import('dart/_isolate_helper'); |
| _isolate_helper.startRootIsolate(function() {}, []); |
| let async_helper = dart_library.import('async_helper/async_helper'); |
| |
| // TODO(jmesserly): separate StrongModeError from other errors. |
| let expectedFailures = new Set([ |
| 'arithmetic2_test', |
| 'assert_with_type_test_or_cast_test', |
| 'assertion_test', |
| 'async_star_await_pauses_test', |
| 'async_star_cancel_while_paused_test', |
| 'async_star_regression_fisk_test', |
| 'async_switch_test', |
| 'asyncstar_throw_in_catch_test', |
| 'await_future_test', |
| 'bit_operations_test_none_multi', |
| 'bit_shift_test', |
| 'bool_test', |
| 'bound_closure_equality_test', |
| 'call_closurization_test', |
| 'call_function_apply_test', |
| 'call_operator_test', |
| 'call_property_test', |
| 'call_test', |
| 'call_this_test', |
| 'call_through_null_getter_test', |
| 'call_with_no_such_method_test', |
| 'canonical_const2_test', |
| 'canonical_const_test', |
| 'cascade_precedence_test', |
| 'cast_test_01_multi', |
| 'cast_test_02_multi', |
| 'cast_test_03_multi', |
| 'cast_test_07_multi', |
| 'cast_test_10_multi', |
| 'cast_test_12_multi', |
| 'cast_test_13_multi', |
| 'cast_test_14_multi', |
| 'cast_test_15_multi', |
| 'cha_deopt1_test', |
| 'cha_deopt2_test', |
| 'cha_deopt3_test', |
| 'classes_static_method_clash_test', |
| 'closure_call_wrong_argument_count_negative_test', |
| 'closure_in_constructor_test', |
| 'closure_with_super_field_test', |
| 'closures_initializer_test', |
| 'code_after_try_is_executed_test_01_multi', |
| 'compile_time_constant10_test_none_multi', |
| 'compile_time_constant_a_test', |
| 'compile_time_constant_b_test', |
| 'compile_time_constant_d_test', |
| 'compile_time_constant_i_test', |
| 'compile_time_constant_k_test_none_multi', |
| 'compile_time_constant_o_test_none_multi', |
| 'const_constructor3_test_03_multi', |
| 'const_escape_frog_test', |
| 'const_evaluation_test_01_multi', |
| 'const_map4_test', |
| 'const_switch_test_02_multi', |
| 'const_switch_test_04_multi', |
| 'constructor11_test', |
| 'constructor12_test', |
| 'ct_const_test', |
| 'cyclic_type2_test', |
| 'cyclic_type_test_00_multi', |
| 'cyclic_type_test_01_multi', |
| 'cyclic_type_test_02_multi', |
| 'cyclic_type_test_03_multi', |
| 'cyclic_type_test_04_multi', |
| 'cyclic_type_variable_test_none_multi', |
| 'deferred_call_empty_before_load_test', |
| 'deferred_closurize_load_library_test', |
| 'deferred_constant_list_test', |
| 'deferred_function_type_test', |
| 'deferred_inlined_test', |
| 'deferred_load_inval_code_test', |
| 'deferred_mixin_test', |
| 'deferred_no_such_method_test', |
| 'deferred_not_loaded_check_test', |
| 'deferred_only_constant_test', |
| 'deferred_optimized_test', |
| 'deferred_redirecting_factory_test', |
| 'deferred_regression_22995_test', |
| 'deferred_shadow_load_library_test', |
| 'deferred_shared_and_unshared_classes_test', |
| 'deferred_static_seperate_test', |
| 'double_int_to_string_test', |
| 'double_to_string_test', |
| 'dynamic_test', |
| 'enum_mirror_test', |
| 'exception_test', |
| 'execute_finally6_test', |
| 'expect_test', |
| 'extends_test_lib', |
| 'external_test_10_multi', |
| 'external_test_13_multi', |
| 'external_test_20_multi', |
| 'f_bounded_quantification3_test', |
| 'factory_type_parameter_test', |
| 'fast_method_extraction_test', |
| 'field_increment_bailout_test', |
| 'field_optimization3_test', |
| 'field_test', |
| 'final_syntax_test_08_multi', |
| 'first_class_types_literals_test_01_multi', |
| 'first_class_types_literals_test_02_multi', |
| 'first_class_types_literals_test_none_multi', |
| 'first_class_types_test', |
| 'for_in2_test', |
| 'for_variable_capture_test', |
| 'function_propagation_test', |
| 'function_subtype0_test', |
| 'function_subtype1_test', |
| 'function_subtype2_test', |
| 'function_subtype3_test', |
| 'function_subtype_bound_closure0_test', |
| 'function_subtype_bound_closure1_test', |
| 'function_subtype_bound_closure2_test', |
| 'function_subtype_bound_closure3_test', |
| 'function_subtype_bound_closure4_test', |
| 'function_subtype_bound_closure5_test', |
| 'function_subtype_bound_closure5a_test', |
| 'function_subtype_bound_closure6_test', |
| 'function_subtype_call0_test', |
| 'function_subtype_call1_test', |
| 'function_subtype_call2_test', |
| 'function_subtype_cast0_test', |
| 'function_subtype_cast1_test', |
| 'function_subtype_cast2_test', |
| 'function_subtype_cast3_test', |
| 'function_subtype_factory0_test', |
| 'function_subtype_inline0_test', |
| 'function_subtype_local0_test', |
| 'function_subtype_local1_test', |
| 'function_subtype_local2_test', |
| 'function_subtype_local3_test', |
| 'function_subtype_local4_test', |
| 'function_subtype_local5_test', |
| 'function_subtype_named1_test', |
| 'function_subtype_named2_test', |
| 'function_subtype_not0_test', |
| 'function_subtype_not1_test', |
| 'function_subtype_not2_test', |
| 'function_subtype_not3_test', |
| 'function_subtype_optional1_test', |
| 'function_subtype_optional2_test', |
| 'function_subtype_top_level0_test', |
| 'function_subtype_top_level1_test', |
| 'function_subtype_typearg0_test', |
| 'function_subtype_typearg2_test', |
| 'function_subtype_typearg4_test', |
| 'function_type_alias2_test', |
| 'function_type_alias3_test', |
| 'function_type_alias4_test', |
| 'function_type_alias6_test_none_multi', |
| 'function_type_alias_test', |
| 'function_type_call_getter_test', |
| 'gc_test', |
| 'generic2_test', |
| 'generic_deep_test', |
| 'generic_field_mixin2_test', |
| 'generic_field_mixin3_test', |
| 'generic_field_mixin4_test', |
| 'generic_field_mixin5_test', |
| 'generic_field_mixin_test', |
| 'generic_inheritance_test', |
| 'generic_instanceof2_test', |
| 'generic_instanceof3_test', |
| 'generic_instanceof_test', |
| 'generic_is_check_test', |
| 'generic_native_test', |
| 'generic_parameterized_extends_test', |
| 'getter_closure_execution_order_test', |
| 'getter_override2_test_00_multi', |
| 'getters_setters_test', |
| 'hash_code_mangling_test', |
| 'identical_closure2_test', |
| 'if_null_behavior_test_14_multi', |
| 'infinite_switch_label_test', |
| 'infinity_test', |
| 'instance_creation_in_function_annotation_test', |
| 'instanceof2_test', |
| 'instanceof4_test_01_multi', |
| 'instanceof4_test_none_multi', |
| 'instanceof_optimized_test', |
| 'int_test', |
| 'integer_division_by_zero_test', |
| 'interceptor_test', |
| 'is_nan_test', |
| 'issue10747_test', |
| 'issue13179_test', |
| 'issue21079_test', |
| 'issue21957_test', |
| 'issue_1751477_test', |
| 'issue_22780_test_01_multi', |
| 'issue_23914_test', |
| 'js_properties_test', |
| 'lazy_static3_test', |
| 'least_upper_bound_expansive_test_none_multi', |
| 'left_shift_test', |
| 'list_is_test', |
| 'list_literal3_test', |
| 'many_generic_instanceof_test', |
| 'map_literal10_test', |
| 'map_literal7_test', |
| 'memory_swap_test', |
| 'method_invocation_test', |
| 'mint_arithmetic_test', |
| 'mixin_forwarding_constructor3_test', |
| 'mixin_generic_test', |
| 'mixin_implements_test', |
| 'mixin_issue10216_2_test', |
| 'mixin_mixin2_test', |
| 'mixin_mixin3_test', |
| 'mixin_mixin4_test', |
| 'mixin_mixin5_test', |
| 'mixin_mixin6_test', |
| 'mixin_mixin7_test', |
| 'mixin_mixin_bound2_test', |
| 'mixin_mixin_bound_test', |
| 'mixin_mixin_test', |
| 'mixin_regress_13688_test', |
| 'mixin_type_parameter1_test', |
| 'mixin_type_parameter2_test', |
| 'mixin_type_parameter3_test', |
| 'modulo_test', |
| 'named_argument_test', |
| 'named_parameter_clash_test', |
| 'namer2_test', |
| 'nan_identical_test', |
| 'nested_switch_label_test', |
| 'no_such_method3_test', |
| 'no_such_method_empty_selector_test', |
| 'no_such_method_subtype_test', |
| 'null_no_such_method_test', |
| 'number_identifier_test_05_multi', |
| 'number_identity2_test', |
| 'numbers_test', |
| 'operator4_test', |
| 'operator_test', |
| 'optimized_hoisting_checked_mode_assert_test', |
| 'positive_bit_operations_test', |
| 'prefix_test1', |
| 'prefix_test2', |
| 'redirecting_factory_reflection_test', |
| 'regress_13462_0_test', |
| 'regress_13462_1_test', |
| 'regress_14105_test', |
| 'regress_16640_test', |
| 'regress_21795_test', |
| 'regress_22443_test', |
| 'regress_22666_test', |
| 'regress_22719_test', |
| 'regress_23650_test', |
| 'regress_r24720_test', |
| 'setter_no_getter_test_01_multi', |
| 'smi_type_test', |
| 'stack_overflow_stacktrace_test', |
| 'stack_overflow_test', |
| 'stack_trace_test', |
| 'stacktrace_rethrow_error_test_none_multi', |
| 'stacktrace_rethrow_error_test_withtraceparameter_multi', |
| 'stacktrace_test', |
| 'string_interpolate_null_test', |
| 'string_interpolation_newline_test', |
| 'super_field_2_test', |
| 'super_field_test', |
| 'super_operator_index3_test', |
| 'super_operator_index4_test', |
| 'switch_label2_test', |
| 'switch_label_test', |
| 'switch_try_catch_test', |
| 'symbol_literal_test_none_multi', |
| 'sync_generator1_test_none_multi', |
| 'throwing_lazy_variable_test', |
| 'top_level_non_prefixed_library_test', |
| 'truncdiv_test', |
| 'type_argument_substitution_test', |
| 'type_promotion_functions_test_none_multi', |
| 'type_variable_closure2_test', |
| 'type_variable_field_initializer_closure_test', |
| 'type_variable_field_initializer_test', |
| 'type_variable_nested_test', |
| 'type_variable_typedef_test', |
| 'typedef_is_test', |
| |
| 'bit_operations_test_01_multi', |
| 'bit_operations_test_02_multi', |
| 'bit_operations_test_03_multi', |
| 'bit_operations_test_04_multi', |
| 'bool_condition_check_test_01_multi', |
| 'deferred_constraints_constants_test_none_multi', |
| 'deferred_constraints_constants_test_reference_after_load_multi', |
| 'deferred_constraints_type_annotation_test_new_generic1_multi', |
| 'deferred_constraints_type_annotation_test_new_multi', |
| 'deferred_constraints_type_annotation_test_none_multi', |
| 'deferred_constraints_type_annotation_test_static_method_multi', |
| 'deferred_constraints_type_annotation_test_type_annotation_non_deferred_multi', |
| 'deferred_load_constants_test_none_multi', |
| 'deferred_load_library_wrong_args_test_01_multi', |
| 'deferred_load_library_wrong_args_test_none_multi', |
| 'external_test_21_multi', |
| 'external_test_24_multi', |
| 'main_not_a_function_test_01_multi', |
| 'multiline_newline_test_04_multi', |
| 'multiline_newline_test_05_multi', |
| 'multiline_newline_test_06_multi', |
| 'multiline_newline_test_none_multi', |
| 'no_main_test_01_multi', |
| ]); |
| |
| let helpers = new Set([ |
| 'library_prefixes_test1', |
| 'library_prefixes_test2', |
| 'top_level_prefixed_library_test', |
| ]); |
| |
| suite('language', () => { |
| let languageTestPattern = new RegExp('language/(.*_test.*)'); |
| for (let testFile of dart_library.libraries()) { |
| let match = languageTestPattern.exec(testFile); |
| if (match != null) { |
| let name = match[1]; |
| |
| if (helpers.has(name)) { |
| // These are not top-level tests. They are used by other tests. |
| continue; |
| } |
| |
| // These two tests are special because they use package:unittest. |
| // We run them below. |
| if (name == 'async_await_test' || name.startsWith('async_star_test')) { |
| continue; |
| } |
| |
| // TODO(jmesserly): figure out why this test is hanging. |
| if (name == 'async_star_cancel_and_throw_in_finally_test') { |
| console.debug('Skipping known timeout: ' + name); |
| continue; |
| } |
| |
| // TODO(jmesserly): better tracking of async test failures. |
| // For now we skip tests that expect failure. |
| if (expectedFailures.has(name)) { |
| console.debug('Skipping known failure: ' + name); |
| continue; |
| } |
| |
| test(name, (done) => { |
| async_helper.asyncTestInitialize(done); |
| console.debug('Running language test: ' + name); |
| |
| dart_library.import('language/' + name).main(); |
| |
| if (!async_helper.asyncTestStarted) done(); |
| }); |
| } |
| } |
| }); |
| |
| dart_library.import('language/async_await_test_none_multi').main(); |
| dart_library.import('language/async_star_test_none_multi').main(); |
| |
| })(); |