| 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));
|
| + }
|
| +}
|
| +
|
| +
|
|
|