at 24.11-pre 1.4 kB view raw
1{ system ? builtins.currentSystem 2, config ? { } 3, pkgs ? import ../.. { inherit system config; } 4}@args: 5 6with pkgs.lib; 7 8let 9 stapScript = pkgs.writeText "test.stp" '' 10 probe kernel.function("do_sys_poll") { 11 println("kernel function probe & println work") 12 exit() 13 } 14 ''; 15 16 ## TODO shared infra with ../kernel-generic.nix 17 testsForLinuxPackages = linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: { 18 name = "kernel-${linuxPackages.kernel.version}"; 19 meta = with pkgs.lib.maintainers; { 20 maintainers = [ bendlas ]; 21 }; 22 23 nodes.machine = { ... }: 24 { 25 boot.kernelPackages = linuxPackages; 26 programs.systemtap.enable = true; 27 }; 28 29 testScript = 30 '' 31 with subtest("Capture stap ouput"): 32 output = machine.succeed("stap ${stapScript} 2>&1") 33 34 with subtest("Ensure that expected output from stap script is there"): 35 assert "kernel function probe & println work\n" == output, "kernel function probe & println work\n != " + output 36 ''; 37 }) args); 38 39 ## TODO shared infra with ../kernel-generic.nix 40 kernels = { 41 inherit (pkgs.linuxKernel.packageAliases) linux_default linux_latest; 42 }; 43 44in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // { 45 passthru = { 46 inherit testsForLinuxPackages; 47 48 testsForKernel = kernel: testsForLinuxPackages (pkgs.linuxPackagesFor kernel); 49 }; 50}