Repository navigation
Conversation
`emulator -list-avds` can print its crashdata INFO banner on stdout with exit code 0. The inventory treated every non-empty stdout line as an AVD, so a machine with zero AVDs listed a phantom emulator named after the banner. Accept only lines matching avdmanager's AVD-name grammar. Fixes callstack#3716
|
The PR is ready at b0277a7. The parser change looks right, and the new tests feed the real emulator banner through the inventory boundary. Not blocking: there is no direct parser-level case for the name shape rule in CI is red, but the failures look unrelated. Typecheck fails at I did not run the new tests or the gates, and I did not run a live emulator. I also did not check the AVD name character set against avdmanager source, so that rule rests on the PR's claim. A hand-edited AVD ini with a space in its name would now be hidden, which seems unlikely. Please rebase onto main so the #3740 fix lands, then rerun CI. That is the only step left before merge. |
|
Thanks! I took the parser note: 39478b4 adds a Instead of rebasing, I merged main in (dce0b7a), which brings in #3740 without a force-push. |
|
The code looks good at dce0b7a. The earlier review at b0277a7 was also clean, and nothing new needs fixing. All 11 checks pass. The diff only touches Android inventory parsing and its tests, and there are no conflicts. I did not run the tests locally or run an emulator. The change filters stdout in |
Summary
agent-device deviceslisted a phantom stopped emulator whose id and name were the emulator's crashdata banner (INFO | Storing crashdata in: …).emulator -list-avdsprints that line on stdout with exit 0, andparseAndroidAvdListaccepted every non-empty line.The parser now keeps only lines made of the characters avdmanager allows in AVD names (
A-Z a-z 0-9 . _ -). That rejects emulator logging without matching its text. 2 files changed. Fixes #3716.Validation
Base
0149438fa, headb0277a7. Newinventory.test.tscases feed the real banner alone, and beside AVD names with CRLF line endings. Both fail on base with the banner listed as a device, and pass at head.pnpm check:affected --run --head b0277a7(exactCommit: true): format and lint passed. Typecheck failed attest/integration/command-coverage/declarations.ts:558(linux.gap). That failure is inherited from main and fixed by #3740. Because the runner stops there, I ran the remaining stages separately on the same diff. Layering, fallow, build and provider-integration passed. Unit passed, including everyplatform-androidtest. The only unit failures were unrelated: a parallel-load timeout that passes alone, path-with-space failures in fuzz/webdriver tests that pass from a path without a space, and smoke hitting the samelinux.gaperror.scripts/__tests__/eager-closure-budgets.test.tspassed.No live device run: this is a host-side stdout parser, and the evidence is unit tests on the real banner at the discovery boundary. Coverage and integration are left to CI.