2024-07-26 05:33:18 +00:00
|
|
|
import * as assert from "assert";
|
|
|
|
import { _private } from "../../src/bootstrap";
|
|
|
|
import type { Context } from ".";
|
|
|
|
|
|
|
|
export async function getTests(ctx: Context) {
|
|
|
|
await ctx.suite("Bootstrap/Select toolchain RA", (suite) => {
|
|
|
|
suite.addTest("Order of nightly RA", async () => {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
_private.orderFromPath(
|
|
|
|
"/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
function (path: string) {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
path,
|
|
|
|
"/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
);
|
|
|
|
return "rust-analyzer 1.67.0-nightly (b7bc90fe 2022-11-21)";
|
|
|
|
},
|
|
|
|
),
|
2024-07-31 11:24:56 +00:00
|
|
|
"0-2022-11-21/0",
|
2024-07-26 05:33:18 +00:00
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
suite.addTest("Order of versioned RA", async () => {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
_private.orderFromPath(
|
|
|
|
"/Users/myuser/.rustup/toolchains/1.72.1-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
function (path: string) {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
path,
|
|
|
|
"/Users/myuser/.rustup/toolchains/1.72.1-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
);
|
|
|
|
return "rust-analyzer 1.72.1 (d5c2e9c3 2023-09-13)";
|
|
|
|
},
|
|
|
|
),
|
2024-07-31 11:24:56 +00:00
|
|
|
"0-2023-09-13/1",
|
2024-07-26 05:33:18 +00:00
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
suite.addTest("Order of versioned RA when unable to obtain version date", async () => {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
_private.orderFromPath(
|
|
|
|
"/Users/myuser/.rustup/toolchains/1.72.1-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
function () {
|
|
|
|
return "rust-analyzer 1.72.1";
|
|
|
|
},
|
|
|
|
),
|
|
|
|
"2",
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
suite.addTest("Order of stable RA", async () => {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
_private.orderFromPath(
|
|
|
|
"/Users/myuser/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rust-analyzer",
|
2024-07-30 06:26:56 +00:00
|
|
|
function (path: string) {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
path,
|
|
|
|
"/Users/myuser/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
);
|
|
|
|
return "rust-analyzer 1.79.0 (129f3b99 2024-06-10)";
|
2024-07-26 05:33:18 +00:00
|
|
|
},
|
|
|
|
),
|
2024-07-31 11:24:56 +00:00
|
|
|
"0-2024-06-10/1",
|
2024-07-26 05:33:18 +00:00
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
suite.addTest("Order with invalid path to RA", async () => {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
_private.orderFromPath("some-weird-path", function () {
|
2024-07-30 06:38:47 +00:00
|
|
|
return undefined;
|
2024-07-26 05:33:18 +00:00
|
|
|
}),
|
|
|
|
"2",
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
suite.addTest("Earliest RA between nightly and stable", async () => {
|
|
|
|
assert.deepStrictEqual(
|
|
|
|
_private.earliestToolchainPath(
|
|
|
|
"/Users/myuser/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
"/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
function (path: string) {
|
2024-07-30 06:26:56 +00:00
|
|
|
if (
|
|
|
|
path ===
|
|
|
|
"/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer"
|
|
|
|
) {
|
|
|
|
return "rust-analyzer 1.67.0-nightly (b7bc90fe 2022-11-21)";
|
|
|
|
} else {
|
|
|
|
return "rust-analyzer 1.79.0 (129f3b99 2024-06-10)";
|
|
|
|
}
|
2024-07-26 05:33:18 +00:00
|
|
|
},
|
|
|
|
),
|
|
|
|
"/Users/myuser/.rustup/toolchains/nightly-2022-11-22-aarch64-apple-darwin/bin/rust-analyzer",
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|