38 lines
859 B
Bash
38 lines
859 B
Bash
#!/bin/bash
|
|
|
|
# /*
|
|
# Test regular expression
|
|
# EXPECTED_TO_ARGS[0]* -> expected regular expression match
|
|
# EXPECTED_TO_ARGS[1]* -> value 'once' or if next argument is value 'times', the number of times
|
|
# RESPONSE -> actual output (stdout or stderr)
|
|
# */
|
|
|
|
run_verb_match_regex()
|
|
{
|
|
local NB_OF_TIMES="0" RESULT
|
|
if [ "${EXPECTED_TO_ARGS[1]}" == "once" ]
|
|
then
|
|
NB_OF_TIMES="1"
|
|
fi
|
|
if [ "${EXPECTED_TO_ARGS[2]}" == "times" ]
|
|
then
|
|
NB_OF_TIMES="${EXPECTED_TO_ARGS[1]}"
|
|
fi
|
|
RESULT="$(awk -v regexp="${EXPECTED_TO_ARGS[0]}" 'BEGIN {TOTAL=0} $0 ~ regexp {TOTAL++} END {printf TOTAL}' "${RESPONSE}")"
|
|
if [ "${NB_OF_TIMES}" == "0" ]
|
|
then
|
|
if [ "${RESULT}" != "0" ]
|
|
then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
else
|
|
if [ "${RESULT}" == "${NB_OF_TIMES}" ]
|
|
then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
fi
|
|
}
|