diff options
Diffstat (limited to 'test/lib/library.sh')
-rw-r--r-- | test/lib/library.sh | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/test/lib/library.sh b/test/lib/library.sh new file mode 100644 index 00000000..98107dcb --- /dev/null +++ b/test/lib/library.sh @@ -0,0 +1,75 @@ +# Bash library for bash-completion DejaGnu testsuite + + +# @param $1 Char to add to $COMP_WORDBREAKS +# @see remove_comp_wordbreak_char() +add_comp_wordbreak_char() { + if [ ${BASH_VERSINFO[0]} -ge 4 ]; then + [[ "${COMP_WORDBREAKS//[^$1]}" ]] || COMP_WORDBREAKS=$COMP_WORDBREAKS$1 + fi +} # add_comp_wordbreak_char() + + +# Diff environment files to detect if environment is unmodified +# @param $1 File 1 +# @param $2 File 2 +# @param $3 Additional sed script +diff_env() { + diff "$1" "$2" | sed -e " +# Remove diff line indicators + /^[0-9,]\{1,\}[acd]/d +# Remove diff block separators + /---/d +# Remove underscore variable + /[<>] _=/d +# Remove PPID bash variable + /[<>] PPID=/d + $3" +} # diff_env() + + +# Output array elements, sorted and separated by newline +# Unset variable after outputting. +# @param $1 Name of array variable to process +echo_array() { + local name=$1[@] + printf "%s\n" "${!name}" | sort +} # echo_array() + + +# Check if current bash version meets specified minimum +# @param $1 (integer) Major version number +# @param $2 (integer) Minor version number +# @param $3 (integer) Patch level +# @return 0 if success, > 0 if not +is_bash_version_minimal() { + [[ ( + ${BASH_VERSINFO[0]} -gt $1 + ) || ( + ${BASH_VERSINFO[0]} -eq $1 && + ${BASH_VERSINFO[1]} -gt $2 + ) || ( + ${BASH_VERSINFO[0]} -eq $1 && + ${BASH_VERSINFO[1]} -eq $2 && + ${BASH_VERSINFO[2]} -ge $3 + ) + ]] +} # is_bash_version_minimal() + + +# @param $1 Char to remove from $COMP_WORDBREAKS +# @see add_comp_wordbreak_char() +remove_comp_wordbreak_char() { + if [ ${BASH_VERSINFO[0]} -ge 4 ]; then + COMP_WORDBREAKS=${COMP_WORDBREAKS//$1} + fi +} # remove_comp_wordbreak_char() + + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh |