Index: utils/testrunner/pipeline_task.dart |
=================================================================== |
--- utils/testrunner/pipeline_task.dart (revision 0) |
+++ utils/testrunner/pipeline_task.dart (revision 0) |
@@ -0,0 +1,51 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+/** |
+ * A test execution pipeline is made up of a list of tasks. Each task is a |
+ * subclass of [PipelineTask]. |
+ */ |
+abstract class PipelineTask { |
+ |
+ abstract void execute(Path testfile, List stdout, List stderr, |
+ bool logging, Function exitHandler); |
+ |
+ void cleanup(Path testfile, List stdout, List stderr, |
+ bool verboseLogging, bool keepTestFiles) { |
+ } |
+ |
+ void deleteFiles(List templates, Path testfile, bool logging, bool keepFiles, |
+ List stdout) { |
+ if (!keepFiles) { |
+ for (var template in templates) { |
+ var fname = expandMacros(template, testfile); |
+ deleteFile(fname); |
+ if (logging) { |
+ stdout.add('Removing $fname'); |
+ } |
+ } |
+ } |
+ } |
+ |
+ String flattenPath(String path) { |
+ return makePathAbsolute(path). |
+ replaceAll(Platform.pathSeparator, "_"). |
+ replaceAll(":",""); |
+ } |
+ |
+ // This takes a string used in a template and does macro expansion for |
+ // a specific test file. |
+ String expandMacros(String template, Path testfile) { |
+ String path = makePathAbsolute(testfile.directoryPath.toString()); |
+ return template. |
+ replaceAll(Macros.fullFilePath, testfile.toNativePath()). |
+ replaceAll(Macros.filenameNoExtension, |
+ testfile.filenameWithoutExtension). |
+ replaceAll(Macros.filename, testfile.filename). |
+ replaceAll(Macros.directory, path). |
+ replaceAll(Macros.flattenedDirectory, flattenPath(path)); |
+ } |
+} |
+ |
+ |