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

Unified Diff: lib/src/backend/group.dart

Issue 1390883002: Make Suite contain a single Group. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 5 years, 2 months 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 | « lib/src/backend/declarer.dart ('k') | lib/src/backend/group_entry.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/backend/group.dart
diff --git a/lib/src/backend/group.dart b/lib/src/backend/group.dart
index 75eae2d807c77e3a7c414b997fc3a0e22423187c..bcc7e7785bf3f9cbf04aeca65265f320482a2b14 100644
--- a/lib/src/backend/group.dart
+++ b/lib/src/backend/group.dart
@@ -4,46 +4,49 @@
library test.backend.group;
-import 'dart:collection';
-
import 'metadata.dart';
import 'operating_system.dart';
-import 'suite_entry.dart';
+import 'group_entry.dart';
import 'test.dart';
import 'test_platform.dart';
/// A group contains one or more tests and subgroups.
///
/// It includes metadata that applies to all contained tests.
-class Group implements SuiteEntry {
+class Group implements GroupEntry {
final String name;
final Metadata metadata;
/// The children of this group.
- final List<SuiteEntry> entries;
+ final List<GroupEntry> entries;
+
+ /// Returns a new root-level group.
+ Group.root(Iterable<GroupEntry> entries, {Metadata metadata})
+ : this(null, entries, metadata: metadata);
- Group(this.name, this.metadata, Iterable<SuiteEntry> entries)
- : entries = new UnmodifiableListView<SuiteEntry>(entries.toList());
+ Group(this.name, Iterable<GroupEntry> entries, {Metadata metadata})
+ : entries = new List<GroupEntry>.unmodifiable(entries),
+ metadata = metadata == null ? new Metadata() : metadata;
Group forPlatform(TestPlatform platform, {OperatingSystem os}) {
if (!metadata.testOn.evaluate(platform, os: os)) return null;
var newMetadata = metadata.forPlatform(platform, os: os);
var filtered = _map((entry) => entry.forPlatform(platform, os: os));
if (filtered.isEmpty) return null;
- return new Group(name, newMetadata, filtered);
+ return new Group(name, filtered, metadata: newMetadata);
}
Group filter(bool callback(Test test)) {
var filtered = _map((entry) => entry.filter(callback));
if (filtered.isEmpty) return null;
- return new Group(name, metadata, filtered);
+ return new Group(name, filtered, metadata: metadata);
}
/// Returns the entries of this group mapped using [callback].
///
/// Any `null` values returned by [callback] will be removed.
- List<SuiteEntry> _map(SuiteEntry callback(SuiteEntry entry)) {
+ List<GroupEntry> _map(GroupEntry callback(GroupEntry entry)) {
return entries
.map((entry) => callback(entry))
.where((entry) => entry != null)
« no previous file with comments | « lib/src/backend/declarer.dart ('k') | lib/src/backend/group_entry.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698