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
actual_env_command=`python3 ./pinch.py update --dry-run "$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
if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
echo PASS
actual_env_command=`python3 ./pinch.py update --dry-run "$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
if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
echo PASS
cache_dir=$(mktemp -d)
export XDG_CACHE_HOME=$cache_dir
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`"
foo_setup() {
repo_dir="`mktemp -d`"
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 [ "$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
}
trap test_cleanup EXIT INT TERM
-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
if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
echo PASS
actual_env_command=`python3 ./pinch.py update --dry-run "$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
if echo "$actual_env_command" | egrep "$expected_env_command_RE" > /dev/null;then
echo PASS