mirror of
https://github.com/oSoWoSo/DistroHopper.git
synced 2026-06-14 17:36:40 +00:00
qget: - Add QGET_TEST_MODE guard so the script can be sourced for unit testing without executing the main logic dh: - Auto-detect getter tool (qget preferred, quickget fallback) in set_variables(); export as GETTER - Add getter_list_os() wrapper using GETTER --list for portable OS enumeration - Replace hard-coded quickget calls with $GETTER in renew_supported_vms(), renew_ready_vms(), and execmd strings - Fix releases/editions/description parsing (sed instead of cut -f2 which fails on colon-space separators) - Add DH_TEST_MODE guard to prevent execution when sourcing for tests action: - Auto-detect getter tool at startup; export as GETTER - Add --qget / -q and --quickget / -Q flags to override detection tests/: - tests/lib.sh: shared assert helpers (assert_eq, assert_ne, assert_match, assert_cmd, assert_fn_exists) with pass/fail counting - tests/test_dh.sh: 31 unit tests covering set_variables, GETTER, getter_list_os, root_check, wayland_check, and all required function definitions - tests/test_qget.sh: 23 unit tests covering os_support, test_result formatting, is_valid_language, check_hash, and all utility functions - tests/test_action_files.sh: 784 structural tests verifying every action file has OSNAME, PRETTY, HOMEPAGE (valid URL), DESCRIPTION, releases_() and get_() functions - tests/run_tests.sh: top-level runner executing all three suites https://claude.ai/code/session_01M2UXTtQwzcGCNRnFiP2efQ
45 lines
1.2 KiB
Bash
Executable file
45 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Run all DistroHopper test suites
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
TESTS_DIR="$REPO_ROOT/tests"
|
|
|
|
_green='\033[0;32m'
|
|
_red='\033[0;31m'
|
|
_nc='\033[0m'
|
|
|
|
suite_pass=0
|
|
suite_fail=0
|
|
|
|
run_suite() {
|
|
local suite_file="$1"
|
|
local name
|
|
name=$(basename "$suite_file" .sh)
|
|
echo ""
|
|
echo "━━━ $name ━━━"
|
|
if bash "$suite_file"; then
|
|
suite_pass=$((suite_pass + 1))
|
|
else
|
|
suite_fail=$((suite_fail + 1))
|
|
fi
|
|
}
|
|
|
|
echo "════════════════════════════════"
|
|
echo " DistroHopper test suite"
|
|
echo "════════════════════════════════"
|
|
|
|
run_suite "$TESTS_DIR/test_dh.sh"
|
|
run_suite "$TESTS_DIR/test_qget.sh"
|
|
run_suite "$TESTS_DIR/test_action_files.sh"
|
|
|
|
echo ""
|
|
echo "════════════════════════════════"
|
|
total=$((suite_pass + suite_fail))
|
|
if [ $suite_fail -eq 0 ]; then
|
|
echo -e "${_green}All $total suites passed${_nc}"
|
|
else
|
|
echo -e "${_red}$suite_fail / $total suites failed${_nc}"
|
|
fi
|
|
echo "════════════════════════════════"
|
|
|
|
[ $suite_fail -eq 0 ]
|