]> Sergey Matveev's repositories - zsh-autoenv.git/blobdiff - tests/setup.zsh
tests: simplify ZDOTDIR setup, remove base
[zsh-autoenv.git] / tests / setup.zsh
index 316074de972983fae62b2a4bd3c8d0cc55884f7e..9b15bf1db0ca3ab22b56096e39e7e21d275cbfa2 100644 (file)
@@ -9,26 +9,30 @@
 # Not handled in varstash yet.
 # setopt nounset
 
-export AUTOENV_AUTH_FILE="$CRAMTMP/.autoenv_auth"
-
-if [[ $AUTOENV_AUTH_FILE[0,4] != '/tmp' ]]; then
-  echo "AUTOENV_AUTH_FILE is not in /tmp. Aborting."
-  return 1
-fi
+export AUTOENV_AUTH_FILE="$CRAMTMP/autoenv/.autoenv_auth"
 
 # Abort this setup script on any error.
 _save_errexit=${options[errexit]}
 set -e
 
-# Defined in .zshenv, e.g. tests/ZDOTDIR/.zshenv.
+# Can be defined in .zshenv, e.g. tests/ZDOTDIR.loadviafunction/.zshenv.
+if [[ -z $TEST_SOURCE_AUTOENV ]]; then
+  TEST_SOURCE_AUTOENV=(source $TESTDIR/../autoenv.plugin.zsh)
+fi
 $TEST_SOURCE_AUTOENV
 
 # Reset any authentication.
-echo -n >| $AUTOENV_AUTH_FILE
+if [[ -f $AUTOENV_AUTH_FILE ]]; then
+  echo -n >| $AUTOENV_AUTH_FILE
+fi
 
-# Add file $1 (with optional hash $2) to authentication file.
+# Add file ($1), version ($2), and optional hash ($3) to authentication file.
 test_autoenv_add_to_env() {
-  _autoenv_hash_pair $1 ${2:-} >>| $AUTOENV_AUTH_FILE
+  [[ -d ${AUTOENV_AUTH_FILE:h} ]] || mkdir -p ${AUTOENV_AUTH_FILE:h}
+  {
+    local ret_pair
+    _autoenv_hash_pair $1 1 ${2:-} && echo $ret_pair
+  } >>| $AUTOENV_AUTH_FILE
 }
 
 # Add enter and leave env files to authentication file.