Skip to content

Commit 2785c15

Browse files
committed
add cmake install location search path test
1 parent 711eb78 commit 2785c15

File tree

3 files changed

+557
-467
lines changed

3 files changed

+557
-467
lines changed

lib/src/native_toolchain/cmake.dart

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,16 @@ import '../tool/tool_resolver.dart';
1515
/// CMake.
1616
final cmake = Tool(name: 'CMake', defaultResolver: _CmakeResolver());
1717

18-
CliVersionResolver? _unitTestAndroidResolver;
19-
CliVersionResolver? _unitTestSystemResolver;
20-
2118
@visibleForTesting
22-
set cmakeUnitTestAndroidResolver(CliVersionResolver? resolver) => _unitTestAndroidResolver = resolver;
23-
19+
CliVersionResolver? unitTestCmakeAndroidResolver;
2420
@visibleForTesting
25-
set cmakeUnitTestSystemResolver(CliVersionResolver? resolver) => _unitTestSystemResolver = resolver;
21+
CliVersionResolver? unitTestCmakeSystemResolver;
2622

2723
class _CmakeResolver implements ToolResolver {
2824
final executableName = OS.current.executableFileName('cmake');
2925

3026
CliVersionResolver _getAndroidResolver({UserConfig? userConfig}) {
31-
return _unitTestAndroidResolver ?? CliVersionResolver(
27+
return unitTestCmakeAndroidResolver ?? CliVersionResolver(
3228
wrappedResolver: ToolResolvers([
3329
InstallLocationResolver(
3430
toolName: 'CMake',
@@ -44,7 +40,7 @@ class _CmakeResolver implements ToolResolver {
4440
}
4541

4642
CliVersionResolver _getSystemResolver() {
47-
return _unitTestSystemResolver ?? CliVersionResolver(
43+
return unitTestCmakeSystemResolver ?? CliVersionResolver(
4844
wrappedResolver: PathToolResolver(toolName: 'CMake', executableName: 'cmake'),
4945
);
5046
}

lib/src/tool/tool_resolver.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import 'package:code_assets/code_assets.dart';
99
import 'package:glob/glob.dart';
1010
import 'package:glob/list_local_fs.dart';
1111
import 'package:logging/logging.dart';
12+
import 'package:meta/meta.dart';
1213
import 'package:pub_semver/pub_semver.dart';
1314

1415
import '../builder/user_config.dart';
@@ -182,6 +183,9 @@ class InstallLocationResolver implements ToolResolver {
182183

183184
static const home = r'$HOME';
184185

186+
@visibleForTesting
187+
static Future<List<Uri>> Function(String)? unitTestTryResolvePath;
188+
185189
/// [userConfig] is ignored.
186190
@override
187191
Future<List<ToolInstance>> resolve({required Logger? logger, UserConfig? userConfig}) async {
@@ -203,6 +207,10 @@ class InstallLocationResolver implements ToolResolver {
203207
}
204208

205209
Future<List<Uri>> tryResolvePath(String path) async {
210+
if (unitTestTryResolvePath != null) {
211+
return unitTestTryResolvePath!(path);
212+
}
213+
206214
String pathNew = path;
207215
if (path.startsWith(home)) {
208216
final homeDir_ = homeDir;

0 commit comments

Comments
 (0)