| OLD | NEW |
| 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 * The DartWrapTask generates a Dart wrapper for a test file, that has a | 6 * The DartWrapTask generates a Dart wrapper for a test file, that has a |
| 7 * test Configuration customized for the options specified by the user. | 7 * test Configuration customized for the options specified by the user. |
| 8 */ | 8 */ |
| 9 class DartWrapTask extends PipelineTask { | 9 class DartWrapTask extends PipelineTask { |
| 10 final String _sourceFileTemplate; | 10 final String _sourceFileTemplate; |
| 11 final String _tempDartFileTemplate; | 11 final String _tempDartFileTemplate; |
| 12 | 12 |
| 13 DartWrapTask(this._sourceFileTemplate, this._tempDartFileTemplate); | 13 DartWrapTask(this._sourceFileTemplate, this._tempDartFileTemplate); |
| 14 | 14 |
| 15 void execute(Path testfile, List stdout, List stderr, bool logging, | 15 void execute(Path testfile, List stdout, List stderr, bool logging, |
| 16 Function exitHandler) { | 16 Function exitHandler) { |
| 17 // Get the source test file and canonicalize the path. | 17 // Get the source test file and canonicalize the path. |
| 18 var sourceName = makePathAbsolute( | 18 var sourceName = makePathAbsolute( |
| 19 expandMacros(_sourceFileTemplate, testfile)); | 19 expandMacros(_sourceFileTemplate, testfile)); |
| 20 // Get the destination file. | 20 // Get the destination file. |
| 21 var destFile = expandMacros(_tempDartFileTemplate, testfile); | 21 var destFile = expandMacros(_tempDartFileTemplate, testfile); |
| 22 | 22 |
| 23 var p = new Path(sourceName); |
| 24 if (isLayoutRenderTest(sourceName) || config.generateRenders) { |
| 25 makeLayoutTestWrapper(sourceName, destFile, p.filenameWithoutExtension); |
| 26 exitHandler(0); |
| 27 return; |
| 28 } |
| 29 |
| 23 // Working buffer for the Dart wrapper. | 30 // Working buffer for the Dart wrapper. |
| 24 StringBuffer sbuf = new StringBuffer(); | 31 StringBuffer sbuf = new StringBuffer(); |
| 25 | 32 |
| 26 // Add the common header stuff. | 33 // Add the common header stuff. |
| 27 var p = new Path(sourceName); | |
| 28 sbuf.add(directives(p.filenameWithoutExtension, | 34 sbuf.add(directives(p.filenameWithoutExtension, |
| 29 config.unittestPath, | 35 config.unittestPath, |
| 30 sourceName)); | 36 sourceName)); |
| 31 | 37 |
| 32 // Add the test configuration and determine the action function. | 38 // Add the test configuration and determine the action function. |
| 33 var action; | 39 var action; |
| 34 if (config.listTests) { | 40 if (config.listTests) { |
| 35 action = 'listTests'; | 41 action = 'listTests'; |
| 36 sbuf.add(barebonesConfig()); | 42 sbuf.add(barebonesConfig()); |
| 37 sbuf.add(listTestsFunction); | 43 sbuf.add(listTestsFunction); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 // Save the Dart file. | 99 // Save the Dart file. |
| 94 createFile(destFile, sbuf.toString()); | 100 createFile(destFile, sbuf.toString()); |
| 95 exitHandler(0); | 101 exitHandler(0); |
| 96 } | 102 } |
| 97 | 103 |
| 98 void cleanup(Path testfile, List stdout, List stderr, | 104 void cleanup(Path testfile, List stdout, List stderr, |
| 99 bool logging, bool keepFiles) { | 105 bool logging, bool keepFiles) { |
| 100 deleteFiles([_tempDartFileTemplate], testfile, logging, keepFiles, stdout); | 106 deleteFiles([_tempDartFileTemplate], testfile, logging, keepFiles, stdout); |
| 101 } | 107 } |
| 102 | 108 |
| 109 void makeLayoutTestWrapper(String sourceName, String destFile, |
| 110 String libraryName) { |
| 111 StringBuffer sbuf = new StringBuffer(); |
| 112 var cfg = config.unittestPath. |
| 113 replaceAll('unittest.dart', 'html_layout_config.dart'); |
| 114 sbuf.add(""" |
| 115 #library('$libraryName'); |
| 116 #import('dart:math'); |
| 117 #import('dart:isolate'); |
| 118 #import('dart:html'); |
| 119 #import('${config.unittestPath}', prefix:'unittest'); |
| 120 #import('$cfg', prefix:'unittest'); |
| 121 #import('$sourceName', prefix: 'test'); |
| 122 """); |
| 123 // Add the filter, if applicable. |
| 124 if (config.filtering) { |
| 125 if (config.includeFilter.length > 0) { |
| 126 sbuf.add(filterTestFunction(config.includeFilter, 'true')); |
| 127 } else { |
| 128 sbuf.add(filterTestFunction(config.excludeFilter, 'false')); |
| 129 } |
| 130 } |
| 131 sbuf.add(""" |
| 132 main() { |
| 133 unittest.groupSep = '###'; |
| 134 unittest.useHtmlLayoutConfiguration(); |
| 135 unittest.group('', test.main); |
| 136 ${config.filtering ? 'unittest.filterTests(filterTest);' : ''} |
| 137 if (window.location.search == '') unittest.runTests(); |
| 138 } |
| 139 """); |
| 140 // Save the Dart file. |
| 141 createFile(destFile, sbuf.toString()); |
| 142 } |
| 143 |
| 103 String directives(String library, String unittest, String sourceName) { | 144 String directives(String library, String unittest, String sourceName) { |
| 104 return """ | 145 return """ |
| 105 #library('$library'); | 146 #library('$library'); |
| 106 #import('dart:math'); | 147 #import('dart:math'); |
| 107 #import('dart:isolate'); | 148 #import('dart:isolate'); |
| 108 #import('$unittest', prefix:'unittest'); | 149 #import('$unittest', prefix:'unittest'); |
| 109 #import('$sourceName', prefix: 'test'); | 150 #import('$sourceName', prefix: 'test'); |
| 110 """; | 151 """; |
| 111 } | 152 } |
| 112 | 153 |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 434 runParentTest(); | 475 runParentTest(); |
| 435 } | 476 } |
| 436 """; | 477 """; |
| 437 | 478 |
| 438 // Code for running all tests in the normal (non-isolate) way. | 479 // Code for running all tests in the normal (non-isolate) way. |
| 439 final String runTestsFunction = """ | 480 final String runTestsFunction = """ |
| 440 runTests() { | 481 runTests() { |
| 441 unittest.runTests(); | 482 unittest.runTests(); |
| 442 } | 483 } |
| 443 """; | 484 """; |
| 485 |
| 444 } | 486 } |
| OLD | NEW |