#!/usr/bin/env bash # Запуск тестов только в Linux (WSL dev): asdf OTP 28 + rebar 3.27. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJ="$(cd "${SCRIPT_DIR}/.." && pwd)" # shellcheck source=scripts/wsl-dev-env.sh source "${SCRIPT_DIR}/wsl-dev-env.sh" cd "${PROJ}" bash "${SCRIPT_DIR}/wsl-ext4-dirs.sh" 2>/dev/null || true bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh" echo "=== env ===" erl -noshell -eval 'io:format("OTP ~s~n", [erlang:system_info(otp_release)]), halt().' rebar3 --version echo "rebar3: $(command -v rebar3)" echo "erl: $(command -v erl)" echo "=== compile ===" rebar3 compile bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh" echo "=== eunit: admin_utils_tests ===" rebar3 eunit --module=admin_utils_tests --verbose echo "=== eunit: logic_ticket_tests ===" rebar3 eunit --module=logic_ticket_tests --verbose bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh" port_busy() { ss -tln 2>/dev/null | grep -q ":$1 " } run_ct() { local case_name="$1" echo "=== ct: ${case_name} ===" rebar3 ct --suite=api_admins_SUITE --case="${case_name}" --verbose } if port_busy 18080 || port_busy 18445; then echo "=== ct: SKIP (порты 18080/18445 заняты — остановите CT-сервер и повторите) ===" ss -tln 2>/dev/null | grep -E ':18080|:18445' || true exit 0 fi run_ct admin_test_stats bash "${SCRIPT_DIR}/fix-rebar-unit-symlink.sh" run_ct admin_test_audit echo "=== ALL PASSED ==="