Bash · 1206 bytes Raw Blame History
1 #!/bin/sh
2 TEST_PREFIX="[alias]"
3 . "$(cd "$(dirname "$0")" && pwd)/test_harness.sh"
4
5 section "1. alias basic"
6 compare_output "alias define and use via eval" 'shopt -s expand_aliases 2>/dev/null; alias greet="echo hello"; eval greet'
7 compare_exit "alias lists all without error" 'alias >/dev/null 2>&1'
8 compare_exit "alias nonexistent fails" 'alias nonexistent_alias_xyz 2>/dev/null'
9 compare_output "alias with arguments" 'shopt -s expand_aliases 2>/dev/null; alias say="echo"; eval "say hello"'
10
11 section "2. unalias"
12 compare_exit "unalias removes alias" 'alias greet="echo hello"; unalias greet; alias greet 2>/dev/null'
13 compare_exit "unalias -a removes all" 'alias a1="echo 1"; alias a2="echo 2"; unalias -a; alias a1 2>/dev/null'
14 compare_exit "unalias nonexistent fails" 'unalias nonexistent_alias_xyz 2>/dev/null'
15
16 section "3. alias edge cases"
17 compare_output "alias with equals in value" 'shopt -s expand_aliases 2>/dev/null; alias myvar="echo x=1"; eval myvar'
18 compare_output "alias with semicolon" 'shopt -s expand_aliases 2>/dev/null; alias both="echo a; echo b"; eval both'
19 compare_output "alias preserves original after unalias" 'alias echo="printf ALIAS"; unalias echo; echo hello'
20
21 print_summary