- Add database migrations (006-028) for face recognition, identity, file_uuid - Add test scripts for ASR, face, search, processing - Add portal frontend (Tauri) - Add config, benchmark, and monitoring utilities - Add model checkpoints and pretrained model references
137 lines
4.1 KiB
Bash
Executable File
137 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Processor Test Suite for Momentry Core
|
|
# Tests all 9 contract-compliant processors
|
|
|
|
set -e
|
|
|
|
echo "=== Momentry Core Processor Test Suite ==="
|
|
echo "Testing all 9 contract-compliant processors"
|
|
echo ""
|
|
|
|
# Test video file
|
|
TEST_VIDEO="/Users/accusys/test_video/BigBuckBunny_320x180.mp4"
|
|
API_KEY="muser_29dd336ea8d44b9badbc650d503b0348_1774620247_b098ff47"
|
|
API_URL="http://localhost:3002"
|
|
|
|
# Check if video exists
|
|
if [ ! -f "$TEST_VIDEO" ]; then
|
|
echo "❌ Test video not found: $TEST_VIDEO"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Test video found: $(basename "$TEST_VIDEO")"
|
|
echo ""
|
|
|
|
# Test 1: Check API health
|
|
echo "Test 1: API Health Check"
|
|
if curl -s "$API_URL/health" | grep -q "ok"; then
|
|
echo "✅ API is healthy"
|
|
else
|
|
echo "❌ API health check failed"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Test 2: Register video (creates job with all 9 processors)
|
|
echo "Test 2: Register Video"
|
|
REGISTER_RESPONSE=$(curl -s -X POST \
|
|
-H "X-API-Key: $API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"file_path\": \"$TEST_VIDEO\"}" \
|
|
"$API_URL/api/v1/videos/register" || true)
|
|
|
|
if echo "$REGISTER_RESPONSE" | grep -q "already_exists"; then
|
|
echo "⚠️ Video already registered, checking existing job"
|
|
# Get video UUID from database
|
|
UUID=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT uuid FROM videos WHERE file_path = '$TEST_VIDEO' LIMIT 1;" | tr -d '[:space:]')
|
|
else
|
|
UUID=$(echo "$REGISTER_RESPONSE" | jq -r '.uuid' 2>/dev/null || echo "")
|
|
fi
|
|
|
|
if [ -n "$UUID" ]; then
|
|
echo "✅ Video UUID: $UUID"
|
|
else
|
|
echo "❌ Failed to get video UUID"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Test 3: Check job creation
|
|
echo "Test 3: Verify Job Creation"
|
|
JOB_INFO=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT id, status, processors, completed_processors FROM monitor_jobs WHERE uuid = '$UUID';")
|
|
|
|
if [ -n "$JOB_INFO" ]; then
|
|
echo "✅ Job created successfully"
|
|
echo " Job info: $JOB_INFO"
|
|
else
|
|
echo "❌ Job not found for UUID: $UUID"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Test 4: Check worker is processing
|
|
echo "Test 4: Worker Status"
|
|
WORKER_PID=$(ps aux | grep "momentry worker" | grep -v grep | head -1 | awk '{print $2}')
|
|
if [ -n "$WORKER_PID" ]; then
|
|
echo "✅ Worker running (PID: $WORKER_PID)"
|
|
|
|
# Check worker logs for activity
|
|
if tail -20 /Users/accusys/momentry/log/momentry_worker.log | grep -q "processing\|completed\|Processor"; then
|
|
echo "✅ Worker is active"
|
|
else
|
|
echo "⚠️ Worker not showing recent activity"
|
|
fi
|
|
else
|
|
echo "❌ Worker not running"
|
|
fi
|
|
echo ""
|
|
|
|
# Test 5: Monitor processor progress
|
|
echo "Test 5: Processor Progress Monitoring"
|
|
echo "Waiting 30 seconds for processor progress..."
|
|
sleep 30
|
|
|
|
JOB_PROGRESS=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT processors, completed_processors, failed_processors FROM monitor_jobs WHERE uuid = '$UUID';")
|
|
echo "Job progress: $JOB_PROGRESS"
|
|
echo ""
|
|
|
|
# Test 6: Check individual processor results
|
|
echo "Test 6: Individual Processor Results"
|
|
PROCESSORS=("asr" "cut" "yolo" "ocr" "face" "pose" "asrx" "caption" "story")
|
|
|
|
for processor in "${PROCESSORS[@]}"; do
|
|
COUNT=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT COUNT(*) FROM processor_results WHERE video_uuid = '$UUID' AND processor_type = '$processor';" | tr -d '[:space:]')
|
|
if [ "$COUNT" -gt "0" ]; then
|
|
echo "✅ $processor: $COUNT results"
|
|
else
|
|
echo "❌ $processor: No results yet"
|
|
fi
|
|
done
|
|
echo ""
|
|
|
|
# Test 7: System status
|
|
echo "Test 7: System Status Check"
|
|
SYSTEM_STATUS=$(curl -s -H "X-API-Key: $API_KEY" "$API_URL/api/v1/system/status")
|
|
if echo "$SYSTEM_STATUS" | grep -q "worker"; then
|
|
echo "✅ System status endpoint working"
|
|
else
|
|
echo "⚠️ System status endpoint may require authentication"
|
|
fi
|
|
echo ""
|
|
|
|
echo "=== Test Summary ==="
|
|
echo "All 9 contract processors configured:"
|
|
echo " - ASR (Automatic Speech Recognition)"
|
|
echo " - CUT (Scene Detection)"
|
|
echo " - YOLO (Object Detection)"
|
|
echo " - OCR (Text Recognition)"
|
|
echo " - Face (Face Detection)"
|
|
echo " - Pose (Pose Estimation)"
|
|
echo " - ASRX (Extended ASR)"
|
|
echo " - Caption (Video Captioning)"
|
|
echo " - Story (Narrative Generation)"
|
|
echo ""
|
|
echo "Note: Processor execution may take time depending on video length"
|
|
echo "Check /Users/accusys/momentry/log/momentry_worker.log for detailed progress"
|