#!/bin/bash
set -euo pipefail
PROJECT_NAME="msmemscope"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$SCRIPT_DIR/../.."
echo "[INFO] Building $PROJECT_NAME..."
cd "$PROJECT_ROOT/build"
if ! python build.py local; then
echo "[ERROR] Build failed!" >&2
exit 1
fi
SO_SRC="$PROJECT_ROOT/output/lib64/_${PROJECT_NAME}.so"
SO_DST="$PROJECT_ROOT/python/${PROJECT_NAME}/_${PROJECT_NAME}.so"
if [ ! -f "$SO_SRC" ]; then
echo "[ERROR] Shared object not found: $SO_SRC" >&2
exit 1
fi
mkdir -p "$(dirname "$SO_DST")"
cp "$SO_SRC" "$SO_DST"
echo "[INFO] Copied $SO_DST"
PYTHON_SYMLINK="$PROJECT_ROOT/output/python"
rm -f "$PYTHON_SYMLINK"
ln -s ../python "$PYTHON_SYMLINK"
echo "[INFO] Created symlink: $PYTHON_SYMLINK -> $PROJECT_ROOT/python"
SMOKE_DIR="$PROJECT_ROOT/test/smoke/$PROJECT_NAME"
OUTPUT_LINK="$SMOKE_DIR/output"
mkdir -p "$SMOKE_DIR"
rm -f "$OUTPUT_LINK"
ln -s "$PROJECT_ROOT/output" "$OUTPUT_LINK"
echo "[INFO] Created symlink: $OUTPUT_LINK -> $PROJECT_ROOT/output"
cd "$SCRIPT_DIR"
if [ ! -f "run_st.py" ]; then
echo "[ERROR] Smoke test script not found: $SCRIPT_DIR/run_st.py" >&2
exit 1
fi
echo "[INFO] Running smoke test..."
if ! python run_st.py; then
echo "[ERROR] Smoke test failed!" >&2
exit 1
fi