67 lines
2.3 KiB
Dart
67 lines
2.3 KiB
Dart
import 'package:build_tool/src/rustup.dart';
|
|
import 'package:build_tool/src/util.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
test('rustup with no toolchains', () {
|
|
bool didListToolchains = false;
|
|
bool didInstallStable = false;
|
|
bool didListTargets = false;
|
|
testRunCommandOverride = (args) {
|
|
expect(args.executable, 'rustup');
|
|
switch (args.arguments) {
|
|
case ['toolchain', 'list']:
|
|
didListToolchains = true;
|
|
return TestRunCommandResult(stdout: 'no installed toolchains\n');
|
|
case ['toolchain', 'install', 'stable']:
|
|
didInstallStable = true;
|
|
return TestRunCommandResult();
|
|
case ['target', 'list', '--toolchain', 'stable', '--installed']:
|
|
didListTargets = true;
|
|
return TestRunCommandResult(
|
|
stdout: 'x86_64-unknown-linux-gnu\nx86_64-apple-darwin\n');
|
|
default:
|
|
throw Exception('Unexpected call: ${args.arguments}');
|
|
}
|
|
};
|
|
final rustup = Rustup();
|
|
rustup.installToolchain('stable');
|
|
expect(didInstallStable, true);
|
|
expect(didListToolchains, true);
|
|
expect(didListTargets, true);
|
|
expect(rustup.installedTargets('stable'), [
|
|
'x86_64-unknown-linux-gnu',
|
|
'x86_64-apple-darwin',
|
|
]);
|
|
testRunCommandOverride = null;
|
|
});
|
|
|
|
test('rustup with esp toolchain', () {
|
|
final targetsQueried = <String>[];
|
|
testRunCommandOverride = (args) {
|
|
expect(args.executable, 'rustup');
|
|
switch (args.arguments) {
|
|
case ['toolchain', 'list']:
|
|
return TestRunCommandResult(
|
|
stdout: 'stable-aarch64-apple-darwin (default)\n'
|
|
'nightly-aarch64-apple-darwin\n'
|
|
'esp\n');
|
|
case ['target', 'list', '--toolchain', String toolchain, '--installed']:
|
|
targetsQueried.add(toolchain);
|
|
return TestRunCommandResult(stdout: '$toolchain:target\n');
|
|
default:
|
|
throw Exception('Unexpected call: ${args.arguments}');
|
|
}
|
|
};
|
|
final rustup = Rustup();
|
|
expect(targetsQueried, [
|
|
'stable-aarch64-apple-darwin',
|
|
'nightly-aarch64-apple-darwin',
|
|
]);
|
|
expect(rustup.installedTargets('stable'),
|
|
['stable-aarch64-apple-darwin:target']);
|
|
expect(rustup.installedTargets('nightly'),
|
|
['nightly-aarch64-apple-darwin:target']);
|
|
});
|
|
}
|