Add tests for "nix run"
This commit is contained in:
parent
f5f29dc2b7
commit
4cde04f476
3 changed files with 46 additions and 1 deletions
|
@ -18,7 +18,8 @@ nix_tests = \
|
||||||
structured-attrs.sh \
|
structured-attrs.sh \
|
||||||
fetchGit.sh \
|
fetchGit.sh \
|
||||||
fetchMercurial.sh \
|
fetchMercurial.sh \
|
||||||
signing.sh
|
signing.sh \
|
||||||
|
run.sh
|
||||||
# parallel.sh
|
# parallel.sh
|
||||||
|
|
||||||
install-tests += $(foreach x, $(nix_tests), tests/$(x))
|
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 a new issue