at master 1.0 kB view raw
1{ lib, pkgs, ... }: 2let 3 pythonShebang = pkgs.writeScript "python-shebang" '' 4 #!/usr/bin/python 5 print("OK") 6 ''; 7 8 bashShebang = pkgs.writeScript "bash-shebang" '' 9 #!/usr/bin/bash 10 echo "OK" 11 ''; 12in 13{ 14 name = "envfs"; 15 nodes.machine.services.envfs.enable = true; 16 17 testScript = '' 18 start_all() 19 machine.wait_until_succeeds("mountpoint -q /usr/bin/") 20 machine.succeed( 21 "PATH=${pkgs.coreutils}/bin /usr/bin/cp --version", 22 # check fallback paths 23 "PATH= /usr/bin/sh --version", 24 "PATH= /usr/bin/env --version", 25 "PATH= test -e /usr/bin/sh", 26 "PATH= test -e /usr/bin/env", 27 # also picks up PATH that was set after execve 28 "! /usr/bin/hello", 29 "PATH=${pkgs.hello}/bin /usr/bin/hello", 30 ) 31 32 out = machine.succeed("PATH=${pkgs.python3}/bin ${pythonShebang}") 33 print(out) 34 assert out == "OK\n" 35 36 out = machine.succeed("PATH=${pkgs.bash}/bin ${bashShebang}") 37 print(out) 38 assert out == "OK\n" 39 ''; 40}