diff --git a/tests/smoke_lib.sh b/tests/smoke_lib.sh index ed7270f..30e930d 100755 --- a/tests/smoke_lib.sh +++ b/tests/smoke_lib.sh @@ -123,6 +123,21 @@ wait_for_runtime_linking() { exit 1 } +# Helper: assert endpoint returns 200 with non-empty .items array +# Usage: assert_non_empty_items "/apps/lidar-sim/data" +assert_non_empty_items() { + local endpoint="$1" + if api_get "$endpoint"; then + if echo "$RESPONSE" | jq -e '.items | length > 0' > /dev/null 2>&1; then + pass "GET ${endpoint} returns non-empty items" + else + fail "GET ${endpoint} returns non-empty items" "items is empty" + fi + else + fail "GET ${endpoint} returns 200" "unexpected status code" + fi +} + # Test entity discovery for a given entity type # Usage: test_entity_discovery "areas" "sensors processing diagnostics" test_entity_discovery() { diff --git a/tests/smoke_test.sh b/tests/smoke_test.sh index e943579..b4f61fa 100755 --- a/tests/smoke_test.sh +++ b/tests/smoke_test.sh @@ -37,33 +37,22 @@ test_entity_discovery "apps" lidar-sim imu-sim gps-sim camera-sim anomaly-detect section "Data Access" -if api_get "/apps/lidar-sim/data"; then - if echo "$RESPONSE" | jq -e '.items | length > 0' > /dev/null 2>&1; then - pass "GET /apps/lidar-sim/data returns non-empty items" - else - fail "GET /apps/lidar-sim/data returns non-empty items" "items is empty" - fi -else - fail "GET /apps/lidar-sim/data returns 200" "unexpected status code" -fi +assert_non_empty_items "/apps/lidar-sim/data" section "Configurations" -if api_get "/apps/lidar-sim/configurations"; then - if echo "$RESPONSE" | jq -e '.items | length > 0' > /dev/null 2>&1; then - pass "GET /apps/lidar-sim/configurations returns non-empty items" - else - fail "GET /apps/lidar-sim/configurations returns non-empty items" "items is empty" - fi - if echo "$RESPONSE" | jq -e '.items[] | select(.name == "noise_stddev")' > /dev/null 2>&1; then - pass "configurations contains 'noise_stddev' parameter" - else - fail "configurations contains 'noise_stddev' parameter" "not found in response" - fi +assert_non_empty_items "/apps/lidar-sim/configurations" + +if echo "$RESPONSE" | jq -e '.items[] | select(.name == "noise_stddev")' > /dev/null 2>&1; then + pass "configurations contains 'noise_stddev' parameter" else - fail "GET /apps/lidar-sim/configurations returns 200" "unexpected status code" + fail "configurations contains 'noise_stddev' parameter" "not found in response" fi +section "Logs" + +assert_non_empty_items "/apps/medkit-gateway/logs" + section "Fault Injection" # Inject noise fault via configuration API diff --git a/tests/smoke_test_moveit.sh b/tests/smoke_test_moveit.sh index a4a6180..c279dbc 100755 --- a/tests/smoke_test_moveit.sh +++ b/tests/smoke_test_moveit.sh @@ -36,6 +36,10 @@ test_entity_discovery "areas" manipulation planning diagnostics bridge test_entity_discovery "components" panda-arm panda-gripper moveit-planning pick-place-loop gateway fault-manager diagnostic-bridge test_entity_discovery "apps" joint-state-broadcaster panda-arm-controller panda-hand-controller robot-state-publisher move-group pick-place-node medkit-gateway medkit-fault-manager diagnostic-bridge-app manipulation-monitor +section "Logs" + +assert_non_empty_items "/apps/medkit-gateway/logs" + # --- Summary --- print_summary diff --git a/tests/smoke_test_turtlebot3.sh b/tests/smoke_test_turtlebot3.sh index e54a3b4..1a54ffa 100755 --- a/tests/smoke_test_turtlebot3.sh +++ b/tests/smoke_test_turtlebot3.sh @@ -37,6 +37,10 @@ test_entity_discovery "areas" robot navigation diagnostics bridge test_entity_discovery "components" turtlebot3-base lidar-sensor nav2-stack gateway fault-manager diagnostic-bridge-unit test_entity_discovery "apps" turtlebot3-node robot-state-publisher amcl bt-navigator controller-server planner-server velocity-smoother medkit-gateway medkit-fault-manager diagnostic-bridge anomaly-detector +section "Logs" + +assert_non_empty_items "/apps/medkit-gateway/logs" + # --- Summary --- print_summary