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

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

Issue 2423593002: Add test directive to include other files used by a test in its compiled output directory. (Closed)
Patch Set: Created 4 years, 2 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 | « tests/standalone/standalone.status ('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 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 if (compilerConfiguration.hasCompiler) { 1062 if (compilerConfiguration.hasCompiler) {
1063 compileTimeArguments = compilerConfiguration.computeCompilerArguments( 1063 compileTimeArguments = compilerConfiguration.computeCompilerArguments(
1064 vmOptions, sharedOptions, args); 1064 vmOptions, sharedOptions, args);
1065 // Avoid doing this for analyzer. 1065 // Avoid doing this for analyzer.
1066 var path = info.filePath; 1066 var path = info.filePath;
1067 if (vmOptionsVarient != 0) { 1067 if (vmOptionsVarient != 0) {
1068 // Ensure a unique directory for each test case. 1068 // Ensure a unique directory for each test case.
1069 path = path.join(new Path(vmOptionsVarient.toString())); 1069 path = path.join(new Path(vmOptionsVarient.toString()));
1070 } 1070 }
1071 tempDir = createCompilationOutputDirectory(path); 1071 tempDir = createCompilationOutputDirectory(path);
1072
1073 List<String> otherResources = info.optionsFromFile['otherResources'];
1074 for (String name in otherResources) {
1075 Path namePath = new Path(name);
1076 String fileName = namePath.filename;
1077 Path fromPath = info.filePath.directoryPath.join(namePath);
1078 new File('$tempDir/$name').parent.createSync(recursive: true);
1079 new File(fromPath.toNativePath()).copySync('$tempDir/$name');
1080 }
1072 } 1081 }
1073 1082
1074 CommandArtifact compilationArtifact = 1083 CommandArtifact compilationArtifact =
1075 compilerConfiguration.computeCompilationArtifact( 1084 compilerConfiguration.computeCompilationArtifact(
1076 buildDir, 1085 buildDir,
1077 tempDir, 1086 tempDir,
1078 CommandBuilder.instance, 1087 CommandBuilder.instance,
1079 compileTimeArguments, 1088 compileTimeArguments,
1080 environmentOverrides); 1089 environmentOverrides);
1081 commands.addAll(compilationArtifact.commands); 1090 commands.addAll(compilationArtifact.commands);
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
1666 * configurations, so it may not use [configuration]. 1675 * configurations, so it may not use [configuration].
1667 */ 1676 */
1668 Map readOptionsFromFile(Path filePath) { 1677 Map readOptionsFromFile(Path filePath) {
1669 if (filePath.segments().contains('co19')) { 1678 if (filePath.segments().contains('co19')) {
1670 return readOptionsFromCo19File(filePath); 1679 return readOptionsFromCo19File(filePath);
1671 } 1680 }
1672 RegExp testOptionsRegExp = new RegExp(r"// VMOptions=(.*)"); 1681 RegExp testOptionsRegExp = new RegExp(r"// VMOptions=(.*)");
1673 RegExp sharedOptionsRegExp = new RegExp(r"// SharedOptions=(.*)"); 1682 RegExp sharedOptionsRegExp = new RegExp(r"// SharedOptions=(.*)");
1674 RegExp dartOptionsRegExp = new RegExp(r"// DartOptions=(.*)"); 1683 RegExp dartOptionsRegExp = new RegExp(r"// DartOptions=(.*)");
1675 RegExp otherScriptsRegExp = new RegExp(r"// OtherScripts=(.*)"); 1684 RegExp otherScriptsRegExp = new RegExp(r"// OtherScripts=(.*)");
1685 RegExp otherResourcesRegExp = new RegExp(r"// OtherResources=(.*)");
1676 RegExp packageRootRegExp = new RegExp(r"// PackageRoot=(.*)"); 1686 RegExp packageRootRegExp = new RegExp(r"// PackageRoot=(.*)");
1677 RegExp packagesRegExp = new RegExp(r"// Packages=(.*)"); 1687 RegExp packagesRegExp = new RegExp(r"// Packages=(.*)");
1678 RegExp isolateStubsRegExp = new RegExp(r"// IsolateStubs=(.*)"); 1688 RegExp isolateStubsRegExp = new RegExp(r"// IsolateStubs=(.*)");
1679 // TODO(gram) Clean these up once the old directives are not supported. 1689 // TODO(gram) Clean these up once the old directives are not supported.
1680 RegExp domImportRegExp = new RegExp( 1690 RegExp domImportRegExp = new RegExp(
1681 r"^[#]?import.*dart:(html|web_audio|indexed_db|svg|web_sql)", 1691 r"^[#]?import.*dart:(html|web_audio|indexed_db|svg|web_sql)",
1682 multiLine: true); 1692 multiLine: true);
1683 1693
1684 var bytes = new File(filePath.toNativePath()).readAsBytesSync(); 1694 var bytes = new File(filePath.toNativePath()).readAsBytesSync();
1685 String contents = decodeUtf8(bytes); 1695 String contents = decodeUtf8(bytes);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 packages = '${filePath.directoryPath.join(new Path(packages))}'; 1755 packages = '${filePath.directoryPath.join(new Path(packages))}';
1746 } 1756 }
1747 } 1757 }
1748 1758
1749 List<String> otherScripts = new List<String>(); 1759 List<String> otherScripts = new List<String>();
1750 matches = otherScriptsRegExp.allMatches(contents); 1760 matches = otherScriptsRegExp.allMatches(contents);
1751 for (var match in matches) { 1761 for (var match in matches) {
1752 otherScripts.addAll(match[1].split(' ').where((e) => e != '').toList()); 1762 otherScripts.addAll(match[1].split(' ').where((e) => e != '').toList());
1753 } 1763 }
1754 1764
1765 List<String> otherResources = new List<String>();
1766 matches = otherResourcesRegExp.allMatches(contents);
1767 for (var match in matches) {
1768 otherResources.addAll(match[1].split(' ').where((e) => e != '').toList());
1769 }
1770
1755 bool isMultitest = multiTestRegExp.hasMatch(contents); 1771 bool isMultitest = multiTestRegExp.hasMatch(contents);
1756 bool isMultiHtmlTest = multiHtmlTestRegExp.hasMatch(contents); 1772 bool isMultiHtmlTest = multiHtmlTestRegExp.hasMatch(contents);
1757 Match isolateMatch = isolateStubsRegExp.firstMatch(contents); 1773 Match isolateMatch = isolateStubsRegExp.firstMatch(contents);
1758 String isolateStubs = isolateMatch != null ? isolateMatch[1] : ''; 1774 String isolateStubs = isolateMatch != null ? isolateMatch[1] : '';
1759 bool containsDomImport = domImportRegExp.hasMatch(contents); 1775 bool containsDomImport = domImportRegExp.hasMatch(contents);
1760 1776
1761 List<String> subtestNames = []; 1777 List<String> subtestNames = [];
1762 Iterator matchesIter = 1778 Iterator matchesIter =
1763 multiHtmlTestGroupRegExp.allMatches(contents).iterator; 1779 multiHtmlTestGroupRegExp.allMatches(contents).iterator;
1764 while (matchesIter.moveNext() && isMultiHtmlTest) { 1780 while (matchesIter.moveNext() && isMultiHtmlTest) {
1765 String fullMatch = matchesIter.current.group(0); 1781 String fullMatch = matchesIter.current.group(0);
1766 subtestNames.add(fullMatch.substring(fullMatch.indexOf("'") + 1)); 1782 subtestNames.add(fullMatch.substring(fullMatch.indexOf("'") + 1));
1767 } 1783 }
1768 1784
1769 return { 1785 return {
1770 "vmOptions": result, 1786 "vmOptions": result,
1771 "sharedOptions": sharedOptions == null ? [] : sharedOptions, 1787 "sharedOptions": sharedOptions == null ? [] : sharedOptions,
1772 "dartOptions": dartOptions, 1788 "dartOptions": dartOptions,
1773 "packageRoot": packageRoot, 1789 "packageRoot": packageRoot,
1774 "packages": packages, 1790 "packages": packages,
1775 "hasCompileError": false, 1791 "hasCompileError": false,
1776 "hasRuntimeError": false, 1792 "hasRuntimeError": false,
1777 "hasStaticWarning": false, 1793 "hasStaticWarning": false,
1778 "otherScripts": otherScripts, 1794 "otherScripts": otherScripts,
1795 "otherResources": otherResources,
1779 "isMultitest": isMultitest, 1796 "isMultitest": isMultitest,
1780 "isMultiHtmlTest": isMultiHtmlTest, 1797 "isMultiHtmlTest": isMultiHtmlTest,
1781 "subtestNames": subtestNames, 1798 "subtestNames": subtestNames,
1782 "isolateStubs": isolateStubs, 1799 "isolateStubs": isolateStubs,
1783 "containsDomImport": containsDomImport 1800 "containsDomImport": containsDomImport
1784 }; 1801 };
1785 } 1802 }
1786 1803
1787 List<List<String>> getVmOptions(Map optionsFromFile) { 1804 List<List<String>> getVmOptions(Map optionsFromFile) {
1788 var COMPILERS = const ['none', 'precompiler', 'dart2app', 'dart2appjit']; 1805 var COMPILERS = const ['none', 'precompiler', 'dart2app', 'dart2appjit'];
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
2486 } 2503 }
2487 if (path.length > WINDOWS_SHORTEN_PATH_LIMIT) { 2504 if (path.length > WINDOWS_SHORTEN_PATH_LIMIT) {
2488 ++shortNameCounter; 2505 ++shortNameCounter;
2489 var pathEnd = path.substring(path.length - WINDOWS_PATH_END_LENGTH); 2506 var pathEnd = path.substring(path.length - WINDOWS_PATH_END_LENGTH);
2490 path = "short${shortNameCounter}_$pathEnd"; 2507 path = "short${shortNameCounter}_$pathEnd";
2491 } 2508 }
2492 } 2509 }
2493 return path; 2510 return path;
2494 } 2511 }
2495 } 2512 }
OLDNEW
« no previous file with comments | « tests/standalone/standalone.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698