Skip to content

Commit 4301125

Browse files
Add unit test for DWARF2
Add ReadDwarf_version2_should_be_successfull test for reading DWARF2 file. Add OpenAndLoadElf to open ELF file from absolute path. Add test file TestDwarf2.elf.
1 parent a31108c commit 4301125

4 files changed

Lines changed: 28 additions & 1 deletion

File tree

src/LibObjectFile.Tests/Dwarf/DwarfTests.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,21 @@ namespace LibObjectFile.Tests.Dwarf;
1414
[TestClass]
1515
public class DwarfTests : ElfTestBase
1616
{
17+
[TestMethod]
18+
public void ReadDwarf_version2_should_be_successfull()
19+
{
20+
const string ResourceName = @".\TestFiles\TestDwarf2.elf";
21+
22+
ElfFile elf = OpenAndLoadElf(ResourceName);
23+
var elfContext = new DwarfElfContext(elf);
24+
var inputContext = new DwarfReaderContext(elfContext);
25+
inputContext.DebugLinePrinter = Console.Out;
26+
var dwarf = DwarfFile.Read(inputContext);
27+
28+
Assert.IsNotNull(dwarf);
29+
}
30+
31+
1732
[DataTestMethod]
1833
[DataRow(0UL)]
1934
[DataRow(1UL)]
@@ -301,7 +316,7 @@ public void TestDebugInfoSmall()
301316
DebugAbbrevStream = new MemoryStream(),
302317
DebugLineStream = new MemoryStream(),
303318
DebugInfoStream = new MemoryStream(),
304-
DebugStringStream = new MemoryStream(),
319+
DebugStringStream = new MemoryStream(),
305320
DebugAddressRangeStream = new MemoryStream()
306321
};
307322
dwarf.Write(outputContext);

src/LibObjectFile.Tests/Elf/ElfTestBase.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ protected async Task LoadAndVerifyElf(string name)
7171
ByteArrayAssert.AreEqual(originalBinary, newBinary, "Invalid binary diff between write -> read -> write");
7272
}
7373

74+
protected ElfFile OpenAndLoadElf(string absolutePath)
75+
{
76+
using var stream = File.OpenRead(absolutePath);
77+
return ElfFile.Read(stream);
78+
}
79+
7480
protected ElfFile LoadElf(string name)
7581
{
7682
var file = GetFile(name);

src/LibObjectFile.Tests/LibObjectFile.Tests.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,10 @@
101101
<Folder Include="Verified\" />
102102
</ItemGroup>
103103

104+
<ItemGroup>
105+
<None Update="D:\ALAIN\GitHub\LibObjectFile\src\LibObjectFile.Tests\TestFiles\TestDwarf2.elf">
106+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
107+
</None>
108+
</ItemGroup>
109+
104110
</Project>
56.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)