Call _includes and then check its return value. shunit2 uses the exit code to test, not a string of 0 or 1 as was done previously.
72 lines
1.7 KiB
Bash
72 lines
1.7 KiB
Bash
orig_cwd="$PWD"
|
|
|
|
# Load SCM Breeze helpers
|
|
source "$scmbDir/lib/git/helpers.sh"
|
|
|
|
# Set up demo git user if not configured
|
|
if [ -z "$(git config user.email)" ]; then
|
|
git config user.email "testuser@example.com"
|
|
git config user.name "Test User"
|
|
fi
|
|
|
|
#
|
|
# Test helpers
|
|
#-----------------------------------------------------------------------------
|
|
|
|
# Strip color codes from a string
|
|
strip_colors() {
|
|
# Updated with info from: https://superuser.com/a/380778
|
|
perl -pe 's/\x1b\[[0-9;]*[mG]//g'
|
|
}
|
|
|
|
# Print space separated tab completion options
|
|
tab_completions(){ echo "${COMPREPLY[@]}"; }
|
|
|
|
# Silence git commands
|
|
silentGitCommands() {
|
|
git() { /usr/bin/env git "$@" > /dev/null 2>&1; }
|
|
}
|
|
|
|
# Cancel silent git commands
|
|
verboseGitCommands() {
|
|
unset -f git
|
|
}
|
|
|
|
# Quote the contents of "$@" in single quotes
|
|
# Avoid printf '%q' as 'a b' becomes a\ b in both {ba,z}sh
|
|
# See also quote_args and double_quote
|
|
function token_quote {
|
|
if [[ $shell = bash ]]; then
|
|
# Single quotes are always added
|
|
echo "${@@Q}"
|
|
else # zsh
|
|
# Single quotes only added when needed
|
|
#shellcheck disable=2154 # zsh
|
|
echo "${(qq)@}"
|
|
fi
|
|
}
|
|
|
|
|
|
# Asserts
|
|
#-----------------------------------------------------------------------------
|
|
|
|
# Return 0 (shell's true) if "$1" contains string "$2"
|
|
_includes() {
|
|
if [ -n "$3" ]; then regex="$3"; else regex=''; fi
|
|
echo "$1" | grep -q"$regex" "$2" # exit status of quiet grep is returned
|
|
}
|
|
|
|
# assert $1 contains $2
|
|
assertIncludes() {
|
|
_includes "$@"
|
|
local grep_exit=$?
|
|
assertTrue "'$1' should have contained '$2'" '[[ $grep_exit == 0 ]]'
|
|
}
|
|
|
|
# assert $1 does not contain $2
|
|
assertNotIncludes() {
|
|
_includes "$@"
|
|
local grep_return=$?
|
|
assertTrue "'$1' should not have contained '$2'" '[[ ! $grep_exit = 0 ]]'
|
|
}
|