Merge pull request #121518 from Atemu/automatic-kernelTests
kernel/generic: add kernelTests automatically
This commit is contained in:
commit
c3df8057da
10 changed files with 35 additions and 35 deletions
|
@ -6,10 +6,10 @@
|
||||||
with pkgs.lib;
|
with pkgs.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
makeKernelTest = version: linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: {
|
testsForLinuxPackages = linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: {
|
||||||
name = "kernel-${version}";
|
name = "kernel-${linuxPackages.kernel.version}";
|
||||||
meta = with pkgs.lib.maintainers; {
|
meta = with pkgs.lib.maintainers; {
|
||||||
maintainers = [ nequissimus ];
|
maintainers = [ nequissimus atemu ];
|
||||||
};
|
};
|
||||||
|
|
||||||
machine = { ... }:
|
machine = { ... }:
|
||||||
|
@ -23,20 +23,26 @@ let
|
||||||
assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a")
|
assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a")
|
||||||
'';
|
'';
|
||||||
}) args);
|
}) args);
|
||||||
in
|
kernels = {
|
||||||
with pkgs; {
|
inherit (pkgs)
|
||||||
linux_4_4 = makeKernelTest "4.4" linuxPackages_4_4;
|
linuxPackages_4_4
|
||||||
linux_4_9 = makeKernelTest "4.9" linuxPackages_4_9;
|
linuxPackages_4_9
|
||||||
linux_4_14 = makeKernelTest "4.14" linuxPackages_4_14;
|
linuxPackages_4_14
|
||||||
linux_4_19 = makeKernelTest "4.19" linuxPackages_4_19;
|
linuxPackages_4_19
|
||||||
linux_5_4 = makeKernelTest "5.4" linuxPackages_5_4;
|
linuxPackages_5_4
|
||||||
linux_5_10 = makeKernelTest "5.10" linuxPackages_5_10;
|
linuxPackages_5_10
|
||||||
linux_5_13 = makeKernelTest "5.13" linuxPackages_5_13;
|
linuxPackages_5_13
|
||||||
|
|
||||||
linux_hardened_4_14 = makeKernelTest "4.14" linuxPackages_4_14_hardened;
|
linuxPackages_4_14_hardened
|
||||||
linux_hardened_4_19 = makeKernelTest "4.19" linuxPackages_4_19_hardened;
|
linuxPackages_4_19_hardened
|
||||||
linux_hardened_5_4 = makeKernelTest "5.4" linuxPackages_5_4_hardened;
|
linuxPackages_5_4_hardened
|
||||||
linux_hardened_5_10 = makeKernelTest "5.10" linuxPackages_5_10_hardened;
|
linuxPackages_5_10_hardened
|
||||||
|
|
||||||
linux_testing = makeKernelTest "testing" linuxPackages_testing;
|
linuxPackages_testing;
|
||||||
|
};
|
||||||
|
|
||||||
|
in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
|
||||||
|
inherit testsForLinuxPackages;
|
||||||
|
|
||||||
|
testsForKernel = kernel: testsForLinuxPackages (pkgs.linuxPackagesFor kernel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
, preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false
|
, preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false
|
||||||
, kernelArch ? stdenv.hostPlatform.linuxArch
|
, kernelArch ? stdenv.hostPlatform.linuxArch
|
||||||
, kernelTests ? []
|
, kernelTests ? []
|
||||||
|
, nixosTests
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -192,7 +193,16 @@ let
|
||||||
kernelOlder = lib.versionOlder version;
|
kernelOlder = lib.versionOlder version;
|
||||||
kernelAtLeast = lib.versionAtLeast version;
|
kernelAtLeast = lib.versionAtLeast version;
|
||||||
passthru = kernel.passthru // (removeAttrs passthru [ "passthru" ]);
|
passthru = kernel.passthru // (removeAttrs passthru [ "passthru" ]);
|
||||||
tests = kernelTests;
|
tests = let
|
||||||
|
overridableKernel = finalKernel // {
|
||||||
|
override = args:
|
||||||
|
lib.warn (
|
||||||
|
"override is stubbed for NixOS kernel tests, not applying changes these arguments: "
|
||||||
|
+ toString (lib.attrNames (if lib.isAttrs args then args else args {}))
|
||||||
|
) overridableKernel;
|
||||||
|
};
|
||||||
|
in [ (nixosTests.kernel-generic.testsForKernel overridableKernel) ] ++ kernelTests;
|
||||||
};
|
};
|
||||||
|
|
||||||
in lib.extendDerivation true passthru kernel
|
finalKernel = lib.extendDerivation true passthru kernel;
|
||||||
|
in finalKernel
|
||||||
|
|
|
@ -15,6 +15,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||||
sha256 = "0x554dck5f78ljknwahjvf49952s1w0zja3yh4vfz6lmf6hvzq5n";
|
sha256 = "0x554dck5f78ljknwahjvf49952s1w0zja3yh4vfz6lmf6hvzq5n";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_14 ];
|
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
|
|
@ -15,6 +15,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||||
sha256 = "1rcx99sz4fgr2d138i92dw2vfplnqgys58hxywgmjb56c83l3qy4";
|
sha256 = "1rcx99sz4fgr2d138i92dw2vfplnqgys58hxywgmjb56c83l3qy4";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_19 ];
|
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
|
|
@ -9,6 +9,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||||
sha256 = "12grr2vc2mcvy7k8w1apqs9mhfg0lvz6mrpksym234m4n5yy48ng";
|
sha256 = "12grr2vc2mcvy7k8w1apqs9mhfg0lvz6mrpksym234m4n5yy48ng";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_4 ];
|
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
|
|
@ -9,6 +9,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||||
sha256 = "0am9qg9j18j4fc5zi6bk1g0mi8dp31pl62wlihxhhkc5yspzrna3";
|
sha256 = "0am9qg9j18j4fc5zi6bk1g0mi8dp31pl62wlihxhhkc5yspzrna3";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_9 ];
|
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
|
|
@ -15,6 +15,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||||
sha256 = "13gpamqj0shvad4nd9v11iv8qdfbjgb242nbvcim2z3c7xszfvv9";
|
sha256 = "13gpamqj0shvad4nd9v11iv8qdfbjgb242nbvcim2z3c7xszfvv9";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_10 ];
|
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
|
|
@ -15,6 +15,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||||
sha256 = "0948w1zc2gqnl8x60chjqngfzdi0kcxm12i1nx3nx4ksiwj5vc98";
|
sha256 = "0948w1zc2gqnl8x60chjqngfzdi0kcxm12i1nx3nx4ksiwj5vc98";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_13 ];
|
|
||||||
} // (args.argsOverride or { }))
|
} // (args.argsOverride or { }))
|
||||||
|
|
|
@ -15,6 +15,4 @@ buildLinux (args // rec {
|
||||||
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
|
||||||
sha256 = "0l8l4cg04p5vx890jm45r35js1v0nljd0lp5qwkvlr45jql5fy4r";
|
sha256 = "0l8l4cg04p5vx890jm45r35js1v0nljd0lp5qwkvlr45jql5fy4r";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_4 ];
|
|
||||||
} // (args.argsOverride or {}))
|
} // (args.argsOverride or {}))
|
||||||
|
|
|
@ -14,8 +14,6 @@ buildLinux (args // rec {
|
||||||
sha256 = "sha256-PunFd6tOsmrsPItp2QX4TEVxHnvvi1BMSwWio/DTlMU=";
|
sha256 = "sha256-PunFd6tOsmrsPItp2QX4TEVxHnvvi1BMSwWio/DTlMU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_testing ];
|
|
||||||
|
|
||||||
# Should the testing kernels ever be built on Hydra?
|
# Should the testing kernels ever be built on Hydra?
|
||||||
extraMeta.hydraPlatforms = [];
|
extraMeta.hydraPlatforms = [];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue