Skip to content

Instantly share code, notes, and snippets.

@martialboniou
Created January 11, 2012 21:57
Show Gist options
  • Save martialboniou/1597001 to your computer and use it in GitHub Desktop.
Save martialboniou/1597001 to your computer and use it in GitHub Desktop.
zsh substitution - example of shell unit test with shunit2
#!/usr/bin/env zsh
which shunit2 &> /dev/null || ( echo "install shunit2" && exit )
setopt shwordsplit
testSubstituteRL(){
local file=/etc/passwd.txt
assertEquals "substitute root" "/etc/passwd" ${file:r}
assertEquals "substitute tail" "passwd.txt" ${file:t}
}
which uuid &> /dev/null || ( echo "install uuid" && exit )
testSubstitute_N(){
local dirname=$(uuid)
mkdir -p "$dirname/aDirectory"
touch "$dirname/aFile"
assertEquals "substitute /N (aka dir only)" "$dirname/aDirectory" $(for i in $dirname/*(/N);do;echo $i;done)
assertEquals "substitute .N (aka file only)" "$dirname/aFile" $(for i in $dirname/*(.N);do;echo $i;done)
rm "$dirname/aFile"
rmdir "$dirname/aDirectory" "$dirname"
}
SHUNIT_PARENT=$0
. shunit2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment