at 24.11-pre 1.5 kB view raw
1import ./make-test-python.nix ({ pkgs, lib, ... }: 2let 3 user = "alice"; 4in 5{ 6 name = "benchexec"; 7 8 nodes.benchexec = { 9 imports = [ ./common/user-account.nix ]; 10 11 programs.benchexec = { 12 enable = true; 13 users = [ user ]; 14 }; 15 }; 16 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 ''; 49 50 interactive.nodes.benchexec.services.kmscon = { 51 enable = true; 52 fonts = [{ name = "Fira Code"; package = pkgs.fira-code; }]; 53 }; 54})