From 3851591642bb1680a9a2e41a86257f740c4fa364 Mon Sep 17 00:00:00 2001 From: Alexander Thomas Date: Tue, 10 Apr 2018 19:03:21 +0000 Subject: [PATCH] [infra] Keep comments intact when updating status files. * Preserve empty lines in the file header. * Add empty entry to the tool's newly created sections. * Remove extra empty line at the end of the file. Change-Id: I271583774d5f5497025a9d85bcadf8b0b9e39e81 Reviewed-on: https://dart-review.googlesource.com/37600 Commit-Queue: Alexander Thomas Reviewed-by: William Hesse --- pkg/pkg.status | 1 - .../lib/canonical_status_file.dart | 53 +++++++++++++++---- .../lib/status_file_normalizer.dart | 7 ++- pkg/status_file/test/data/header.status | 6 +++ pkg/status_file/test/data/header2.status | 10 ++++ pkg/status_file/test/linter_test.dart | 11 ++++ pkg/status_file/test/normalize_test.dart | 12 +++++ .../observatory_ui/observatory_ui.status | 1 - .../observatory/tests/service/service.status | 1 - .../tests/service/service_kernel.status | 1 - runtime/tests/vm/vm.status | 1 - samples-dev/samples-dev.status | 45 ++++++++-------- samples/samples.status | 1 - tests/co19/co19-co19.status | 1 - tests/co19/co19-dart2js.status | 1 - tests/co19/co19-kernel.status | 1 - tests/co19/co19-runtime.status | 1 - tests/compiler/dart2js/dart2js.status | 1 - .../dart2js_extra/dart2js_extra.status | 1 - .../dart2js_native/dart2js_native.status | 1 - tests/corelib/corelib.status | 1 - tests/corelib_2/corelib_2.status | 1 - tests/html/html.status | 1 - tests/isolate/isolate.status | 1 - tests/kernel/kernel.status | 1 - tests/language/language.status | 1 - tests/language/language_dart2js.status | 1 - tests/language/language_kernel.status | 1 - tests/language/language_spec_parser.status | 1 - tests/language_2/language_2.status | 1 - tests/language_2/language_2_analyzer.status | 1 - tests/language_2/language_2_dart2js.status | 1 - tests/language_2/language_2_dartdevc.status | 1 - tests/language_2/language_2_flutter.status | 1 - tests/language_2/language_2_kernel.status | 1 - .../language_2/language_2_precompiled.status | 1 - .../language_2/language_2_spec_parser.status | 1 - tests/language_2/language_2_vm.status | 4 +- tests/lib/lib.status | 1 - tests/lib_2/lib_2.status | 7 ++- tests/lib_2/lib_2_analyzer.status | 1 - tests/lib_2/lib_2_dart2js.status | 1 - tests/lib_2/lib_2_kernel.status | 1 - tests/lib_2/lib_2_precompiled.status | 1 - tests/lib_2/lib_2_vm.status | 1 - tests/standalone/standalone.status | 1 - tests/standalone_2/standalone_2.status | 1 - .../standalone_2/standalone_2_analyzer.status | 1 - .../standalone_2/standalone_2_flutter.status | 1 - tests/standalone_2/standalone_2_kernel.status | 1 - .../standalone_2_precompiled.status | 1 - tests/standalone_2/standalone_2_vm.status | 1 - third_party/pkg_tested/pkg_tested.status | 11 ++-- .../results_workflow/fix_failing_test.dart | 8 +-- .../results_workflow/present_failures.dart | 5 +- utils/tests/peg/peg.status | 6 +-- 56 files changed, 130 insertions(+), 98 deletions(-) create mode 100644 pkg/status_file/test/data/header.status create mode 100644 pkg/status_file/test/data/header2.status diff --git a/pkg/pkg.status b/pkg/pkg.status index a03128cc19b..2ae5e58d924 100644 --- a/pkg/pkg.status +++ b/pkg/pkg.status @@ -231,4 +231,3 @@ front_end/tool/_fasta/*: Skip [ $mode != release || $runtime != vm || $system == windows ] kernel/test/closures_test: Skip - diff --git a/pkg/status_file/lib/canonical_status_file.dart b/pkg/status_file/lib/canonical_status_file.dart index 3d40d9c797f..148b4ca117b 100644 --- a/pkg/status_file/lib/canonical_status_file.dart +++ b/pkg/status_file/lib/canonical_status_file.dart @@ -70,7 +70,7 @@ class StatusFile { final String path; final List sections = []; - int _lineCount = 0; + int _lineCount = 1; /// Constructor for creating a new [StatusFile]. Will not create the default /// section that status files have. @@ -87,7 +87,7 @@ class StatusFile { /// /// Throws a [SyntaxError] if the file could not be parsed. StatusFile.parse(this.path, List lines) { - _parse(lines); + _parse(lines.map((line) => line.trim()).toList()); } void _parse(List lines) { @@ -141,23 +141,56 @@ class StatusFile { commentBelongsToNextSectionHeader(currentLine + 1); } + // List of comments added before the next section's header. + List sectionHeaderComments = []; + + // Parse file comments + var lastEmptyLine = 0; + for (; _lineCount <= lines.length; _lineCount++) { + var line = lines[_lineCount - 1]; + if (!line.startsWith("#") && line.isNotEmpty) { + break; + } + if (line.isEmpty) { + sectionHeaderComments.add(new EmptyEntry(_lineCount)); + lastEmptyLine = _lineCount; + } else { + sectionHeaderComments + .add(new CommentEntry(_lineCount, new Comment(line))); + } + } + + var implicitSectionHeaderComments = sectionHeaderComments; + var entries = []; + if (lastEmptyLine > 0 && sectionHeaderMatch(_lineCount) != null) { + // Comments after the last empty line belong to the next section's header. + // The empty line is not added to the section header, because it will be + // added to the section's entries. + implicitSectionHeaderComments = + implicitSectionHeaderComments.sublist(0, lastEmptyLine - 1); + entries.add(sectionHeaderComments[lastEmptyLine - 1]); + sectionHeaderComments = sectionHeaderComments.sublist(lastEmptyLine); + } else { + // Reset section header comments. + sectionHeaderComments = []; + } + // The current section whose rules are being parsed. Initalized to an // implicit section that matches everything. - StatusSection section = new StatusSection(null, -1, []); + StatusSection section = + new StatusSection(null, -1, implicitSectionHeaderComments); + section.entries.addAll(entries); sections.add(section); - // Placeholder for comments that should be added to a section. - List sectionHeaderComments = []; - - for (var line in lines) { - _lineCount++; + for (; _lineCount <= lines.length; _lineCount++) { + var line = lines[_lineCount - 1]; fail(String message, [List errors]) { throw new SyntaxError(_shortPath, _lineCount, line, message, errors); } // If it is an empty line - if (line.trim().isEmpty) { + if (line.isEmpty) { section.entries.add(new EmptyEntry(_lineCount)); continue; } @@ -275,7 +308,7 @@ class StatusSection { /// Collection of all comment and status line entries. final List entries = []; - final List sectionHeaderComments; + final List sectionHeaderComments; /// Returns true if this section should apply in the given [environment]. bool isEnabled(Environment environment) => diff --git a/pkg/status_file/lib/status_file_normalizer.dart b/pkg/status_file/lib/status_file_normalizer.dart index 99898e93fe8..71d90e3b993 100644 --- a/pkg/status_file/lib/status_file_normalizer.dart +++ b/pkg/status_file/lib/status_file_normalizer.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'canonical_status_file.dart'; +import 'dart:convert'; StatusFile normalizeStatusFile(StatusFile statusFile) { StatusFile newStatusFile = _sortSectionsAndCombine(statusFile); @@ -10,6 +11,8 @@ StatusFile normalizeStatusFile(StatusFile statusFile) { _sortEntriesInSection(section); _oneLineBetweenSections(section); }); + // Remove empty line at the end of the file + newStatusFile.sections.last.entries.removeLast(); return newStatusFile; } @@ -44,8 +47,8 @@ void _oneLineBetweenSections(StatusSection section) { StatusFile _sortSectionsAndCombine(StatusFile statusFile) { // Create the new status file to be returned. - StatusFile oldStatusFile = - new StatusFile.parse(statusFile.path, statusFile.toString().split('\n')); + StatusFile oldStatusFile = new StatusFile.parse( + statusFile.path, LineSplitter.split(statusFile.toString()).toList()); List newSections = []; // Copy over all sections and normalize all the expressions. oldStatusFile.sections.forEach((section) { diff --git a/pkg/status_file/test/data/header.status b/pkg/status_file/test/data/header.status new file mode 100644 index 00000000000..c120c8c8d50 --- /dev/null +++ b/pkg/status_file/test/data/header.status @@ -0,0 +1,6 @@ +# LICENSE + +# Implicit section comment + +# Section header comment +[ $browser ] diff --git a/pkg/status_file/test/data/header2.status b/pkg/status_file/test/data/header2.status new file mode 100644 index 00000000000..c94cc2a2223 --- /dev/null +++ b/pkg/status_file/test/data/header2.status @@ -0,0 +1,10 @@ +# LICENSE + +# Implicit section comment + +# Comment +[ $browser ] +test1: Fail + +[ $compiler == dart2js ] +test2: Crash \ No newline at end of file diff --git a/pkg/status_file/test/linter_test.dart b/pkg/status_file/test/linter_test.dart index db340c0cef4..dcd6e06c789 100644 --- a/pkg/status_file/test/linter_test.dart +++ b/pkg/status_file/test/linter_test.dart @@ -51,6 +51,17 @@ expectNoError(String text, {bool disjunctions = true}) { Expect.listEquals([], errors); } +void testEmptyLinesInHeader() { + expectNoError(r"""# LICENSE + +# valid comment after empty line on default section +suite/tests: Skip + +# valid comment +[ $mode == debug ] +"""); +} + void testCommentLinesInSection_invalidCommentInSection() { expectError(r"""[ $mode == debug ] # this comment is invalid diff --git a/pkg/status_file/test/normalize_test.dart b/pkg/status_file/test/normalize_test.dart index 6fde746aa18..92869c39fbc 100644 --- a/pkg/status_file/test/normalize_test.dart +++ b/pkg/status_file/test/normalize_test.dart @@ -29,6 +29,7 @@ void normalizeCheck() { var statusFileOther = normalizeStatusFile(new StatusFile.read(file.path)); checkSemanticallyEqual(statusFile, statusFileOther, warnOnDuplicateHeader: true); + checkFileHeaderIntact(statusFile, statusFileOther); print("------- " + file.path + " -------"); } } @@ -41,6 +42,7 @@ void sanityCheck() { var statusFileOther = new StatusFile.read(file.path); checkSemanticallyEqual(statusFile, statusFileOther, warnOnDuplicateHeader: true); + checkFileHeaderIntact(statusFile, statusFileOther); print("------- " + file.path + " -------"); } } @@ -126,6 +128,16 @@ void findInStatusFile( } } +void checkFileHeaderIntact(StatusFile original, StatusFile normalized) { + var originalHeader = original.sections.first.sectionHeaderComments.toString(); + var normalizedHeader = + normalized.sections.first.sectionHeaderComments.toString(); + if (originalHeader != normalizedHeader) { + throw new Exception( + "File headers changed.\nExpected:\n$originalHeader\n\nActual:\n$normalizedHeader"); + } +} + bool listEqual(List first, List second) { if (first.length != second.length) { return false; diff --git a/runtime/observatory/tests/observatory_ui/observatory_ui.status b/runtime/observatory/tests/observatory_ui/observatory_ui.status index 5f0849efd9d..793f0aceacc 100644 --- a/runtime/observatory/tests/observatory_ui/observatory_ui.status +++ b/runtime/observatory/tests/observatory_ui/observatory_ui.status @@ -13,4 +13,3 @@ heap_snapshot/element_test: RuntimeError # Issue 27925 # skipping. [ $runtime == ff || $runtime == ie10 || $runtime == ie11 || $runtime == safari ] *: SkipByDesign - diff --git a/runtime/observatory/tests/service/service.status b/runtime/observatory/tests/service/service.status index 57e024d5246..55035cd950e 100644 --- a/runtime/observatory/tests/service/service.status +++ b/runtime/observatory/tests/service/service.status @@ -98,4 +98,3 @@ step_through_getter_test: RuntimeError # Debugging StringConcatenation doesn't w # Skip all service tests because random reloads interfere. [ $hot_reload || $hot_reload_rollback ] *: SkipByDesign # The service tests should run without being reloaded. - diff --git a/runtime/observatory/tests/service/service_kernel.status b/runtime/observatory/tests/service/service_kernel.status index 0c37c31ed5e..c60f70cad4d 100644 --- a/runtime/observatory/tests/service/service_kernel.status +++ b/runtime/observatory/tests/service/service_kernel.status @@ -126,4 +126,3 @@ unused_changes_in_last_reload_test: Skip # Times out on sim architectures. [ $compiler == fasta && $strong ] add_breakpoint_rpc_test: CompileTimeError - diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status index f83553e9e73..d0e85f3e2de 100644 --- a/runtime/tests/vm/vm.status +++ b/runtime/tests/vm/vm.status @@ -329,4 +329,3 @@ dart/redirection_type_shuffling_test: SkipByDesign # Imports dart:mirrors [ $hot_reload || $hot_reload_rollback ] dart/spawn_infinite_loop_test: Skip # We can shutdown an isolate before it reloads. dart/spawn_shutdown_test: Skip # We can shutdown an isolate before it reloads. - diff --git a/samples-dev/samples-dev.status b/samples-dev/samples-dev.status index dc5b6d71132..1753b578b9f 100644 --- a/samples-dev/samples-dev.status +++ b/samples-dev/samples-dev.status @@ -2,29 +2,6 @@ # 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. -[ $compiler == dart2js && $runtime == drt ] -swarm/test/swarm_test: Pass, Crash, Fail # Issue 10950 - -[ $runtime == safari ] -swarm/test/swarm_test: Pass, Fail # Issue 14523 - -[ $runtime == vm ] -swarm: Skip - -[ $compiler == dart2js && $runtime == chromeOnAndroid ] -swarm/test/swarm_test: Fail # TODO(kasperl): Please triage. -swarm/test/swarm_ui_lib/layout/layout_test: Fail # TODO(kasperl): Please triage. - -[ $browser ] -# This may be related to issue 157 -swarm/test/swarm_ui_lib/touch/touch_test: Fail # Expectation: Solver. Expect.approxEquals(expected:9, actual:8.990625000000001, tolerance:0.0009) fails - - [ $compiler == dart2js && $runtime == ff ] -swarm/test/swarm_test: Fail # Issue 5633 - -[ $compiler == dart2js && $runtime == drt && $system == windows ] -swarm/test/swarm_test: Fail # Issue 4517 - [ $compiler == dart2analyzer ] swarm/test/swarm_test: StaticWarning swarm/test/swarm_ui_lib/layout/layout_test: StaticWarning @@ -32,3 +9,25 @@ swarm/test/swarm_ui_lib/observable/observable_test: StaticWarning swarm/test/swarm_ui_lib/touch/touch_test: StaticWarning swarm/test/swarm_ui_lib/util/util_test: StaticWarning swarm/test/swarm_ui_lib/view/view_test: StaticWarning + +[ $runtime == safari ] +swarm/test/swarm_test: Pass, Fail # Issue 14523 + +[ $runtime == vm ] +swarm: Skip + +[ $browser ] +swarm/test/swarm_ui_lib/touch/touch_test: Fail # This may be related to issue 157, Expectation: Solver. Expect.approxEquals(expected:9, actual:8.990625000000001, tolerance:0.0009) fails + +[ $compiler == dart2js && $runtime == chromeOnAndroid ] +swarm/test/swarm_test: Fail # TODO(kasperl): Please triage. +swarm/test/swarm_ui_lib/layout/layout_test: Fail # TODO(kasperl): Please triage. + +[ $compiler == dart2js && $runtime == drt ] +swarm/test/swarm_test: Pass, Crash, Fail # Issue 10950 + +[ $compiler == dart2js && $runtime == drt && $system == windows ] +swarm/test/swarm_test: Fail # Issue 4517 + +[ $compiler == dart2js && $runtime == ff ] +swarm/test/swarm_test: Fail # Issue 5633 diff --git a/samples/samples.status b/samples/samples.status index 2f353c2cdac..c45d91c4335 100644 --- a/samples/samples.status +++ b/samples/samples.status @@ -33,4 +33,3 @@ sample_extension/test/sample_extension_app_snapshot_test: Pass, RuntimeError # I build_dart/*: Skip build_dart_simple/*: Skip sample_extension/*: Skip - diff --git a/tests/co19/co19-co19.status b/tests/co19/co19-co19.status index a598e5493b2..40e41dfe6f9 100644 --- a/tests/co19/co19-co19.status +++ b/tests/co19/co19-co19.status @@ -123,4 +123,3 @@ LibTest/typed_data/Float32x4List/last_A01_t02: CompileTimeError # co19 issue 130 [ $runtime != none && !$strong ] LibTest/typed_data/Float32x4List/first_A01_t02: RuntimeError # co19 issue 130 LibTest/typed_data/Float32x4List/last_A01_t02: RuntimeError # co19 issue 130 - diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status index 08eb54c435a..1a5726339fe 100644 --- a/tests/co19/co19-dart2js.status +++ b/tests/co19/co19-dart2js.status @@ -7319,4 +7319,3 @@ LibTest/typed_data/Uint8List/runtimeType_A01_t01: Fail # co19-roll r559: Please [ $compiler == dart2js && !$strong ] LibTest/typed_data/Float32x4List/first_A01_t02: Pass # co19 issue 130 + type error LibTest/typed_data/Float32x4List/last_A01_t02: Pass # co19 issue 130 + type error - diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status index a49c801217b..582da567c04 100644 --- a/tests/co19/co19-kernel.status +++ b/tests/co19/co19-kernel.status @@ -1744,4 +1744,3 @@ LibTest/typed_data/Uint64List/Uint64List.view_A01_t02: CompileTimeError [ $compiler == dartk || $compiler == dartkp ] *: SkipByDesign - diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status index a4449ecd8af..76eadd0dd16 100644 --- a/tests/co19/co19-runtime.status +++ b/tests/co19/co19-runtime.status @@ -420,4 +420,3 @@ LibTest/core/Uri/Uri_A06_t03: Pass, Timeout LibTest/core/Uri/encodeQueryComponent_A01_t02: Pass, Timeout LibTest/isolate/Isolate/spawn_A01_t04: Pass, Timeout LibTest/isolate/ReceivePort/take_A01_t02: Skip # Issue 27773 - diff --git a/tests/compiler/dart2js/dart2js.status b/tests/compiler/dart2js/dart2js.status index 7a97fd3e222..d090da2743f 100644 --- a/tests/compiler/dart2js/dart2js.status +++ b/tests/compiler/dart2js/dart2js.status @@ -115,4 +115,3 @@ serialization*: Slow, Pass [ $runtime == chrome || $runtime == ff || $runtime == firefox || $runtime == safari || $jscl ] *: Skip # dart2js uses #import('dart:io'); and it is not self-hosted (yet). - diff --git a/tests/compiler/dart2js_extra/dart2js_extra.status b/tests/compiler/dart2js_extra/dart2js_extra.status index 8ef249ee46f..bb4d6733d49 100644 --- a/tests/compiler/dart2js_extra/dart2js_extra.status +++ b/tests/compiler/dart2js_extra/dart2js_extra.status @@ -232,4 +232,3 @@ dummy_compiler_test: SkipByDesign # Issue 30773. Test should be migrated as a un invalid_annotation_test/01: MissingCompileTimeError, OK # vm is lazy new_from_env_test: SkipByDesign # dart2js only test unconditional_dartio_import_test: SkipByDesign # dart2js only test - diff --git a/tests/compiler/dart2js_native/dart2js_native.status b/tests/compiler/dart2js_native/dart2js_native.status index 573d77586c5..d3f454e6c2c 100644 --- a/tests/compiler/dart2js_native/dart2js_native.status +++ b/tests/compiler/dart2js_native/dart2js_native.status @@ -29,4 +29,3 @@ compute_this_script_test: Crash # 'file:*/pkg/compiler/lib/src/ssa/types.dart': [ $compiler == dart2js && $minified ] optimization_hints_test: RuntimeError, OK # Test relies on unminified names. - diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status index 858757d9f5f..25d368bf199 100644 --- a/tests/corelib/corelib.status +++ b/tests/corelib/corelib.status @@ -336,4 +336,3 @@ double_parse_test/02: Fail, OK [ $hot_reload || $hot_reload_rollback ] big_integer_huge_mul_vm_test: Pass, Slow # Slow big_integer_parsed_mul_div_vm_test: Pass, Slow # Slow. - diff --git a/tests/corelib_2/corelib_2.status b/tests/corelib_2/corelib_2.status index b35abb8fae9..0a7ad1e9ad4 100644 --- a/tests/corelib_2/corelib_2.status +++ b/tests/corelib_2/corelib_2.status @@ -628,4 +628,3 @@ regexp/UC16_test: RuntimeError bigint_parse_radix_test: Pass, Timeout # Issue 31659 bigint_test: Pass, Slow, Crash # Issue 31660 integer_parsed_mul_div_vm_test: Pass, Slow # Slow - diff --git a/tests/html/html.status b/tests/html/html.status index 2b26a61dac5..148382d3651 100644 --- a/tests/html/html.status +++ b/tests/html/html.status @@ -551,4 +551,3 @@ webgl_1_test: Pass, Fail # Issue 8219 [ $system == windows || $runtime == drt && $system == macos ] xhr_test/xhr: Skip # Times out. Issue 21527 - diff --git a/tests/isolate/isolate.status b/tests/isolate/isolate.status index d22d01ba2fb..753bf0c29a5 100644 --- a/tests/isolate/isolate.status +++ b/tests/isolate/isolate.status @@ -238,4 +238,3 @@ function_send_test: Pass, Fail # Closure identity issue_21398_parent_isolate2_test: Crash # Requires deferred libraries message3_test/fun: Pass, Fail # Closure identity spawn_uri_nested_vm_test: Pass, Crash # Issue 28192 - diff --git a/tests/kernel/kernel.status b/tests/kernel/kernel.status index 807e76c413e..37322af0bb9 100644 --- a/tests/kernel/kernel.status +++ b/tests/kernel/kernel.status @@ -35,4 +35,3 @@ unsorted/invocation_errors_test/00: MissingCompileTimeError # This test has been [ $runtime == dart_precompiled && $minified ] unsorted/symbol_literal_test: Skip # Expects unobfuscated Symbol.toString. - diff --git a/tests/language/language.status b/tests/language/language.status index 523475abcfc..09168584e2e 100644 --- a/tests/language/language.status +++ b/tests/language/language.status @@ -524,4 +524,3 @@ vm/regress_27201_test: Pass, Crash # Requires deferred libraries [ $compiler != dartk && $compiler != dartkp && $compiler != none || $compiler != dartk && $compiler != dartkp && $runtime != vm ] assert_initializer_test/*: Skip # not implemented yet, experiment is VM only. - diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status index 31043caaf11..fe9e13b6a9a 100644 --- a/tests/language/language_dart2js.status +++ b/tests/language/language_dart2js.status @@ -796,4 +796,3 @@ mixin_mixin_bound_test: RuntimeError, OK # Issue 31054: runtimeType.toString not mixin_mixin_type_arguments_test: RuntimeError, OK # Issue 31054: runtimeType.toString not preserved in minified code. regress_21795_test: RuntimeError, OK # Issue 31054: runtimeType.toString not preserved in minified code. stack_trace_test: RuntimeError, OK # Stack trace not preserved in minified code. - diff --git a/tests/language/language_kernel.status b/tests/language/language_kernel.status index 803e9aed0f8..c9903f007a4 100644 --- a/tests/language/language_kernel.status +++ b/tests/language/language_kernel.status @@ -197,4 +197,3 @@ unresolved_top_level_var_negative_test: Fail # modes are intended only for Dart 2.0 with strong mode enabled. [ $compiler == dartk || $compiler == dartkp ] *: Skip - diff --git a/tests/language/language_spec_parser.status b/tests/language/language_spec_parser.status index f9d31ec6845..16dec522f8e 100644 --- a/tests/language/language_spec_parser.status +++ b/tests/language/language_spec_parser.status @@ -36,4 +36,3 @@ test_negative_test: Fail # Negative, uses non-terminated string literal. unary_plus_negative_test: Fail # Negative, uses non-existing unary plus. unhandled_exception_negative_test: Fail # Negative, defaults required parameter. vm/debug_break_enabled_vm_test: Fail # Uses debug break. - diff --git a/tests/language_2/language_2.status b/tests/language_2/language_2.status index 499ddb5e8bf..e4180aa9fa0 100644 --- a/tests/language_2/language_2.status +++ b/tests/language_2/language_2.status @@ -324,4 +324,3 @@ regress_28278_test: Crash # Requires deferred libraries static_closure_identical_test: Pass, Fail # Closure identity vm/optimized_stacktrace_test: Pass, Slow vm/regress_27201_test: Pass, Crash # Requires deferred libraries - diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status index 78aa5bd10d2..aaf47f07ec7 100644 --- a/tests/language_2/language_2_analyzer.status +++ b/tests/language_2/language_2_analyzer.status @@ -1800,4 +1800,3 @@ unresolved_default_constructor_test/01: MissingCompileTimeError unresolved_top_level_method_test: MissingCompileTimeError unresolved_top_level_var_test: MissingCompileTimeError vm/type_vm_test: StaticWarning - diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status index 716c75ee492..abb9fb4fc3f 100644 --- a/tests/language_2/language_2_dart2js.status +++ b/tests/language_2/language_2_dart2js.status @@ -2343,4 +2343,3 @@ mixin_mixin6_test: RuntimeError # Issue 31054 mixin_mixin_bound2_test: RuntimeError # Issue 31054 mixin_mixin_bound_test: RuntimeError # Issue 31054 mixin_mixin_type_arguments_test: RuntimeError # Issue 31054 - diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status index f1d8960f992..ebb5cc13f97 100644 --- a/tests/language_2/language_2_dartdevc.status +++ b/tests/language_2/language_2_dartdevc.status @@ -838,4 +838,3 @@ switch_label_test: RuntimeError # Issue 29920; UnimplementedError: node see https://github.com/dart-lang/sdk/issues/29352 `continue #L1; truncdiv_test: RuntimeError # Issue 29920; Expect.throws fails: Did not throw vm/*: SkipByDesign # VM only tests.; VM only tests. - diff --git a/tests/language_2/language_2_flutter.status b/tests/language_2/language_2_flutter.status index 896791bd071..852a6100998 100644 --- a/tests/language_2/language_2_flutter.status +++ b/tests/language_2/language_2_flutter.status @@ -233,4 +233,3 @@ large_class_declaration_test: SkipSlow # Uses too much memory. [ $compiler == none && $runtime == flutter && $checked ] assert_initializer_test/4*: MissingCompileTimeError # Issue 392. The VM doesn't enforce that potentially const expressions are actually const expressions when the constructor is called with `const`. - diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status index 6be04204f2a..3c1f1a33f88 100644 --- a/tests/language_2/language_2_kernel.status +++ b/tests/language_2/language_2_kernel.status @@ -2171,4 +2171,3 @@ unresolved_top_level_var_test: MissingCompileTimeError [ $compiler == dartk || $compiler == dartkp ] generic_function_bounds_test: RuntimeError # Issue 32076 generic_test/01: MissingCompileTimeError - diff --git a/tests/language_2/language_2_precompiled.status b/tests/language_2/language_2_precompiled.status index aa44ee3f815..c188ce897c6 100644 --- a/tests/language_2/language_2_precompiled.status +++ b/tests/language_2/language_2_precompiled.status @@ -1188,4 +1188,3 @@ vm/no_such_args_error_message_vm_test: Skip vm/no_such_method_error_message_callable_vm_test: Skip vm/no_such_method_error_message_vm_test: Skip vm/regress_28325_test: Skip - diff --git a/tests/language_2/language_2_spec_parser.status b/tests/language_2/language_2_spec_parser.status index 9976a288ab1..e223c59b28b 100644 --- a/tests/language_2/language_2_spec_parser.status +++ b/tests/language_2/language_2_spec_parser.status @@ -93,4 +93,3 @@ unary_plus_negative_test: Fail # Negative, uses non-existing unary plus. vm/debug_break_enabled_vm_test/01: Fail # Uses debug break. vm/debug_break_enabled_vm_test/none: Fail # Uses debug break. void_type_function_types_test: Skip # Not yet supported. - diff --git a/tests/language_2/language_2_vm.status b/tests/language_2/language_2_vm.status index cfbf354b765..3c012b63319 100644 --- a/tests/language_2/language_2_vm.status +++ b/tests/language_2/language_2_vm.status @@ -1300,8 +1300,8 @@ duplicate_export_negative_test: Fail # Issue 6134 dynamic_prefix_core_test/01: RuntimeError # Issue 12478 example_constructor_test: Fail, OK export_ambiguous_main_negative_test: Fail # Issue 14763 -field_initialization_order_test: Fail, OK f_bounded_quantification4_test: RuntimeError, OK # Not running in strong mode. +field_initialization_order_test: Fail, OK generic_methods_bounds_test/02: MissingRuntimeError library_env_test/has_html_support: RuntimeError, OK library_env_test/has_no_io_support: RuntimeError, OK @@ -1336,9 +1336,9 @@ generic_methods_function_type_test: Pass # Issue 25869 generic_methods_generic_function_parameter_test: Pass # Issue 25869 generic_methods_new_test: Pass # Issue 25869 generic_methods_test: Pass # Issue 25869 +nosuchmethod_forwarding/nosuchmethod_forwarding_arguments_test: RuntimeError nosuchmethod_forwarding/nosuchmethod_forwarding_test/05: RuntimeError nosuchmethod_forwarding/nosuchmethod_forwarding_test/06: RuntimeError -nosuchmethod_forwarding/nosuchmethod_forwarding_arguments_test: RuntimeError nsm5_test: MissingCompileTimeError override_inheritance_no_such_method_test/05: MissingCompileTimeError type_alias_equality_test/01: RuntimeError # Issue 32783 diff --git a/tests/lib/lib.status b/tests/lib/lib.status index 280687c417f..220eb6c0dab 100644 --- a/tests/lib/lib.status +++ b/tests/lib/lib.status @@ -399,4 +399,3 @@ mirrors/library_import_deferred_loading_test: Crash # Deferred loading mirrors/library_imports_deferred_test: Crash # Deferred loading mirrors/load_library_test: Crash # Deferred loading mirrors/typedef_deferred_library_test: Crash # Deferred loading - diff --git a/tests/lib_2/lib_2.status b/tests/lib_2/lib_2.status index 52ea01cf6d0..879596b3b67 100644 --- a/tests/lib_2/lib_2.status +++ b/tests/lib_2/lib_2.status @@ -124,14 +124,14 @@ async/stream_first_where_test/badType: MissingCompileTimeError async/stream_last_where_test/badType: MissingCompileTimeError mirrors/redirecting_factory_different_type_test/02: MissingCompileTimeError -[ !$strong && $compiler != fasta && $compiler != dart2analyzer ] -async/future_or_type_test: Fail # Strong mode implements FutureOr, non-strong treats it as dynamic. - [ $builder_tag == mac10_7 && $runtime == safari ] typed_data/setRange_2_test: Fail # Safari doesn't fully implement spec for TypedArray.set typed_data/setRange_3_test: Fail # Safari doesn't fully implement spec for TypedArray.set typed_data/setRange_4_test: Fail # Safari doesn't fully implement spec for TypedArray.set +[ $compiler != dart2analyzer && $compiler != fasta && !$strong ] +async/future_or_type_test: Fail # Strong mode implements FutureOr, non-strong treats it as dynamic. + [ $compiler != dartdevc && $checked && !$strong ] async/future_or_only_in_async_test/00: MissingCompileTimeError @@ -258,4 +258,3 @@ mirrors/library_import_deferred_loading_test: Crash # Deferred loading mirrors/library_imports_deferred_test: Crash # Deferred loading mirrors/load_library_test: Crash # Deferred loading mirrors/typedef_deferred_library_test: Crash # Deferred loading - diff --git a/tests/lib_2/lib_2_analyzer.status b/tests/lib_2/lib_2_analyzer.status index 96499ee02cc..f79c3c3b2d7 100644 --- a/tests/lib_2/lib_2_analyzer.status +++ b/tests/lib_2/lib_2_analyzer.status @@ -47,4 +47,3 @@ mirrors/reflected_type_test/01: MissingCompileTimeError mirrors/reflected_type_test/02: MissingCompileTimeError mirrors/reflected_type_test/03: MissingCompileTimeError mirrors/regress_16321_test/01: MissingCompileTimeError - diff --git a/tests/lib_2/lib_2_dart2js.status b/tests/lib_2/lib_2_dart2js.status index 2025fa084e9..8a6ecd67c46 100644 --- a/tests/lib_2/lib_2_dart2js.status +++ b/tests/lib_2/lib_2_dart2js.status @@ -883,4 +883,3 @@ isolate/large_byte_data_leak_test: RuntimeError html/custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support html/custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this html/fontface_test: Fail # Fontface not supported on these. - diff --git a/tests/lib_2/lib_2_kernel.status b/tests/lib_2/lib_2_kernel.status index 9ea3c4e60be..d51d869b7f1 100644 --- a/tests/lib_2/lib_2_kernel.status +++ b/tests/lib_2/lib_2_kernel.status @@ -368,4 +368,3 @@ typed_data/int32x4_static_test/02: MissingCompileTimeError html/*: SkipByDesign isolate/browser/*: SkipByDesign js/*: SkipByDesign - diff --git a/tests/lib_2/lib_2_precompiled.status b/tests/lib_2/lib_2_precompiled.status index c3b6dec0204..27e575fba22 100644 --- a/tests/lib_2/lib_2_precompiled.status +++ b/tests/lib_2/lib_2_precompiled.status @@ -39,4 +39,3 @@ isolate/unresolved_ports_test: SkipByDesign js/datetime_roundtrip_test: CompileTimeError js/null_test: CompileTimeError js/prototype_access_test: CompileTimeError - diff --git a/tests/lib_2/lib_2_vm.status b/tests/lib_2/lib_2_vm.status index f12416d0d5a..cd8570e3e22 100644 --- a/tests/lib_2/lib_2_vm.status +++ b/tests/lib_2/lib_2_vm.status @@ -92,4 +92,3 @@ convert/utf85_test: Skip # Pass, Slow Issue 12644. [ $arch == simarmv5te || $arch == simarmv6 || $arch == simarm && $runtime == vm ] convert/chunked_conversion_utf88_test: Skip # Pass, Slow Issue 12644. - diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status index 15e2c6958fa..05c6d9c8d5d 100644 --- a/tests/standalone/standalone.status +++ b/tests/standalone/standalone.status @@ -93,4 +93,3 @@ io/secure_socket_bad_data_test: RuntimeError # An error in a secure connection j [ $hot_reload || $hot_reload_rollback ] script_snapshot_depfile_test: RuntimeError, OK # Child VM doesn't execute Dart. script_snapshot_not_executed_test: RuntimeError, OK # Child VM doesn't execute Dart. - diff --git a/tests/standalone_2/standalone_2.status b/tests/standalone_2/standalone_2.status index 5e56ee3d49d..6793ec9a048 100644 --- a/tests/standalone_2/standalone_2.status +++ b/tests/standalone_2/standalone_2.status @@ -176,4 +176,3 @@ io/raw_datagram_read_all_test: Pass, Fail # Timing dependent. io/skipping_dart2js_compilations_test: Pass, Slow # Slow. io/test_runner_test: Pass, Slow # Slow. package/*: SkipByDesign # Launches VMs in interesting ways. - diff --git a/tests/standalone_2/standalone_2_analyzer.status b/tests/standalone_2/standalone_2_analyzer.status index c0ec279ff4c..65c015021fe 100644 --- a/tests/standalone_2/standalone_2_analyzer.status +++ b/tests/standalone_2/standalone_2_analyzer.status @@ -45,4 +45,3 @@ io/process_invalid_arguments_test: StaticWarning io/raw_secure_server_socket_argument_test: StaticWarning io/secure_socket_argument_test: StaticWarning io/stdout_bad_argument_test: StaticWarning - diff --git a/tests/standalone_2/standalone_2_flutter.status b/tests/standalone_2/standalone_2_flutter.status index 2851328bfd6..6eddf966c5a 100644 --- a/tests/standalone_2/standalone_2_flutter.status +++ b/tests/standalone_2/standalone_2_flutter.status @@ -85,4 +85,3 @@ package/scenarios/packages_dir_only/packages_dir_only_test: Fail # Unable to par package/scenarios/packages_file_in_parent/sub/packages_file_in_parent_test: Fail # Unable to parse package files Flutter Issue 9115 package/scenarios/packages_file_only/packages_file_only_test: Fail # Unable to parse package files Flutter Issue 9115 package/scenarios/packages_option_only/packages_option_only_test: Fail # Unable to parse package files Flutter Issue 9115 - diff --git a/tests/standalone_2/standalone_2_kernel.status b/tests/standalone_2/standalone_2_kernel.status index 3ee3c80d8d1..f7e5437f5a0 100644 --- a/tests/standalone_2/standalone_2_kernel.status +++ b/tests/standalone_2/standalone_2_kernel.status @@ -143,4 +143,3 @@ io/web_socket_protocol_processor_test: CompileTimeError [ $fasta && !$strong ] regress_29350_test/none: MissingCompileTimeError - diff --git a/tests/standalone_2/standalone_2_precompiled.status b/tests/standalone_2/standalone_2_precompiled.status index d0a9a549973..99e6eb8a4c6 100644 --- a/tests/standalone_2/standalone_2_precompiled.status +++ b/tests/standalone_2/standalone_2_precompiled.status @@ -76,4 +76,3 @@ package/scenarios/packages_option_only/packages_option_only_test: Skip [ $mode == product || $runtime == dart_precompiled ] io/code_collection_test: Skip # Incompatible flags no_assert_test: SkipByDesign # Requires checked mode. - diff --git a/tests/standalone_2/standalone_2_vm.status b/tests/standalone_2/standalone_2_vm.status index 583b0e2cc7a..4b95f11a2cb 100644 --- a/tests/standalone_2/standalone_2_vm.status +++ b/tests/standalone_2/standalone_2_vm.status @@ -84,4 +84,3 @@ io/file_typed_data_test: Skip # Issue 26109 full_coverage_test: Skip # TODO(vegorov) SIMDBC interpreter doesn't support coverage yet. link_natives_lazily_test: SkipByDesign # SIMDBC interpreter doesn't support lazy linking of natives. no_lazy_dispatchers_test: SkipByDesign # SIMDBC interpreter doesn't support --no_lazy_dispatchers - diff --git a/third_party/pkg_tested/pkg_tested.status b/third_party/pkg_tested/pkg_tested.status index a19ff8d13b9..18998fadeec 100644 --- a/third_party/pkg_tested/pkg_tested.status +++ b/third_party/pkg_tested/pkg_tested.status @@ -5,12 +5,11 @@ # Don't run any test-like files that show up in packages directories. It # shouldn't be necessary to run "pub install" in these packages, but if you do # it shouldn't break the tests. -*/packages/*/*: Skip -*/*/packages/*/*: Skip -*/*/*/packages/*/*: Skip -*/*/*/*/packages/*/*: Skip */*/*/*/*/packages/*/*: Skip - +*/*/*/*/packages/*/*: Skip +*/*/*/packages/*/*: Skip +*/*/packages/*/*: Skip +*/packages/*/*: Skip pub/test/dart2js/compiles_generated_file_from_dependency_test: Pass, Slow pub/test/serve/web_socket/url_to_asset_id_test: Pass, Slow pub/test/transformer/loads_a_diamond_transformer_dependency_graph_test: Pass, Slow @@ -23,7 +22,7 @@ pub/*: SkipByDesign pub/test/run/app_can_read_from_stdin_test: Fail # Issue 19448 pub/test/run/forwards_signal_posix_test: SkipByDesign -[ $runtime == vm && ($mode == debug || $arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simarm64 || $builder_tag == asan) ] +[ $runtime == vm && ($arch == simarm || $arch == simarm64 || $arch == simarmv5te || $arch == simarmv6 || $builder_tag == asan || $mode == debug) ] dart_style/test/command_line_test: Skip # The test controller does not take into account that tests take much longer in debug mode or on simulators. dart_style/test/formatter_test: Skip # The test controller does not take into account that tests take much longer in debug mode or on simulators. diff --git a/tools/gardening/lib/src/results_workflow/fix_failing_test.dart b/tools/gardening/lib/src/results_workflow/fix_failing_test.dart index cb075ba3a13..6e50760f040 100644 --- a/tools/gardening/lib/src/results_workflow/fix_failing_test.dart +++ b/tools/gardening/lib/src/results_workflow/fix_failing_test.dart @@ -193,7 +193,7 @@ class FixFailingTest extends WorkflowStep> { .contains(currentSection.section)) { currentSection.statusFile.sections.add(currentSection.section); } - currentSection.section.entries.add(statusEntry); + currentSection.section.entries.insert(0, statusEntry); changedFiles.add(currentSection.statusFile); } // Save the modified status files. @@ -218,7 +218,8 @@ class FixFailingTest extends WorkflowStep> { section.condition != null && section.condition.normalize().compareTo(expression) == 0, orElse: () => null); - sectionToAdd ??= new StatusSection(expression, 0, []); + sectionToAdd ??= new StatusSection(expression, 0, []) + ..entries.add(new EmptyEntry(0)); var section = new StatusSectionWithFile(statusFile, sectionToAdd); _customSections.add(new _CustomSection(section)); _currentWorkingItem.currentSections.add(section); @@ -321,7 +322,8 @@ class FixWorkingItem { var file = customSection._findStatusFile(files); if (file != null) { var section = customSection._findSectionInFile(file); - section ??= new StatusSection(customSection.condition, 0, []); + section ??= new StatusSection(customSection.condition, 0, []) + ..entries.add(new EmptyEntry(0)); return [new StatusSectionWithFile(file, section)]; } return []; diff --git a/tools/gardening/lib/src/results_workflow/present_failures.dart b/tools/gardening/lib/src/results_workflow/present_failures.dart index db5f0337b13..8fc562a730c 100644 --- a/tools/gardening/lib/src/results_workflow/present_failures.dart +++ b/tools/gardening/lib/src/results_workflow/present_failures.dart @@ -39,10 +39,11 @@ class PresentFailures extends WorkflowStep { } @override - Future input(String input) { + Future input(String input) async { if (input == "y") { - return new Future.value(new BackWorkflowAction()); + return new BackWorkflowAction(); } + return null; } @override diff --git a/utils/tests/peg/peg.status b/utils/tests/peg/peg.status index 0dbf2daf945..c53547d6f13 100644 --- a/utils/tests/peg/peg.status +++ b/utils/tests/peg/peg.status @@ -2,9 +2,6 @@ # 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. -[ $arch == x64 ] -*: Skip - [ $arch == arm ] *: Skip @@ -13,3 +10,6 @@ [ $arch == simarm64 ] *: Skip + +[ $arch == x64 ] +*: Skip