| // 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. |
| |
| library test_mode_check; |
| import 'dart:io'; |
| |
| typedef CheckFunction = bool Function(String str); |
| |
| bool checkResolvedExecutable(CheckFunction function) { |
| var uriParts = Uri.file(Platform.resolvedExecutable).pathSegments; |
| String baseName = uriParts[uriParts.length - 1]; |
| var pos = baseName.lastIndexOf('.'); |
| String result = (pos != -1) ? baseName.substring(0, pos) : baseName; |
| return function(result); |
| } |
| |
| /// Checks that application runs in dart precompiled runtime mode. |
| bool get isDartkp => |
| checkResolvedExecutable(((String s) => s == "dart_precompiled_runtime")); |
| |
| /// Checks that application runs in AOT mode. |
| bool get isAot => checkResolvedExecutable(((String str) => str != "dart")); |