Chromium Code Reviews| Index: tools/testing/dart/test_suite.dart |
| =================================================================== |
| --- tools/testing/dart/test_suite.dart (revision 5794) |
| +++ 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' || executable == 'dartc') { |
|
ahe
2012/03/24 13:56:40
Do we have a dartc.exe?
Emily Fortuna
2012/03/26 20:52:32
removed.
|
| 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,11 @@ |
| } |
| static String compilerPath(Map configuration) { |
| - if (configuration['component'] == 'dartium') { |
| + if (configuration['compiler'] == 'none' && |
| + configuration['runtime'] == 'drt') { |
|
ahe
2012/03/24 13:56:40
Why not just:
if (configuration['compiler'] ==
Emily Fortuna
2012/03/26 20:52:32
Done.
|
| 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 +1163,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) => |
| + static bool isBrowserRuntime(String runtime) => |
| const <String>['dartium', |
|
Siggi Cherem (dart-lang)
2012/03/23 23:57:33
dartium -> drt?
Emily Fortuna
2012/03/26 20:52:32
Done.
|
| - 'frogium', |
| - 'legium', |
| - 'webdriver'].some((x) => x == component); |
| + 'ie', |
| + 'safari', |
| + 'opera', |
| + 'chrome', |
| + 'ff'].some((x) => x == runtime); |
|
Siggi Cherem (dart-lang)
2012/03/23 23:57:33
:) this is basically what I had in mind for [uses
Emily Fortuna
2012/03/26 20:52:32
Done.
|
| } |
| class SummaryReport { |