eccaec8f3b
- 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
65 lines
1.8 KiB
Dart
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();
|
|
}
|
|
}
|