#!/usr/bin/env bash # scripts/e2e_check.sh —— 端到端冒烟测试 # 启动 bringup/pubsub_launch 8 秒,期间持续验证 chatter 真的有消息 set -eo pipefail WORKSPACE="${WORKSPACE:-/root/ros2_ws}" source /opt/ros/humble/setup.bash source "${WORKSPACE}/install/setup.bash" cd "${WORKSPACE}" echo "[e2e] 启动 bringup/pubsub_launch.py (≈6s 冒烟)..." ros2 launch bringup pubsub_launch.py > /tmp/e2e_launch.log 2>&1 & LAUNCH_PID=$! sleep 3 echo echo "[e2e] === 验证 topic ===" echo "[e2e] --- topic list ---" ros2 topic list --no-daemon | head -10 echo echo "[e2e] --- topic hz /chatter (3s) ---" timeout 3 ros2 topic hz /chatter --no-daemon 2>&1 | tail -5 || true echo echo "[e2e] --- topic info /chatter -v ---" ros2 topic info /chatter -v --no-daemon | head -20 echo echo "[e2e] --- node list ---" ros2 node list --no-daemon echo echo "[e2e] 关停 launch..." kill -INT "${LAUNCH_PID}" 2>/dev/null || true pkill -f "ros2 launch bringup" 2>/dev/null || true wait "${LAUNCH_PID}" 2>/dev/null || true echo echo "[e2e] ✅ DONE. 详细日志: cat /tmp/e2e_launch.log"