128 lines
4.0 KiB
Bash
Executable File
128 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Integration test runner for SimBox DataEngine
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
CYAN='\033[0;36m'
|
|
BOLD='\033[1m'
|
|
NC='\033[0m'
|
|
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
LOG_FILE="tests/test_results_${TIMESTAMP}.log"
|
|
SUMMARY_FILE="tests/test_summary_${TIMESTAMP}.txt"
|
|
TEMP_LOG="tests/temp_test_output.log"
|
|
|
|
declare -a TEST_SUITES=()
|
|
TEST_SUITES+=("SimBox Tests (Isaac Sim):3:/isaac-sim/python.sh tests/integration/simbox/test_simbox.py")
|
|
|
|
TOTAL_SUITES=${#TEST_SUITES[@]}
|
|
|
|
echo "Starting SimBox DataEngine Integration Tests..."
|
|
echo "=============================================="
|
|
echo -e "${BOLD}${CYAN}TEST EXECUTION PLAN:${NC}"
|
|
echo -e " ${BOLD}Total Test Suites: ${TOTAL_SUITES}${NC}"
|
|
echo -e " ${BOLD}SimBox Scenarios Covered:${NC}"
|
|
echo -e " - Pipeline: Full end-to-end workflow"
|
|
echo -e " - Plan: Trajectory planning generation"
|
|
echo -e " - Render: Scene rendering with validation"
|
|
echo ""
|
|
|
|
echo -e "${BLUE}Detailed logs: $LOG_FILE${NC}"
|
|
echo "=============================================="
|
|
|
|
TOTAL_TEST_SUITES=0
|
|
PASSED_TEST_SUITES=0
|
|
FAILED_TEST_SUITES=0
|
|
|
|
run_test_suite() {
|
|
local suite_name="$1"
|
|
local expected_sessions="$2"
|
|
local test_command="$3"
|
|
local current_suite=$4
|
|
|
|
TOTAL_TEST_SUITES=$((TOTAL_TEST_SUITES + 1))
|
|
|
|
echo -e "${BOLD}${BLUE}[$current_suite/$TOTAL_SUITES] Starting: $suite_name${NC}"
|
|
echo -e " ${CYAN}-> Running ${expected_sessions} SimBox tests with Isaac Sim${NC}"
|
|
|
|
echo "Test Suite: $suite_name" >> "$LOG_FILE"
|
|
echo "Expected Test Functions: $expected_sessions" >> "$LOG_FILE"
|
|
echo "Command: $test_command" >> "$LOG_FILE"
|
|
echo "Started at: $(date)" >> "$LOG_FILE"
|
|
echo "----------------------------------------" >> "$LOG_FILE"
|
|
|
|
echo -e "${CYAN}Executing: $test_command${NC}"
|
|
eval "$test_command" > "$TEMP_LOG" 2>&1
|
|
local exit_status=$?
|
|
|
|
cat "$TEMP_LOG" >> "$LOG_FILE"
|
|
echo "" >> "$LOG_FILE"
|
|
|
|
if [ $exit_status -eq 0 ]; then
|
|
echo -e "${GREEN}✓ [$current_suite/$TOTAL_SUITES] PASSED: $suite_name${NC}"
|
|
PASSED_TEST_SUITES=$((PASSED_TEST_SUITES + 1))
|
|
else
|
|
echo -e "${RED}✗ [$current_suite/$TOTAL_SUITES] FAILED: $suite_name${NC}"
|
|
FAILED_TEST_SUITES=$((FAILED_TEST_SUITES + 1))
|
|
echo -e "${YELLOW} Check $LOG_FILE for error details${NC}"
|
|
echo -e "${YELLOW}Recent output:${NC}"
|
|
tail -20 "$TEMP_LOG"
|
|
fi
|
|
|
|
echo ""
|
|
rm -f "$TEMP_LOG"
|
|
}
|
|
|
|
> "$SUMMARY_FILE"
|
|
> "$LOG_FILE"
|
|
|
|
echo "Test execution started at: $(date)" > "$SUMMARY_FILE"
|
|
echo "Planned suites: $TOTAL_SUITES" >> "$SUMMARY_FILE"
|
|
echo "=======================================" >> "$SUMMARY_FILE"
|
|
|
|
echo "Test execution started at: $(date)" >> "$LOG_FILE"
|
|
echo "================================================" >> "$LOG_FILE"
|
|
|
|
for i in "${!TEST_SUITES[@]}"; do
|
|
suite_info="${TEST_SUITES[$i]}"
|
|
suite_name=$(echo "$suite_info" | cut -d':' -f1)
|
|
expected_sessions=$(echo "$suite_info" | cut -d':' -f2)
|
|
test_command=$(echo "$suite_info" | cut -d':' -f3-)
|
|
current_suite=$((i + 1))
|
|
|
|
run_test_suite "$suite_name" "$expected_sessions" "$test_command" $current_suite
|
|
done
|
|
|
|
echo "=============================================="
|
|
echo "TEST EXECUTION SUMMARY"
|
|
echo "=============================================="
|
|
echo -e "${CYAN}Test Suites:${NC}"
|
|
echo -e " Total: $TOTAL_TEST_SUITES"
|
|
echo -e " ${GREEN}Passed: $PASSED_TEST_SUITES${NC}"
|
|
echo -e " ${RED}Failed: $FAILED_TEST_SUITES${NC}"
|
|
echo ""
|
|
|
|
echo "" >> "$SUMMARY_FILE"
|
|
echo "FINAL SUMMARY:" >> "$SUMMARY_FILE"
|
|
echo "Suites - Total: $TOTAL_TEST_SUITES, Passed: $PASSED_TEST_SUITES, Failed: $FAILED_TEST_SUITES" >> "$SUMMARY_FILE"
|
|
|
|
if [ $FAILED_TEST_SUITES -eq 0 ]; then
|
|
echo -e "${GREEN}ALL TESTS PASSED${NC}"
|
|
echo "ALL TESTS PASSED at $(date)" >> "$SUMMARY_FILE"
|
|
else
|
|
echo -e "${RED}SOME TEST SUITES FAILED${NC}"
|
|
echo "SOME TEST SUITES FAILED at $(date)" >> "$SUMMARY_FILE"
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${BLUE}Results: $SUMMARY_FILE${NC}"
|
|
echo -e "${BLUE}Logs: $LOG_FILE${NC}"
|
|
|
|
if [ $FAILED_TEST_SUITES -eq 0 ]; then
|
|
exit 0
|
|
else
|
|
exit 1
|
|
fi
|