notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / systemtap.nix
blob5cd79d66e872ba11cf1c9fee8040e6518af1a96f
1 { system ? builtins.currentSystem
2 , config ? { }
3 , pkgs ? import ../.. { inherit system config; }
4 }@args:
6 with pkgs.lib;
8 let
9   stapScript = pkgs.writeText "test.stp" ''
10     probe kernel.function("do_sys_poll") {
11       println("kernel function probe & println work")
12       exit()
13     }
14   '';
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     };
23     nodes.machine = { ... }:
24       {
25         boot.kernelPackages = linuxPackages;
26         programs.systemtap.enable = true;
27       };
29     testScript =
30       ''
31         with subtest("Capture stap ouput"):
32             output = machine.succeed("stap ${stapScript} 2>&1")
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);
39   ## TODO shared infra with ../kernel-generic.nix
40   kernels = {
41     inherit (pkgs.linuxKernel.packageAliases) linux_default linux_latest;
42   };
44 in mapAttrs (_: lP: testsForLinuxPackages lP) kernels // {
45   passthru = {
46     inherit testsForLinuxPackages;
48     testsForKernel = kernel: testsForLinuxPackages (pkgs.linuxPackagesFor kernel);
49   };