Index: tools/testing/dart/test_suite.dart |
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart |
index f5707b8d7df2f7036e296f289025f9ad99d52c39..d04015946cf292bf44560862d90d8fd5ebb7893c 100644 |
--- a/tools/testing/dart/test_suite.dart |
+++ b/tools/testing/dart/test_suite.dart |
@@ -970,15 +970,17 @@ class StandardTestSuite extends TestSuite { |
} |
} |
} |
- if (configuration['package_root'] != null) { |
- packageRoot = new Path(configuration['package_root']); |
- optionsFromFile['packageRoot'] = packageRoot.toNativePath(); |
- } |
- if (configuration['packages'] != null) { |
- Path packages = new Path(configuration['packages']); |
- optionsFromFile['packages'] = packages.toNativePath(); |
+ if (optionsFromFile['packageRoot'] == null && |
+ optionsFromFile['packages'] == null) { |
+ if (configuration['package_root'] != null) { |
+ packageRoot = new Path(configuration['package_root']); |
+ optionsFromFile['packageRoot'] = packageRoot.toNativePath(); |
+ } |
+ if (configuration['packages'] != null) { |
+ Path packages = new Path(configuration['packages']); |
+ optionsFromFile['packages'] = packages.toNativePath(); |
+ } |
} |
- |
if (new CompilerConfiguration(configuration).hasCompiler && |
expectCompileError(info)) { |
// If a compile-time error is expected, and we're testing a |
@@ -1585,9 +1587,12 @@ class StandardTestSuite extends TestSuite { |
String packagesArgument(String packageRootFromFile, |
String packagesFromFile) { |
- if (packagesFromFile != null) { |
+ if (packageRootFromFile == 'none' || |
+ packagesFromFile == 'none') { |
+ return null; |
+ } else if (packagesFromFile != null) { |
return '--packages=$packagesFromFile'; |
- } else if (packageRootFromFile != null && packageRootFromFile != 'none') { |
+ } else if (packageRootFromFile != null) { |
return '--package-root=$packageRootFromFile'; |
} else { |
return null; |
@@ -1712,26 +1717,30 @@ class StandardTestSuite extends TestSuite { |
matches = packageRootRegExp.allMatches(contents); |
for (var match in matches) { |
- if (packageRoot != null) { |
+ if (packageRoot != null || packages != null) { |
throw new Exception( |
- 'More than one "// PackageRoot=" line in test $filePath'); |
+ 'More than one "// Package... line in test $filePath'); |
} |
packageRoot = match[1]; |
if (packageRoot != 'none') { |
- // PackageRoot=none means that no package-root option should be given. |
+ // PackageRoot=none means that no packages or package-root option |
+ // should be given. Any other value overrides package-root and |
+ // removes any packages option. Don't use with // Packages=. |
packageRoot = '${filePath.directoryPath.join(new Path(packageRoot))}'; |
} |
} |
matches = packagesRegExp.allMatches(contents); |
for (var match in matches) { |
- if (packages != null) { |
+ if (packages != null || packageRoot != null) { |
throw new Exception( |
- 'More than one "// Packages=" line in test $filePath'); |
+ 'More than one "// Package..." line in test $filePath'); |
} |
packages = match[1]; |
if (packages != 'none') { |
- // Packages=none means that no packages option should be given. |
+ // Packages=none means that no packages or package-root option |
+ // should be given. Any other value overrides packages and removes |
+ // any package-root option. Don't use with // PackageRoot=. |
packages = '${filePath.directoryPath.join(new Path(packages))}'; |
} |
} |