Add macOS cws=8 class-extraction regression test

The cws=8 class/field extraction (f85bd3b) enabled the macOS OBJECT_HEADER
path but only iOS Runner goldens covered it. dump-classes-macos asserts
real class/field recovery on hello.aot (_Closure size=64, _Uri size=96,
field offsets) and, negatively, that the old size=0 fallback garbage is
gone. Verified as a real anchor: reverting the cws==8 gate fails all six
of its assertions.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
pancakeandClaude Fable 5 committed 2026-08-14 18:25:01 +02:00
1 parent 1f36c65729
commit 75ad39a7cb
2 files changed
+26 -5

No files matched your search

+8 -5
View File
@@ -113,14 +113,17 @@ real-binary coverage (`xrefs-android`/`-ios`). Remaining gaps:
- a **Dart 3.4/3.5-era compressed-pointer** app (P0.1 is fixed but still has no
end-to-end regression test; it was verified only by resolving `rules[]` against
each layout in isolation);
- cws=8 class/field extraction now has positive tests (`classes-ios`,
`types-ios` on Runner); a `hello.aot -c` custom golden would broaden it to the
macOS/OBJECT_HEADER path;
- cws=8 class/field extraction is now covered on both paths: iOS (`classes-ios`,
`types-ios` on Runner) and macOS/standalone (`dump-classes-macos` on
`hello.aot`, added alongside this note). The macOS golden is a real regression
anchor — reverting the `cws==8` gate fails all six of its assertions;
- more **iOS** binaries generally, ideally real obfuscated/stripped release
`App`s (also broadens the `0716a95` structural path, per `COMMIT2.md`);
- a **32-bit ARM** app if one can be found (validates P1.2).
Buildable locally with the installed Dart SDK for the standalone cases; Flutter
app samples need collecting.
The remaining gaps (3.4/3.5-era compressed, obfuscated iOS, 32-bit) all need
apps **collected externally** — the installed Dart SDK is 3.12.2, so a locally
built AOT would exercise the modern decoder but *not* the old CID layout P0.1
corrected, which is the one that still lacks an end-to-end test.
---
+18
View File
@@ -0,0 +1,18 @@
{
"name": "dump-classes-macos",
"cwd": "test",
"cmd": ["../bin/r2flutter", "-c", "bins/macos/hello/hello.aot"],
"timeout": 30,
"expect": {
"contains": [
"class _Closure@0150898 (size=64)",
"+0x428 dynamic _context@0150898",
"class _Uri@0150898 (size=96)",
"+0x0 dynamic _portMap@1026248 static final"
],
"not_contains": [
"class _Uint16List (size=0)",
"class FutureOr (size=0)"
]
}
}