rea/tests
Hemanth Rayudu 96fc84f1fb
fix(native): select one slice when universal Mach-O slices share a CPU type (#2040)
* fix(native): select one slice when universal Mach-O slices share a CPU type

On macOS 27 most system binaries are universal files whose slices share
CPU_TYPE_ARM64: arm64e + arm64e.x1 (Calculator, TextEdit), x86_64 + arm64e +
arm64e.x1 (/bin/ls), or arm64 + arm64e.x1 (ShortcutDroplet). Target admission
names slices by CPU family, so these targets have availableArchitectures
["arm64"] while the file holds two arm64 slices.

inspect_macho read that family count as a slice count and ran otool, nm,
dyld_info, dwarfdump and vtool without -arch. ShortcutDroplet failed with
"Malformed otool load-command output" (40 load commands against ncmds 20).
Calculator reported both slices' imports (4138 instead of 2069), nm's
"(for architecture ...)" header lines as exports, and no selected slice.
selectArchitecture now also filters when lipo lists more than one slice. Its
preference is unchanged: the family name, then arm64e, then the first
arm64e.<variant>.

inspect_native_dispatch_metadata matched FAT slices by CPU type only and
refused /bin/ls and TextEdit as "Ambiguous FAT architecture slice".
selectMachoSlice now ranks slices of the requested CPU type by base subtype in
the same order: arm64 (0, then 1) or x86_64 (3), then arm64e (2), then other
variants such as arm64e.x1 in FAT table order. It reports ambiguity only when
the top-ranked slices share a subtype.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(native): share Mach-O slice preference across inspections

* chore: preserve upstream process capture test during merge

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-10-13 16:36:23 +08:00
..
acceptance fix(setup): preserve current recovery snapshots and decoding failures 2026-10-13 14:51:55 +08:00
boundary fix(native): select one slice when universal Mach-O slices share a CPU type (#2040) 2026-10-13 16:36:23 +08:00
composition test(evm): verify static descriptor bindings before use (#2427) 2026-10-13 09:07:40 +08:00
conformance test(hopper): repair Linux demo setup and native verification (#2638) 2026-10-13 14:39:18 +08:00
evaluation fix(evaluation): share completed transcript facts across graders 2026-10-13 13:12:12 +08:00
fixtures fix(native): select one slice when universal Mach-O slices share a CPU type (#2040) 2026-10-13 16:36:23 +08:00
process-global fix(setup): preserve current recovery snapshots and decoding failures 2026-10-13 14:51:55 +08:00
support test(cli): preserve Windows runtime paths and failure diagnostics 2026-10-12 15:46:42 +08:00
ciTestSequencer.ts ci: balance test shards and reuse package download caches 2026-10-11 16:40:17 +08:00
processOwnershipRunner.ts test(process): retire native caches at worker teardown 2026-10-09 04:12:49 +08:00