Skip to content

Commit 18f9add

Browse files
committed
test: prepare matched AVF decoder proof and targeted diagnostics
1 parent fbaf147 commit 18f9add

3 files changed

Lines changed: 87 additions & 688 deletions

File tree

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: AVF decoder r3 diagnostics
2+
on:
3+
push:
4+
branches: [ci/fixproof-avf-decoder-r3]
5+
paths: [.github/workflows/avf-decoder-r3.yml]
6+
workflow_dispatch:
7+
permissions:
8+
contents: read
9+
jobs:
10+
probe:
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
variant: [control, candidate]
15+
platform: [linux, windows]
16+
include:
17+
- platform: linux
18+
runner: blacksmith-8vcpu-ubuntu-2404
19+
target: x86_64-unknown-linux-gnu
20+
- platform: windows
21+
runner: blacksmith-8vcpu-windows-2025
22+
target: x86_64-pc-windows-msvc
23+
runs-on: ${{ matrix.runner }}
24+
timeout-minutes: 60
25+
env:
26+
CARGO_INCREMENTAL: '0'
27+
CAP_VERIFY_HOST: blacksmith
28+
CAP_VERIFY_TIER: full
29+
CAP_VERIFY_REQUIRE_SUPPORTED: '1'
30+
steps:
31+
- uses: actions/checkout@v4
32+
with:
33+
ref: ${{ matrix.variant == 'control' && '4b2e72bbf86226d406ae4d1b9c46c2b988729cf2' || github.sha }}
34+
persist-credentials: false
35+
- uses: ./.github/actions/engine-verify-setup
36+
with:
37+
target: ${{ matrix.target }}
38+
tier: full
39+
- name: Provenance
40+
shell: bash
41+
run: |
42+
mkdir -p "$RUNNER_TEMP/avf-r3"
43+
git rev-parse HEAD > "$RUNNER_TEMP/avf-r3/head.txt"
44+
- name: Decoder model
45+
if: matrix.platform == 'linux'
46+
shell: bash
47+
env:
48+
CAP_VERIFY_CARGO_PROFILE: ci-verify
49+
CAP_VERIFY_NEXTEST_PROFILE: ci
50+
CAP_VERIFY_LOCKED: '1'
51+
CAP_VERIFY_REPORT_DIR: ${{ runner.temp }}/avf-r3/model
52+
run: scripts/verify/run.sh full --suites decoder-model-ffmpeg > "$RUNNER_TEMP/avf-r3/model.log" 2>&1
53+
- name: Build playback
54+
if: matrix.platform == 'windows'
55+
shell: bash
56+
run: |
57+
cargo test --locked --profile ci-verify -p cap-verify --test playback --no-run --message-format=json > "$RUNNER_TEMP/avf-r3/build.jsonl" 2> "$RUNNER_TEMP/avf-r3/build.log"
58+
python -c 'import json,sys; rows=[json.loads(line) for line in open(sys.argv[1])]; paths=[r["executable"] for r in rows if r.get("reason")=="compiler-artifact" and r.get("executable") and r["target"]["name"]=="playback"]; assert len(paths)==1, paths; print(paths[0])' "$RUNNER_TEMP/avf-r3/build.jsonl" > "$RUNNER_TEMP/avf-r3/binary.txt"
59+
- name: Five playback repeats
60+
if: matrix.platform == 'windows'
61+
shell: bash
62+
env:
63+
CAP_VERIFY_CASE: playback/basic/full/realtime30-from0/ffmpeg
64+
run: |
65+
binary="$(cat "$RUNNER_TEMP/avf-r3/binary.txt")"
66+
result=0
67+
cd crates/verify
68+
for round in 1 2 3 4 5; do
69+
export CAP_VERIFY_REPORT_DIR="$RUNNER_TEMP/avf-r3/repeat-$round"
70+
mkdir -p "$CAP_VERIFY_REPORT_DIR"
71+
"$binary" --test-threads=1 --nocapture > "$CAP_VERIFY_REPORT_DIR/test.log" 2>&1 || result=1
72+
done
73+
exit "$result"
74+
- uses: actions/upload-artifact@v4
75+
if: always()
76+
with:
77+
name: avf-r3-${{ matrix.platform }}-${{ matrix.variant }}
78+
path: ${{ runner.temp }}/avf-r3
79+
retention-days: 14

0 commit comments

Comments
 (0)