mirror of
https://github.com/oxalica/rust-overlay.git
synced 2025-10-06 00:02:40 +02:00
Add more checks
This commit is contained in:
41
flake.nix
41
flake.nix
@@ -55,21 +55,26 @@
|
||||
inherit (pkgs) rust-bin rustChannelOf;
|
||||
inherit (pkgs.rust-bin) fromRustupToolchain fromRustupToolchainFile stable nightly;
|
||||
|
||||
rustTarget = pkgs.rust.toRustTarget pkgs.hostPlatform;
|
||||
|
||||
assertEq = lhs: rhs: {
|
||||
assertion = lhs == rhs;
|
||||
message = "`${lhs}` != `${rhs}`";
|
||||
};
|
||||
assertUrl = drv: url: {
|
||||
assertion = true;
|
||||
message = "TODO";
|
||||
};
|
||||
assertUrl = drv: url: let
|
||||
srcUrl = lib.head (lib.head drv.paths).src.urls;
|
||||
in assertEq srcUrl url;
|
||||
|
||||
assertions = {
|
||||
# url-kind-2 = assertUrl stable."1.48.0".rust "";
|
||||
# url-kind-0 = assertUrl stable."1.47.0".rust "";
|
||||
# url-kind-1 = assertUrl stable."1.34.2".llvm-tools-preview "";
|
||||
# url-kind-nightly = assertUrl nightly."2021-01-01".rust "";
|
||||
# url-fix = assertUrl nightly."2019-01-10".rust "";
|
||||
url-no-arch = assertUrl stable."1.48.0".rust-src "https://static.rust-lang.org/dist/2020-11-19/rust-src-1.48.0.tar.xz";
|
||||
url-kind-2 = assertUrl stable."1.48.0".cargo "https://static.rust-lang.org/dist/2020-11-19/cargo-1.48.0-${rustTarget}.tar.xz";
|
||||
url-kind-0 = assertUrl stable."1.47.0".cargo "https://static.rust-lang.org/dist/2020-10-08/cargo-0.48.0-${rustTarget}.tar.xz";
|
||||
url-kind-1 = assertUrl stable."1.34.2".llvm-tools-preview "https://static.rust-lang.org/dist/2019-05-14/llvm-tools-1.34.2%20(6c2484dc3%202019-05-13)-${rustTarget}.tar.xz";
|
||||
url-kind-nightly = assertUrl nightly."2021-01-01".rustc "https://static.rust-lang.org/dist/2021-01-01/rustc-nightly-${rustTarget}.tar.xz";
|
||||
url-fix = assertUrl nightly."2019-01-10".rustc "https://static.rust-lang.org/dist/2019-01-10/rustc-nightly-${rustTarget}.tar.xz";
|
||||
|
||||
latest-stable = assertEq pkgs.latest.rustChannels.stable.rust stable.latest.rust;
|
||||
latest-nightly = assertEq pkgs.latest.rustChannels.nightly.rust nightly.latest.rust;
|
||||
|
||||
rust-channel-of-stable = assertEq (rustChannelOf { channel = "stable"; }).rust stable.latest.rust;
|
||||
rust-channel-of-nightly = assertEq (rustChannelOf { channel = "nightly"; }).rust nightly.latest.rust;
|
||||
@@ -101,11 +106,17 @@
|
||||
|
||||
checkDrvs = {};
|
||||
|
||||
in lib.foldl'
|
||||
(v: name: if assertions.${name}.assertion
|
||||
then v
|
||||
else throw "Assertion `${name}` failed: ${assertions.${name}.message}")
|
||||
checkDrvs
|
||||
(lib.attrNames assertions);
|
||||
failedAssertions =
|
||||
lib.filter (msg: msg != null) (
|
||||
lib.mapAttrsToList
|
||||
(name: { assertion, message }: if assertion
|
||||
then null
|
||||
else "Assertion `${name}` failed: ${message}\n")
|
||||
assertions);
|
||||
|
||||
in if failedAssertions == []
|
||||
then checkDrvs
|
||||
else throw (builtins.toString failedAssertions);
|
||||
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user