summaryrefslogtreecommitdiffstats
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2024-04-25 16:42:22 +0200
committerRobert Hensing <robert@roberthensing.nl>2024-04-25 16:42:22 +0200
commitdebe527772a72ee4821063503f1dfa5893962087 (patch)
tree6a5c07fdd286e6df54b42ec0ae36d219f8b45817 /pkgs/os-specific
parent3e83fe9aa593bc514d948f83becd6e8e270fc774 (diff)
kernel: Add NixOS evaluation test
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix17
1 files changed, 16 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 0e2d85a0971d..631217735d8f 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -1,6 +1,5 @@
{ buildPackages
, callPackage
-, emptyFile
, perl
, bison ? null
, flex ? null
@@ -13,6 +12,9 @@
, rustc
, rustPlatform
, rust-bindgen
+# testing
+, emptyFile
+, nixos
, nixosTests
}@args':
@@ -247,6 +249,17 @@ kernel.overrideAttrs (finalAttrs: previousAttrs: {
+ toString (lib.attrNames (lib.toFunction args { }))
) overridableKernel;
};
+ /* Certain arguments must be evaluated lazily; so that only the output(s) depend on them.
+ Original reproducer / simplified use case:
+ */
+ versionDoesNotDependOnPatchesEtcNixOS =
+ builtins.seq
+ (nixos ({ config, pkgs, ... }: {
+ boot.kernelPatches = [
+ (builtins.seq config.boot.kernelPackages.kernel.version { patch = pkgs.emptyFile; })
+ ];
+ })).config.boot.kernelPackages.kernel.outPath
+ emptyFile;
versionDoesNotDependOnPatchesEtc =
builtins.seq
(import ./generic.nix args' (args // (
@@ -267,6 +280,8 @@ kernel.overrideAttrs (finalAttrs: previousAttrs: {
in [
(nixosTests.kernel-generic.passthru.testsForKernel overridableKernel)
versionDoesNotDependOnPatchesEtc
+ # Disabled by default, because the infinite recursion is hard to understand. The other test's error is better and produces a shorter trace.
+ # versionDoesNotDependOnPatchesEtcNixOS
] ++ kernelTests;
};