65 lines
1.5 KiB
Nix
65 lines
1.5 KiB
Nix
{
|
|
system ? builtins.currentSystem,
|
|
config ? { },
|
|
pkgs ? import ../.. { inherit system config; },
|
|
}:
|
|
|
|
let
|
|
inherit (pkgs.lib)
|
|
const
|
|
filterAttrs
|
|
mapAttrs
|
|
meta
|
|
;
|
|
|
|
kernelRustTest =
|
|
kernelPackages:
|
|
import ./make-test-python.nix (
|
|
{ lib, ... }:
|
|
{
|
|
name = "kernel-rust";
|
|
meta.maintainers = with lib.maintainers; [
|
|
blitz
|
|
ma27
|
|
];
|
|
nodes.machine =
|
|
{ config, ... }:
|
|
{
|
|
boot = {
|
|
inherit kernelPackages;
|
|
extraModulePackages = [ config.boot.kernelPackages.rust-out-of-tree-module ];
|
|
kernelPatches = [
|
|
{
|
|
name = "Rust Support";
|
|
patch = null;
|
|
features = {
|
|
rust = true;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
testScript = ''
|
|
machine.wait_for_unit("default.target")
|
|
machine.succeed("modprobe rust_out_of_tree")
|
|
'';
|
|
}
|
|
);
|
|
|
|
kernels =
|
|
{
|
|
inherit (pkgs.linuxKernel.packages) linux_testing;
|
|
}
|
|
// filterAttrs (const (
|
|
x:
|
|
let
|
|
inherit (builtins.tryEval (x.rust-out-of-tree-module or null != null))
|
|
success
|
|
value
|
|
;
|
|
available = meta.availableOn pkgs.stdenv.hostPlatform x.rust-out-of-tree-module;
|
|
in
|
|
success && value && available
|
|
)) pkgs.linuxKernel.vanillaPackages;
|
|
in
|
|
mapAttrs (const kernelRustTest) kernels
|