build: the ADM test is built here but runs where audio exists #61
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "adm/move-out-of-compile-lane"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The lane is green again, verified by what executed
chromeless-build-admon54e33e1— Complete, STEP 7 OK, STEP 8 packaged.Read from the persisted build log rather than trusting the job's exit status
(the recurring lesson from #60):
6 invoked, 6 green, 1 skipped by name with its reason in the log. All 8
declared test targets still compile and link here — including the skipped one,
which is the part worth keeping: compiling it is what found the abstract
CbAudioTestRecorderand the missing link-timewebrtc_overridesdeps.build_targets_lintstill counts adm as covered, correctly — it genuinely isbuilt.
What this does not claim
The ADM test is still RED wherever it runs. It is a deliberate RED-first test
and stays that way until the M5.5 audio work lands. This change moves it to a
place where its verdict can mean something, and stops it holding the compile
lane hostage in the meantime.
STEP 7 gains CHROMELESS_TESTS_SKIP_RUN — an opt-in, per-lane list of test binaries that a lane BUILDS but does not EXECUTE — and the t7 lane uses it for cloud_browser_adm_unittests. Why that test specifically. It drives the real libwebrtc Pulse backend, so it needs a live audio server with an actual capture source. This is a compile pod. Even with pulseaudio installed and running (which the previous commit did), there is no sound card and no monitor source, so InitRecording() returns -1 and the test is RED for a reason that says nothing about the code. It is an integration test wearing a unit test's clothes; the runtime image already runs pulseaudio under supervisord, and that is where its verdict can mean something. It is still BUILT here, deliberately. Compiling it is what found two real defects earlier today — CbAudioTestRecorder was abstract, and the test passthrough was missing link-time webrtc_overrides deps — and the ~10-week gap this whole mechanism came out of was "declared but never COMPILED". Skipping the run gives up nothing that compiling it buys. The obvious risk is recreating the silent-skip class STEP 7 was rewritten to close. Three guards, all tested against a harness with fake binaries rather than reasoned about: 1. opt-IN per lane, never a default (T1: no skip -> all run) 2. every skip logged BY NAME with its reason, at the same volume as a failure — a skip you cannot see is a lie (T2: skip logged, others run) 3. a name in the list that is not in this lane's target list is a HARD ERROR, so a stale entry cannot survive a rename and quietly stop running something (T3: rc=1) and the ordering matters: the is-it-executable check runs BEFORE the skip check, so a skipped binary that failed to LINK is still a build failure (T4: rc=1). Skipping the run must never soften "it did not build". After this the lane can go green again while still compiling all 8 declared test targets, and build_targets_lint still counts adm as covered — because it genuinely is. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>