diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/lib/log.sh | 139 | ||||
| -rw-r--r-- | test/lib/test.sh | 13 | ||||
| -rwxr-xr-x | test/main.sh | 77 | ||||
| m--------- | test/runner | 0 | ||||
| -rw-r--r-- | test/tst-cgi.sh | 2 |
5 files changed, 4 insertions, 227 deletions
diff --git a/test/lib/log.sh b/test/lib/log.sh deleted file mode 100644 index 35b7a2d..0000000 --- a/test/lib/log.sh +++ /dev/null @@ -1,139 +0,0 @@ -# Copyright (c) 2026 Egor Tensin <egor@tensin.name> -# This file is part of the "linux-status" project. -# For details, see https://github.com/egor-tensin/linux-status -# Distributed under the MIT License. - -log() { - local msg - for msg; do - echo -e "$test_file | $msg" >&2 - done -} - -log_run() { - if [ "$#" -lt 1 ]; then - log "usage: ${FUNCNAME[0]} ARGV0 [ARG...]" - return 1 - fi - - local msg='Running:' - msg="$msg$( printf -- ' %q' "$@" )" - log "$msg" -} - -fail() { - local msg - for msg; do - log "FAIL: $msg" - done -} - -fail_details() { - local msg - for msg; do - fail " $msg" - done -} - -log_numof_tests_ok=0 -log_numof_tests_failed=0 -declare -a log_tests_failed=() -declare -A log_tests_should_fail=() - -log_test_start() { - if [ "$#" -ne 1 ]; then - echo "usage: ${FUNCNAME[0]} TEST_FILE" >&2 - return 1 - fi - - local test_file="$1" - - if [ -n "${test_should_fail:-}" ]; then - log_tests_should_fail["$test_file"]=1 - fi - - cat <<EOF >&2 - -====================================================================== -TEST: $test_file -====================================================================== -EOF - - log "Should fail: ${test_should_fail:-No}" -} - -log_test_ok() { - if [ "$#" -ne 1 ]; then - echo "usage: ${FUNCNAME[0]} TEST_FILE" >&2 - return 1 - fi - - log_numof_tests_ok=$((log_numof_tests_ok + 1)) - - cat <<EOF >&2 ----------------------------------------------------------------------- -OK: $1 ----------------------------------------------------------------------- -EOF -} - -log_test_fail() { - if [ "$#" -ne 1 ]; then - echo "usage: ${FUNCNAME[0]} TEST_FILE" >&2 - return 1 - fi - - log_numof_tests_failed=$((log_numof_tests_failed + 1)) - log_tests_failed+=("$1") - - cat <<EOF >&2 ----------------------------------------------------------------------- -FAIL: $1 ----------------------------------------------------------------------- -EOF -} - -log_test_finish() { - if [ "$#" -ne 2 ]; then - echo "usage: ${FUNCNAME[0]} TEST_FILE EXIT_CODE" >&2 - return 1 - fi - - local test_file="$1" - local ret="$2" - local test_should_fail - test_should_fail="${log_tests_should_fail["$test_file"]:+x}" - - if [ "$ret" -eq 0 ] || [ -n "$test_should_fail" ]; then - log_test_ok "$test_file" - else - log_test_fail "$test_file" - fi -} - -log_tests_summary() { - cat <<EOF >&2 - -====================================================================== -SUMMARY -====================================================================== -OK: $log_numof_tests_ok -FAIL: $log_numof_tests_failed -EOF - - local test_file - for test_file in ${log_tests_failed[@]+"${log_tests_failed[@]}"}; do - cat <<EOF >&2 -FAIL: $test_file -EOF - done - - cat <<EOF >&2 ----------------------------------------------------------------------- -EOF - - local ret=0 - [ "$log_numof_tests_failed" -gt 0 ] && ret=1 - - return "$ret" -} diff --git a/test/lib/test.sh b/test/lib/test.sh index ee35b05..a04e5a3 100644 --- a/test/lib/test.sh +++ b/test/lib/test.sh @@ -3,16 +3,13 @@ # For details, see https://github.com/egor-tensin/linux-status # Distributed under the MIT License. -test_should_fail= -test_root_dir= - test_server_port=35605 test_server_pid= _test_run_server() { log "Starting up server..." - log_run "$script_dir/../src/server.py" --port "$test_server_port" - "$script_dir/../src/server.py" --port "$test_server_port" >&2 & + log_run "$tests_dir/../src/server.py" --port "$test_server_port" + "$tests_dir/../src/server.py" --port "$test_server_port" >&2 & test_server_pid="$!" log "Server's PID: $test_server_pid" sleep 5 @@ -32,11 +29,7 @@ test_setup() { _test_run_server } -test_cleanup_default() { - if [ -n "$test_root_dir" ]; then - log "Removing test's root directory: $test_root_dir" - rm -rf -- "$test_root_dir" - fi +test_cleanup() { _test_kill_server } diff --git a/test/main.sh b/test/main.sh deleted file mode 100755 index a9e2feb..0000000 --- a/test/main.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2026 Egor Tensin <egor@tensin.name> -# This file is part of the "linux-status" project. -# For details, see https://github.com/egor-tensin/linux-status -# Distributed under the MIT License. - -set -o errexit -o nounset -o pipefail -shopt -s inherit_errexit lastpipe - -script_dir="$( dirname -- "${BASH_SOURCE[0]}" )" -script_dir="$( cd -- "$script_dir" && pwd )" -readonly script_dir -script_name="$( basename -- "${BASH_SOURCE[0]}" )" -readonly script_name - -source "$script_dir/lib/log.sh" - -run_test_file() { - local test_file - for test_file; do - source "$script_dir/lib/test.sh" - source "$script_dir/$test_file" - - log_test_start "$test_file" - - set +e - ( - set -o errexit -o nounset -o pipefail - shopt -s inherit_errexit lastpipe - - if [ "$( type -t test_cleanup )" == function ]; then - trap test_cleanup EXIT - else - trap test_cleanup_default EXIT - fi - - test_run - ) - local ret="$?" - set -e - - log_test_finish "$test_file" "$ret" - done -} - -main() { - if [ "$#" -gt 1 ]; then - echo "usage: $script_name [PATTERN]" >&2 - return 1 - fi - - local -a test_files=() - local test_file - - local pattern='*' - [ "$#" -gt 0 ] && pattern="$1" - - find "$script_dir" \ - -mindepth 1 \ - -maxdepth 1 \ - -type f \ - -regex '.*/tst-.*\.sh$' \ - -regextype posix-basic \ - -name "$pattern" \ - -printf '%P\0' \ - | sort -z \ - | \ - while IFS= read -d '' -r test_file; do - test_files+=("$test_file") - done - - run_test_file ${test_files[@]+"${test_files[@]}"} - log_tests_summary -} - -main "$@" diff --git a/test/runner b/test/runner new file mode 160000 +Subproject 1076ff1e8cf55b26997fbb20931b5e8903d9104 diff --git a/test/tst-cgi.sh b/test/tst-cgi.sh index bb2eb01..47a5a30 100644 --- a/test/tst-cgi.sh +++ b/test/tst-cgi.sh @@ -26,7 +26,7 @@ _test_cgi() { local query_string="what=$what" log "Running CGI test for query string: $query_string" - QUERY_STRING="$query_string" "$script_dir/../src/app.py" > "$test_cgi_response" + QUERY_STRING="$query_string" "$tests_dir/../src/app.py" > "$test_cgi_response" _test_cgi_check_status test_check_output "$test_cgi_response" "$@" |
