Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Side by Side Diff: tools/testing/dart/test_suite.dart

Issue 2981223002: Remove Dartium support from test.dart. (Closed)
Patch Set: Remove "dartium" from status files. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/testing/dart/test_runner.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * Classes and methods for enumerating and preparing tests. 6 * Classes and methods for enumerating and preparing tests.
7 * 7 *
8 * This library includes: 8 * This library includes:
9 * 9 *
10 * - Creating tests by listing all the Dart files in certain directories, 10 * - Creating tests by listing all the Dart files in certain directories,
11 * and creating [TestCase]s for those files that meet the relevant criteria. 11 * and creating [TestCase]s for those files that meet the relevant criteria.
12 * - Preparing tests, including copying files and frameworks to temporary 12 * - Preparing tests, including copying files and frameworks to temporary
13 * directories, and computing the command line and arguments to be run. 13 * directories, and computing the command line and arguments to be run.
14 */ 14 */
15 import 'dart:async'; 15 import 'dart:async';
16 import 'dart:io'; 16 import 'dart:io';
17 17
18 import 'browser_test.dart'; 18 import 'browser_test.dart';
19 import 'command.dart'; 19 import 'command.dart';
20 import 'compiler_configuration.dart'; 20 import 'compiler_configuration.dart';
21 import 'configuration.dart'; 21 import 'configuration.dart';
22 import 'drt_updater.dart';
23 import 'expectation.dart'; 22 import 'expectation.dart';
24 import 'expectation_set.dart'; 23 import 'expectation_set.dart';
25 import 'html_test.dart' as html_test; 24 import 'html_test.dart' as html_test;
26 import 'http_server.dart'; 25 import 'http_server.dart';
27 import 'multitest.dart'; 26 import 'multitest.dart';
28 import 'path.dart'; 27 import 'path.dart';
28 import 'runtime_updater.dart';
29 import 'summary_report.dart'; 29 import 'summary_report.dart';
30 import 'test_configurations.dart'; 30 import 'test_configurations.dart';
31 import 'test_runner.dart'; 31 import 'test_runner.dart';
32 import 'utils.dart'; 32 import 'utils.dart';
33 33
34 RegExp multiHtmlTestGroupRegExp = new RegExp(r"\s*[^/]\s*group\('[^,']*"); 34 RegExp multiHtmlTestGroupRegExp = new RegExp(r"\s*[^/]\s*group\('[^,']*");
35 RegExp multiHtmlTestRegExp = new RegExp(r"useHtmlIndividualConfiguration()"); 35 RegExp multiHtmlTestRegExp = new RegExp(r"useHtmlIndividualConfiguration()");
36 // Require at least one non-space character before '//[/#]' 36 // Require at least one non-space character before '//[/#]'
37 RegExp multiTestRegExp = new RegExp(r"\S *" 37 RegExp multiTestRegExp = new RegExp(r"\S *"
38 r"//[#/] \w+:(.*)"); 38 r"//[#/] \w+:(.*)");
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 return filename.endsWith("Test.dart"); 639 return filename.endsWith("Test.dart");
640 } 640 }
641 641
642 bool isHtmlTestFile(String filename) => filename.endsWith('_htmltest.html'); 642 bool isHtmlTestFile(String filename) => filename.endsWith('_htmltest.html');
643 643
644 List<String> additionalOptions(Path filePath) => []; 644 List<String> additionalOptions(Path filePath) => [];
645 645
646 Future forEachTest( 646 Future forEachTest(
647 Function onTest, Map<String, List<TestInformation>> testCache, 647 Function onTest, Map<String, List<TestInformation>> testCache,
648 [VoidFunction onDone]) async { 648 [VoidFunction onDone]) async {
649 await updateDartium(); 649 if (configuration.runtime == Runtime.drt && !configuration.listTests) {
650 await updateContentShell(configuration.drtPath);
651 }
652
650 doTest = onTest; 653 doTest = onTest;
651 testExpectations = readExpectations(); 654 testExpectations = readExpectations();
652 655
653 // Check if we have already found and generated the tests for this suite. 656 // Check if we have already found and generated the tests for this suite.
654 if (!testCache.containsKey(suiteName)) { 657 if (!testCache.containsKey(suiteName)) {
655 cachedTests = testCache[suiteName] = <TestInformation>[]; 658 cachedTests = testCache[suiteName] = <TestInformation>[];
656 await enqueueTests(); 659 await enqueueTests();
657 } else { 660 } else {
658 for (var info in testCache[suiteName]) { 661 for (var info in testCache[suiteName]) {
659 enqueueTestCaseFromTestInformation(info); 662 enqueueTestCaseFromTestInformation(info);
660 } 663 }
661 } 664 }
662 testExpectations = null; 665 testExpectations = null;
663 cachedTests = null; 666 cachedTests = null;
664 doTest = null; 667 doTest = null;
665 if (onDone != null) onDone(); 668 if (onDone != null) onDone();
666 } 669 }
667 670
668 /** 671 /**
669 * If Content shell/Dartium is required, and not yet updated, waits for
670 * the update then completes. Otherwise completes immediately.
671 */
672 Future updateDartium() {
673 var completer = new Completer();
674 var updater = runtimeUpdater(configuration.runtime, configuration.drtPath,
675 configuration.dartiumPath);
676 if (updater == null || updater.updated) {
677 return new Future.value(null);
678 }
679
680 assert(updater.isActive);
681 updater.onUpdated.add(() => completer.complete(null));
682
683 return completer.future;
684 }
685
686 /**
687 * Reads the status files and completes with the parsed expectations. 672 * Reads the status files and completes with the parsed expectations.
688 */ 673 */
689 ExpectationSet readExpectations() { 674 ExpectationSet readExpectations() {
690 var statusFiles = statusFilePaths.where((String statusFilePath) { 675 var statusFiles = statusFilePaths.where((String statusFilePath) {
691 var file = new File(dartDir.append(statusFilePath).toNativePath()); 676 var file = new File(dartDir.append(statusFilePath).toNativePath());
692 return file.existsSync(); 677 return file.existsSync();
693 }).map((statusFilePath) { 678 }).map((statusFilePath) {
694 return dartDir.append(statusFilePath).toNativePath(); 679 return dartDir.append(statusFilePath).toNativePath();
695 }).toList(); 680 }).toList();
696 681
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 parameters['group'] = subtestName; 958 parameters['group'] = subtestName;
974 } 959 }
975 return new Uri( 960 return new Uri(
976 scheme: 'http', 961 scheme: 'http',
977 host: configuration.localIP, 962 host: configuration.localIP,
978 port: serverPort, 963 port: serverPort,
979 path: pathComponent, 964 path: pathComponent,
980 queryParameters: parameters); 965 queryParameters: parameters);
981 } 966 }
982 967
983 void _createWrapperFile(
984 String dartWrapperFilename, Path localDartLibraryFilename) {
985 File file = new File(dartWrapperFilename);
986 RandomAccessFile dartWrapper = file.openSync(mode: FileMode.WRITE);
987
988 var libraryPathComponent = _createUrlPathFromFile(localDartLibraryFilename);
989 var generatedSource = dartTestWrapper(libraryPathComponent);
990 dartWrapper.writeStringSync(generatedSource);
991 dartWrapper.closeSync();
992 }
993
994 /** 968 /**
995 * The [StandardTestSuite] has support for tests that 969 * The [StandardTestSuite] has support for tests that
996 * compile a test from Dart to JavaScript, and then run the resulting 970 * compile a test from Dart to JavaScript, and then run the resulting
997 * JavaScript. This function creates a working directory to hold the 971 * JavaScript. This function creates a working directory to hold the
998 * JavaScript version of the test, and copies the appropriate framework 972 * JavaScript version of the test, and copies the appropriate framework
999 * files to that directory. It creates a [BrowserTestCase], which has 973 * files to that directory. It creates a [BrowserTestCase], which has
1000 * two sequential steps to be run by the [ProcessQueue] when the test is 974 * two sequential steps to be run by the [ProcessQueue] when the test is
1001 * executed: a compilation step and an execution step, both with the 975 * executed: a compilation step and an execution step, both with the
1002 * appropriate executable and arguments. The [expectations] object can be 976 * appropriate executable and arguments. The [expectations] object can be
1003 * either a Set<String> if the test is a regular test, or a Map<String 977 * either a Set<String> if the test is a regular test, or a Map<String
(...skipping 19 matching lines...) Expand all
1023 } 997 }
1024 998
1025 void _enqueueBrowserTestWithOptions( 999 void _enqueueBrowserTestWithOptions(
1026 Path packageRoot, 1000 Path packageRoot,
1027 Path packages, 1001 Path packages,
1028 TestInformation info, 1002 TestInformation info,
1029 String testName, 1003 String testName,
1030 Map<String, Set<Expectation>> expectations, 1004 Map<String, Set<Expectation>> expectations,
1031 List<String> vmOptions, 1005 List<String> vmOptions,
1032 String tempDir) { 1006 String tempDir) {
1033 // TODO(Issue 14651): If we're on dartium, we need to pass [packageRoot] 1007 var fileName = info.filePath.toNativePath();
1034 // on to the browser (it may be test specific).
1035 var filePath = info.filePath;
1036 var fileName = filePath.toNativePath();
1037
1038 var optionsFromFile = info.optionsFromFile; 1008 var optionsFromFile = info.optionsFromFile;
1039 var compilationTempDir = createCompilationOutputDirectory(info.filePath); 1009 var compilationTempDir = createCompilationOutputDirectory(info.filePath);
1040 var dartWrapperFilename = '$tempDir/test.dart'; 1010 var jsWrapperFileName = '$compilationTempDir/test.js';
1041 var compiledDartWrapperFilename = '$compilationTempDir/test.js'; 1011 var nameNoExt = info.filePath.filenameWithoutExtension;
1042 var dir = filePath.directoryPath;
1043 var nameNoExt = filePath.filenameWithoutExtension;
1044 var customHtmlPath = dir.append('$nameNoExt.html').toNativePath();
1045 var customHtml = new File(customHtmlPath);
1046 1012
1047 // Use existing HTML document if available. 1013 // Use existing HTML document if available.
1048 String htmlPath;
1049 String content; 1014 String content;
1015 var customHtml = new File(
1016 info.filePath.directoryPath.append('$nameNoExt.html').toNativePath());
1050 if (customHtml.existsSync()) { 1017 if (customHtml.existsSync()) {
1051 htmlPath = '$tempDir/test.html'; 1018 jsWrapperFileName = '$tempDir/$nameNoExt.js';
1052 dartWrapperFilename = filePath.toNativePath(); 1019 content = customHtml.readAsStringSync().replaceAll(
1053 1020 '%TEST_SCRIPTS%', '<script src="$nameNoExt.js"></script>');
1054 var htmlContents = customHtml.readAsStringSync();
1055 if (configuration.compiler == Compiler.none) {
1056 var dartUrl = _createUrlPathFromFile(filePath);
1057 var dartScript =
1058 '<script type="application/dart" src="$dartUrl"></script>';
1059 var jsUrl = '/packages/browser/dart.js';
1060 var jsScript = '<script type="text/javascript" src="$jsUrl"></script>';
1061 htmlContents =
1062 htmlContents.replaceAll('%TEST_SCRIPTS%', '$dartScript\n$jsScript');
1063 } else {
1064 compiledDartWrapperFilename = '$tempDir/$nameNoExt.js';
1065 htmlContents = htmlContents.replaceAll(
1066 '%TEST_SCRIPTS%', '<script src="$nameNoExt.js"></script>');
1067 }
1068 new File(htmlPath).writeAsStringSync(htmlContents);
1069 } else { 1021 } else {
1070 htmlPath = '$tempDir/test.html'; 1022 // Synthesize an HTML file for the test.
1071 if (configuration.compiler != Compiler.dart2js && 1023 var scriptPath = _createUrlPathFromFile(new Path(jsWrapperFileName));
1072 configuration.compiler != Compiler.dartdevc) {
1073 // test.dart will import the dart test.
1074 _createWrapperFile(dartWrapperFilename, filePath);
1075 } else {
1076 dartWrapperFilename = fileName;
1077 }
1078
1079 // Create the HTML file for the test.
1080 var scriptPath = dartWrapperFilename;
1081 if (configuration.compiler != Compiler.none) {
1082 scriptPath = compiledDartWrapperFilename;
1083 }
1084 scriptPath = _createUrlPathFromFile(new Path(scriptPath));
1085 1024
1086 if (configuration.compiler != Compiler.dartdevc) { 1025 if (configuration.compiler != Compiler.dartdevc) {
1087 content = getHtmlContents(fileName, scriptType, scriptPath); 1026 content = dart2jsHtml(fileName, scriptPath);
1088 } else { 1027 } else {
1089 var jsDir = new Path(compilationTempDir) 1028 var jsDir = new Path(compilationTempDir)
1090 .relativeTo(TestUtils.dartDir) 1029 .relativeTo(TestUtils.dartDir)
1091 .toString(); 1030 .toString();
1092 content = dartdevcHtml(nameNoExt, jsDir, buildDir); 1031 content = dartdevcHtml(nameNoExt, jsDir, buildDir);
1093 } 1032 }
1033 }
1094 1034
1095 new File(htmlPath).writeAsStringSync(content); 1035 var htmlPath = '$tempDir/test.html';
1096 } 1036 new File(htmlPath).writeAsStringSync(content);
1097 1037
1098 // Construct the command(s) that compile all the inputs needed by the 1038 // Construct the command(s) that compile all the inputs needed by the
1099 // browser test. For running Dart in DRT, this will be noop commands. 1039 // browser test. For running Dart in DRT, this will be noop commands.
1100 var commands = <Command>[]; 1040 var commands = <Command>[];
1101 1041
1102 switch (configuration.compiler) { 1042 switch (configuration.compiler) {
1103 case Compiler.dart2js: 1043 case Compiler.dart2js:
1104 commands.add(_dart2jsCompileCommand(dartWrapperFilename, 1044 commands.add(_dart2jsCompileCommand(
1105 compiledDartWrapperFilename, tempDir, optionsFromFile)); 1045 fileName, jsWrapperFileName, tempDir, optionsFromFile));
1106 break; 1046 break;
1107 1047
1108 case Compiler.dartdevc: 1048 case Compiler.dartdevc:
1109 var toPath = new Path('$compilationTempDir/$nameNoExt.js') 1049 var toPath = new Path('$compilationTempDir/$nameNoExt.js')
1110 .toNativePath(); 1050 .toNativePath();
1111 commands.add(configuration.compilerConfiguration.createCommand( 1051 commands.add(configuration.compilerConfiguration.createCommand(
1112 dartWrapperFilename, toPath, 1052 dartWrapperFilename, toPath,
1113 optionsFromFile["sharedOptions"] as List<String>)); 1053 optionsFromFile["sharedOptions"] as List<String>));
1114 break; 1054 break;
1115 1055
1116 case Compiler.none:
1117 break;
1118
1119 default: 1056 default:
1120 assert(false); 1057 assert(false);
1121 } 1058 }
1122 1059
1123 // Some tests require compiling multiple input scripts. 1060 // Some tests require compiling multiple input scripts.
1124 for (var name in optionsFromFile['otherScripts'] as List<String>) { 1061 for (var name in optionsFromFile['otherScripts'] as List<String>) {
1125 var namePath = new Path(name); 1062 var namePath = new Path(name);
1126 var fromPath = filePath.directoryPath.join(namePath); 1063 var fromPath = info.filePath.directoryPath.join(namePath);
1127 var toPath = new Path('$tempDir/${namePath.filename}.js').toNativePath(); 1064 var toPath = new Path('$tempDir/${namePath.filename}.js').toNativePath();
1128 1065
1129 switch (configuration.compiler) { 1066 switch (configuration.compiler) {
1130 case Compiler.dart2js: 1067 case Compiler.dart2js:
1131 commands.add(_dart2jsCompileCommand(fromPath.toNativePath(), 1068 commands.add(_dart2jsCompileCommand(
1132 toPath, tempDir, optionsFromFile)); 1069 fromPath.toNativePath(), toPath, tempDir, optionsFromFile));
1133 break; 1070 break;
1134 1071
1135 case Compiler.dartdevc: 1072 case Compiler.dartdevc:
1136 commands.add(configuration.compilerConfiguration.createCommand( 1073 commands.add(configuration.compilerConfiguration.createCommand(
1137 fromPath.toNativePath(), toPath, 1074 fromPath.toNativePath(), toPath,
1138 optionsFromFile["sharedOptions"] as List<String>)); 1075 optionsFromFile["sharedOptions"] as List<String>));
1139 break; 1076 break;
1140
1141 default:
1142 assert(configuration.compiler == Compiler.none);
1143 }
1144
1145 if (configuration.compiler == Compiler.none) {
1146 // For the tests that require multiple input scripts but are not
1147 // compiled, move the input scripts over with the script so they can
1148 // be accessed.
1149 new File(fromPath.toNativePath())
1150 .copySync('$tempDir/${namePath.filename}');
1151 } 1077 }
1152 } 1078 }
1153 1079
1154 if (info.optionsFromFile['isMultiHtmlTest'] as bool) { 1080 if (info.optionsFromFile['isMultiHtmlTest'] as bool) {
1155 // Variables for browser multi-tests. 1081 // Variables for browser multi-tests.
1156 var subtestNames = info.optionsFromFile['subtestNames'] as List<String>; 1082 var subtestNames = info.optionsFromFile['subtestNames'] as List<String>;
1157 for (var subtestName in subtestNames) { 1083 for (var subtestName in subtestNames) {
1158 _enqueueSingleBrowserTest(commands, info, '$testName/$subtestName', 1084 _enqueueSingleBrowserTest(commands, info, '$testName/$subtestName',
1159 subtestName, expectations, vmOptions, htmlPath); 1085 subtestName, expectations, vmOptions, htmlPath);
1160 } 1086 }
(...skipping 27 matching lines...) Expand all
1188 // Chrome may send a termination signal to a test. The test will be 1114 // Chrome may send a termination signal to a test. The test will be
1189 // terminated if a machine (bot) doesn't have a GPU or if a test is 1115 // terminated if a machine (bot) doesn't have a GPU or if a test is
1190 // still running after a certain period of time. 1116 // still running after a certain period of time.
1191 if (configuration.system == System.linux && 1117 if (configuration.system == System.linux &&
1192 configuration.runtime == Runtime.drt) { 1118 configuration.runtime == Runtime.drt) {
1193 contentShellOptions.add('--disable-gpu'); 1119 contentShellOptions.add('--disable-gpu');
1194 // TODO(terry): Roll 50 need this in conjection with disable-gpu. 1120 // TODO(terry): Roll 50 need this in conjection with disable-gpu.
1195 contentShellOptions.add('--disable-gpu-early-init'); 1121 contentShellOptions.add('--disable-gpu-early-init');
1196 } 1122 }
1197 1123
1198 if (configuration.compiler == Compiler.none) {
1199 dartFlags.add('--ignore-unrecognized-flags');
1200 if (configuration.isChecked) {
1201 dartFlags.add('--enable_asserts');
1202 dartFlags.add("--enable_type_checks");
1203 }
1204 dartFlags.addAll(vmOptions);
1205 }
1206
1207 commands.add(Command.contentShell(contentShellFilename, fullHtmlPath, 1124 commands.add(Command.contentShell(contentShellFilename, fullHtmlPath,
1208 contentShellOptions, dartFlags, environmentOverrides)); 1125 contentShellOptions, dartFlags, environmentOverrides));
1209 } else { 1126 } else {
1210 commands.add(Command.browserTest(fullHtmlPath, configuration, 1127 commands.add(Command.browserTest(fullHtmlPath, configuration,
1211 retry: !isNegative(info))); 1128 retry: !isNegative(info)));
1212 } 1129 }
1213 1130
1214 // Create BrowserTestCase and queue it. 1131 // Create BrowserTestCase and queue it.
1215 var expectation = expectations[testName]; 1132 var expectation = expectations[testName];
1216 var testCase = new BrowserTestCase('$suiteName/$testName', commands, 1133 var testCase = new BrowserTestCase('$suiteName/$testName', commands,
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1320 args.add(inputFile); 1237 args.add(inputFile);
1321 1238
1322 var options = optionsFromFile['sharedOptions'] as List<String>; 1239 var options = optionsFromFile['sharedOptions'] as List<String>;
1323 if (options != null) args.addAll(options); 1240 if (options != null) args.addAll(options);
1324 1241
1325 return Command.compilation(Compiler.dart2js.name, outputFile, 1242 return Command.compilation(Compiler.dart2js.name, outputFile,
1326 dart2JsBootstrapDependencies, compilerPath, args, environmentOverrides, 1243 dart2JsBootstrapDependencies, compilerPath, args, environmentOverrides,
1327 alwaysCompile: !useSdk); 1244 alwaysCompile: !useSdk);
1328 } 1245 }
1329 1246
1330 String get scriptType {
1331 switch (configuration.compiler) {
1332 case Compiler.none:
1333 return 'application/dart';
1334 case Compiler.dart2js:
1335 case Compiler.dart2analyzer:
1336 case Compiler.dartdevc:
1337 return 'text/javascript';
1338 default:
1339 print('Non-web runtime, so no scriptType for: '
1340 '${configuration.compiler.name}');
1341 exit(1);
1342 return null;
1343 }
1344 }
1345
1346 bool get hasRuntime => configuration.runtime != Runtime.none; 1247 bool get hasRuntime => configuration.runtime != Runtime.none;
1347 1248
1348 String get contentShellFilename { 1249 String get contentShellFilename {
1349 if (configuration.drtPath != null) return configuration.drtPath; 1250 if (configuration.drtPath != null) return configuration.drtPath;
1350 1251
1351 if (Platform.operatingSystem == 'macos') { 1252 if (Platform.operatingSystem == 'macos') {
1352 final path = dartDir.append( 1253 final path = dartDir.append(
1353 '/client/tests/drt/Content Shell.app/Contents/MacOS/Content Shell'); 1254 '/client/tests/drt/Content Shell.app/Contents/MacOS/Content Shell');
1354 return path.toNativePath(); 1255 return path.toNativePath();
1355 } 1256 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 return null; 1300 return null;
1400 } 1301 }
1401 } 1302 }
1402 1303
1403 /** 1304 /**
1404 * Special options for individual tests are currently specified in various 1305 * Special options for individual tests are currently specified in various
1405 * ways: with comments directly in test files, by using certain imports, or by 1306 * ways: with comments directly in test files, by using certain imports, or by
1406 * creating additional files in the test directories. 1307 * creating additional files in the test directories.
1407 * 1308 *
1408 * Here is a list of options that are used by 'test.dart' today: 1309 * Here is a list of options that are used by 'test.dart' today:
1409 * - Flags can be passed to the vm or dartium process that runs the test by 1310 * - Flags can be passed to the vm process that runs the test by adding a
1410 * adding a comment to the test file: 1311 * comment to the test file:
1411 * 1312 *
1412 * // VMOptions=--flag1 --flag2 1313 * // VMOptions=--flag1 --flag2
1413 * 1314 *
1414 * - Flags can be passed to dart2js or vm by adding a comment 1315 * - Flags can be passed to dart2js or vm by adding a comment
1415 * to the test file: 1316 * to the test file:
1416 * 1317 *
1417 * // SharedOptions=--flag1 --flag2 1318 * // SharedOptions=--flag1 --flag2
1418 * 1319 *
1419 * - Flags can be passed to the dart script that contains the test also 1320 * - Flags can be passed to the dart script that contains the test also
1420 * using comments, as follows: 1321 * using comments, as follows:
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1644 Compiler.dartkp, 1545 Compiler.dartkp,
1645 Compiler.precompiler, 1546 Compiler.precompiler,
1646 Compiler.appJit 1547 Compiler.appJit
1647 ]; 1548 ];
1648 1549
1649 const runtimes = const [ 1550 const runtimes = const [
1650 Runtime.none, 1551 Runtime.none,
1651 Runtime.dartPrecompiled, 1552 Runtime.dartPrecompiled,
1652 Runtime.vm, 1553 Runtime.vm,
1653 Runtime.drt, 1554 Runtime.drt,
1654 Runtime.dartium, 1555 Runtime.contentShellOnAndroid
1655 Runtime.contentShellOnAndroid,
1656 Runtime.dartiumOnAndroid
1657 ]; 1556 ];
1658 1557
1659 var needsVmOptions = compilers.contains(configuration.compiler) && 1558 var needsVmOptions = compilers.contains(configuration.compiler) &&
1660 runtimes.contains(configuration.runtime); 1559 runtimes.contains(configuration.runtime);
1661 if (!needsVmOptions) return [[]]; 1560 if (!needsVmOptions) return [[]];
1662 return optionsFromFile['vmOptions'] as List<List<String>>; 1561 return optionsFromFile['vmOptions'] as List<List<String>>;
1663 } 1562 }
1664 1563
1665 /** 1564 /**
1666 * Read options from a co19 test file. 1565 * Read options from a co19 test file.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1769 Directory dir = new Directory(suiteDir.append(testDir).toNativePath()); 1668 Directory dir = new Directory(suiteDir.append(testDir).toNativePath());
1770 if (dir.existsSync()) { 1669 if (dir.existsSync()) {
1771 enqueueDirectory(dir, group); 1670 enqueueDirectory(dir, group);
1772 } 1671 }
1773 } 1672 }
1774 1673
1775 return group.future; 1674 return group.future;
1776 } 1675 }
1777 } 1676 }
1778 1677
1678 // TODO(rnystrom): Merge with DartcCompilationTestSuite since that class isn't
1679 // used for anything but this now.
1779 class AnalyzeLibraryTestSuite extends DartcCompilationTestSuite { 1680 class AnalyzeLibraryTestSuite extends DartcCompilationTestSuite {
1780 static String libraryPath(Configuration configuration) => 1681 static String libraryPath(Configuration configuration) =>
1781 configuration.useSdk ? '${configuration.buildDirectory}/dart-sdk' : 'sdk'; 1682 configuration.useSdk ? '${configuration.buildDirectory}/dart-sdk' : 'sdk';
1782 1683
1783 AnalyzeLibraryTestSuite(Configuration configuration) 1684 AnalyzeLibraryTestSuite(Configuration configuration)
1784 : super(configuration, 'analyze_library', libraryPath(configuration), 1685 : super(configuration, 'analyze_library', libraryPath(configuration),
1785 ['lib'], ['tests/lib/analyzer/analyze_library.status']); 1686 ['lib'], ['tests/lib/analyzer/analyze_library.status']);
1786 1687
1787 List<String> additionalOptions(Path filePath, {bool showSdkWarnings}) { 1688 List<String> additionalOptions(Path filePath, {bool showSdkWarnings}) {
1788 var options = super.additionalOptions(filePath); 1689 var options = super.additionalOptions(filePath);
1789 options.add('--sdk-warnings'); 1690 options.add('--sdk-warnings');
1790 return options; 1691 return options;
1791 } 1692 }
1792 1693
1793 bool isTestFile(String filename) { 1694 bool isTestFile(String filename) {
1794 // NOTE: We exclude tests and patch files for now. 1695 // NOTE: We exclude tests and patch files for now.
1795 return filename.endsWith(".dart") && 1696 return filename.endsWith(".dart") &&
1796 !filename.endsWith("_test.dart") && 1697 !filename.endsWith("_test.dart") &&
1797 !filename.contains("_internal/js_runtime/lib"); 1698 !filename.contains("_internal/js_runtime/lib");
1798 } 1699 }
1799 1700
1800 bool get listRecursively => true; 1701 bool get listRecursively => true;
1801 } 1702 }
OLDNEW
« no previous file with comments | « tools/testing/dart/test_runner.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698