Allow overriding all NixOS tests to run with the minimal kernel possible for that test's config(s) (based on requiredKernelConfig)
parent
feb010a366
commit
1b615f460b
@ -0,0 +1,28 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
let |
||||
configfile = builtins.storePath (builtins.toFile "config" (pkgs.lib.concatStringsSep "\n" |
||||
(map (builtins.getAttr "configLine") config.system.requiredKernelConfig)) |
||||
); |
||||
|
||||
origKernel = pkgs.linuxManualConfig { |
||||
inherit (pkgs.linux) src version; |
||||
inherit configfile; |
||||
allowImportFromDerivation = true; |
||||
kernelPatches = [ pkgs.kernelPatches.cifs_timeout_2_6_38 ]; |
||||
}; |
||||
|
||||
kernel = origKernel // (derivation (origKernel.drvAttrs // { |
||||
configurePhase = '' |
||||
runHook preConfigure |
||||
mkdir ../build |
||||
make $makeFlags "''${makeFlagsArray[@]}" mrproper |
||||
make $makeFlags "''${makeFlagsArray[@]}" KCONFIG_ALLCONFIG=${configfile} allnoconfig |
||||
runHook postConfigure |
||||
''; |
||||
})); |
||||
|
||||
kernelPackages = pkgs.linuxPackagesFor kernel kernelPackages; |
||||
in { |
||||
boot.kernelPackages = kernelPackages; |
||||
} |
@ -1,37 +0,0 @@ |
||||
{ pkgs, ... }: |
||||
|
||||
|
||||
{ |
||||
machine = { config, pkgs, ... }: |
||||
let |
||||
configfile = builtins.storePath (builtins.toFile "config" (pkgs.lib.concatStringsSep "\n" |
||||
(map (builtins.getAttr "configLine") config.system.requiredKernelConfig))); |
||||
|
||||
origKernel = pkgs.linuxManualConfig { |
||||
inherit (pkgs.linux) src version; |
||||
inherit configfile; |
||||
allowImportFromDerivation = true; |
||||
kernelPatches = [ pkgs.kernelPatches.cifs_timeout_2_6_38 ]; |
||||
}; |
||||
|
||||
kernel = origKernel //(derivation (origKernel.drvAttrs // { |
||||
configurePhase = '' |
||||
runHook preConfigure |
||||
mkdir ../build |
||||
make $makeFlags "''${makeFlagsArray[@]}" mrproper |
||||
make $makeFlags "''${makeFlagsArray[@]}" KCONFIG_ALLCONFIG=${configfile} allnoconfig |
||||
runHook postConfigure |
||||
''; |
||||
})); |
||||
|
||||
kernelPackages = pkgs.linuxPackagesFor kernel kernelPackages; |
||||
in { |
||||
boot.kernelPackages = kernelPackages; |
||||
}; |
||||
|
||||
testScript = |
||||
'' |
||||
startAll; |
||||
$machine->shutdown; |
||||
''; |
||||
} |
Loading…
Reference in new issue