nixos/tests/kernel-rust: test against 6.7 and testing (6.8rc1)

In #283893 we realized that not only 6.7, but also testing is affected.
And with more stable kernels following, we'll probably want to test
against all of them whether Rust support is working fine. As long as
it's not the default at least, then we should probably move this to
`kernel-generic`.

Every kernel that's new enough to support `rust-out-of-tree-module` (and
`linux_testing`) is part of this text matrix.
This commit is contained in:
Maximilian Bosch 2024-01-28 20:36:51 +01:00
parent cff853ca15
commit 37ac24e2c7
No known key found for this signature in database
2 changed files with 40 additions and 27 deletions

View file

@ -451,7 +451,7 @@ in {
kerberos = handleTest ./kerberos/default.nix {};
kernel-generic = handleTest ./kernel-generic.nix {};
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
kernel-rust = runTestOn ["x86_64-linux"] ./kernel-rust.nix;
kernel-rust = handleTestOn ["x86_64-linux"] ./kernel-rust.nix {};
keter = handleTest ./keter.nix {};
kexec = handleTest ./kexec.nix {};
keycloak = discoverTests (import ./keycloak.nix);

View file

@ -1,18 +1,19 @@
{ pkgs, ... }: {
{ system ? builtins.currentSystem
, config ? { }
, pkgs ? import ../.. { inherit system config; }
}:
let
inherit (pkgs.lib) const filterAttrs mapAttrs;
kernelRustTest = kernelPackages: import ./make-test-python.nix ({ lib, ... }: {
name = "kernel-rust";
meta = with pkgs.lib.maintainers; {
maintainers = [ blitz ];
};
nodes.machine = { config, pkgs, ... }:
{
boot.kernelPackages = pkgs.linuxPackages_testing;
boot.extraModulePackages = [
config.boot.kernelPackages.rust-out-of-tree-module
];
boot.kernelPatches = [
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;
@ -22,9 +23,21 @@
}
];
};
};
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;
in success && value))
pkgs.linuxKernel.vanillaPackages;
in mapAttrs (const kernelRustTest) kernels