[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 <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This commit is contained in:
Alexander Thomas
2018-04-10 19:03:21 +00:00
committed by commit-bot@chromium.org
parent 7764e6962e
commit 3851591642
56 changed files with 130 additions and 98 deletions
-1
View File
@@ -231,4 +231,3 @@ front_end/tool/_fasta/*: Skip
[ $mode != release || $runtime != vm || $system == windows ]
kernel/test/closures_test: Skip
+43 -10
View File
@@ -70,7 +70,7 @@ class StatusFile {
final String path;
final List<StatusSection> 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<String> lines) {
_parse(lines);
_parse(lines.map((line) => line.trim()).toList());
}
void _parse(List<String> lines) {
@@ -141,23 +141,56 @@ class StatusFile {
commentBelongsToNextSectionHeader(currentLine + 1);
}
// List of comments added before the next section's header.
List<Entry> 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<CommentEntry> sectionHeaderComments = [];
for (var line in lines) {
_lineCount++;
for (; _lineCount <= lines.length; _lineCount++) {
var line = lines[_lineCount - 1];
fail(String message, [List<String> 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<Entry> entries = [];
final List<CommentEntry> sectionHeaderComments;
final List<Entry> sectionHeaderComments;
/// Returns true if this section should apply in the given [environment].
bool isEnabled(Environment environment) =>
@@ -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<StatusSection> newSections = [];
// Copy over all sections and normalize all the expressions.
oldStatusFile.sections.forEach((section) {
+6
View File
@@ -0,0 +1,6 @@
# LICENSE
# Implicit section comment
# Section header comment
[ $browser ]
+10
View File
@@ -0,0 +1,10 @@
# LICENSE
# Implicit section comment
# Comment
[ $browser ]
test1: Fail
[ $compiler == dart2js ]
test2: Crash
+11
View File
@@ -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
+12
View File
@@ -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<T>(List<T> first, List<T> second) {
if (first.length != second.length) {
return false;
@@ -13,4 +13,3 @@ heap_snapshot/element_test: RuntimeError # Issue 27925
# skipping.
[ $runtime == ff || $runtime == ie10 || $runtime == ie11 || $runtime == safari ]
*: SkipByDesign
@@ -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.
@@ -126,4 +126,3 @@ unused_changes_in_last_reload_test: Skip # Times out on sim architectures.
[ $compiler == fasta && $strong ]
add_breakpoint_rpc_test: CompileTimeError
-1
View File
@@ -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.
+22 -23
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -1744,4 +1744,3 @@ LibTest/typed_data/Uint64List/Uint64List.view_A01_t02: CompileTimeError
[ $compiler == dartk || $compiler == dartkp ]
*: SkipByDesign
-1
View File
@@ -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
-1
View File
@@ -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).
@@ -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
@@ -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.
-1
View File
@@ -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.
-1
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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.
-1
View File
@@ -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.
-1
View File
@@ -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.
-1
View File
@@ -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
@@ -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.
-1
View File
@@ -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
@@ -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
@@ -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
@@ -838,4 +838,3 @@ switch_label_test: RuntimeError # Issue 29920; UnimplementedError: node <ShadowC
switch_try_catch_test: RuntimeError # Issue 29920; Expect.throws: Unexpected 'UnimplementedError: node <ShadowContinueSwitchStatement> 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.
@@ -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`.
@@ -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
@@ -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
@@ -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.
+2 -2
View File
@@ -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
-1
View File
@@ -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
+3 -4
View File
@@ -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
-1
View File
@@ -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
-1
View File
@@ -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.
-1
View File
@@ -368,4 +368,3 @@ typed_data/int32x4_static_test/02: MissingCompileTimeError
html/*: SkipByDesign
isolate/browser/*: SkipByDesign
js/*: SkipByDesign
-1
View File
@@ -39,4 +39,3 @@ isolate/unresolved_ports_test: SkipByDesign
js/datetime_roundtrip_test: CompileTimeError
js/null_test: CompileTimeError
js/prototype_access_test: CompileTimeError
-1
View File
@@ -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.
-1
View File
@@ -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.
-1
View File
@@ -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.
@@ -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
@@ -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
@@ -143,4 +143,3 @@ io/web_socket_protocol_processor_test: CompileTimeError
[ $fasta && !$strong ]
regress_29350_test/none: MissingCompileTimeError
@@ -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.
@@ -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
+5 -6
View File
@@ -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.
@@ -193,7 +193,7 @@ class FixFailingTest extends WorkflowStep<List<FailingTest>> {
.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<List<FailingTest>> {
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 [];
@@ -39,10 +39,11 @@ class PresentFailures extends WorkflowStep {
}
@override
Future<WorkflowAction> input(String input) {
Future<WorkflowAction> input(String input) async {
if (input == "y") {
return new Future.value(new BackWorkflowAction());
return new BackWorkflowAction();
}
return null;
}
@override
+3 -3
View File
@@ -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