mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 14:52:55 +00:00
Add tests for "nix run"
This commit is contained in:
parent
f5f29dc2b7
commit
4cde04f476
@ -18,7 +18,8 @@ nix_tests = \
|
||||
structured-attrs.sh \
|
||||
fetchGit.sh \
|
||||
fetchMercurial.sh \
|
||||
signing.sh
|
||||
signing.sh \
|
||||
run.sh
|
||||
# parallel.sh
|
||||
|
||||
install-tests += $(foreach x, $(nix_tests), tests/$(x))
|
||||
|
17
tests/run.nix
Normal file
17
tests/run.nix
Normal file
@ -0,0 +1,17 @@
|
||||
with import ./config.nix;
|
||||
|
||||
{
|
||||
hello = mkDerivation {
|
||||
name = "hello";
|
||||
buildCommand =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
cat > $out/bin/hello <<EOF
|
||||
#! ${shell}
|
||||
who=\$1
|
||||
echo "Hello \''${who:-World} from $out/bin/hello"
|
||||
EOF
|
||||
chmod +x $out/bin/hello
|
||||
'';
|
||||
};
|
||||
}
|
27
tests/run.sh
Normal file
27
tests/run.sh
Normal file
@ -0,0 +1,27 @@
|
||||
source common.sh
|
||||
|
||||
clearStore
|
||||
clearCache
|
||||
|
||||
nix run -f run.nix hello -c hello | grep 'Hello World'
|
||||
nix run -f run.nix hello -c hello NixOS | grep 'Hello NixOS'
|
||||
|
||||
if [[ $(uname) = Linux ]]; then
|
||||
|
||||
chmod -R u+w $TEST_ROOT/store0 || true
|
||||
rm -rf $TEST_ROOT/store0
|
||||
|
||||
clearStore
|
||||
|
||||
path=$(nix eval --raw -f run.nix hello)
|
||||
|
||||
# Note: we need the sandbox paths to ensure that the shell is
|
||||
# visible in the sandbox.
|
||||
nix run --sandbox-paths '/nix? /bin? /lib? /usr?' --store $TEST_ROOT/store0 -f run.nix hello -c hello | grep 'Hello World'
|
||||
|
||||
path2=$(nix run --sandbox-paths '/nix? /bin? /lib? /usr?' --store $TEST_ROOT/store0 -f run.nix hello -c $SHELL -c 'type -p hello')
|
||||
|
||||
[[ $path/bin/hello = $path2 ]]
|
||||
|
||||
[[ -e $TEST_ROOT/store0/nix/store/$(basename $path)/bin/hello ]]
|
||||
fi
|
Loading…
Reference in New Issue
Block a user