public void FormatStacktraceWithoutDebugSymbolsTest() { string stackTraceStr = @" at RaygunXamarinTest.Net.HttpApiClient+<EnsureSuccessAsync>c__async7.MoveNext () <0xc2b59c + 0x00670> in <06b44c3216694065a06dc13af99a121f#a65e7e6904709cacfd8634d732fe31fb> --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) <0x47ec74 + 0x00118> in <15e850188d9f425bbeae90f0bbc51e17#a65e7e6904709cacfd8634d732fe31fb> at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) <0x47ebac + 0x000bf> in <15e850188d9f425bbeae90f0bbc51e17#a65e7e6904709cacfd8634d732fe31fb> at System.Runtime.CompilerServices.TaskAwaiter.GetResult () <0x47eb68 + 0x0001f> in <15e850188d9f425bbeae90f0bbc51e17#a65e7e6904709cacfd8634d732fe31fb> at RaygunXamarinTest.Net.HttpApiClient+<GetClientResponse>c__async6.MoveNext () <0xb89040 + 0x00407> in <06b44c3216694065a06dc13af99a121f#a65e7e6904709cacfd8634d732fe31fb> --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) <0x47ec74 + 0x00118> in <15e850188d9f425bbeae90f0bbc51e17#a65e7e6904709cacfd8634d732fe31fb> at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) <0x47ebac + 0x000bf> in <15e850188d9f425bbeae90f0bbc51e17#a65e7e6904709cacfd8634d732fe31fb> at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () <0x47ee98 + 0x0002f> in <15e850188d9f425bbeae90f0bbc51e17#a65e7e6904709cacfd8634d732fe31fb> at RaygunXamarinTest.Net.HttpApiClient+<PostJsonAsync>c__async2.MoveNext () <0xb88598 + 0x0019b> in <06b44c3216694065a06dc13af99a121f#a65e7e6904709cacfd8634d732fe31fb>"; MyTestException exception = new MyTestException("Exception test message", stackTraceStr); var message = RaygunErrorMessageBuilder.Build(exception); foreach (var line in message.StackTrace) { Console.WriteLine(line.ToString() + "\n"); } Assert.IsNotEmpty(message.ClassName); Assert.IsNotNull(message.StackTrace); Assert.IsNotEmpty(message.StackTrace); var lineOne = message.StackTrace.FirstOrDefault(); Assert.IsNotNullOrEmpty(lineOne.ClassName); Assert.IsNotNullOrEmpty(lineOne.MethodName); }
public void FormatStacktraceWithDebugSymbolsTest() { string stackTraceStr = @" at XamarinIOSSingleViewTest.AppDelegate+<Bar>d__8.MoveNext () [0x000ad] in C:\Dev\Tests\XamarinIOSTestApplication\XamarinIOSSingleViewTest\AppDelegate.cs:68 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Library/Frameworks/Xamarin.iOS.framework/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /Library/Frameworks/Xamarin.iOS.framework/system/runtime/compilerservices/TaskAwaiter.cs:187 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /Library/Frameworks/Xamarin.iOS.framework/system/runtime/compilerservices/TaskAwaiter.cs:156 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /Library/Frameworks/Xamarin.iOS.framework/system/runtime/compilerservices/TaskAwaiter.cs:128 at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/system/runtime/compilerservices/TaskAwaiter.cs:113 at XamarinIOSSingleViewTest.AppDelegate+<Foo>d__7.MoveNext () [0x000cf] in C:\Dev\Tests\XamarinIOSTestApplication\XamarinIOSSingleViewTest\AppDelegate.cs:58"; MyTestException exception = new MyTestException("Exception test message", stackTraceStr); var message = RaygunErrorMessageBuilder.Build(exception); foreach (var line in message.StackTrace) { Console.WriteLine(line.ToString() + "\n"); } Assert.IsNotEmpty(message.ClassName); Assert.IsNotNull(message.StackTrace); Assert.IsNotEmpty(message.StackTrace); var lineOne = message.StackTrace.FirstOrDefault(); Assert.IsNotNullOrEmpty(lineOne.ClassName); Assert.IsNotNullOrEmpty(lineOne.MethodName); }