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