summaryrefslogtreecommitdiff
path: root/dotfiles/system/.zsh/modules/Test/A02alias.ztst
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/system/.zsh/modules/Test/A02alias.ztst')
-rw-r--r--dotfiles/system/.zsh/modules/Test/A02alias.ztst139
1 files changed, 139 insertions, 0 deletions
diff --git a/dotfiles/system/.zsh/modules/Test/A02alias.ztst b/dotfiles/system/.zsh/modules/Test/A02alias.ztst
new file mode 100644
index 0000000..e68e93e
--- /dev/null
+++ b/dotfiles/system/.zsh/modules/Test/A02alias.ztst
@@ -0,0 +1,139 @@
+# To get the "command not found" message when aliasing is suppressed
+# we need, er, a command that isn't found.
+# The other aliases are only ever used as aliases.
+
+%prep
+ alias ThisCommandDefinitelyDoesNotExist=echo
+
+ alias -g bar=echo
+
+ alias '\bar=echo'
+
+%test
+ ThisCommandDefinitelyDoesNotExist ThisCommandDefinitelyDoesNotExist
+0:Basic aliasing
+>ThisCommandDefinitelyDoesNotExist
+
+ bar bar
+0:Global aliasing
+>echo
+
+ \ThisCommandDefinitelyDoesNotExist ThisCommandDefinitelyDoesNotExist
+127:Not aliasing
+?(eval):1: command not found: ThisCommandDefinitelyDoesNotExist
+
+ \bar \bar
+0:Aliasing with a backslash
+>bar
+
+ (alias '!=echo This command has the argument'
+ eval 'print Without
+ ! true'
+ setopt posixaliases
+ eval 'print With
+ ! true')
+1:POSIX_ALIASES option
+>Without
+>This command has the argument true
+>With
+
+ print -u $ZTST_fd 'This test hangs the shell when it fails...'
+ alias cat='LC_ALL=C cat'
+ cat <(echo foo | cat)
+0:Alias expansion works at the end of parsed strings
+>foo
+
+ alias -g '&&=(){ return $?; } && '
+ alias not_the_print_command=print
+ eval 'print This is output
+ && print And so is this
+ && { print And this too; false; }
+ && print But not this
+ && print Nor this
+ true
+ && not_the_print_command And aliases are expanded'
+0:We can now alias special tokens. Woo hoo.
+>This is output
+>And so is this
+>And this too
+>And aliases are expanded
+
+ $ZTST_testdir/../Src/zsh -fis <<<'
+ unsetopt PROMPT_SP
+ PROMPT="" PS2="" PS3="" PS4="" RPS1="" RPS2=""
+ exec 2>&1
+ alias \{=echo
+ { begin
+ {end
+ fc -l -2' 2>/dev/null
+0:Aliasing reserved tokens
+>begin
+>end
+*>*5*{ begin
+*>*6*{end
+
+ $ZTST_testdir/../Src/zsh -fis <<<'
+ unsetopt PROMPT_SP
+ PROMPT="" PS2="" PS3="" PS4="" RPS1="" RPS2=""
+ exec 2>&1
+ alias -g S=\"
+ echo S a string S "
+ fc -l -1' 2>/dev/null
+0:Global aliasing quotes
+> a string S
+*>*5*echo S a string S "
+# "
+# Note there is a trailing space on the "> a string S " line
+
+ (
+ unalias -a
+ alias
+ )
+0:unalias -a
+
+ alias -s foo=print
+ type bar.foo; type -w bar.foo
+ unalias -as
+0:unalias -as
+>foo is a suffix alias for print
+>foo: suffix alias
+
+ aliases[x=y]=z
+ alias -L | grep x=y
+ echo $pipestatus[1]
+0:printing invalid aliases warns
+>0
+?(eval):2: invalid alias 'x=y' encountered while printing aliases
+# Currently, 'alias -L' returns 0 in this case. Perhaps it should return 1.
+
+ alias -s mysuff='print -r "You said it.";'
+ eval 'thingummy.mysuff'
+127:No endless loop with suffix alias in command position
+>You said it.
+?(eval):1: command not found: thingummy.mysuff
+
+ alias +x; alias -z
+1:error message has the correct sign
+?(eval):alias:1: bad option: +x
+?(eval):alias:1: bad option: -z
+
+ # Usual issue that aliases aren't expanded until we
+ # trigger a new parse...
+ (alias badalias=notacommand
+ eval 'badalias() { print does not work; }')
+1:ALIAS_FUNC_DEF off by default.
+?(eval):1: defining function based on alias `badalias'
+?(eval):1: parse error near `()'
+
+ (alias goodalias=isafunc
+ setopt ALIAS_FUNC_DEF
+ eval 'goodalias() { print does now work; }'
+ isafunc)
+0:ALIAS_FUNC_DEF causes the icky behaviour to be avaliable
+>does now work
+
+ (alias thisisokthough='thisworks() { print That worked; }'
+ eval thisisokthough
+ thisworks)
+0:NO_ALIAS_FUNC_DEF works if the alias is a complete definition
+>That worked