mirror of
https://github.com/radareorg/r2flutter.git
synced 2026-11-07 06:26:00 -10:00
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:
1 parent
1f36c65729
commit
75ad39a7cb
2 files changed
+26
-5
No files matched your search
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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)"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user