| OLD | NEW | 
|---|
| 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', 'unittest', 'require'], | 5 define(['dart_sdk', 'async_helper', 'minitest', 'unittest', 'require'], | 
| 6       function(dart_sdk, async_helper, unittest, require) { | 6       function(dart_sdk, async_helper, minitest, unittest, require) { | 
| 7   'use strict'; | 7   'use strict'; | 
| 8 | 8 | 
| 9   async_helper = async_helper.async_helper; | 9   async_helper = async_helper.async_helper; | 
|  | 10   minitest = minitest.minitest; | 
| 10 | 11 | 
| 11   dart_sdk._isolate_helper.startRootIsolate(function() {}, []); | 12   dart_sdk._isolate_helper.startRootIsolate(function() {}, []); | 
| 12   let html_config = unittest.html_config; | 13   let html_config = unittest.html_config; | 
| 13   // Test attributes are a list of strings, or a string for a single | 14   // Test attributes are a list of strings, or a string for a single | 
| 14   // attribute. Valid attributes are: | 15   // attribute. Valid attributes are: | 
| 15   // | 16   // | 
| 16   //   'skip' - don't run the test | 17   //   'skip' - don't run the test | 
| 17   //   'fail' - test fails | 18   //   'fail' - test fails | 
| 18   //   'timeout' - test times out | 19   //   'timeout' - test times out | 
| 19   //   'slow' - use 5s timeout instead of default 2s. | 20   //   'slow' - use 5s timeout instead of default 2s. | 
| 20   //   'helper'  - not a test, used by other tests. | 21   //   'helper'  - not a test, used by other tests. | 
| 21   //   'unittest' - run separately as a unittest test. | 22   //   'unittest' - run separately as a unittest test. | 
| 22   // | 23   // | 
| 23   // Common combinations: | 24   // Common combinations: | 
| 24   const fail = 'fail'; | 25   const fail = 'fail'; | 
| 25   const skip_fail = ['skip', 'fail']; | 26   const skip_fail = ['skip', 'fail']; | 
| 26   const skip_timeout = ['skip', 'timeout']; | 27   const skip_timeout = ['skip', 'timeout']; | 
| 27 | 28 | 
|  | 29   // Tests marked with this are still using the deprecated unittest package | 
|  | 30   // because they rely on its support for futures and asynchronous tests, which | 
|  | 31   // expect and minitest do not handle. | 
|  | 32   // TODO(rnystrom): Move all of these away from using the async test API so | 
|  | 33   // they can stop using unittest. | 
|  | 34   const async_unittest = ['unittest', 'skip', 'fail']; | 
|  | 35 | 
| 28   // The number of expected unittest errors should be zero but unfortunately | 36   // The number of expected unittest errors should be zero but unfortunately | 
| 29   // there are a lot of broken html unittests. | 37   // there are a lot of broken html unittests. | 
| 30   let num_expected_unittest_fails = 5; | 38   let num_expected_unittest_fails = 3; | 
| 31   let num_expected_unittest_errors = 8; | 39   let num_expected_unittest_errors = 2; | 
| 32 | 40 | 
| 33   // TODO(jmesserly): separate StrongModeError from other errors. | 41   // TODO(jmesserly): separate StrongModeError from other errors. | 
| 34   let all_status = { | 42   let all_status = { | 
| 35     'language': { | 43     'language': { | 
| 36       'assert_with_type_test_or_cast_test': skip_fail, | 44       'assert_with_type_test_or_cast_test': skip_fail, | 
| 37       'assertion_test': skip_fail, | 45       'assertion_test': skip_fail, | 
| 38       'async_await_test_none_multi': 'unittest', | 46       'async_await_test_none_multi': 'unittest', | 
| 39       'async_await_test_02_multi': 'unittest', | 47       'async_await_test_02_multi': 'unittest', | 
| 40       'async_await_test_03_multi': skip_fail,  // Flaky on travis (#634) | 48       'async_await_test_03_multi': skip_fail,  // Flaky on travis (#634) | 
| 41       'async_star_await_pauses_test': skip_fail, | 49       'async_star_await_pauses_test': skip_fail, | 
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 399       'streamed_conversion_json_utf8_encode_test': skip_timeout, | 407       'streamed_conversion_json_utf8_encode_test': skip_timeout, | 
| 400       'streamed_conversion_utf8_decode_test': skip_timeout, | 408       'streamed_conversion_utf8_decode_test': skip_timeout, | 
| 401       'streamed_conversion_utf8_encode_test': skip_timeout, | 409       'streamed_conversion_utf8_encode_test': skip_timeout, | 
| 402       'utf85_test': skip_timeout, | 410       'utf85_test': skip_timeout, | 
| 403     }, | 411     }, | 
| 404 | 412 | 
| 405     // TODO(jacobr): enable more of the html tests in unittest once they have | 413     // TODO(jacobr): enable more of the html tests in unittest once they have | 
| 406     // more hope of passing. Triage tests that can never run in this test | 414     // more hope of passing. Triage tests that can never run in this test | 
| 407     // runner and track them separately. | 415     // runner and track them separately. | 
| 408     'lib/html': { | 416     'lib/html': { | 
| 409       'async_spawnuri_test': ['unittest', 'skip', 'fail'], | 417       'async_spawnuri_test': async_unittest, | 
| 410       'async_test': ['unittest', 'skip', 'fail'], | 418       'async_test': async_unittest, | 
| 411       'audiobuffersourcenode_test': ['unittest', 'skip', 'fail'], | 419       'audiobuffersourcenode_test': 'fail', // sdk#27578. | 
| 412       'audiocontext_test': ['unittest', 'skip', 'fail'], | 420       'audiocontext_test': 'fail', // sdk#27578. | 
| 413       'audioelement_test': ['unittest', 'skip', 'fail'], | 421       'blob_constructor_test': 'fail', // sdk#27578. | 
| 414       'b_element_test': ['unittest', 'skip', 'fail'], | 422       'cache_test': 'fail', // sdk#27578. | 
| 415       'blob_constructor_test': ['unittest', 'skip', 'fail'], | 423       'canvas_test': ['unittest'], | 
| 416       'cache_test': ['unittest', 'skip', 'fail'], |  | 
| 417       'callbacks_test': ['unittest', 'skip', 'fail'], |  | 
| 418       'canvas_pixel_array_type_alias_test': ['unittest'], |  | 
| 419       'canvasrenderingcontext2d_test': ['unittest'], | 424       'canvasrenderingcontext2d_test': ['unittest'], | 
| 420       'canvas_test': ['unittest'], | 425       'cross_domain_iframe_test': async_unittest, | 
| 421       'cdata_test': ['unittest', 'skip', 'fail'], | 426       'crypto_test': 'fail', // sdk#27578. | 
| 422       'client_rect_test': ['unittest', 'skip', 'fail'], | 427       'cssstyledeclaration_test': async_unittest, | 
| 423       'cross_domain_iframe_test': ['unittest', 'skip', 'fail'], | 428       'css_test': async_unittest, | 
| 424       'cross_frame_test': ['unittest', 'skip', 'fail'], | 429 | 
| 425       'crypto_test': ['unittest', 'skip', 'fail'], | 430       // This is failing with a range error, I'm guessing because it's looking | 
| 426       'css_rule_list_test': ['unittest', 'skip', 'fail'], | 431       // for a stylesheet and the page has none. | 
| 427       'cssstyledeclaration_test': ['unittest', 'skip', 'fail'], | 432       'css_rule_list_test': 'fail', | 
| 428       'css_test': ['unittest', 'skip', 'fail'], | 433       'custom_element_method_clash_test': async_unittest, | 
| 429       'custom_element_method_clash_test': ['unittest', 'skip', 'fail'], | 434       'custom_element_name_clash_test': async_unittest, | 
| 430       'custom_element_name_clash_test': ['unittest', 'skip', 'fail'], | 435       'custom_elements_23127_test': async_unittest, | 
| 431       'custom_elements_23127_test': ['unittest', 'skip', 'fail'], | 436       'custom_elements_test': async_unittest, | 
| 432       'custom_elements_test': ['unittest', 'skip', 'fail'], | 437       'datalistelement_test': 'fail', // sdk#27578. | 
| 433       'custom_tags_test': ['unittest', 'skip', 'fail'], | 438       'dom_constructors_test': 'fail', // sdk#27578. | 
| 434       'dart_object_local_storage_test': ['unittest', 'skip', 'fail'], | 439       'element_animate_test': async_unittest, | 
| 435       'datalistelement_test': ['unittest', 'skip', 'fail'], | 440       'element_classes_test': 'fail', // sdk#27579. | 
| 436       'documentfragment_test': ['unittest', 'skip', 'fail'], | 441       'element_classes_svg_test': 'fail', // sdk#27579. | 
| 437       'document_test': ['unittest'], | 442 | 
| 438       'dom_constructors_test': ['unittest', 'skip', 'fail'], | 443       // This fails because we get 150 instead of 10 on line 45. | 
| 439       'domparser_test': ['unittest', 'skip', 'fail'], | 444       'element_dimensions_test': 'fail', | 
| 440       'element_add_test': ['unittest', 'skip', 'fail'], | 445 | 
| 441       'element_animate_test': ['unittest', 'skip', 'fail'], | 446       // Failure: 'Expected 364 to be in the inclusive range [111, 160].'. | 
| 442       'element_classes_svg_test': ['unittest', 'skip', 'fail'], | 447       'element_offset_test': 'fail', | 
| 443       'element_classes_test': ['unittest', 'skip', 'fail'], | 448       'element_test': async_unittest, | 
| 444       'element_constructor_1_test': ['unittest', 'skip', 'fail'], | 449       'element_types_test': 'fail', // sdk#27578. | 
| 445       'element_dimensions_test': ['unittest', 'skip', 'fail'], | 450       'event_customevent_test': async_unittest, | 
| 446       'element_offset_test': ['unittest', 'skip', 'fail'], | 451       'events_test': async_unittest, | 
| 447       'element_test': ['unittest', 'skip', 'fail'], | 452 | 
| 448       'element_types_constructors1_test': ['unittest', 'skip', 'fail'], | 453       // Failure: "Failed to execute 'dispatchEvent' on 'EventTarget': parameter | 
| 449       'element_types_constructors2_test': ['unittest', 'skip', 'fail'], | 454       // 1 is not of type 'Event'." | 
| 450       'element_types_constructors3_test': ['unittest', 'skip', 'fail'], | 455       'event_test': 'fail', | 
| 451       'element_types_constructors4_test': ['unittest', 'skip', 'fail'], | 456       'fileapi_test': async_unittest, | 
| 452       'element_types_constructors5_test': ['unittest', 'skip', 'fail'], | 457       'filereader_test': async_unittest, | 
| 453       'element_types_constructors6_test': ['unittest', 'skip', 'fail'], | 458       'fontface_loaded_test': async_unittest, | 
| 454       'element_types_test': ['unittest', 'skip', 'fail'], | 459 | 
| 455       'event_customevent_test': ['unittest', 'skip', 'fail'], | 460       // Failed because it's expecting "Ahem" but getting null. Maybe sdk#27579? | 
| 456       'events_test': ['unittest', 'skip', 'fail'], | 461       'fontface_test': 'fail', | 
| 457       'event_test': ['unittest', 'skip', 'fail'], | 462       'form_data_test': async_unittest, | 
| 458       'exceptions_test': ['unittest', 'skip', 'fail'], | 463       'history_test': async_unittest, | 
| 459       'fileapi_test': ['unittest', 'skip', 'fail'], | 464 | 
| 460       'filereader_test': ['unittest', 'skip', 'fail'], | 465       // Failing because innerHtml should be 'Hello World' but was ''. | 
| 461       'filteredelementlist_test': ['unittest', 'skip', 'fail'], | 466       'htmlelement_test': 'fail', | 
| 462       'fontface_loaded_test': ['unittest', 'skip', 'fail'], | 467       'indexeddb_1_test': async_unittest, | 
| 463       'fontface_test': ['unittest', 'skip', 'fail'], | 468       'indexeddb_2_test': async_unittest, | 
| 464       'form_data_test': ['unittest', 'skip', 'fail'], | 469       'indexeddb_3_test': async_unittest, | 
| 465       'form_element_test': ['unittest', 'skip', 'fail'], | 470       'indexeddb_4_test': async_unittest, | 
| 466       'geolocation_test': ['unittest', 'skip', 'fail'], | 471       'indexeddb_5_test': async_unittest, | 
| 467       'hidden_dom_1_test': ['unittest', 'skip', 'fail'], | 472       'input_element_test': 'fail', // sdk#27578. | 
| 468       'hidden_dom_2_test': ['unittest', 'skip', 'fail'], | 473       'interactive_test': async_unittest, | 
| 469       'history_test': ['unittest', 'skip', 'fail'], | 474       'isolates_test': async_unittest, | 
| 470       'htmlcollection_test': ['unittest', 'skip', 'fail'], | 475 | 
| 471       'htmlelement_test': ['unittest', 'skip', 'fail'], | 476       // Failing on "identical JS objects should have identical proxies". | 
| 472       'htmloptionscollection_test': ['unittest', 'skip', 'fail'], | 477       'js_test': 'fail', | 
| 473       'indexeddb_1_test': ['unittest', 'skip', 'fail'], | 478       'js_interop_1_test': async_unittest, | 
| 474       'indexeddb_2_test': ['unittest', 'skip', 'fail'], | 479 | 
| 475       'indexeddb_3_test': ['unittest', 'skip', 'fail'], | 480       // Failing because accessing "zSomeInvalidName" does not throw. | 
| 476       'indexeddb_4_test': ['unittest', 'skip', 'fail'], | 481       'js_typed_interop_test': 'fail', | 
| 477       'indexeddb_5_test': ['unittest', 'skip', 'fail'], | 482 | 
| 478       'input_element_test': ['unittest', 'skip', 'fail'], | 483       // The "typed literal" test fails because the object does not have "_c". | 
| 479       'instance_of_test': ['unittest', 'skip', 'fail'], | 484       'js_util_test': 'fail', | 
| 480       'interactive_test': ['unittest', 'skip', 'fail'], |  | 
| 481       'isolates_test': ['unittest', 'skip', 'fail'], |  | 
| 482       'js_function_getter_test': 'unittest', |  | 
| 483       'js_function_getter_trust_types_test': 'unittest', |  | 
| 484       'js_interop_1_test': 'unittest', |  | 
| 485       'js_test': 'unittest', |  | 
| 486       'js_util_test': 'unittest', |  | 
| 487       'js_typed_interop_anonymous2_exp_test': 'unittest', |  | 
| 488       'js_typed_interop_anonymous2_test': 'unittest', |  | 
| 489       'js_typed_interop_anonymous_exp_test': 'unittest', |  | 
| 490       'js_typed_interop_anonymous_test': 'unittest', |  | 
| 491       'js_typed_interop_anonymous_unreachable_exp_test': 'unittest', |  | 
| 492       'js_typed_interop_anonymous_unreachable_test': 'unittest', |  | 
| 493       'js_typed_interop_default_arg_test': 'unittest', |  | 
| 494       'js_typed_interop_side_cast_exp_test': 'unittest', |  | 
| 495       'js_typed_interop_side_cast_test': 'unittest', |  | 
| 496       'js_typed_interop_test': 'unittest', |  | 
| 497       'keyboard_event_test': ['unittest', 'skip', 'fail'], | 485       'keyboard_event_test': ['unittest', 'skip', 'fail'], | 
| 498       'localstorage_test': ['unittest', 'skip', 'fail'], | 486       'localstorage_test': ['unittest', 'skip', 'fail'], | 
| 499       'location_test': ['unittest', 'skip', 'fail'], | 487       'location_test': ['unittest', 'skip', 'fail'], | 
| 500       'mediasource_test': ['unittest', 'skip', 'fail'], | 488       'mediasource_test': ['unittest', 'skip', 'fail'], | 
| 501       'media_stream_test': ['unittest', 'skip', 'fail'], | 489       'media_stream_test': ['unittest', 'skip', 'fail'], | 
| 502       'messageevent_test': ['unittest', 'skip', 'fail'], | 490       'messageevent_test': ['unittest', 'skip', 'fail'], | 
| 503       'mirrors_js_typed_interop_test': ['unittest', 'skip', 'fail'], | 491       'mirrors_js_typed_interop_test': ['unittest', 'skip', 'fail'], | 
| 504       'mouse_event_test': ['unittest', 'skip', 'fail'], | 492       'mouse_event_test': ['unittest', 'skip', 'fail'], | 
| 505       'mutationobserver_test': ['unittest', 'skip', 'fail'], | 493       'mutationobserver_test': ['unittest', 'skip', 'fail'], | 
| 506       'native_gc_test': ['unittest', 'skip', 'fail'], | 494       'native_gc_test': ['unittest', 'skip', 'fail'], | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 521       'selectelement_test': ['unittest', 'skip', 'fail'], | 509       'selectelement_test': ['unittest', 'skip', 'fail'], | 
| 522       'serialized_script_value_test': ['unittest', 'skip', 'fail'], | 510       'serialized_script_value_test': ['unittest', 'skip', 'fail'], | 
| 523       'shadow_dom_test': ['unittest', 'skip', 'fail'], | 511       'shadow_dom_test': ['unittest', 'skip', 'fail'], | 
| 524       'shadowroot_test': ['unittest', 'skip', 'fail'], | 512       'shadowroot_test': ['unittest', 'skip', 'fail'], | 
| 525       'speechrecognition_test': ['unittest', 'skip', 'fail'], | 513       'speechrecognition_test': ['unittest', 'skip', 'fail'], | 
| 526       'storage_test': ['unittest', 'skip', 'fail'], | 514       'storage_test': ['unittest', 'skip', 'fail'], | 
| 527       'streams_test': ['unittest', 'skip', 'fail'], | 515       'streams_test': ['unittest', 'skip', 'fail'], | 
| 528       'svgelement_test': ['unittest', 'skip', 'fail'], | 516       'svgelement_test': ['unittest', 'skip', 'fail'], | 
| 529       'svg_test': ['unittest', 'skip', 'fail'], | 517       'svg_test': ['unittest', 'skip', 'fail'], | 
| 530       'table_test': ['unittest', 'skip', 'fail'], | 518       'table_test': ['unittest', 'skip', 'fail'], | 
| 531       'text_event_test': ['unittest', 'skip', 'fail'], |  | 
| 532       'touchevent_test': ['unittest', 'skip', 'fail'], | 519       'touchevent_test': ['unittest', 'skip', 'fail'], | 
| 533       'track_element_constructor_test': ['unittest', 'skip', 'fail'], | 520       'track_element_constructor_test': ['unittest', 'skip', 'fail'], | 
| 534       'transferables_test': ['unittest', 'skip', 'fail'], | 521       'transferables_test': ['unittest', 'skip', 'fail'], | 
| 535       'transition_event_test': ['unittest', 'skip', 'fail'], | 522       'transition_event_test': ['unittest', 'skip', 'fail'], | 
| 536       'trusted_html_tree_sanitizer_test': ['unittest', 'skip', 'fail'], | 523       'trusted_html_tree_sanitizer_test': ['unittest', 'skip', 'fail'], | 
| 537       'typed_arrays_1_test': ['unittest', 'skip', 'fail'], | 524       'typed_arrays_1_test': ['unittest', 'skip', 'fail'], | 
| 538       'typed_arrays_2_test': ['unittest', 'skip', 'fail'], | 525       'typed_arrays_2_test': ['unittest', 'skip', 'fail'], | 
| 539       'typed_arrays_3_test': ['unittest', 'skip', 'fail'], | 526       'typed_arrays_3_test': ['unittest', 'skip', 'fail'], | 
| 540       'typed_arrays_4_test': ['unittest', 'skip', 'fail'], | 527       'typed_arrays_4_test': ['unittest', 'skip', 'fail'], | 
| 541       'typed_arrays_5_test': ['unittest', 'skip', 'fail'], | 528       'typed_arrays_5_test': ['unittest', 'skip', 'fail'], | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 557       'window_test': ['unittest', 'skip', 'fail'], | 544       'window_test': ['unittest', 'skip', 'fail'], | 
| 558       'worker_api_test': ['unittest', 'skip', 'fail'], | 545       'worker_api_test': ['unittest', 'skip', 'fail'], | 
| 559       'worker_test': ['unittest', 'skip', 'fail'], | 546       'worker_test': ['unittest', 'skip', 'fail'], | 
| 560       'wrapping_collections_test': ['unittest', 'skip', 'fail'], | 547       'wrapping_collections_test': ['unittest', 'skip', 'fail'], | 
| 561       'xhr_cross_origin_test': ['unittest', 'skip', 'fail'], | 548       'xhr_cross_origin_test': ['unittest', 'skip', 'fail'], | 
| 562       'xhr_test': ['unittest', 'skip', 'fail'], | 549       'xhr_test': ['unittest', 'skip', 'fail'], | 
| 563       'xsltprocessor_test': ['unittest', 'skip', 'fail'], | 550       'xsltprocessor_test': ['unittest', 'skip', 'fail'], | 
| 564 | 551 | 
| 565       'js_typed_interop_default_arg_test_none_multi': ['unittest', 'skip', 'fail
     '], | 552       'js_typed_interop_default_arg_test_none_multi': ['unittest', 'skip', 'fail
     '], | 
| 566       'js_typed_interop_default_arg_test_explicit_argument_multi': ['unittest', 
     'skip', 'fail'], | 553       'js_typed_interop_default_arg_test_explicit_argument_multi': ['unittest', 
     'skip', 'fail'], | 
| 567       'js_typed_interop_default_arg_test_default_value_multi': ['unittest', 'ski
     p', 'fail'] | 554 | 
|  | 555       // Failing when it gets 3 instead of 42. | 
|  | 556       'js_typed_interop_default_arg_test_default_value_multi': 'fail', | 
| 568     }, | 557     }, | 
| 569 | 558 | 
| 570     'lib/html/custom': { | 559     'lib/html/custom': { | 
| 571       'attribute_changed_callback_test': ['unittest', 'skip', 'fail'], | 560       'attribute_changed_callback_test': ['unittest', 'skip', 'fail'], | 
| 572       'constructor_calls_created_synchronously_test': | 561       'constructor_calls_created_synchronously_test': | 
| 573         ['unittest', 'skip', 'fail'], | 562         ['unittest', 'skip', 'fail'], | 
| 574       'created_callback_test': ['unittest', 'skip', 'fail'], | 563       'created_callback_test': ['unittest', 'skip', 'fail'], | 
| 575       'document_register_basic_test': ['unittest', 'skip', 'fail'], | 564       'document_register_basic_test': ['unittest', 'skip', 'fail'], | 
| 576       'document_register_type_extensions_test': ['unittest', 'skip', 'fail'], | 565       'document_register_type_extensions_test': ['unittest', 'skip', 'fail'], | 
| 577       'element_upgrade_test': ['unittest', 'skip', 'fail'], | 566       'element_upgrade_test': ['unittest', 'skip', 'fail'], | 
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 813               throw new Error( | 802               throw new Error( | 
| 814                   "negative test marked as 'fail' " + | 803                   "negative test marked as 'fail' " + | 
| 815                   "but passed by throwing:\n" + e); | 804                   "but passed by throwing:\n" + e); | 
| 816             } | 805             } | 
| 817           } else { | 806           } else { | 
| 818             if (e == null) { | 807             if (e == null) { | 
| 819               throw new Error("test marked as 'fail' but passed"); | 808               throw new Error("test marked as 'fail' but passed"); | 
| 820             } | 809             } | 
| 821           } | 810           } | 
| 822         } else { | 811         } else { | 
| 823           if (negative) { | 812           try { | 
| 824             assert.throws(mainLibrary.main); | 813             if (negative) { | 
| 825           } else { | 814               assert.throws(mainLibrary.main); | 
| 826             mainLibrary.main(); | 815             } else { | 
|  | 816               mainLibrary.main(); | 
|  | 817             } | 
|  | 818           } finally { | 
|  | 819             minitest.finishTests(); | 
| 827           } | 820           } | 
| 828         } | 821         } | 
| 829 | 822 | 
| 830         if (!async_helper.asyncTestStarted) done(); | 823         if (!async_helper.asyncTestStarted) done(); | 
| 831       }); | 824       }); | 
| 832     } | 825     } | 
| 833   } | 826   } | 
| 834 | 827 | 
| 835   let mochaOnError; | 828   let mochaOnError; | 
| 836   // We run these tests in a mocha test wrapper to avoid the confusing failure | 829   // We run these tests in a mocha test wrapper to avoid the confusing failure | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 888 | 881 | 
| 889     for (let action of unittest_tests) { | 882     for (let action of unittest_tests) { | 
| 890       try { | 883       try { | 
| 891         action(); | 884         action(); | 
| 892       } catch (e) { | 885       } catch (e) { | 
| 893         console.error("Caught error tying to setup test:", e); | 886         console.error("Caught error tying to setup test:", e); | 
| 894       } | 887       } | 
| 895     } | 888     } | 
| 896   }); | 889   }); | 
| 897 }); | 890 }); | 
| OLD | NEW | 
|---|