| Index: tools/testing/dart/test_suite.dart
|
| diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
|
| index a6c0be41d20dd619d542bf6ea0ebb0c2c101e110..0d0b6bf79b7a590f62649eadca3b3166749b620e 100644
|
| --- a/tools/testing/dart/test_suite.dart
|
| +++ b/tools/testing/dart/test_suite.dart
|
| @@ -39,6 +39,7 @@ RegExp multiHtmlTestRegExp = new RegExp(r"useHtmlIndividualConfiguration()");
|
| // Require at least one non-space character before '///'
|
| RegExp multiTestRegExp = new RegExp(r"\S *"
|
| r"/// \w+:(.*)");
|
| +RegExp dartExtension = new RegExp(r'\.dart$');
|
|
|
| /**
|
| * A simple function that tests [arg] and returns `true` or `false`.
|
| @@ -1281,7 +1282,6 @@ class StandardTestSuite extends TestSuite {
|
| compiledDartWrapperFilename,
|
| compiler,
|
| tempDir,
|
| - vmOptions,
|
| optionsFromFile));
|
| }
|
|
|
| @@ -1299,7 +1299,6 @@ class StandardTestSuite extends TestSuite {
|
| '$tempDir/$fileName.js',
|
| compiler,
|
| tempDir,
|
| - vmOptions,
|
| optionsFromFile));
|
| }
|
| if (compiler == 'none') {
|
| @@ -1383,11 +1382,13 @@ class StandardTestSuite extends TestSuite {
|
| if (!TestUtils.isBrowserRuntime(runtime) || runtime == 'drt') {
|
| return;
|
| }
|
| + bool compileToJS = (compiler == 'dart2js');
|
|
|
| final Path filePath = info.filePath;
|
| final String tempDir = createOutputDirectory(filePath, '');
|
| final Uri tempUri = new Uri.file('$tempDir/');
|
| - String contents = htmlTest.getContents(info);
|
| + String contents = htmlTest.getContents(info, compileToJS);
|
| + final commands = [];
|
|
|
| void Fail(String message) {
|
| var msg = "$message: ${info.filePath}";
|
| @@ -1412,14 +1413,17 @@ class StandardTestSuite extends TestSuite {
|
| break;
|
| }
|
| Uri script = testUri.resolveUri(uri);
|
| + Uri copiedScript = tempUri.resolveUri(uri);
|
| if (compiler == 'none' || scriptPath.endsWith('.js')) {
|
| - Uri copiedScript = tempUri.resolveUri(uri);
|
| new File.fromUri(copiedScript).writeAsStringSync(
|
| new File.fromUri(script).readAsStringSync());
|
| } else {
|
| - // TODO(21514): Compile scripts into output directory.
|
| - Fail('HTML test scripts don\'t support dart2js yet');
|
| - break;
|
| + commands.add(_compileCommand(
|
| + script.toFilePath(),
|
| + copiedScript.toFilePath().replaceFirst(dartExtension, '.js'),
|
| + compiler,
|
| + tempDir,
|
| + info.optionsFromFile));
|
| }
|
| }
|
| }
|
| @@ -1428,12 +1432,11 @@ class StandardTestSuite extends TestSuite {
|
|
|
| var htmlPath = _createUrlPathFromFile(new Path(htmlFile.toFilePath()));
|
| var fullHtmlPath = _getUriForBrowserTest(htmlPath, null).toString();
|
| - var commands = [
|
| - CommandBuilder.instance.getBrowserHtmlTestCommand(
|
| - runtime,
|
| - fullHtmlPath,
|
| - configuration,
|
| - info.expectedMessages)];
|
| + commands.add(CommandBuilder.instance.getBrowserHtmlTestCommand(
|
| + runtime,
|
| + fullHtmlPath,
|
| + configuration,
|
| + info.expectedMessages));
|
| String testDisplayName = '$suiteName/$testName';
|
| var testCase = new BrowserTestCase(
|
| testDisplayName,
|
| @@ -1449,24 +1452,27 @@ class StandardTestSuite extends TestSuite {
|
|
|
| /** Helper to create a compilation command for a single input file. */
|
| Command _compileCommand(String inputFile, String outputFile,
|
| - String compiler, String dir, vmOptions, optionsFromFile) {
|
| + String compiler, String dir, optionsFromFile) {
|
| assert (['dart2js', 'dart2dart'].contains(compiler));
|
| - String executable = compilerPath;
|
| - List<String> args = TestUtils.standardOptions(configuration);
|
| + String executable;
|
| + List<String> args;
|
| + if (compilerPath.endsWith('.dart')) {
|
| + // Run the compiler script via the Dart VM.
|
| + executable = dartVmBinaryFileName;
|
| + args = [compilerPath];
|
| + } else {
|
| + executable = compilerPath;
|
| + args = [];
|
| + }
|
| + args.addAll(TestUtils.standardOptions(configuration));
|
| String packageRoot =
|
| packageRootArgument(optionsFromFile['packageRoot']);
|
| - if (packageRoot != null) {
|
| - args.add(packageRoot);
|
| - }
|
| + if (packageRoot != null) args.add(packageRoot);
|
| args.add('--out=$outputFile');
|
| if (configuration['csp']) args.add('--csp');
|
| args.add(inputFile);
|
| - args.addAll(optionsFromFile['sharedOptions']);
|
| - if (executable.endsWith('.dart')) {
|
| - // Run the compiler script via the Dart VM.
|
| - args.insert(0, executable);
|
| - executable = dartVmBinaryFileName;
|
| - }
|
| + List<String> options = optionsFromFile['sharedOptions'];
|
| + if (options != null) args.addAll(options);
|
| return CommandBuilder.instance.getCompilationCommand(
|
| compiler, outputFile, !useSdk,
|
| dart2JsBootstrapDependencies, compilerPath, args, environmentOverrides);
|
|
|