blob: 77a70610579d1ef4283d43f9c65e2a44eee1a93c [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:c_compiler/src/native_toolchain/apple_clang.dart';
import 'package:c_compiler/src/tool/tool_requirement.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:test/test.dart';
import '../helpers.dart';
void main() {
if (!Platform.isMacOS) {
// Avoid needing status files on Dart SDK CI.
return;
}
test('smoke test', () async {
final requirement = ToolRequirement(appleClang,
minimumVersion: Version(12, 0, 0, pre: '0'));
final resolved = await appleClang.defaultResolver!.resolve(logger: logger);
expect(resolved.isNotEmpty, true);
final satisfied = requirement.satisfy(resolved);
expect(satisfied?.length, 1);
});
test('ar test', () async {
final requirement = ToolRequirement(appleAr);
final resolved = await appleAr.defaultResolver!.resolve(logger: logger);
expect(resolved.isNotEmpty, true);
final satisfied = requirement.satisfy(resolved);
expect(satisfied?.length, 1);
});
test('ld test', () async {
final requirement = ToolRequirement(appleLd);
final resolved = await appleLd.defaultResolver!.resolve(logger: logger);
expect(resolved.isNotEmpty, true);
final satisfied = requirement.satisfy(resolved);
expect(satisfied?.length, 1);
});
test('otool test', () async {
final requirement = ToolRequirement(otool);
final resolved = await otool.defaultResolver!.resolve(logger: logger);
expect(resolved.isNotEmpty, true);
final satisfied = requirement.satisfy(resolved);
expect(satisfied?.length, 1);
});
}