at 25.11-pre 1.7 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, lib, ... }: 3 let 4 user = "alice"; 5 in 6 { 7 name = "benchexec"; 8 9 nodes.benchexec = { 10 imports = [ ./common/user-account.nix ]; 11 12 programs.benchexec = { 13 enable = true; 14 users = [ user ]; 15 }; 16 }; 17 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 ''; 53 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 } 64)