tests: prefer stdio MCP + mcp-proxy when available; source ~/dev/main/src/env.sh if present; robust cleanup

This commit is contained in:
Χγφτ Kompanion 2025-10-19 10:24:03 +02:00
parent 6ff51da0e2
commit 70bd4ea064
1 changed files with 19 additions and 7 deletions

View File

@ -13,9 +13,8 @@ MCP_SERVER_URL="http://${MCP_SERVER_HOST}:${MCP_SERVER_PORT}"
# --- Cleanup Function ---
cleanup() {
echo "--- Cleaning up ---"
if [ -n "$mcp_server_pid" ]; then
kill "$mcp_server_pid" || true
fi
[ -n "${mcp_proxy_pid:-}" ] && kill "$mcp_proxy_pid" || true
[ -n "${mcp_server_pid:-}" ] && kill "$mcp_server_pid" || true
pkill -f kom_mcp || true
sleep 1 # Give the OS time to release the port
netstat -tuln | grep ":${MCP_SERVER_PORT}" || true # Check if port is still in use
@ -29,15 +28,28 @@ echo "--- Setting up test environment ---"
echo ">> Initializing test database..."
"${PROJECT_ROOT_DIR}/db/scripts/create-test-db.sh" "$TEST_DB_NAME"
# Optional environment bootstrap (developer machine)
if [ -f "$HOME/dev/main/src/env.sh" ]; then
# shellcheck source=/dev/null
. "$HOME/dev/main/src/env.sh"
fi
echo ">> Harvesting embeddings..."
export DB_URL="dbname=${TEST_DB_NAME} user=kompanion host=/var/run/postgresql" EMBED_NAMESPACE="dev_knowledge"
python3 "${PROJECT_ROOT_DIR}/tools/ingest_dir.py" "${PROJECT_ROOT_DIR}/tests/test_data" "dev_knowledge"
echo ">> Starting MCP server..."
echo ">> Starting MCP server (preferring stdio + mcp-proxy if available)..."
sleep 2
if command -v mcp-proxy >/dev/null 2>&1; then
setsid $MCP_SERVER_EXECUTABLE --backend stdio < /dev/null > /dev/null 2>&1 &
mcp_server_pid=$!
sleep 1
setsid mcp-proxy --target stdio://127.0.0.1 --listen "${MCP_SERVER_HOST}:${MCP_SERVER_PORT}" < /dev/null > /dev/null 2>&1 &
mcp_proxy_pid=$!
else
timeout 10 $MCP_SERVER_EXECUTABLE --backend sse --address "${MCP_SERVER_HOST}:${MCP_SERVER_PORT}" < /dev/null > /dev/null 2>&1 &
mcp_server_pid=$!
mcp_server_pid=$!
fi
sleep 5
ps -ef | grep kom_mcp