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

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

Issue 2361813003: Fix test.py and tests to use an explicit --packages flag. (Closed)
Patch Set: Handle case where only observatory_ui tests are run. Created 4 years, 3 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_options.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,
(...skipping 952 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 if (pubspecYamlFile != null) { 963 if (pubspecYamlFile != null) {
964 var result = buildSpecialPackageRoot(pubspecYamlFile); 964 var result = buildSpecialPackageRoot(pubspecYamlFile);
965 baseCommands.addAll(result['commands']); 965 baseCommands.addAll(result['commands']);
966 packageRoot = result['package-root']; 966 packageRoot = result['package-root'];
967 if (optionsFromFile['packageRoot'] == null || 967 if (optionsFromFile['packageRoot'] == null ||
968 optionsFromFile['packageRoot'] == "") { 968 optionsFromFile['packageRoot'] == "") {
969 optionsFromFile['packageRoot'] = packageRoot.toNativePath(); 969 optionsFromFile['packageRoot'] = packageRoot.toNativePath();
970 } 970 }
971 } 971 }
972 } 972 }
973 if (configuration['package_root'] != null) { 973 if (optionsFromFile['packageRoot'] == null &&
974 packageRoot = new Path(configuration['package_root']); 974 optionsFromFile['packages'] == null) {
975 optionsFromFile['packageRoot'] = packageRoot.toNativePath(); 975 if (configuration['package_root'] != null) {
976 packageRoot = new Path(configuration['package_root']);
977 optionsFromFile['packageRoot'] = packageRoot.toNativePath();
978 }
979 if (configuration['packages'] != null) {
980 Path packages = new Path(configuration['packages']);
981 optionsFromFile['packages'] = packages.toNativePath();
982 }
976 } 983 }
977 if (configuration['packages'] != null) {
978 Path packages = new Path(configuration['packages']);
979 optionsFromFile['packages'] = packages.toNativePath();
980 }
981
982 if (new CompilerConfiguration(configuration).hasCompiler && 984 if (new CompilerConfiguration(configuration).hasCompiler &&
983 expectCompileError(info)) { 985 expectCompileError(info)) {
984 // If a compile-time error is expected, and we're testing a 986 // If a compile-time error is expected, and we're testing a
985 // compiler, we never need to attempt to run the program (in a 987 // compiler, we never need to attempt to run the program (in a
986 // browser or otherwise). 988 // browser or otherwise).
987 enqueueStandardTest(baseCommands, info, testName, expectations); 989 enqueueStandardTest(baseCommands, info, testName, expectations);
988 } else if (TestUtils.isBrowserRuntime(configuration['runtime'])) { 990 } else if (TestUtils.isBrowserRuntime(configuration['runtime'])) {
989 if (info.optionsFromFile['isMultiHtmlTest']) { 991 if (info.optionsFromFile['isMultiHtmlTest']) {
990 // A browser multi-test has multiple expectations for one test file. 992 // A browser multi-test has multiple expectations for one test file.
991 // Find all the different sub-test expecations for one entire test file. 993 // Find all the different sub-test expecations for one entire test file.
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
1578 args.add(filePath.toNativePath()); 1580 args.add(filePath.toNativePath());
1579 if (dartOptions != null) { 1581 if (dartOptions != null) {
1580 args.addAll(dartOptions); 1582 args.addAll(dartOptions);
1581 } 1583 }
1582 1584
1583 return args; 1585 return args;
1584 } 1586 }
1585 1587
1586 String packagesArgument(String packageRootFromFile, 1588 String packagesArgument(String packageRootFromFile,
1587 String packagesFromFile) { 1589 String packagesFromFile) {
1588 if (packagesFromFile != null) { 1590 if (packageRootFromFile == 'none' ||
1591 packagesFromFile == 'none') {
1592 return null;
1593 } else if (packagesFromFile != null) {
1589 return '--packages=$packagesFromFile'; 1594 return '--packages=$packagesFromFile';
1590 } else if (packageRootFromFile != null && packageRootFromFile != 'none') { 1595 } else if (packageRootFromFile != null) {
1591 return '--package-root=$packageRootFromFile'; 1596 return '--package-root=$packageRootFromFile';
1592 } else { 1597 } else {
1593 return null; 1598 return null;
1594 } 1599 }
1595 } 1600 }
1596 1601
1597 /** 1602 /**
1598 * Special options for individual tests are currently specified in various 1603 * Special options for individual tests are currently specified in various
1599 * ways: with comments directly in test files, by using certain imports, or by 1604 * ways: with comments directly in test files, by using certain imports, or by
1600 * creating additional files in the test directories. 1605 * creating additional files in the test directories.
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1705 for (var match in matches) { 1710 for (var match in matches) {
1706 if (sharedOptions != null) { 1711 if (sharedOptions != null) {
1707 throw new Exception( 1712 throw new Exception(
1708 'More than one "// SharedOptions=" line in test $filePath'); 1713 'More than one "// SharedOptions=" line in test $filePath');
1709 } 1714 }
1710 sharedOptions = match[1].split(' ').where((e) => e != '').toList(); 1715 sharedOptions = match[1].split(' ').where((e) => e != '').toList();
1711 } 1716 }
1712 1717
1713 matches = packageRootRegExp.allMatches(contents); 1718 matches = packageRootRegExp.allMatches(contents);
1714 for (var match in matches) { 1719 for (var match in matches) {
1715 if (packageRoot != null) { 1720 if (packageRoot != null || packages != null) {
1716 throw new Exception( 1721 throw new Exception(
1717 'More than one "// PackageRoot=" line in test $filePath'); 1722 'More than one "// Package... line in test $filePath');
1718 } 1723 }
1719 packageRoot = match[1]; 1724 packageRoot = match[1];
1720 if (packageRoot != 'none') { 1725 if (packageRoot != 'none') {
1721 // PackageRoot=none means that no package-root option should be given. 1726 // PackageRoot=none means that no packages or package-root option
1727 // should be given. Any other value overrides package-root and
1728 // removes any packages option. Don't use with // Packages=.
1722 packageRoot = '${filePath.directoryPath.join(new Path(packageRoot))}'; 1729 packageRoot = '${filePath.directoryPath.join(new Path(packageRoot))}';
1723 } 1730 }
1724 } 1731 }
1725 1732
1726 matches = packagesRegExp.allMatches(contents); 1733 matches = packagesRegExp.allMatches(contents);
1727 for (var match in matches) { 1734 for (var match in matches) {
1728 if (packages != null) { 1735 if (packages != null || packageRoot != null) {
1729 throw new Exception( 1736 throw new Exception(
1730 'More than one "// Packages=" line in test $filePath'); 1737 'More than one "// Package..." line in test $filePath');
1731 } 1738 }
1732 packages = match[1]; 1739 packages = match[1];
1733 if (packages != 'none') { 1740 if (packages != 'none') {
1734 // Packages=none means that no packages option should be given. 1741 // Packages=none means that no packages or package-root option
1742 // should be given. Any other value overrides packages and removes
1743 // any package-root option. Don't use with // PackageRoot=.
1735 packages = '${filePath.directoryPath.join(new Path(packages))}'; 1744 packages = '${filePath.directoryPath.join(new Path(packages))}';
1736 } 1745 }
1737 } 1746 }
1738 1747
1739 List<String> otherScripts = new List<String>(); 1748 List<String> otherScripts = new List<String>();
1740 matches = otherScriptsRegExp.allMatches(contents); 1749 matches = otherScriptsRegExp.allMatches(contents);
1741 for (var match in matches) { 1750 for (var match in matches) {
1742 otherScripts.addAll(match[1].split(' ').where((e) => e != '').toList()); 1751 otherScripts.addAll(match[1].split(' ').where((e) => e != '').toList());
1743 } 1752 }
1744 1753
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
2476 } 2485 }
2477 if (path.length > WINDOWS_SHORTEN_PATH_LIMIT) { 2486 if (path.length > WINDOWS_SHORTEN_PATH_LIMIT) {
2478 ++shortNameCounter; 2487 ++shortNameCounter;
2479 var pathEnd = path.substring(path.length - WINDOWS_PATH_END_LENGTH); 2488 var pathEnd = path.substring(path.length - WINDOWS_PATH_END_LENGTH);
2480 path = "short${shortNameCounter}_$pathEnd"; 2489 path = "short${shortNameCounter}_$pathEnd";
2481 } 2490 }
2482 } 2491 }
2483 return path; 2492 return path;
2484 } 2493 }
2485 } 2494 }
OLDNEW
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698