Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1074)

Unified Diff: tests/standalone/test_config.dart

Issue 8507010: Make tools/test.dart read standalone.status status file when running tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: slight improvements Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/testing/dart/status_file_parser.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/test_config.dart
diff --git a/tests/standalone/test_config.dart b/tests/standalone/test_config.dart
index 170de26c172f5dda8f9a80ab0b35ea52e94f979a..97f57a99bc0e4618b98166fbe52bd6d1dd3b322a 100644
--- a/tests/standalone/test_config.dart
+++ b/tests/standalone/test_config.dart
@@ -5,51 +5,77 @@
#library("standalone_test_config");
#import("../../tools/testing/dart/test_runner.dart");
+#import("../../tools/testing/dart/status_file_parser.dart");
class StandaloneTestSuite {
- final String directoryPath = "tests/standalone/src";
+ String directoryPath = "tests/standalone/src";
+ final String statusFilePath = "tests/standalone/standalone.status";
Function doTest;
Function doDone;
String shellPath;
String pathSeparator;
+ TestSettingMap testSettingMap;
+ Configuration configuration;
StandaloneTestSuite() {
shellPath = getDartShellFileName() ;
pathSeparator = new Platform().pathSeparator();
+ testSettingMap = new TestSettingMap();
+ configuration = new Configuration({"mode":"debug",
+ "arch":"ia32",
+ "checked":"false",
+ "component":"vm",
+ "system":
+ new Platform().operatingSystem()});
Mads Ager (google) 2011/11/09 14:46:53 How about avoiding this indentation by doing: con
Bill Hesse 2011/11/09 14:55:39 Done.
Mads Ager (google) 2011/11/09 15:12:35 Could you upload a new snapshot?
}
void forEachTest(Function onTest, [Function onDone = null]) {
doTest = onTest;
doDone = onDone;
+
+ // Read configuration from status file.
+ List<Section> sections = new List<Section>();
+ ReadConfigurationInto(statusFilePath, sections);
+ for (Section section in sections) {
+ if (configuration.isEnabled(section)) {
+ for (var testSetting in section.testSettings) {
+ testSettingMap.addTest(testSetting, configuration);
Mads Ager (google) 2011/11/09 14:46:53 What is a testSetting and why does the testSetting
Bill Hesse 2011/11/09 14:55:39 This is the immediate next thing to be implemented
Mads Ager (google) 2011/11/09 15:12:35 OK, I would still leave it out of this change unti
+ }
+ }
+ }
+
processDirectory();
}
void processDirectory() {
+ directoryPath = getDirname(directoryPath);
Directory dir = new Directory(directoryPath);
- if (!dir.existsSync()) {
- dir = new Directory(".." + pathSeparator + directoryPath);
- Expect.isTrue(dir.existsSync(),
- "Cannot find tests/corelib/src or ../tests/corelib/src");
+ Expect.isTrue(dir.existsSync(),
+ "Cannot find tests/standalone/src or ../tests/standalone/src");
// TODO(ager): Use dir.errorHandler instead when it is implemented.
- }
dir.fileHandler = processFile;
dir.doneHandler = doDone;
dir.list(false);
}
void processFile(String filename) {
- if (filename.endsWith("Test.dart")) {
- int start = filename.lastIndexOf(pathSeparator);
- String displayName = filename.substring(start + 1, filename.length - 5);
- // TODO(whesse): Gather test case info from status file and test file.
- doTest(new TestCase(displayName,
- shellPath,
- <String>["--enable_type_checks",
- "--ignore-unrecognized-flags",
- filename ],
- completeHandler,
- new Set.from([PASS, FAIL, CRASH, TIMEOUT])));
- }
+ if (!filename.endsWith("Test.dart")) return;
+
+ Expect.isTrue(filename.contains(directoryPath));
+ String testName = filename.substring(
Mads Ager (google) 2011/11/09 14:46:53 I linked what you had before much better. This loo
Bill Hesse 2011/11/09 14:55:39 The reason for the complication is that some test
Mads Ager (google) 2011/11/09 15:12:35 OK, in that case should you make the directory lis
+ filename.indexOf(directoryPath) + directoryPath.length + 1,
+ filename.length - ".dart".length);
+ Set<String> expectations = testSettingMap.expectations(testName);
Mads Ager (google) 2011/11/09 14:46:53 I would leave this out for now as well. It doesn't
Bill Hesse 2011/11/09 14:55:39 I wanted the design, and the stubs. That way, I c
Mads Ager (google) 2011/11/09 15:12:35 Same as above. I would wait until it does somethin
+ expectations.addAll(ExpectationsFromFile(filename));
+ if (expectations.contains(SKIP)) return;
+
+ doTest(new TestCase(testName,
+ shellPath,
+ <String>["--enable_type_checks",
+ "--ignore-unrecognized-flags",
+ filename ],
+ completeHandler,
+ expectations));
}
void completeHandler(TestCase testCase) {
@@ -57,3 +83,27 @@ class StandaloneTestSuite {
print("Exit code: ${output.exitCode} Time: ${output.time}");
}
}
+
+
+class Configuration {
+ Map<String, String> environment;
+
+ Configuration(this.environment);
+
+ bool isEnabled(Section section) =>
+ section.condition == null || section.condition.evaluate(environment);
+}
+
+class TestSettingMap {
+ TestSettingMap();
+
+ void addTest(testSetting, Configuration configuration) { }
+
+ Set<String> expectations(String filename) =>
+ new Set.from([PASS, FAIL, CRASH, TIMEOUT]);
+}
+
+
+Collection<String> ExpectationsFromFile(String fileName) {
+ return new List<String>();
+}
« no previous file with comments | « no previous file | tools/testing/dart/status_file_parser.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698