| // Copyright (c) 2021, 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. | |
| import 'package:path/path.dart' as p; | |
| import 'package:test_api/src/backend/operating_system.dart'; // ignore: implementation_imports | |
| /// Directories that are specific to OS X. | |
| /// | |
| /// This is used to try to distinguish OS X and Linux in [currentOSGuess]. | |
| final _macOSDirectories = { | |
| '/Applications', | |
| '/Library', | |
| '/Network', | |
| '/System', | |
| '/Users', | |
| }; | |
| /// Returns the best guess for the current operating system without using | |
| /// `dart:io`. | |
| /// | |
| /// This is useful for running test files directly and skipping tests as | |
| /// appropriate. The only OS-specific information we have is the current path, | |
| /// which we try to use to figure out the OS. | |
| final OperatingSystem currentOSGuess = (() { | |
| if (p.style == p.Style.url) return OperatingSystem.none; | |
| if (p.style == p.Style.windows) return OperatingSystem.windows; | |
| if (_macOSDirectories.any(p.current.startsWith)) { | |
| return OperatingSystem.macOS; | |
| } | |
| return OperatingSystem.linux; | |
| })(); |