Index: tools/testing/dart/test_suite.dart |
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart |
index cf0af89723d035f20ea31a7eeaff8d78bbad2c2a..5ffbdf09a3a69be7fa63a625852f5af2744db633 100644 |
--- a/tools/testing/dart/test_suite.dart |
+++ b/tools/testing/dart/test_suite.dart |
@@ -19,6 +19,7 @@ import "dart:io"; |
import "dart:math"; |
import "drt_updater.dart"; |
import "html_test.dart" as htmlTest; |
+import "http_server.dart"; |
import "path.dart"; |
import "multitest.dart"; |
import "expectation.dart"; |
@@ -61,10 +62,10 @@ typedef void VoidFunction(); |
* result of the function. If the function is `null`, returns a future that |
* completes immediately with `null`. |
*/ |
-Future asynchronously(function()) { |
- if (function == null) return new Future.value(null); |
+Future asynchronously<T>(T function()) { |
+ if (function == null) return new Future<T>.value(null); |
- var completer = new Completer(); |
+ var completer = new Completer<T>(); |
Timer.run(() => completer.complete(function())); |
return completer.future; |
@@ -130,7 +131,7 @@ abstract class TestSuite { |
TestUtils.buildDir(configuration); // Sets configuration_directory. |
if (configuration['configuration_directory'] != null) { |
_environmentOverrides = { |
- 'DART_CONFIGURATION': configuration['configuration_directory'] |
+ 'DART_CONFIGURATION': configuration['configuration_directory'] as String |
}; |
} |
runtimeConfiguration = new RuntimeConfiguration(configuration); |
@@ -161,7 +162,7 @@ abstract class TestSuite { |
// using this getter. |
if (suiteName == 'pub') return true; |
- return configuration['use_sdk']; |
+ return configuration['use_sdk'] as bool; |
} |
/** |
@@ -176,7 +177,7 @@ abstract class TestSuite { |
String get compilerPath { |
var compilerConfiguration = new CompilerConfiguration(configuration); |
if (!compilerConfiguration.hasCompiler) return null; |
- String name = compilerConfiguration.computeCompilerPath(buildDir); |
+ var name = compilerConfiguration.computeCompilerPath(buildDir); |
// TODO(ahe): Only validate this once, in test_options.dart. |
TestUtils.ensureExists(name, configuration); |
return name; |
@@ -184,10 +185,10 @@ abstract class TestSuite { |
String get pubPath { |
var prefix = 'sdk/bin/'; |
- if (configuration['use_sdk']) { |
+ if (configuration['use_sdk'] as bool) { |
prefix = '$buildDir/dart-sdk/bin/'; |
} |
- String suffix = getExecutableSuffix('pub'); |
+ var suffix = getExecutableSuffix('pub'); |
var name = '${prefix}pub$suffix'; |
TestUtils.ensureExists(name, configuration); |
return name; |
@@ -196,10 +197,10 @@ abstract class TestSuite { |
/// Returns the name of the Dart VM executable. |
String get dartVmBinaryFileName { |
// Controlled by user with the option "--dart". |
- String dartExecutable = configuration['dart']; |
+ var dartExecutable = configuration['dart'] as String; |
if (dartExecutable == '') { |
- String suffix = executableBinarySuffix; |
+ var suffix = executableBinarySuffix; |
dartExecutable = useSdk |
? '$buildDir/dart-sdk/bin/dart$suffix' |
: '$buildDir/dart$suffix'; |
@@ -212,17 +213,17 @@ abstract class TestSuite { |
/// Returns the name of the flutter engine executable. |
String get flutterEngineBinaryFileName { |
// Controlled by user with the option "--flutter". |
- String flutterExecutable = configuration['flutter']; |
+ var flutterExecutable = configuration['flutter'] as String; |
TestUtils.ensureExists(flutterExecutable, configuration); |
return flutterExecutable; |
} |
String get dartPrecompiledBinaryFileName { |
// Controlled by user with the option "--dart_precompiled". |
- String dartExecutable = configuration['dart_precompiled']; |
+ var dartExecutable = configuration['dart_precompiled'] as String; |
if (dartExecutable == null || dartExecutable == '') { |
- String suffix = executableBinarySuffix; |
+ var suffix = executableBinarySuffix; |
dartExecutable = '$buildDir/dart_precompiled_runtime$suffix'; |
} |
@@ -231,8 +232,8 @@ abstract class TestSuite { |
} |
String get processTestBinaryFileName { |
- String suffix = executableBinarySuffix; |
- String processTestExecutable = '$buildDir/process_test$suffix'; |
+ var suffix = executableBinarySuffix; |
+ var processTestExecutable = '$buildDir/process_test$suffix'; |
TestUtils.ensureExists(processTestExecutable, configuration); |
return processTestExecutable; |
} |
@@ -279,7 +280,9 @@ abstract class TestSuite { |
* cache information about the test suite, so that directories do not need |
* to be listed each time. |
*/ |
- void forEachTest(TestCaseEvent onTest, Map testCache, [VoidFunction onDone]); |
+ Future forEachTest( |
+ TestCaseEvent onTest, Map<String, List<TestInformation>> testCache, |
+ [VoidFunction onDone]); |
// This function will be called for every TestCase of this test suite. |
// It will |
@@ -296,17 +299,19 @@ abstract class TestSuite { |
// Handle sharding based on the original test path (i.e. all multitests |
// of a given original test belong to the same shard) |
- int shards = configuration['shards']; |
- if (shards > 1 && testCase.hash % shards != configuration['shard'] - 1) { |
+ var shards = configuration['shards'] as int; |
+ if (shards > 1 && |
+ testCase.hash % shards != (configuration['shard'] as int) - 1) { |
return; |
} |
// Test if the selector includes this test. |
- RegExp pattern = configuration['selectors'][suiteName]; |
+ var pattern = configuration['selectors'][suiteName] as RegExp; |
if (!pattern.hasMatch(testCase.displayName)) { |
return; |
} |
- if (configuration['hot_reload'] || configuration['hot_reload_rollback']) { |
+ if ((configuration['hot_reload'] as bool) || |
+ (configuration['hot_reload_rollback'] as bool)) { |
// Handle reload special cases. |
if (expectations.contains(Expectation.compileTimeError) || |
testCase.hasCompileError || |
@@ -318,9 +323,9 @@ abstract class TestSuite { |
} |
// Update Summary report |
- if (configuration['report']) { |
+ if (configuration['report'] as bool) { |
if (testCase.expectCompileError && |
- TestUtils.isBrowserRuntime(configuration['runtime']) && |
+ TestUtils.isBrowserRuntime(configuration['runtime'] as String) && |
new CompilerConfiguration(configuration).hasCompiler) { |
summaryReport.addCompileErrorSkipTest(); |
return; |
@@ -384,10 +389,10 @@ abstract class TestSuite { |
*/ |
String createOutputDirectory(Path testPath, String optionsName) { |
- var checked = configuration['checked'] ? '-checked' : ''; |
- var strong = configuration['strong'] ? '-strong' : ''; |
- var minified = configuration['minified'] ? '-minified' : ''; |
- var sdk = configuration['use_sdk'] ? '-sdk' : ''; |
+ var checked = configuration['checked'] as bool ? '-checked' : ''; |
+ var strong = configuration['strong'] as bool ? '-strong' : ''; |
+ var minified = configuration['minified'] as bool ? '-minified' : ''; |
+ var sdk = configuration['use_sdk'] as bool ? '-sdk' : ''; |
var dirName = "${configuration['compiler']}-${configuration['runtime']}" |
"$checked$strong$minified$sdk"; |
return createGeneratedTestDirectoryHelper( |
@@ -395,11 +400,11 @@ abstract class TestSuite { |
} |
String createCompilationOutputDirectory(Path testPath) { |
- var checked = configuration['checked'] ? '-checked' : ''; |
- var strong = configuration['strong'] ? '-strong' : ''; |
- var minified = configuration['minified'] ? '-minified' : ''; |
- var csp = configuration['csp'] ? '-csp' : ''; |
- var sdk = configuration['use_sdk'] ? '-sdk' : ''; |
+ var checked = configuration['checked'] as bool ? '-checked' : ''; |
+ var strong = configuration['strong'] as bool ? '-strong' : ''; |
+ var minified = configuration['minified'] as bool ? '-minified' : ''; |
+ var csp = configuration['csp'] as bool ? '-csp' : ''; |
+ var sdk = configuration['use_sdk'] as bool ? '-sdk' : ''; |
var dirName = "${configuration['compiler']}" |
"$checked$strong$minified$csp$sdk"; |
return createGeneratedTestDirectoryHelper( |
@@ -407,7 +412,7 @@ abstract class TestSuite { |
} |
String createPubspecCheckoutDirectory(Path directoryOfPubspecYaml) { |
- var sdk = configuration['use_sdk'] ? 'sdk' : ''; |
+ var sdk = configuration['use_sdk'] as bool ? 'sdk' : ''; |
return createGeneratedTestDirectoryHelper( |
"pubspec_checkouts", sdk, directoryOfPubspecYaml, ""); |
} |
@@ -424,7 +429,7 @@ Future<Iterable<String>> ccTestLister(String runnerPath) { |
throw "Failed to list tests: '$runnerPath --list'. " |
"Process exited with ${result.exitCode}"; |
} |
- return result.stdout |
+ return (result.stdout as String) |
.split('\n') |
.map((line) => line.trim()) |
.where((name) => name.isNotEmpty); |
@@ -615,7 +620,8 @@ class StandardTestSuite extends TestSuite { |
* particular, if you add 'path/to/mytestsuite' to [TEST_SUITE_DIRECTORIES] |
* in test.dart, this will all be set up for you. |
*/ |
- factory StandardTestSuite.forDirectory(Map configuration, Path directory) { |
+ factory StandardTestSuite.forDirectory( |
+ Map<String, dynamic> configuration, Path directory) { |
var name = directory.filename; |
var status_paths = [ |
'$directory/$name.status', |
@@ -646,7 +652,9 @@ class StandardTestSuite extends TestSuite { |
List<String> additionalOptions(Path filePath) => []; |
- forEachTest(Function onTest, Map testCache, [VoidFunction onDone]) async { |
+ Future forEachTest( |
+ Function onTest, Map<String, List<TestInformation>> testCache, |
+ [VoidFunction onDone]) async { |
await updateDartium(); |
doTest = onTest; |
testExpectations = readExpectations(); |
@@ -739,18 +747,21 @@ class StandardTestSuite extends TestSuite { |
var optionsFromFile = readOptionsFromFile(filePath); |
CreateTest createTestCase = makeTestCaseCreator(optionsFromFile); |
- if (optionsFromFile['isMultitest']) { |
+ if (optionsFromFile['isMultitest'] as bool) { |
group.add(doMultitest( |
filePath, |
buildDir, |
suiteDir, |
createTestCase, |
- (configuration['hot_reload'] || |
- configuration['hot_reload_rollback']))); |
+ ((configuration['hot_reload'] as bool) || |
+ (configuration['hot_reload_rollback'] as bool)))); |
} else { |
- createTestCase(filePath, filePath, optionsFromFile['hasCompileError'], |
- optionsFromFile['hasRuntimeError'], |
- hasStaticWarning: optionsFromFile['hasStaticWarning']); |
+ createTestCase( |
+ filePath, |
+ filePath, |
+ optionsFromFile['hasCompileError'] as bool, |
+ optionsFromFile['hasRuntimeError'] as bool, |
+ hasStaticWarning: optionsFromFile['hasStaticWarning'] as bool); |
} |
} |
@@ -775,8 +786,9 @@ class StandardTestSuite extends TestSuite { |
void enqueueTestCaseFromTestInformation(TestInformation info) { |
String testName = buildTestCaseDisplayName(suiteDir, info.originTestPath, |
- multitestName: |
- info.optionsFromFile['isMultitest'] ? info.multitestKey : ""); |
+ multitestName: info.optionsFromFile['isMultitest'] as bool |
+ ? info.multitestKey |
+ : ""); |
Set<Expectation> expectations = testExpectations.expectations(testName); |
if (info is HtmlTestInformation) { |
enqueueHtmlTest(info, testName, expectations); |
@@ -793,11 +805,11 @@ class StandardTestSuite extends TestSuite { |
if (optionsFromFile['packageRoot'] == null && |
optionsFromFile['packages'] == null) { |
if (configuration['package_root'] != null) { |
- packageRoot = new Path(configuration['package_root']); |
+ packageRoot = new Path(configuration['package_root'] as String); |
optionsFromFile['packageRoot'] = packageRoot.toNativePath(); |
} |
if (configuration['packages'] != null) { |
- Path packages = new Path(configuration['packages']); |
+ Path packages = new Path(configuration['packages'] as String); |
optionsFromFile['packages'] = packages.toNativePath(); |
} |
} |
@@ -807,14 +819,14 @@ class StandardTestSuite extends TestSuite { |
// compiler, we never need to attempt to run the program (in a |
// browser or otherwise). |
enqueueStandardTest(baseCommands, info, testName, expectations); |
- } else if (TestUtils.isBrowserRuntime(configuration['runtime'])) { |
- if (info.optionsFromFile['isMultiHtmlTest']) { |
+ } else if (TestUtils.isBrowserRuntime(configuration['runtime'] as String)) { |
+ if (info.optionsFromFile['isMultiHtmlTest'] as bool) { |
// A browser multi-test has multiple expectations for one test file. |
// Find all the different sub-test expecations for one entire test file. |
- List<String> subtestNames = info.optionsFromFile['subtestNames']; |
- Map<String, Set<Expectation>> multiHtmlTestExpectations = {}; |
- for (String name in subtestNames) { |
- String fullTestName = '$testName/$name'; |
+ var subtestNames = info.optionsFromFile['subtestNames'] as List<String>; |
+ var multiHtmlTestExpectations = <String, Set<Expectation>>{}; |
+ for (var name in subtestNames) { |
+ var fullTestName = '$testName/$name'; |
multiHtmlTestExpectations[fullTestName] = |
testExpectations.expectations(fullTestName); |
} |
@@ -834,7 +846,7 @@ class StandardTestSuite extends TestSuite { |
var commonArguments = |
commonArgumentsFromFile(info.filePath, info.optionsFromFile); |
- List<List<String>> vmOptionsList = getVmOptions(info.optionsFromFile); |
+ var vmOptionsList = getVmOptions(info.optionsFromFile); |
assert(!vmOptionsList.isEmpty); |
for (var vmOptionsVariant = 0; |
@@ -843,7 +855,7 @@ class StandardTestSuite extends TestSuite { |
var vmOptions = vmOptionsList[vmOptionsVariant]; |
var allVmOptions = vmOptions; |
if (!extraVmOptions.isEmpty) { |
- allVmOptions = new List.from(vmOptions)..addAll(extraVmOptions); |
+ allVmOptions = vmOptions.toList()..addAll(extraVmOptions); |
} |
var commands = baseCommands.toList(); |
@@ -857,12 +869,12 @@ class StandardTestSuite extends TestSuite { |
bool expectCompileError(TestInformation info) { |
return info.hasCompileError || |
- (configuration['checked'] && info.hasCompileErrorIfChecked); |
+ ((configuration['checked'] as bool) && info.hasCompileErrorIfChecked); |
} |
bool isNegative(TestInformation info) { |
bool negative = expectCompileError(info) || |
- (configuration['checked'] && info.isNegativeIfChecked); |
+ ((configuration['checked'] as bool) && info.isNegativeIfChecked); |
if (info.hasRuntimeError && hasRuntime) { |
negative = true; |
} |
@@ -873,7 +885,7 @@ class StandardTestSuite extends TestSuite { |
List<String> vmOptions, List<String> args) { |
var commands = <Command>[]; |
var compilerConfiguration = new CompilerConfiguration(configuration); |
- List<String> sharedOptions = info.optionsFromFile['sharedOptions']; |
+ var sharedOptions = info.optionsFromFile['sharedOptions'] as List<String>; |
var compileTimeArguments = <String>[]; |
String tempDir; |
@@ -888,7 +900,8 @@ class StandardTestSuite extends TestSuite { |
} |
tempDir = createCompilationOutputDirectory(path); |
- List<String> otherResources = info.optionsFromFile['otherResources']; |
+ var otherResources = |
+ info.optionsFromFile['otherResources'] as List<String>; |
for (var name in otherResources) { |
var namePath = new Path(name); |
var fromPath = info.filePath.directoryPath.join(namePath); |
@@ -904,7 +917,7 @@ class StandardTestSuite extends TestSuite { |
CommandBuilder.instance, |
compileTimeArguments, |
environmentOverrides); |
- if (!configuration['skip-compilation']) { |
+ if (!(configuration['skip-compilation'] as bool)) { |
commands.addAll(compilationArtifact.commands); |
} |
@@ -988,19 +1001,20 @@ class StandardTestSuite extends TestSuite { |
Uri _getUriForBrowserTest(String pathComponent, String subtestName) { |
// Note: If we run test.py with the "--list" option, no http servers |
// will be started. So we return a dummy url instead. |
- if (configuration['list']) { |
+ if (configuration['list'] as bool) { |
return Uri.parse('http://listing_the_tests_only'); |
} |
assert(configuration.containsKey('_servers_')); |
- int serverPort = configuration['_servers_'].port; |
- int crossOriginPort = configuration['_servers_'].crossOriginPort; |
+ var servers = configuration['_servers_'] as TestingServers; |
+ var serverPort = servers.port; |
+ var crossOriginPort = servers.crossOriginPort; |
var parameters = {'crossOriginPort': crossOriginPort.toString()}; |
if (subtestName != null) { |
parameters['group'] = subtestName; |
} |
return new Uri( |
scheme: 'http', |
- host: configuration['local_ip'], |
+ host: configuration['local_ip'] as String, |
port: serverPort, |
path: pathComponent, |
queryParameters: parameters); |
@@ -1038,13 +1052,13 @@ class StandardTestSuite extends TestSuite { |
String testName, |
/* Set<Expectation> | Map<String, Set<Expectation>> */ dynamic |
expectations) { |
- RegExp badChars = new RegExp('[-=/]'); |
- List VmOptionsList = getVmOptions(info.optionsFromFile); |
- bool multipleOptions = VmOptionsList.length > 1; |
- for (var vmOptions in VmOptionsList) { |
- String optionsName = |
+ var badChars = new RegExp('[-=/]'); |
+ var vmOptionsList = getVmOptions(info.optionsFromFile); |
+ var multipleOptions = vmOptionsList.length > 1; |
+ for (var vmOptions in vmOptionsList) { |
+ var optionsName = |
multipleOptions ? vmOptions.join('-').replaceAll(badChars, '') : ''; |
- String tempDir = createOutputDirectory(info.filePath, optionsName); |
+ var tempDir = createOutputDirectory(info.filePath, optionsName); |
enqueueBrowserTestWithOptions(baseCommands, packageRoot, packages, info, |
testName, expectations, vmOptions, tempDir); |
} |
@@ -1065,8 +1079,8 @@ class StandardTestSuite extends TestSuite { |
Path filePath = info.filePath; |
String filename = filePath.toString(); |
- final String compiler = configuration['compiler']; |
- final String runtime = configuration['runtime']; |
+ var compiler = configuration['compiler'] as String; |
+ var runtime = configuration['runtime'] as String; |
final Map optionsFromFile = info.optionsFromFile; |
final String compilationTempDir = |
@@ -1158,11 +1172,11 @@ class StandardTestSuite extends TestSuite { |
} |
// some tests require compiling multiple input scripts. |
- List<String> otherScripts = optionsFromFile['otherScripts']; |
- for (String name in otherScripts) { |
- Path namePath = new Path(name); |
- String fileName = namePath.filename; |
- Path fromPath = filePath.directoryPath.join(namePath); |
+ var otherScripts = optionsFromFile['otherScripts'] as List<String>; |
+ for (var name in otherScripts) { |
+ var namePath = new Path(name); |
+ var fileName = namePath.filename; |
+ var fromPath = filePath.directoryPath.join(namePath); |
if (compiler != 'none') { |
assert(namePath.extension == 'dart'); |
commands.add(_compileCommand(fromPath.toNativePath(), |
@@ -1172,18 +1186,19 @@ class StandardTestSuite extends TestSuite { |
// For the tests that require multiple input scripts but are not |
// compiled, move the input scripts over with the script so they can |
// be accessed. |
- String result = new File(fromPath.toNativePath()).readAsStringSync(); |
+ var result = new File(fromPath.toNativePath()).readAsStringSync(); |
new File('$tempDir/$fileName').writeAsStringSync(result); |
} |
} |
// Variables for browser multi-tests. |
- bool multitest = info.optionsFromFile['isMultiHtmlTest']; |
- List<String> subtestNames = |
- multitest ? info.optionsFromFile['subtestNames'] : [null]; |
- for (String subtestName in subtestNames) { |
+ var multitest = info.optionsFromFile['isMultiHtmlTest'] as bool; |
+ var subtestNames = multitest |
+ ? (info.optionsFromFile['subtestNames'] as List<String>) |
+ : <String>[null]; |
+ for (var subtestName in subtestNames) { |
// Construct the command that executes the browser test |
- List<Command> commandSet = new List<Command>.from(commands); |
+ var commandSet = commands.toList(); |
var htmlPath_subtest = _createUrlPathFromFile(new Path(htmlPath)); |
var fullHtmlPath = |
@@ -1205,7 +1220,7 @@ class StandardTestSuite extends TestSuite { |
} |
if (compiler == 'none') { |
dartFlags.add('--ignore-unrecognized-flags'); |
- if (configuration["checked"]) { |
+ if (configuration["checked"] as bool) { |
dartFlags.add('--enable_asserts'); |
dartFlags.add("--enable_type_checks"); |
} |
@@ -1225,7 +1240,8 @@ class StandardTestSuite extends TestSuite { |
// Create BrowserTestCase and queue it. |
var fullTestName = multitest ? '$testName/$subtestName' : testName; |
- var expectation = multitest ? expectations[fullTestName] : expectations; |
+ var expectation = (multitest ? expectations[fullTestName] : expectations) |
+ as Set<Expectation>; |
var testCase = new BrowserTestCase('$suiteName/$fullTestName', commandSet, |
configuration, expectation, info, isNegative(info), fullHtmlPath); |
@@ -1235,8 +1251,8 @@ class StandardTestSuite extends TestSuite { |
void enqueueHtmlTest(HtmlTestInformation info, String testName, |
Set<Expectation> expectations) { |
- final String compiler = configuration['compiler']; |
- final String runtime = configuration['runtime']; |
+ var compiler = configuration['compiler'] as String; |
+ var runtime = configuration['runtime'] as String; |
// Html tests work only with the browser controller. |
if (!TestUtils.isBrowserRuntime(runtime) || runtime == 'drt') { |
return; |
@@ -1312,12 +1328,12 @@ class StandardTestSuite extends TestSuite { |
args = []; |
} |
args.addAll(TestUtils.standardOptions(configuration)); |
- String packages = packagesArgument( |
- optionsFromFile['packageRoot'], optionsFromFile['packages']); |
+ var packages = packagesArgument(optionsFromFile['packageRoot'] as String, |
+ optionsFromFile['packages'] as String); |
if (packages != null) args.add(packages); |
args.add('--out=$outputFile'); |
args.add(inputFile); |
- List<String> options = optionsFromFile['sharedOptions']; |
+ var options = optionsFromFile['sharedOptions'] as List<String>; |
if (options != null) args.addAll(options); |
return CommandBuilder.instance.getCompilationCommand( |
compiler, |
@@ -1333,8 +1349,8 @@ class StandardTestSuite extends TestSuite { |
Command _polymerDeployCommand( |
String inputFile, String outputDir, Map optionsFromFile) { |
List<String> args = []; |
- String packages = packagesArgument( |
- optionsFromFile['packageRoot'], optionsFromFile['packages']); |
+ String packages = packagesArgument(optionsFromFile['packageRoot'] as String, |
+ optionsFromFile['packages'] as String); |
if (packages != null) args.add(packages); |
args |
..add('package:polymer/deploy.dart') |
@@ -1344,14 +1360,14 @@ class StandardTestSuite extends TestSuite { |
..add(outputDir) |
..add('--file-filter') |
..add('.svn'); |
- if (configuration['csp']) args.add('--csp'); |
+ if (configuration['csp'] as bool) args.add('--csp'); |
return CommandBuilder.instance.getProcessCommand( |
'polymer_deploy', dartVmBinaryFileName, args, environmentOverrides); |
} |
String get scriptType { |
- switch (configuration['compiler']) { |
+ switch (configuration['compiler'] as String) { |
case 'none': |
return 'application/dart'; |
case 'dart2js': |
@@ -1366,7 +1382,7 @@ class StandardTestSuite extends TestSuite { |
} |
bool get hasRuntime { |
- switch (configuration['runtime']) { |
+ switch (configuration['runtime'] as String) { |
case 'none': |
return false; |
default: |
@@ -1376,7 +1392,7 @@ class StandardTestSuite extends TestSuite { |
String get contentShellFilename { |
if (configuration['drt'] != '') { |
- return configuration['drt']; |
+ return configuration['drt'] as String; |
} |
if (Platform.operatingSystem == 'macos') { |
final path = dartDir.append( |
@@ -1389,13 +1405,13 @@ class StandardTestSuite extends TestSuite { |
List<String> commonArgumentsFromFile(Path filePath, Map optionsFromFile) { |
var args = TestUtils.standardOptions(configuration); |
- String packages = packagesArgument( |
- optionsFromFile['packageRoot'], optionsFromFile['packages']); |
+ String packages = packagesArgument(optionsFromFile['packageRoot'] as String, |
+ optionsFromFile['packages'] as String); |
if (packages != null) { |
args.add(packages); |
} |
args.addAll(additionalOptions(filePath)); |
- if (configuration['analyzer']) { |
+ if (configuration['analyzer'] as bool) { |
args.add('--format=machine'); |
args.add('--no-hints'); |
} |
@@ -1406,8 +1422,8 @@ class StandardTestSuite extends TestSuite { |
args.add("--use-dart2js-libraries"); |
} |
- bool isMultitest = optionsFromFile["isMultitest"]; |
- List<String> dartOptions = optionsFromFile["dartOptions"]; |
+ var isMultitest = optionsFromFile["isMultitest"] as bool; |
+ var dartOptions = optionsFromFile["dartOptions"] as List<String>; |
assert(!isMultitest || dartOptions == null); |
args.add(filePath.toNativePath()); |
@@ -1579,35 +1595,34 @@ class StandardTestSuite extends TestSuite { |
} |
} |
- List<String> otherScripts = new List<String>(); |
+ var otherScripts = <String>[]; |
matches = otherScriptsRegExp.allMatches(contents); |
for (var match in matches) { |
otherScripts.addAll(match[1].split(' ').where((e) => e != '').toList()); |
} |
- List<String> otherResources = new List<String>(); |
+ var otherResources = <String>[]; |
matches = otherResourcesRegExp.allMatches(contents); |
for (var match in matches) { |
otherResources.addAll(match[1].split(' ').where((e) => e != '').toList()); |
} |
- bool isMultitest = multiTestRegExp.hasMatch(contents); |
- bool isMultiHtmlTest = multiHtmlTestRegExp.hasMatch(contents); |
- Match isolateMatch = isolateStubsRegExp.firstMatch(contents); |
- String isolateStubs = isolateMatch != null ? isolateMatch[1] : ''; |
- bool containsDomImport = domImportRegExp.hasMatch(contents); |
- |
- List<String> subtestNames = []; |
- Iterator matchesIter = |
- multiHtmlTestGroupRegExp.allMatches(contents).iterator; |
+ var isMultitest = multiTestRegExp.hasMatch(contents); |
+ var isMultiHtmlTest = multiHtmlTestRegExp.hasMatch(contents); |
+ var isolateMatch = isolateStubsRegExp.firstMatch(contents); |
+ var isolateStubs = isolateMatch != null ? isolateMatch[1] : ''; |
+ var containsDomImport = domImportRegExp.hasMatch(contents); |
+ |
+ var subtestNames = <String>[]; |
+ var matchesIter = multiHtmlTestGroupRegExp.allMatches(contents).iterator; |
while (matchesIter.moveNext() && isMultiHtmlTest) { |
- String fullMatch = matchesIter.current.group(0); |
+ var fullMatch = matchesIter.current.group(0); |
subtestNames.add(fullMatch.substring(fullMatch.indexOf("'") + 1)); |
} |
return { |
"vmOptions": result, |
- "sharedOptions": sharedOptions == null ? [] : sharedOptions, |
+ "sharedOptions": sharedOptions ?? [], |
"dartOptions": dartOptions, |
"packageRoot": packageRoot, |
"packages": packages, |
@@ -1657,7 +1672,7 @@ class StandardTestSuite extends TestSuite { |
var needsVmOptions = COMPILERS.contains(configuration['compiler']) && |
RUNTIMES.contains(configuration['runtime']); |
if (!needsVmOptions) return [[]]; |
- return optionsFromFile['vmOptions']; |
+ return optionsFromFile['vmOptions'] as List<List<String>>; |
} |
/** |
@@ -1705,7 +1720,7 @@ class StandardTestSuite extends TestSuite { |
/// Used for testing packages in on off settings, i.e., we pass in the actual |
/// directory that we want to test. |
class PKGTestSuite extends StandardTestSuite { |
- PKGTestSuite(Map configuration, Path directoryPath) |
+ PKGTestSuite(Map<String, dynamic> configuration, Path directoryPath) |
: super(configuration, directoryPath.filename, directoryPath, |
["$directoryPath/.status"], |
isTestFilePredicate: (f) => f.endsWith('_test.dart'), |
@@ -1719,28 +1734,28 @@ class PKGTestSuite extends StandardTestSuite { |
String testName, |
/* Set<Expectation> | Map<String, Set<Expectation>> */ dynamic |
expectations) { |
- String runtime = configuration['runtime']; |
- Path filePath = info.filePath; |
- Path dir = filePath.directoryPath; |
- String nameNoExt = filePath.filenameWithoutExtension; |
- Path customHtmlPath = dir.append('$nameNoExt.html'); |
- File customHtml = new File(customHtmlPath.toNativePath()); |
+ var runtime = configuration['runtime'] as String; |
+ var filePath = info.filePath; |
+ var dir = filePath.directoryPath; |
+ var nameNoExt = filePath.filenameWithoutExtension; |
+ var customHtmlPath = dir.append('$nameNoExt.html'); |
+ var customHtml = new File(customHtmlPath.toNativePath()); |
if (!customHtml.existsSync()) { |
super.enqueueBrowserTest( |
baseCommands, packageRoot, packages, info, testName, expectations); |
} else { |
- Path relativeHtml = customHtmlPath.relativeTo(TestUtils.dartDir); |
+ var relativeHtml = customHtmlPath.relativeTo(TestUtils.dartDir); |
var commands = baseCommands.toList(); |
var fullPath = _createUrlPathFromFile(customHtmlPath); |
commands.add(CommandBuilder.instance.getBrowserTestCommand( |
runtime, fullPath, configuration, !isNegative(info))); |
- String testDisplayName = '$suiteName/$testName'; |
+ var testDisplayName = '$suiteName/$testName'; |
enqueueNewTestCase(new BrowserTestCase( |
testDisplayName, |
commands, |
configuration, |
- expectations, |
+ expectations as Set<Expectation>, |
info, |
isNegative(info), |
relativeHtml.toNativePath())); |
@@ -1756,7 +1771,7 @@ class DartcCompilationTestSuite extends StandardTestSuite { |
List<String> _testDirs; |
DartcCompilationTestSuite( |
- Map configuration, |
+ Map<String, dynamic> configuration, |
String suiteName, |
String directoryPath, |
List<String> this._testDirs, |
@@ -1782,11 +1797,12 @@ class DartcCompilationTestSuite extends StandardTestSuite { |
} |
class AnalyzeLibraryTestSuite extends DartcCompilationTestSuite { |
- static String libraryPath(Map configuration) => configuration['use_sdk'] |
- ? '${TestUtils.buildDir(configuration)}/dart-sdk' |
- : 'sdk'; |
+ static String libraryPath(Map<String, dynamic> configuration) => |
+ configuration['use_sdk'] as bool |
+ ? '${TestUtils.buildDir(configuration)}/dart-sdk' |
+ : 'sdk'; |
- AnalyzeLibraryTestSuite(Map configuration) |
+ AnalyzeLibraryTestSuite(Map<String, dynamic> configuration) |
: super(configuration, 'analyze_library', libraryPath(configuration), |
['lib'], ['tests/lib/analyzer/analyze_library.status']); |
@@ -1953,11 +1969,11 @@ class TestUtils { |
if (configuration['compiler'] == 'dart2app' || |
configuration['compiler'] == 'dart2appjit' || |
configuration['compiler'] == 'precompiler') { |
- var checked = configuration['checked'] ? '-checked' : ''; |
- var strong = configuration['strong'] ? '-strong' : ''; |
- var minified = configuration['minified'] ? '-minified' : ''; |
- var csp = configuration['csp'] ? '-csp' : ''; |
- var sdk = configuration['use_sdk'] ? '-sdk' : ''; |
+ var checked = (configuration['checked'] as bool) ? '-checked' : ''; |
+ var strong = (configuration['strong'] as bool) ? '-strong' : ''; |
+ var minified = (configuration['minified'] as bool) ? '-minified' : ''; |
+ var csp = (configuration['csp'] as bool) ? '-csp' : ''; |
+ var sdk = (configuration['use_sdk'] as bool) ? '-sdk' : ''; |
var dirName = "${configuration['compiler']}" |
"$checked$strong$minified$csp$sdk"; |
String generatedPath = "${TestUtils.buildDir(configuration)}" |
@@ -1980,7 +1996,8 @@ class TestUtils { |
static const testOutcomeFileName = ".test-outcome.log"; |
static void ensureExists(String filename, Map configuration) { |
- if (!configuration['list'] && !existsCache.doesFileExist(filename)) { |
+ if (!(configuration['list'] as bool) && |
+ !existsCache.doesFileExist(filename)) { |
throw "'$filename' does not exist"; |
} |
} |
@@ -1994,7 +2011,7 @@ class TestUtils { |
static String outputDir(Map configuration) { |
var result = ''; |
- var system = configuration['system']; |
+ var system = configuration['system'] as String; |
if (system == 'fuchsia' || |
system == 'linux' || |
system == 'android' || |
@@ -2010,28 +2027,29 @@ class TestUtils { |
static List<String> standardOptions(Map configuration) { |
var args = ["--ignore-unrecognized-flags"]; |
- String compiler = configuration["compiler"]; |
+ var compiler = configuration["compiler"] as String; |
if (compiler == "dart2js") { |
args = ['--generate-code-with-compile-time-errors', '--test-mode']; |
- if (configuration["checked"]) { |
+ if (configuration["checked"] as bool) { |
args.add('--enable-checked-mode'); |
} |
// args.add("--verbose"); |
- if (!isBrowserRuntime(configuration['runtime'])) { |
+ if (!isBrowserRuntime(configuration['runtime'] as String)) { |
args.add("--allow-mock-compilation"); |
args.add("--categories=all"); |
} |
} |
- if ((compiler == "dart2js") && configuration["minified"]) { |
+ if ((compiler == "dart2js") && (configuration["minified"] as bool)) { |
args.add("--minify"); |
} |
- if (compiler == "dart2js" && configuration["csp"]) { |
+ if (compiler == "dart2js" && (configuration["csp"] as bool)) { |
args.add("--csp"); |
} |
- if (compiler == "dart2js" && configuration["fast_startup"]) { |
+ if (compiler == "dart2js" && (configuration["fast_startup"] as bool)) { |
args.add("--fast-startup"); |
} |
- if (compiler == "dart2js" && configuration["dart2js_with_kernel"]) { |
+ if (compiler == "dart2js" && |
+ (configuration["dart2js_with_kernel"] as bool)) { |
args.add("--use-kernel"); |
} |
return args; |
@@ -2070,10 +2088,10 @@ class TestUtils { |
if (configuration['build_directory'] == '') { |
configuration['configuration_directory'] = |
configurationDir(configuration); |
- configuration['build_directory'] = |
- outputDir(configuration) + configuration['configuration_directory']; |
+ configuration['build_directory'] = outputDir(configuration) + |
+ (configuration['configuration_directory'] as String); |
} |
- return configuration['build_directory']; |
+ return configuration['build_directory'] as String; |
} |
static String configurationDir(Map configuration) { |
@@ -2086,7 +2104,7 @@ class TestUtils { |
// and a normal version to be present (except if you specifically pass |
// in the build_directory). |
String mode; |
- switch (configuration['mode']) { |
+ switch (configuration['mode'] as String) { |
case 'debug': |
mode = 'Debug'; |
break; |
@@ -2100,7 +2118,7 @@ class TestUtils { |
throw 'Unrecognized mode configuration: ${configuration['mode']}'; |
} |
String os; |
- switch (configuration['system']) { |
+ switch (configuration['system'] as String) { |
case 'android': |
os = 'Android'; |
break; |
@@ -2113,7 +2131,7 @@ class TestUtils { |
default: |
throw 'Unrecognized operating system: ${configuration['system']}'; |
} |
- var arch = configuration['arch'].toUpperCase(); |
+ var arch = (configuration['arch'] as String).toUpperCase(); |
var normal = '$mode$os$arch'; |
var cross = '$mode${os}X$arch'; |
var outDir = outputDir(configuration); |
@@ -2134,7 +2152,7 @@ class TestUtils { |
*/ |
static List<String> getExtraOptions(Map configuration, String key) { |
if (configuration[key] == null) return <String>[]; |
- return configuration[key] |
+ return (configuration[key] as String) |
.split(" ") |
.map((s) => s.trim()) |
.where((s) => s.isNotEmpty) |