tester.sh
This commit is contained in:
parent
255237e119
commit
7e90a31914
95
shell/tester.sh
Normal file
95
shell/tester.sh
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# https://gist.github.com/anthonyaxenov/b17c6fbd7895c6049e1ceddc7c54bb5b
|
||||||
|
. ./io.sh
|
||||||
|
|
||||||
|
########################################################
|
||||||
|
# Тестировочные функции
|
||||||
|
# Позволяют проверять результаты выполнения команд
|
||||||
|
########################################################
|
||||||
|
|
||||||
|
# тестирует выполнение команды с указанными параметрами
|
||||||
|
# $1 - команда для тестирования (обяз)
|
||||||
|
expect_exec() {
|
||||||
|
[ "$1" ] || exit 1
|
||||||
|
local prefix="`dt`${BOLD}${FWHITE}[TEST EXEC]"
|
||||||
|
if $($1 1>/dev/null 2>&1); then
|
||||||
|
local text="${BGREEN} PASSED"
|
||||||
|
else
|
||||||
|
local text="${BLRED} FAILED"
|
||||||
|
fi
|
||||||
|
print "${prefix} ${text} ${BRESET} ($?):${RESET} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# использование:
|
||||||
|
|
||||||
|
# func1() {
|
||||||
|
# return 0
|
||||||
|
# }
|
||||||
|
# func2() {
|
||||||
|
# return 1
|
||||||
|
# }
|
||||||
|
# expect_exec "func1" # PASSED
|
||||||
|
# expect_exec "func2" # FAILED
|
||||||
|
# expect_exec "whoami" # PASSED
|
||||||
|
|
||||||
|
# тестирует выполнение команды с указанными параметрами и проверяет вывод
|
||||||
|
# $1 - команда для тестирования (обяз)
|
||||||
|
# $2 - ожидаемый вывод
|
||||||
|
expect_output() {
|
||||||
|
[ "$1" ] || exit 1
|
||||||
|
[ "$2" ] && local expected="$2" || local expected=''
|
||||||
|
local prefix="`dt`${BOLD}${FWHITE}[TEST OUTP]"
|
||||||
|
local output=$($1 2>&1)
|
||||||
|
local code=$?
|
||||||
|
if [[ "$output" == *"$expected"* ]]; then
|
||||||
|
local text="${BGREEN} PASSED"
|
||||||
|
else
|
||||||
|
local text="${BLRED} FAILED"
|
||||||
|
fi
|
||||||
|
print "${prefix} ${text} ${BRESET} (${code}|${expected}):${RESET} $1"
|
||||||
|
# print "\tOutput > $output"
|
||||||
|
}
|
||||||
|
|
||||||
|
# использование:
|
||||||
|
|
||||||
|
# func1() {
|
||||||
|
# echo "some string"
|
||||||
|
# }
|
||||||
|
# func2() {
|
||||||
|
# echo "another string"
|
||||||
|
# }
|
||||||
|
# expect_output "func1" "string" # PASSED
|
||||||
|
# expect_output "func2" "some" # FAILED
|
||||||
|
# expect_output "func2" "string" # PASSED
|
||||||
|
|
||||||
|
# тестирует выполнение команды с указанными параметрами и проверяет код выхода
|
||||||
|
# $1 - команда для тестирования (обяз)
|
||||||
|
# $2 - ожидаемый код выхода
|
||||||
|
expect_code() {
|
||||||
|
[ "$1" ] || exit 1
|
||||||
|
[ "$2" ] && local expected=$2 || local expected=0
|
||||||
|
local prefix="`dt`${BOLD}${FWHITE}[TEST CODE]"
|
||||||
|
$($1 1>/dev/null 2>&1)
|
||||||
|
local code=$?
|
||||||
|
if [[ $code -eq $expected ]]; then
|
||||||
|
local text="${BGREEN} PASSED"
|
||||||
|
else
|
||||||
|
local text="${BLRED} FAILED"
|
||||||
|
fi
|
||||||
|
print "${prefix} ${text} ${BRESET} (${code}|${expected}):${RESET} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# использование:
|
||||||
|
|
||||||
|
# func1() {
|
||||||
|
# # exit 0
|
||||||
|
# return 0
|
||||||
|
# }
|
||||||
|
# func2() {
|
||||||
|
# # exit 1
|
||||||
|
# return 1
|
||||||
|
# }
|
||||||
|
# expect_code "func1" 0 # PASSED
|
||||||
|
# expect_code "func1" 1 # FAILED
|
||||||
|
# expect_code "func2" 0 # FAILED
|
||||||
|
# expect_code "func2" 1 # PASSED
|
Loading…
Reference in New Issue
Block a user