| 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 |