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