]> git.scottworley.com Git - pinch/commitdiff
Tests use a private /nix/store
authorScott Worley <scottworley@scottworley.com>
Thu, 11 Jun 2020 20:33:18 +0000 (13:33 -0700)
committerScott Worley <scottworley@scottworley.com>
Thu, 11 Jun 2020 20:33:18 +0000 (13:33 -0700)
This allows the tests to run inside a nix build.  Otherwise, it fails with

  error: creating directory '/nix/var': Permission denied

Bonus: This avoids polluting the real store with test artifacts.

See also https://github.com/NixOS/nix/issues/13

tests/alias.sh
tests/core.sh
tests/lib/test-setup.sh
tests/multi-update.sh
tests/pin-twice.sh

index 368fc1e55514c852cf2333268101fcbb630bcc90..928ceabee147c1cce50fa56c2b5ca8badc6215be 100755 (executable)
@@ -13,7 +13,7 @@ python3 ./pinch.py pin "$conf"
 
 actual_env_command=`python3 ./pinch.py update --dry-run "$conf"`
 
-expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "bar"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\'' '\''f: f \{ name = "\1"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$'
+expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "bar"; src = builtins.storePath "'"$NIX_STORE_DIR"'/.{32}-\1.tar.xz"; \}'\'' '\''f: f \{ name = "\1"; channelName = "foo"; src = builtins.storePath "'"$NIX_STORE_DIR"'/.{32}-\1.tar.xz"; \}'\''$'
 
 if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
   echo PASS
index 5ef652e69cd38d8f00a3f80ecf4e642955b68944..5d11707986f2bd2405a34b8f83ed58d2f83e71ab 100755 (executable)
@@ -8,7 +8,7 @@ python3 ./pinch.py pin "$conf"
 
 actual_env_command=`python3 ./pinch.py update --dry-run "$conf"`
 
-expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$'
+expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "foo"; src = builtins.storePath "'"$NIX_STORE_DIR"'/.{32}-\1.tar.xz"; \}'\''$'
 
 if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
   echo PASS
index 35a4e7334dbbc52f1a71284e342ee53af061f1cf..66d13eb8b776c5886873f0645118163306737735 100644 (file)
@@ -8,6 +8,11 @@ export GIT_COMMITTER_EMAIL=auto@mati.on
 cache_dir=$(mktemp -d)
 export XDG_CACHE_HOME=$cache_dir
 
+nix_store=$(mktemp -d)
+nix_state=$(mktemp -d)
+export NIX_STORE_DIR=$nix_store
+export NIX_STATE_DIR=$nix_state
+
 foo_setup() {
 
   repo_dir="`mktemp -d`"
@@ -33,6 +38,8 @@ test_cleanup() {
   if [ "$repo_dir"  ];then rm -rf "$repo_dir";  fi
   if [ "$conf"      ];then rm     "$conf";      fi
   if [ "$cache_dir" ];then rm -rf "$cache_dir"; fi
+  if [ "$nix_store" ];then rm -rf "$nix_store"; fi
+  if [ "$nix_state" ];then rm -rf "$nix_state"; fi
 }
 
 trap test_cleanup EXIT INT TERM
index 74899ff00ac67718a8962d7ea52692816d94d61c..cd6e90bd707acee40714af68ce4a801b37a1de22 100755 (executable)
@@ -17,7 +17,7 @@ actual_env_command=`python3 ./pinch.py update --dry-run "$conf" "$conf2"`
 
 rm -rf "$conf2"
 
-expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "bar"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\'' '\''f: f \{ name = "\1"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$'
+expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "bar"; src = builtins.storePath "'"$NIX_STORE_DIR"'/.{32}-\1.tar.xz"; \}'\'' '\''f: f \{ name = "\1"; channelName = "foo"; src = builtins.storePath "'"$NIX_STORE_DIR"'/.{32}-\1.tar.xz"; \}'\''$'
 
 if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
   echo PASS
index dec02f06e5297b656cb87e5715c74f0c2564c848..ee50174b95dbde87b6bc33bcb49fb8ad44e2d6c6 100755 (executable)
@@ -17,7 +17,7 @@ python3 ./pinch.py pin "$conf"
 
 actual_env_command=`python3 ./pinch.py update --dry-run "$conf"`
 
-expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "foo"; src = builtins.storePath "/nix/store/.{32}-\1.tar.xz"; \}'\''$'
+expected_env_command_RE='^nix-env --profile /nix/var/nix/profiles/per-user/[^/]+/channels --show-trace --file '\''<nix/unpack-channel.nix>'\'' --install --from-expression '\''f: f \{ name = "(repo-[0-9]{10}-[0-9a-f]{11})"; channelName = "foo"; src = builtins.storePath "'"$NIX_STORE_DIR"'/.{32}-\1.tar.xz"; \}'\''$'
 
 if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
   echo PASS