diff --git a/Tests/Tests.cs b/Tests/Tests.cs index 5a989db..2d534e6 100644 --- a/Tests/Tests.cs +++ b/Tests/Tests.cs @@ -669,6 +669,28 @@ 01 KERNELBASE!WaitForSingleObjectEx+147 } } + [Fact] + [Trait("Category", "Unit")] + public void E2ESymSrvXMLFramesModuleFileExtensionMissing() { + using (var csr = new StackResolver()) { + var pdbPath = @"srv*https://msdl.microsoft.com/download/symbols"; + var input = "Frame = \r\n" + +"Frame = \n" + +"Frame = \r\n" + +"\r\n" + +"Frame = \n"; + + var ret = csr.ResolveCallstacks(input, pdbPath, false, null, false, false, true, false, true, false, false, null); + var expected = @"00 ntdll!NtWaitForSingleObject+20 +01 KERNELBASE!WaitForSingleObjectEx+147 +02 sqldk!MemoryClerkInternal::AllocatePagesWithFailureMode+644 +03 VCRUNTIME140!__C_specific_handler+160 (d:\agent\_work\2\s\src\vctools\crt\vcruntime\src\eh\riscchandler.cpp:290) +04 sqldk!Spinlock<244,2,1>::SpinToAcquireWithExponentialBackoff+349"; + Assert.Equal(expected.Trim(), ret.Trim()); + } + } + /// End-to-end test with stacks being resolved based on symbols from symsrv, with a frame that needs "calculated base address" handling [Fact][Trait("Category", "Unit")] public void E2ESymSrvXMLFramesWithCalcBaseAddress() {