Add auto checks

wip/nixpkgs-raku
oxalica 3 years ago
parent b6fde02915
commit f0d65000b9
No known key found for this signature in database
GPG Key ID: CED392DE0C483D00
  1. 63
      flake.nix
  2. 4
      tests/rust-toolchain

@ -51,12 +51,61 @@
rust = packages.rust-latest;
};
checks = {
kind2 = (pkgs.rustChannelOf { channel = "1.48.0"; }).rust;
kind0 = (pkgs.rustChannelOf { channel = "1.47.0"; }).rust;
kind1 = (pkgs.rustChannelOf { channel = "1.34.2"; }).llvm-tools-preview;
kind-nightly = (pkgs.rustChannelOf { channel = "nightly"; date = "2021-01-01"; }).rust;
url-fix = (pkgs.rustChannelOf { channel = "nightly"; date = "2019-01-10"; }).rust;
};
checks = let
inherit (pkgs) rust-bin rustChannelOf;
inherit (pkgs.rust-bin) fromRustupToolchain fromRustupToolchainFile stable nightly;
assertEq = lhs: rhs: {
assertion = lhs == rhs;
message = "`${lhs}` != `${rhs}`";
};
assertUrl = drv: url: {
assertion = true;
message = "TODO";
};
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 "";
rust-channel-of-stable = assertEq (rustChannelOf { channel = "stable"; }).rust stable.latest.rust;
rust-channel-of-nightly = assertEq (rustChannelOf { channel = "nightly"; }).rust nightly.latest.rust;
rust-channel-of-version = assertEq (rustChannelOf { channel = "1.48.0"; }).rust stable."1.48.0".rust;
rust-channel-of-nightly-date = assertEq (rustChannelOf { channel = "nightly"; date = "2021-01-01"; }).rust nightly."2021-01-01".rust;
rustup-toolchain-stable = assertEq (fromRustupToolchain { channel = "stable"; }) stable.latest.rust;
rustup-toolchain-nightly = assertEq (fromRustupToolchain { channel = "nightly"; }) nightly.latest.rust;
rustup-toolchain-version = assertEq (fromRustupToolchain { channel = "1.48.0"; }) stable."1.48.0".rust;
rustup-toolchain-nightly-date = assertEq (fromRustupToolchain { channel = "nightly-2021-01-01"; }) nightly."2021-01-01".rust;
rustup-toolchain-customization = assertEq
(fromRustupToolchain {
channel = "1.48.0";
# FIXME: Handle renames `rustfmt` -> `rustfmt-preview`.
components = [ "rustfmt-preview" "rustc-dev" ];
targets = [ "wasm32-unknown-unknown" "aarch64-unknown-linux-gnu" ];
})
(stable."1.48.0".rust.override {
extensions = [ "rustfmt-preview" "rustc-dev" ];
targets = [ "wasm32-unknown-unknown" "aarch64-unknown-linux-gnu" ];
});
rustup-toolchain-customization-file = assertEq
(fromRustupToolchainFile ./tests/rust-toolchain)
(nightly."2020-07-10".rust.override {
extensions = [ "rustfmt-preview" "rustc-dev" ];
targets = [ "wasm32-unknown-unknown" "aarch64-unknown-linux-gnu" ];
});
};
checkDrvs = {};
in lib.foldl'
(v: name: if assertions.${name}.assertion
then v
else throw "Assertion `${name}` failed: ${assertions.${name}.message}")
checkDrvs
(lib.attrNames assertions);
});
}

@ -0,0 +1,4 @@
[toolchain]
channel = "nightly-2020-07-10"
components = [ "rustfmt-preview", "rustc-dev" ]
targets = [ "wasm32-unknown-unknown", "aarch64-unknown-linux-gnu" ]
Loading…
Cancel
Save