Repository navigation
test(android,linux,apple): flake, dead-assertion, and fixture fixes from CRAP reviews - #3462
Conversation
Size Report
Startup median (7 runs, lower is better):
|
There was a problem hiding this comment.
All reported issues were addressed across 8 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
…nary fixtures from CRAP follow-up tests - emulator-lifecycle: run the boot-timeout test on fake timers so the 80ms poll / 150ms deadline geometry cannot drift with host scheduling, and drop the notEqual(BOOT_COMMAND_FAILED) assertion that the reason equality already subsumes. - linux snapshot: give the degenerate-rect tie a negative control one pixel out, and pin the missing-depth default in both sort directions so only exactly 0 keeps the observed winner in both fixtures. - physical-device-files: pin details.step on the spent-deadline failure. - install-artifact: build the multi-payload IPA through host-kit's writeZipFixture instead of shelling out to the host zip binary. - host-provider: answer the mocked hostFileStat with real fs.Stats of backing tmp paths, make the user Applications root a real directory, and declare missing roots explicitly instead of an implicit ENOENT. - runner-xctestrun-products: seed a bundle only the surviving record target names so a target only needing to be a record is observable.
Move the archive fixture module from src/internal/ to src/archive.fixtures.ts and export it as ./archive-fixtures (audio-probe-fixtures precedent) so platform-apple's IPA fixture can write real stored-zip archives through host-kit's writeZipFixture instead of the host zip binary. Replace the host-zip encrypted-entry helper with a fixture-written encrypted flag, and record the subpath in the R11 export-surface list.
f11e692 to
fe44548
Compare
thymikee
left a comment
There was a problem hiding this comment.
Thanks — both findings fixed in fe44548: the depth test now pins the default from both sort directions (depth ?? -1 and depth ?? 1 each fail one fixture), and the fixture module moved to src/archive.fixtures.ts with its encrypted-entry helper writing the flag through writeZipFixture — no host zip left in the exposed module.
|
The PR is ready at fe44548. The changes are test files, a fixture move, and one package.json export, and the layering test enumerates the new export. All 19 checks pass, and I know of no conflicts. I read the code and traced the changes by hand. I did not run the tests or the claimed mutations. I also did not check the encrypted-fixture shape beyond the extractor's own entry checks. Not blocking, take or leave: |
|
Summary
Area 2 of #3461 (follow-ups to the #3433/#3434/#3435 reviews). Tests only; the one non-test change is a test-only export subpath (
./archive-fixtures,audio-probe-fixturesprecedent + R11 entry) reaching host-kit's zip fixture writer.emulator-lifecycle.test.ts): the 80 ms/150 ms/exactly-2-calls geometry raced host scheduling; now onvi.useFakeTimers(). Mutation: dropping theBOOT_COMMAND_FAILED→ANDROID_BOOT_TIMEOUTnormalization fails it.notEqual(BOOT_COMMAND_FAILED), subsumed by the reason equality. Kept "keeps original details" — deleting the details spread inbuildAndroidBootFailureDetailsfails it, so the override is load-bearing.snapshot.test.ts): the degenerate-rect tie gained an out-of-bounds probe (widening the inclusive bound fails it); the missing-depth test pins the default in both sort directions (mutationsdepth ?? -1/?? 1each fail one fixture).install-artifact.test.ts): the IPA is written withwriteZipFixture; no hostzipshell-out. The fixture moved tosrc/archive.fixtures.ts, and its encrypted-entry helper writes the flag through the same writer.physical-device-files.test.ts): asserts typeddetails.step/timeoutMs.host-provider.test.ts): no cast partialfs.Stats; the mocked stat answers with realfs.Statsof backing tmp paths, the userApplicationsroot is a real tmp dir, absent roots are declared.isRecordfilter fails it alone.Part of #3461, part of #3414
Validation
fe44548d8.pnpm check:affected --run: passed under the machine lock.check:layering,check:fallow,typecheck,lint,format:checkpass.