Files
RedBear-OS/local/recipes/dev/libclc/source/llvm/test/DebugInfo/dwarfdump-accel.test
T
vasilito cb424d7448 build: static patch-sanity linter (shift-left the malformed-patch class)
verify-patch-sanity.py validates every active recipe .patch has internally-
consistent hunk line counts — catching the 'malformed patch at line N' failure
at commit/CI/preflight time instead of hours into a cook. This cycle hit that
class three times (qtwaylandscanner, sddm, xwayland), each only discovered when
cookbook tried to apply the patch.

Running it across the repo found 29 latent malformed patches (validated against
GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22').
They were harmless only because they sit in vendored recipes (baked, not re-
applied) — but would fail on any version-bump re-derivation. --fix recounts the
hunk headers (body untouched) and repaired all 29.

Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test
(test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats
(empty placeholders, bare-@@ git hunks).
2026-08-01 05:13:02 +03:00

78 lines
2.4 KiB
Plaintext

RUN: llvm-dwarfdump -v %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s
RUN: not llvm-dwarfdump -error-display=details -verify %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s --check-prefix=VERIFY
Gather some DIE indexes to verify the accelerator table contents.
CHECK: .debug_info contents
CHECK: [[TESTINTERFACE:0x[0-9a-f]*]]:{{.*}}DW_TAG_structure_type
CHECK-NOT: DW_TAG
CHECK: DW_AT_name{{.*}}"TestInterface"
CHECK: [[READONLY:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram
CHECK-NOT: DW_TAG
CHECK: DW_AT_name{{.*}}"-[TestInterface ReadOnly]"
CHECK: [[ASSIGN:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram
CHECK-NOT: DW_TAG
CHECK: DW_AT_name{{.*}}"-[TestInterface Assign]"
CHECK: [[SETASSIGN:0x[0-9a-f]*]]:{{.*}}DW_TAG_subprogram
CHECK-NOT: DW_TAG
CHECK: DW_AT_name{{.*}}"-[TestInterface setAssign:]"
Check that the section header is printed correclty.
CHECK: .apple_names contents:
CHECK: Magic: 0x48415348
CHECK: Version: 0x1
CHECK: Hash function: 0x0
CHECK: Bucket count: 21
CHECK: Hashes count: 42
CHECK: HeaderData length: 12
CHECK: DIE offset base: 0
CHECK: Number of atoms: 1
CHECK: Atom 0 {
CHECK-NEXT: Type: DW_ATOM_die_offset
CHECK-NEXT: Form: DW_FORM_data4
Check that the accelerators point to the right DIEs.
CHECK: String:{{.*}}"-[TestInterface ReadOnly]"
CHECK-NOT: String
CHECK: Atom[0]: [[READONLY]]
Check that empty buckets are handled correctly.
CHECK: Bucket 3
CHECK: EMPTY
CHECK: Bucket 4
Check that the accelerators point to the right DIEs.
CHECK: String:{{.*}}"-[TestInterface Assign]"
CHECK-NOT: String
CHECK: Atom[0]: [[ASSIGN]]
CHECK: String:{{.*}}"-[TestInterface setAssign:]"
CHECK-NOT: String
CHECK: Atom[0]: [[SETASSIGN]]
Check that types are referenced correctly.
CHECK: .apple_types contents:
CHECK: String:{{.*}}"TestInterface"
CHECK-NOT: String
CHECK: Atom[0]: [[TESTINTERFACE]]
Check that an empty accelerator section is handled correctly.
CHECK: .apple_namespaces contents:
CHECK-NOT: Magic
Check ObjC specific accelerators.
CHECK: .apple_objc contents:
CHECK: String{{.*}}"TestInterface"
CHECK-NOT: String
CHECK: Atom[0]: [[READONLY]]
CHECK: Atom[0]: [[ASSIGN]]
CHECK: Atom[0]: [[SETASSIGN]]
Verify the debug info in the apple_names accelerator table.
VERIFY: Verifying .apple_names...
VERIFY-NEXT: Verifying .apple_types...
VERIFY-NEXT: Verifying .apple_namespaces...
VERIFY-NEXT: error: Section too small: cannot read buckets and hashes.
VERIFY-NEXT: Verifying .apple_objc...
VERIFY-NEXT: Errors detected.