| Index: tools/testing/dart/test_suite.dart
|
| ===================================================================
|
| --- tools/testing/dart/test_suite.dart (revision 5854)
|
| +++ tools/testing/dart/test_suite.dart (working copy)
|
| @@ -225,8 +225,7 @@
|
| void forEachTest(Function onTest, Map testCache, String globalTempDir(),
|
| [Function onDone = null]) {
|
| // If DumpRenderTree is required, and not yet updated, wait for update.
|
| - if (DumpRenderTreeUpdater.componentRequiresDRT(configuration['component'])
|
| - && !DumpRenderTreeUpdater.updated) {
|
| + if (configuration['runtime'] == 'drt' && !DumpRenderTreeUpdater.updated) {
|
| Expect.isTrue(DumpRenderTreeUpdater.isActive);
|
| DumpRenderTreeUpdater.onUpdated.add(() {
|
| forEachTest(onTest, testCache, globalTempDir, onDone);
|
| @@ -322,7 +321,7 @@
|
| testName = filename;
|
| }
|
|
|
| - if (configuration['component'] != 'dartc') {
|
| + if (configuration['compiler'] != 'dartc') {
|
| if (testName.endsWith('.dart')) {
|
| testName = testName.substring(0, testName.length - 5);
|
| }
|
| @@ -337,7 +336,7 @@
|
| }
|
| if (expectations.contains(SKIP)) return;
|
|
|
| - if (TestUtils.isBrowserComponent(configuration['component'])) {
|
| + if (TestUtils.isBrowserRuntime(configuration['runtime'])) {
|
| enqueueBrowserTest(info, testName, expectations);
|
| } else {
|
| enqueueStandardTest(info, testName, expectations);
|
| @@ -350,7 +349,7 @@
|
| bool isNegative = info.isNegative ||
|
| (configuration['checked'] && info.isNegativeIfChecked);
|
|
|
| - if (configuration['component'] == 'dartc') {
|
| + if (configuration['compiler'] == 'dartc') {
|
| // dartc can detect static type warnings by the
|
| // format of the error line
|
| if (info.hasFatalTypeErrors) {
|
| @@ -418,7 +417,7 @@
|
| }
|
|
|
| /**
|
| - * The [StandardTestSuite] has support for testing components that
|
| + * The [StandardTestSuite] has support for tests that
|
| * compile a test from Dart to Javascript, and then run the resulting
|
| * Javascript. This function creates a working directory to hold the
|
| * Javascript version of the test, and copies the appropriate framework
|
| @@ -441,7 +440,8 @@
|
| 'in any file that uses #import, #source, or #resource');
|
| }
|
|
|
| - final String component = configuration['component'];
|
| + final String compiler = configuration['compiler'];
|
| + final String runtime = configuration['runtime'];
|
| final String testPath =
|
| new File(filename).fullPathSync().replaceAll('\\', '/');
|
|
|
| @@ -499,7 +499,7 @@
|
| }
|
| htmlPath = '${tempDir.path}/../$htmlFilename';
|
| }
|
| - final String scriptPath = (component == 'dartium') ?
|
| + final String scriptPath = (compiler == 'none' && runtime == 'drt') ?
|
| dartWrapperFilename : compiledDartWrapperFilename;
|
| // Create the HTML file for the test.
|
| RandomAccessFile htmlTest = new File(htmlPath).openSync(FileMode.WRITE);
|
| @@ -517,12 +517,12 @@
|
| htmlTest.closeSync();
|
|
|
| // Construct the command(s) that compile all the inputs needed by the
|
| - // browser test. For dartium, this will be noop commands.
|
| + // browser test. For running Dart in DRT, this will be noop commands.
|
| List<Command> commands = [];
|
| - if (component != 'dartium') {
|
| + if (compiler != 'none' && runtime == 'drt') {
|
| commands.add(_compileCommand(
|
| dartWrapperFilename, compiledDartWrapperFilename,
|
| - component, tempDir.path, vmOptions));
|
| + compiler, tempDir.path, vmOptions));
|
|
|
| // some tests require compiling multiple input scripts.
|
| List<String> otherScripts = optionsFromFile['otherScripts'];
|
| @@ -543,15 +543,16 @@
|
| String compiledName = '${name.substring(0, end)}.js';
|
| commands.add(_compileCommand(
|
| '$dir/$name', '${tempDir.path}/$compiledName',
|
| - component, tempDir.path, vmOptions));
|
| + compiler, tempDir.path, vmOptions));
|
| }
|
| }
|
|
|
| // Construct the command that executes the browser test
|
| List<String> args;
|
| - if (component == 'webdriver') {
|
| + if (runtime == 'ie' || runtime == 'ff' || runtime == 'chrome' ||
|
| + runtime == 'safari' || runtime == 'opera') {
|
| args = ['$dartDir/tools/testing/run_selenium.py',
|
| - '--browser=${configuration["browser"]}',
|
| + '--browser=$runtime',
|
| '--timeout=${configuration["timeout"] - 2}',
|
| '--out=$htmlPath'];
|
| } else {
|
| @@ -560,7 +561,7 @@
|
| dumpRenderTreeFilename,
|
| '--no-timeout'
|
| ];
|
| - if (component == 'dartium') {
|
| + if (runtime == 'drt' && compiler == 'none') {
|
| var dartFlags = ['--ignore-unrecognized-flags'];
|
| if (configuration["checked"]) {
|
| dartFlags.add('--enable_asserts');
|
| @@ -582,17 +583,14 @@
|
|
|
| /** Helper to create a compilation command for a single input file. */
|
| Command _compileCommand(String inputFile, String outputFile,
|
| - String component, String dir, var vmOptions) {
|
| + String compiler, String dir, var vmOptions) {
|
| String executable = TestUtils.compilerPath(configuration);
|
| List<String> args = TestUtils.standardOptions(configuration);
|
| - switch (component) {
|
| - case 'frogium':
|
| - case 'legium':
|
| - case 'webdriver':
|
| - String libdir = configuration['froglib'];
|
| - if (libdir == '') {
|
| - libdir = '$dartDir/frog/lib';
|
| - }
|
| + switch (compiler) {
|
| + case 'frog':
|
| + case 'frogsh':
|
| + case 'dart2js':
|
| + String libdir = '$dartDir/frog/lib';
|
| args.addAll(['--libdir=$libdir',
|
| '--compile-only',
|
| '--out=$outputFile']);
|
| @@ -600,13 +598,13 @@
|
| args.add(inputFile);
|
| break;
|
| default:
|
| - Expect.fail('unimplemented component $component');
|
| + Expect.fail('unimplemented compiler $compiler');
|
| }
|
| return new Command(executable, args);
|
| }
|
|
|
| bool get requiresCleanTemporaryDirectory() =>
|
| - configuration['component'] == 'dartc';
|
| + configuration['compiler'] == 'dartc';
|
|
|
| /**
|
| * Create a directory for the generated test. If a Dart language test
|
| @@ -633,10 +631,11 @@
|
| testUniqueName = testUniqueName.replaceAll('/', '_');
|
| testUniqueName += '-$optionsName';
|
|
|
| - // Create '[build dir]/generated_tests/$component/$testUniqueName',
|
| + // Create '[build dir]/generated_tests/$compiler-$runtime/$testUniqueName',
|
| // including any intermediate directories that don't exist.
|
| var generatedTestPath = ['generated_tests',
|
| - configuration['component'],
|
| + configuration['compiler'] + '-' +
|
| + configuration['runtime'],
|
| testUniqueName];
|
|
|
| String tempDirPath = TestUtils.buildDir(configuration);
|
| @@ -675,22 +674,25 @@
|
| }
|
|
|
| String get scriptType() {
|
| - switch (configuration['component']) {
|
| - case 'dartium':
|
| + switch (configuration['compiler']) {
|
| + case 'none':
|
| return 'application/dart';
|
| - case 'frogium':
|
| - case 'legium':
|
| - case 'webdriver':
|
| + case 'frog':
|
| + case 'frogsh':
|
| + case 'dart2js':
|
| + case 'dartc':
|
| return 'text/javascript';
|
| default:
|
| - Expect.fail('Unimplemented component scriptType');
|
| + Expect.fail('Non-web runtime, so no scriptType for: ' +
|
| + '${configuration["compiler"]}');
|
| return null;
|
| }
|
| }
|
|
|
| String getHtmlName(String filename) {
|
| return filename.replaceAll('/', '_').replaceAll(':', '_')
|
| - .replaceAll('\\', '_') + configuration['component'] + '.html';
|
| + .replaceAll('\\', '_') + configuration['compiler'] + '-' +
|
| + configuration['runtime'] + '.html';
|
| }
|
|
|
| String get dumpRenderTreeFilename() {
|
| @@ -729,7 +731,7 @@
|
| Map optionsFromFile) {
|
| List args = TestUtils.standardOptions(configuration);
|
| args.addAll(additionalOptions(filename));
|
| - if (configuration['component'] == 'dartc') {
|
| + if (configuration['compiler'] == 'dartc') {
|
| args.add('--error_format');
|
| args.add('machine');
|
| }
|
| @@ -950,7 +952,7 @@
|
| doTest = onTest;
|
| doDone = (onDone != null) ? onDone : (() => null);
|
|
|
| - if (configuration['component'] != 'dartc') {
|
| + if (configuration['compiler'] != 'dartc') {
|
| // Do nothing. Asynchronously report that the suite is enqueued.
|
| new Timer(0, (timerUnused){ doDone(); });
|
| return;
|
| @@ -996,7 +998,7 @@
|
|
|
| void createTest(successIgnored) {
|
| String d8 =
|
| - "$buildDir/d8${TestUtils.executableSuffix(configuration['component'])}";
|
| + "$buildDir/d8${TestUtils.executableSuffix(configuration['runtime'])}";
|
| List<String> args = <String>[
|
| '-ea',
|
| '-classpath', classPath,
|
| @@ -1070,11 +1072,9 @@
|
| handle.closeSync();
|
| }
|
|
|
| - static String executableSuffix(String component) {
|
| + static String executableSuffix(String executable) {
|
| if (new Platform().operatingSystem() == 'windows') {
|
| - if (component != 'frogium'
|
| - && component != 'legium'
|
| - && component != 'webdriver') {
|
| + if (executable == 'd8' || executable == 'vm') {
|
| return '.exe';
|
| } else {
|
| return '.bat';
|
| @@ -1084,33 +1084,32 @@
|
| }
|
|
|
| static String executableName(Map configuration) {
|
| - String suffix = executableSuffix(configuration['component']);
|
| - switch (configuration['component']) {
|
| - case 'vm':
|
| + String suffix = executableSuffix(configuration['compiler']);
|
| + switch (configuration['compiler']) {
|
| + case 'none':
|
| return 'dart$suffix';
|
| case 'dartc':
|
| return 'compiler/bin/dartc$suffix';
|
| case 'frog':
|
| case 'dart2js':
|
| - return 'frog/bin/frog$suffix';
|
| + return 'frog/bin/frog$suffix';
|
| case 'frogsh':
|
| return 'frog/bin/frogsh$suffix';
|
| default:
|
| - throw "Unknown executable for: ${configuration['component']}";
|
| + throw "Unknown executable for: ${configuration['compiler']}";
|
| }
|
| }
|
|
|
| static String compilerName(Map configuration) {
|
| - String suffix = executableSuffix(configuration['component']);
|
| - switch (configuration['component']) {
|
| + String suffix = executableSuffix(configuration['compiler']);
|
| + switch (configuration['compiler']) {
|
| case 'dartc':
|
| return 'compiler/bin/dartc$suffix';
|
| - case 'frogium':
|
| - case 'legium':
|
| - case 'webdriver':
|
| + case 'frog':
|
| + case 'dart2js':
|
| return 'frog/bin/frog$suffix';
|
| default:
|
| - throw "Unknown compiler for: ${configuration['component']}";
|
| + throw "Unknown compiler for: ${configuration['compiler']}";
|
| }
|
| }
|
|
|
| @@ -1123,13 +1122,10 @@
|
| }
|
|
|
| static String compilerPath(Map configuration) {
|
| - if (configuration['component'] == 'dartium') {
|
| + if (configuration['compiler'] == 'none') {
|
| return null; // No separate compiler for dartium tests.
|
| }
|
| - var name = configuration['frog'];
|
| - if (name == '') {
|
| - name = '${buildDir(configuration)}/${compilerName(configuration)}';
|
| - }
|
| + var name = '${buildDir(configuration)}/${compilerName(configuration)}';
|
| if (!(new File(name)).existsSync() && !configuration['list']) {
|
| throw "Executable '$name' does not exist";
|
| }
|
| @@ -1166,25 +1162,26 @@
|
| args.add('--enable_asserts');
|
| args.add("--enable_type_checks");
|
| }
|
| - if (configuration["component"] == "dart2js"
|
| - || configuration["component"] == "legium") {
|
| + if (configuration["compiler"] == "dart2js") {
|
| args.add("--verbose");
|
| args.add("--leg");
|
| if (configuration["host_checked"]) {
|
| args.add("--vm_flags=--enable_asserts --enable_type_checks");
|
| }
|
| - if (configuration["component"] == "dart2js") {
|
| + if (configuration['runtime'] != 'drt') {
|
| args.add("--allow-mock-compilation");
|
| }
|
| }
|
| return args;
|
| }
|
|
|
| - static bool isBrowserComponent(String component) =>
|
| - const <String>['dartium',
|
| - 'frogium',
|
| - 'legium',
|
| - 'webdriver'].some((x) => x == component);
|
| + static bool isBrowserRuntime(String runtime) =>
|
| + const <String>['drt',
|
| + 'ie',
|
| + 'safari',
|
| + 'opera',
|
| + 'chrome',
|
| + 'ff'].some((x) => x == runtime);
|
| }
|
|
|
| class SummaryReport {
|
|
|