at 23.11-pre 1.1 kB view raw
1import ./make-test-python.nix ({ 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 # no stat 28 "! test -e /usr/bin/cp", 29 # also picks up PATH that was set after execve 30 "! /usr/bin/hello", 31 "PATH=${pkgs.hello}/bin /usr/bin/hello", 32 ) 33 34 out = machine.succeed("PATH=${pkgs.python3}/bin ${pythonShebang}") 35 print(out) 36 assert out == "OK\n" 37 38 out = machine.succeed("PATH=${pkgs.bash}/bin ${bashShebang}") 39 print(out) 40 assert out == "OK\n" 41 ''; 42})