blob: 208851bfbbcdfc2553ad9098a8e1c6269925dbf2 [file] [log] [blame]
// Copyright (c) 2023, 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.
@TestOn('mac-os')
@OnPlatform({
'mac-os': Timeout.factor(2),
})
library;
import 'dart:io';
import 'package:native_toolchain_c/src/native_toolchain/xcode.dart';
import 'package:native_toolchain_c/src/tool/tool.dart';
import 'package:native_toolchain_c/src/tool/tool_instance.dart';
import 'package:test/test.dart';
import '../helpers.dart';
void main() {
if (!Platform.isMacOS) {
// Avoid needing status files on Dart SDK CI.
return;
}
test('xcrun', () async {
final resolved = (await xcrun.defaultResolver!.resolve(logger: logger))
.where((i) => i.tool == xcrun);
expect(resolved.isNotEmpty, true);
});
test('macosxSdk', () async {
final resolved = (await macosxSdk.defaultResolver!.resolve(logger: logger))
.where((i) => i.tool == macosxSdk);
expect(resolved.isNotEmpty, true);
});
test('iPhoneOSSdk', () async {
final resolved =
(await iPhoneOSSdk.defaultResolver!.resolve(logger: logger))
.where((i) => i.tool == iPhoneOSSdk);
expect(resolved.isNotEmpty, true);
});
test('iPhoneSimulatorSdk', () async {
final resolved =
(await iPhoneSimulatorSdk.defaultResolver!.resolve(logger: logger))
.where((i) => i.tool == iPhoneSimulatorSdk);
expect(resolved.isNotEmpty, true);
});
test('non-existing SDK', () async {
final xcrunInstance =
(await xcrun.defaultResolver!.resolve(logger: logger)).first;
final tool = Tool(name: 'non-tool');
final result = await XCodeSdkResolver.tryResolveSdk(
xcrunInstance: xcrunInstance,
sdk: 'doesnotexist',
tool: tool,
logger: logger,
);
expect(result, <ToolInstance>[]);
});
}