@@ -554,10 +554,12 @@ if [ "$need_vp9_clip" -eq 1 ] && [ "$testMode" != "encode" ]; then
554554
555555 vp9_clip_ivf=" $OUTDIR /320_240_10fps.ivf"
556556 vp9_clip_webm=" $OUTDIR /vp9_test_320p.webm"
557+ vp9_decode_ready=0
557558
558559 # Check if WebM file already exists
559560 if [ -f " $vp9_clip_webm " ]; then
560561 log_info " VP9 WebM clip already exists: $vp9_clip_webm "
562+ vp9_decode_ready=1
561563 else
562564 # Download IVF file if not present
563565 if [ ! -f " $vp9_clip_ivf " ]; then
@@ -624,7 +626,6 @@ if [ "$need_vp9_clip" -eq 1 ] && [ "$testMode" != "encode" ]; then
624626 if [ ! -f " $vp9_clip_ivf " ]; then
625627 log_warn " VP9 clip not found after download attempt: $vp9_clip_ivf "
626628 log_warn " VP9 decode tests will be skipped"
627- skip_count=$(( skip_count + 1 ))
628629 else
629630 # Convert IVF to WebM container using GStreamer for better compatibility
630631 if [ ! -f " $vp9_clip_webm " ]; then
@@ -640,22 +641,22 @@ if [ "$need_vp9_clip" -eq 1 ] && [ "$testMode" != "encode" ]; then
640641 if ! has_element ivfparse || [ -z " $mux " ]; then
641642 log_warn " Missing ivfparse or muxer (webmmux/matroskamux); VP9 decode tests will be skipped"
642643 rm -f " $vp9_clip_webm " 2> /dev/null || true
643- skip_count=$(( skip_count + 1 ))
644644 else
645645 # Use GStreamer pipeline to remux IVF to WebM/Matroska container
646646 pipeline=" filesrc location=\" $vp9_clip_ivf \" ! ivfparse ! $mux ! filesink location=\" $vp9_clip_webm \" "
647647 if gstreamer_run_gstlaunch_timeout 30 " $pipeline " > /dev/null 2>&1 ; then
648648 log_pass " Successfully converted IVF to WebM (320x240)"
649+ vp9_decode_ready=1
649650 else
650651 log_fail " GStreamer IVF to WebM conversion failed"
651652 log_warn " VP9 decode tests will be skipped (reason: GST conversion failure)"
652653 rm -f " $vp9_clip_webm " 2> /dev/null || true
653654 rm -f " $vp9_clip_ivf " 2> /dev/null || true
654- skip_count=$(( skip_count + 1 ))
655655 fi
656656 fi
657657 else
658658 log_info " WebM file already exists: $vp9_clip_webm "
659+ vp9_decode_ready=1
659660 fi
660661 fi
661662 fi
@@ -700,7 +701,12 @@ if [ "$testMode" = "all" ] || [ "$testMode" = "decode" ]; then
700701 # For VP9, only run once (not per resolution, as we use a fixed 320p clip)
701702 if [ " $codec " = " vp9" ]; then
702703 total_tests=$(( total_tests + 1 ))
703- run_decode_test " $codec " " 320p" || true
704+ if [ " $vp9_decode_ready " -eq 1 ]; then
705+ run_decode_test " $codec " " 320p" || true
706+ else
707+ log_warn " Skipping VP9 decode test (clip not ready)"
708+ skip_count=$(( skip_count + 1 ))
709+ fi
704710 else
705711 for res in $resolutions ; do
706712 total_tests=$(( total_tests + 1 ))
@@ -743,18 +749,19 @@ log_info "Failed: $fail_count"
743749log_info " Skipped: $skip_count "
744750
745751# -------------------- Emit result --------------------
746- if [ " $pass_count " -gt 0 ] && [ " $fail_count " -eq 0 ]; then
752+ if [ " $fail_count " -eq 0 ] && [ " $pass_count " -gt 0 ]; then
747753 result=" PASS"
748- reason=" All tests passed ($pass_count /$actual_total )"
749- elif [ " $pass_count " -gt 0 ] && [ " $fail_count " -gt 0 ]; then
750- result=" FAIL"
751- reason=" Some tests failed (passed: $pass_count , failed: $fail_count , total: $actual_total )"
754+ if [ " $skip_count " -gt 0 ]; then
755+ reason=" No failures (passed: $pass_count , skipped: $skip_count , total: $actual_total )"
756+ else
757+ reason=" All tests passed ($pass_count /$actual_total )"
758+ fi
752759elif [ " $fail_count " -gt 0 ]; then
753760 result=" FAIL"
754- reason=" All tests failed ($ fail_count/ $actual_total )"
761+ reason=" Some tests failed (passed: $pass_count , failed: $ fail_count, skipped: $skip_count , total: $actual_total )"
755762else
756763 result=" SKIP"
757- reason=" No tests executed or all skipped "
764+ reason=" No tests passed (skipped: $skip_count , total: $actual_total ) "
758765fi
759766
760767case " $result " in
0 commit comments