@@ -21,7 +21,10 @@ BENCH="$REPO/bench/$BENCH"
2121# 1. Availability listing must classify mcpp itself as present. If this fails the
2222# probe path is broken, and every later cell would be reported `unavailable`
2323# for the wrong reason.
24- out=$( " $BENCH " --list)
24+ # Engines are named by BINARY, not by PATH lookup: `$MCPP` is the build under
25+ # test, while a bare `mcpp` resolves to whatever the sandbox has — on CI that is
26+ # an xlings shim reporting "'mcpp' is not installed", which failed every cell.
27+ out=$( " $BENCH " --list --engines " mcpp=$MCPP " )
2528# The label carries the version it discovered ("mcpp@2026.8.12.1"), which is what
2629# makes a two-binary comparison legible; match the prefix, not the whole token.
2730echo " $out " | grep -qE ' ^mcpp(@[^ ]+)? +yes' || { echo " mcpp not reported available:" ; echo " $out " ; exit 1; }
@@ -39,7 +42,7 @@ dump_child_logs() {
3942 done
4043}
4144
42- " $BENCH " --engines mcpp --variants modules --scenarios cold,noop \
45+ " $BENCH " --engines " mcpp= $MCPP " --variants modules --scenarios cold,noop \
4346 --units 4 --fanin 2 --weight 2 --runs 1 \
4447 --work " $TMP /work" --out " $TMP /report.json" > " $TMP /stdout.txt" \
4548 || { echo " harness exited non-zero" ; dump_child_logs; exit 1; }
8083# 6. The three fixture variants must all generate and differ in SHAPE, not just
8184# in file names: modules-impl is the variant whose whole point is that bodies
8285# live outside the interface unit.
83- " $BENCH " --engines mcpp --variants headers,modules,modules-impl --scenarios noop \
86+ " $BENCH " --engines " mcpp= $MCPP " --variants headers,modules,modules-impl --scenarios noop \
8487 --units 3 --fanin 1 --weight 1 --runs 1 \
8588 --work " $TMP /w2" --out " $TMP /r2.json" > /dev/null
8689# Directory names are slugged from the engine label, which carries a version, so
0 commit comments