From d4ec5d70b80a6fba9c5faa09e3b252c9107e6b6e Mon Sep 17 00:00:00 2001 From: Arvind Shyamsundar Date: Fri, 8 Apr 2022 12:47:38 -0700 Subject: [PATCH] Add test case where module file extension is missing --- Tests/Tests.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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() {