Index: tools/testing/dart/status_file_parser.dart |
diff --git a/tools/testing/dart/status_file_parser.dart b/tools/testing/dart/status_file_parser.dart |
index eea74c64a36daa170d3368145537ae2ea4ff60ef..49fdc9bf2420589b36a85d69b631d4bf38546e46 100644 |
--- a/tools/testing/dart/status_file_parser.dart |
+++ b/tools/testing/dart/status_file_parser.dart |
@@ -11,6 +11,8 @@ import "dart:io"; |
import "path.dart"; |
import "status_expression.dart"; |
+typedef void Action(); |
+ |
class Expectation { |
// Possible outcomes of running a test. |
static Expectation PASS = byName('Pass'); |
@@ -65,7 +67,8 @@ class Expectation { |
if (_AllExpectations == null) { |
_AllExpectations = new Map<String, Expectation>(); |
- Expectation build(prettyName, {group: null, isMetaExpectation: false}) { |
+ Expectation build(String prettyName, |
+ {Expectation group, bool isMetaExpectation: false}) { |
var expectation = new Expectation._(prettyName, |
group: group, isMetaExpectation: isMetaExpectation); |
assert(!_AllExpectations.containsKey(expectation.name)); |
@@ -109,10 +112,9 @@ class Expectation { |
// "meta marker"). |
final bool isMetaExpectation; |
- Expectation._(prettyName, |
+ Expectation._(this.prettyName, |
{Expectation this.group: null, bool this.isMetaExpectation: false}) |
- : prettyName = prettyName, |
- name = prettyName.toLowerCase(); |
+ : name = prettyName.toLowerCase(); |
bool canBeOutcomeOf(Expectation expectation) { |
Expectation outcome = this; |
@@ -164,17 +166,17 @@ class Section { |
} |
Future<TestExpectations> ReadTestExpectations( |
- List<String> statusFilePaths, Map environment) { |
+ List<String> statusFilePaths, Map<String, String> environment) { |
var testExpectations = new TestExpectations(); |
return Future.wait(statusFilePaths.map((String statusFile) { |
return ReadTestExpectationsInto(testExpectations, statusFile, environment); |
})).then((_) => testExpectations); |
} |
-Future ReadTestExpectationsInto( |
- TestExpectations expectations, String statusFilePath, environment) { |
- var completer = new Completer(); |
- List<Section> sections = new List<Section>(); |
+Future ReadTestExpectationsInto(TestExpectations expectations, |
+ String statusFilePath, Map<String, String> environment) { |
+ var completer = new Completer<Null>(); |
+ var sections = <Section>[]; |
void sectionsRead() { |
for (Section section in sections) { |
@@ -191,7 +193,7 @@ Future ReadTestExpectationsInto( |
return completer.future; |
} |
-void ReadConfigurationInto(Path path, sections, onDone) { |
+void ReadConfigurationInto(Path path, List<Section> sections, Action onDone) { |
StatusFile statusFile = new StatusFile(path); |
File file = new File(path.toNativePath()); |
if (!file.existsSync()) { |
@@ -268,23 +270,23 @@ class TestExpectations { |
// Only create one copy of each Set<Expectation>. |
// We just use .toString as a key, so we may make a few |
// sets that only differ in their toString element order. |
- static Map _cachedSets = new Map(); |
+ static Map<String, Set<Expectation>> _cachedSets = {}; |
- Map _map; |
+ Map<String, Set<Expectation>> _map; |
bool _preprocessed = false; |
- Map _regExpCache; |
- Map _keyToRegExps; |
+ Map<String, RegExp> _regExpCache; |
+ Map<String, List<RegExp>> _keyToRegExps; |
/** |
* Create a TestExpectations object. See the [expectations] method |
* for an explanation of matching. |
*/ |
- TestExpectations() : _map = new Map(); |
+ TestExpectations() : _map = {}; |
/** |
* Add a rule to the expectations. |
*/ |
- void addRule(testRule, environment) { |
+ void addRule(TestRule testRule, environment) { |
// Once we have started using the expectations we cannot add more |
// rules. |
if (_preprocessed) { |
@@ -292,7 +294,9 @@ class TestExpectations { |
} |
var names = testRule.expression.evaluate(environment); |
var expectations = names.map((name) => Expectation.byName(name)); |
- _map.putIfAbsent(testRule.name, () => new Set()).addAll(expectations); |
+ _map |
+ .putIfAbsent(testRule.name, () => new Set<Expectation>()) |
+ .addAll(expectations); |
} |
/** |
@@ -307,21 +311,21 @@ class TestExpectations { |
* "^$keyComponent\$" matches the corresponding filename component. |
*/ |
Set<Expectation> expectations(String filename) { |
- var result = new Set(); |
+ var result = new Set<Expectation>(); |
var splitFilename = filename.split('/'); |
// Create mapping from keys to list of RegExps once and for all. |
_preprocessForMatching(); |
- _map.forEach((key, expectation) { |
- List regExps = _keyToRegExps[key]; |
+ _map.forEach((key, Set<Expectation> expectations) { |
+ List<RegExp> regExps = _keyToRegExps[key]; |
if (regExps.length > splitFilename.length) return; |
for (var i = 0; i < regExps.length; i++) { |
if (!regExps[i].hasMatch(splitFilename[i])) return; |
} |
// If all components of the status file key matches the filename |
// add the expectations to the result. |
- result.addAll(expectation); |
+ result.addAll(expectations); |
}); |
// If no expectations were found the expectation is that the test |
@@ -338,13 +342,13 @@ class TestExpectations { |
void _preprocessForMatching() { |
if (_preprocessed) return; |
- _keyToRegExps = new Map(); |
- _regExpCache = new Map(); |
+ _keyToRegExps = {}; |
+ _regExpCache = {}; |
_map.forEach((key, expectations) { |
if (_keyToRegExps[key] != null) return; |
var splitKey = key.split('/'); |
- var regExps = new List(splitKey.length); |
+ var regExps = new List<RegExp>(splitKey.length); |
for (var i = 0; i < splitKey.length; i++) { |
var component = splitKey[i]; |
var regExp = _regExpCache[component]; |