ahoy: init at 2.2.0 (#366784)
[NixPkgs.git] / nixos / tests / benchexec.nix
blob218bfb5afba4184a55b57864f0ecff29e2e73e31
1 import ./make-test-python.nix (
2   { pkgs, lib, ... }:
3   let
4     user = "alice";
5   in
6   {
7     name = "benchexec";
9     nodes.benchexec = {
10       imports = [ ./common/user-account.nix ];
12       programs.benchexec = {
13         enable = true;
14         users = [ user ];
15       };
16     };
18     testScript =
19       { ... }:
20       let
21         runexec = lib.getExe' pkgs.benchexec "runexec";
22         echo = builtins.toString pkgs.benchexec;
23         test = lib.getExe (
24           pkgs.writeShellApplication rec {
25             name = "test";
26             meta.mainProgram = name;
27             text = "echo '${echo}'";
28           }
29         );
30         wd = "/tmp";
31         stdout = "${wd}/runexec.out";
32         stderr = "${wd}/runexec.err";
33       in
34       ''
35         start_all()
36         machine.wait_for_unit("multi-user.target")
37         benchexec.succeed(''''\
38             systemd-run \
39               --property='StandardOutput=file:${stdout}' \
40               --property='StandardError=file:${stderr}' \
41               --unit=runexec --wait --user --machine='${user}@' \
42               --working-directory ${wd} \
43             '${runexec}' \
44               --debug \
45               --read-only-dir / \
46               --hidden-dir /home \
47               '${test}' \
48         '''')
49         benchexec.succeed("grep -s '${echo}' ${wd}/output.log")
50         benchexec.succeed("test \"$(grep -Ec '((start|wall|cpu)time|memory)=' ${stdout})\" = 4")
51         benchexec.succeed("! grep -E '(WARNING|ERROR)' ${stderr}")
52       '';
54     interactive.nodes.benchexec.services.kmscon = {
55       enable = true;
56       fonts = [
57         {
58           name = "Fira Code";
59           package = pkgs.fira-code;
60         }
61       ];
62     };
63   }