Skip to content

Commit

Permalink
Add test cases for classic binding / lazy binding symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
p-x9 committed Mar 4, 2025
1 parent 4b4d0ed commit 5ea31d9
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
32 changes: 32 additions & 0 deletions Tests/MachOKitTests/MachOFilePrintTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,38 @@ final class MachOFilePrintTests: XCTestCase {
}
}

func testClassicBindingSymbols() throws {
guard let bindingSymbols = machO.classicBindingSymbols else {
return
}
let symbols = machO.symbols

for bindingSymbol in bindingSymbols {
print("--")
let symbol = symbols[AnyIndex(bindingSymbol.symbolIndex)]
print("Address:", "0x" + String(bindingSymbol.address, radix: 16))
print("Type:", bindingSymbol.type)
print("Name:", symbol.name)
print("Addend:", "0x" + String(bindingSymbol.addend, radix: 16))
}
}

func testClassicLazyBindingSymbols() throws {
guard let bindingSymbols = machO.classicLazyBindingSymbols else {
return
}
let symbols = machO.symbols

for bindingSymbol in bindingSymbols {
print("--")
let symbol = symbols[AnyIndex(bindingSymbol.symbolIndex)]
print("Address:", "0x" + String(bindingSymbol.address, radix: 16))
print("Type:", bindingSymbol.type)
print("Name:", symbol.name)
print("Addend:", "0x" + String(bindingSymbol.addend, radix: 16))
}
}

func testDependencies() throws {
for dependency in machO.dependencies {
let dylib = dependency.dylib
Expand Down
32 changes: 32 additions & 0 deletions Tests/MachOKitTests/MachOPrintTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,38 @@ final class MachOPrintTests: XCTestCase {
}
}

func testClassicBindingSymbols() throws {
guard let bindingSymbols = machO.classicBindingSymbols else {
return
}
let symbols = machO.symbols

for bindingSymbol in bindingSymbols {
print("--")
let symbol = symbols[AnyIndex(bindingSymbol.symbolIndex)]
print("Address:", "0x" + String(bindingSymbol.address, radix: 16))
print("Type:", bindingSymbol.type)
print("Name:", symbol.name)
print("Addend:", "0x" + String(bindingSymbol.addend, radix: 16))
}
}

func testClassicLazyBindingSymbols() throws {
guard let bindingSymbols = machO.classicLazyBindingSymbols else {
return
}
let symbols = machO.symbols

for bindingSymbol in bindingSymbols {
print("--")
let symbol = symbols[AnyIndex(bindingSymbol.symbolIndex)]
print("Address:", "0x" + String(bindingSymbol.address, radix: 16))
print("Type:", bindingSymbol.type)
print("Name:", symbol.name)
print("Addend:", "0x" + String(bindingSymbol.addend, radix: 16))
}
}

func testDependencies() throws {
for dependency in machO.dependencies {
let dylib = dependency.dylib
Expand Down

0 comments on commit 5ea31d9

Please sign in to comment.