Files
sdk/utils/testrunner/layout_test_runner.dart
T
gram@google.com eccaec8f3b Updated testrunner:
- works with latest SDK
- understand and works with pub and pubspecs
- tested on Linux, Mac and Windows
- has its own tests

There is still as issue on Windows, where using Process.start to run a .bat file is not terminating until the timeout kills the cmd.exe process. My suspicion is that this is am issue with Process, not testrunner. I have contacted whesse et al about this.

Review URL: https://codereview.chromium.org//14247033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21969 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-24 18:39:50 +00:00

65 lines
1.8 KiB
Dart

// 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.
part of layout_test;
// The filters must be set by the caller that #sources this file.
List includeFilters;
List excludeFilters;
/**
* A special marker string used to separate group names and
* identify non-debug output.
*/
final marker = '###';
class LayoutTestConfiguration extends unittest.Configuration {
get autoStart => false;
void onTestResult(unittest.TestCase testCase) {
window.postMessage('done', '*'); // Unblock DRT
}
}
filterTest(t) {
var name = t.description.replaceAll(marker, " ");
if (includeFilters.length > 0) {
for (var f in includeFilters) {
if (name.indexOf(f) >= 0) return true;
}
return false;
} else if (excludeFilters.length > 0) {
for (var f in excludeFilters) {
if (name.indexOf(f) >= 0) return false;
}
return true;
} else {
return true;
}
}
runTests(testMain) {
unittest.groupSep = marker;
unittest.unittestConfiguration = new LayoutTestConfiguration();
// Create the set of test cases.
unittest.group('', testMain);
// Do any user-specified test filtering.
unittest.filterTests(filterTest);
// Filter to the test number in the search query.
var testNum = int.parse(window.location.search.substring(6));
if (testNum < 0 || testNum >= unittest.testCases.length) {
print('#TEST NONEXISTENT');
window.postMessage('done', '*'); // Unblock DRT
} else {
var name = unittest.testCases[testNum].description;
print('#TEST $name');
unittest.filterTests(name);
// Run the test.
print('Tests - ${unittest.testCases.length}');
unittest.runTests();
}
}