use uv to run test, more fixes
This commit is contained in:
@@ -1,34 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
# Run the gammaray-mcp test suite.
|
||||
# Convenience script to run the gammaray-mcp test suite.
|
||||
#
|
||||
# This is the SINGLE configuration point for paths. If you install GammaRay
|
||||
# from a system package instead of the local install-prefix, change the
|
||||
# variables below. Everything else (conftest.py, the QML test app, etc.)
|
||||
# reads from these environment variables.
|
||||
#
|
||||
# Usage:
|
||||
# ./run_tests.sh # probe-required tests (default)
|
||||
# ./run_tests.sh --no-probe # only unit tests (no probe needed)
|
||||
# ./run_tests.sh -v # verbose
|
||||
# ./run_tests.sh -k "item" # run only item-related tests
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Configurable paths — adjust these if GammaRay is installed elsewhere
|
||||
# ---------------------------------------------------------------------------
|
||||
: "${GAMMARAY_BIN:=$PROJECT_ROOT/install-prefix/bin/gammaray}"
|
||||
: "${GAMMARAY_LIB_DIR:=$PROJECT_ROOT/install-prefix/lib}"
|
||||
: "${QML_RUNNER:=/usr/lib/qt6/bin/qml}"
|
||||
: "${TEST_QML:=$SCRIPT_DIR/testapp/main.qml}"
|
||||
: "${BRIDGE_EXE:=$PROJECT_ROOT/bridge/build/qml-sg-mcp-bridge}"
|
||||
: "${BRIDGE_RUN_SCRIPT:=$PROJECT_ROOT/bridge/run.sh}"
|
||||
|
||||
# Export so conftest.py can read them
|
||||
export GAMMARAY_BIN
|
||||
export GAMMARAY_LIB_DIR
|
||||
export QML_RUNNER
|
||||
export TEST_QML
|
||||
export BRIDGE_EXE
|
||||
export BRIDGE_RUN_SCRIPT
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Ensure the bridge is built
|
||||
if [ ! -f "$PROJECT_ROOT/bridge/build/qml-sg-mcp-bridge" ]; then
|
||||
# ---------------------------------------------------------------------------
|
||||
if [ ! -f "$BRIDGE_EXE" ]; then
|
||||
echo "Building bridge first..."
|
||||
cmake -S "$PROJECT_ROOT/bridge" -B "$PROJECT_ROOT/bridge/build" -G Ninja \
|
||||
-DCMAKE_PREFIX_PATH="$PROJECT_ROOT/install-prefix"
|
||||
cmake --build "$PROJECT_ROOT/bridge/build"
|
||||
fi
|
||||
|
||||
# Use the same env as run.sh
|
||||
export LD_LIBRARY_PATH="$PROJECT_ROOT/install-prefix/lib"
|
||||
# ---------------------------------------------------------------------------
|
||||
# Runtime environment
|
||||
# ---------------------------------------------------------------------------
|
||||
export LD_LIBRARY_PATH="$GAMMARAY_LIB_DIR"
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
export QT_PLUGIN_PATH="$PROJECT_ROOT/bridge/build/lib/x86_64-linux-gnu/qt6/plugins"
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# Install test dependencies if needed
|
||||
python3 -c "import pytest" 2>/dev/null || {
|
||||
echo "pytest not found. Installing..."
|
||||
pip3 install pytest --user
|
||||
}
|
||||
|
||||
exec python3 -m pytest "$@" .
|
||||
exec uv run --frozen --directory "$PROJECT_ROOT" python "$SCRIPT_DIR/run_with_uv.py" "$@"
|
||||
Reference in New Issue
Block a user