zsh-autoenv/tests/varstash_export.t

50 lines
1.0 KiB
Perl

Test varstash with exported variables in subshell.
$ source $TESTDIR/setup.zsh || return 1
Setup test environment.
$ mkdir sub
$ cd sub
$ echo 'echo ENTER; autostash MYVAR=changed; autostash MYEXPORT=changed_export' > $AUTOENV_FILE_ENTER
$ echo 'echo LEAVE; autounstash' > $AUTOENV_FILE_LEAVE
Manually create auth file
$ test_autoenv_auth_env_files
Set environment variable.
$ MYVAR=orig
$ export MYEXPORT=orig_export
Activating the env stashes it and applies a new value.
$ cd .
ENTER
$ echo $MYVAR
changed
$ echo $MYEXPORT
changed_export
The variable is not available in a subshell, only the exported one.
$ $TESTSHELL -c 'echo ${MYVAR:-empty}; echo $MYEXPORT'
empty
changed_export
Activate autoenv in the subshell.
$ $TESTSHELL -c "$TEST_SOURCE_AUTOENV; echo \${MYVAR}; echo \$MYEXPORT"
ENTER
changed
changed_export
"autounstash" should handle the exported variables.
$ $TESTSHELL -c "$TEST_SOURCE_AUTOENV; cd ..; echo \${MYVAR:-empty}; echo \$MYEXPORT"
ENTER
LEAVE
empty
orig_export