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

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

Issue 1004013002: Add support for evaluating platform selectors. (Closed) Base URL: git@github.com:dart-lang/unittest@master
Patch Set: Code review changes Created 5 years, 9 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 | « bin/unittest.dart ('k') | lib/src/backend/platform_selector.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/backend/operating_system.dart
diff --git a/lib/src/backend/operating_system.dart b/lib/src/backend/operating_system.dart
new file mode 100644
index 0000000000000000000000000000000000000000..cf964306931337c534faf6ed9e22bfcd521fea47
--- /dev/null
+++ b/lib/src/backend/operating_system.dart
@@ -0,0 +1,66 @@
+// Copyright (c) 2015, 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.
+
+library unittest.backend.operating_system;
+
+/// An enum of all operating systems supported by Dart.
+///
+/// This is used for selecting which operating systems a test can run on. Even
+/// for browser tests, this indicates the operating system of the machine
+/// running the test runner.
+class OperatingSystem {
+ /// Microsoft Windows.
+ static const windows = const OperatingSystem._("windows");
+
+ /// Mac OS X.
+ static const macOS = const OperatingSystem._("mac-os");
+
+ /// GNU/Linux.
+ static const linux = const OperatingSystem._("linux");
+
+ /// Android.
+ ///
+ /// Since this is the operating system the test runner is running on, this
+ /// won't be true when testing remotely on an Android browser.
+ static const android = const OperatingSystem._("android");
+
+ /// No operating system.
+ ///
+ /// This is used when running in the browser, or if an unrecognized operating
+ /// system is used. It can't be referenced by name in platform selectors.
+ static const none = const OperatingSystem._("none");
+
+ /// A list of all instances of [OperatingSystem] other than [none].
+ static const all = const [windows, macOS, linux, android];
+
+ /// Finds an operating system by its name.
+ ///
+ /// If no operating system is found, returns [none].
+ static OperatingSystem find(String name) =>
+ all.firstWhere((platform) => platform.name == name, orElse: () => null);
+
+ /// Finds an operating system by the return value from `dart:io`'s
+ /// `Platform.operatingSystem`.
+ ///
+ /// If no operating system is found, returns [none].
+ static OperatingSystem findByIoName(String name) {
+ switch (name) {
+ case "windows": return windows;
+ case "macos": return macOS;
+ case "linux": return linux;
+ case "android": return android;
+ default: return none;
+ }
+ }
+
+ /// The name of the operating system.
+ final String name;
+
+ /// Whether this is a POSIX-ish operating system.
+ bool get isPosix => this != windows && this != none;
+
+ const OperatingSystem._(this.name);
+
+ String toString() => name;
+}
« no previous file with comments | « bin/unittest.dart ('k') | lib/src/backend/platform_selector.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698