sentry-dotnet icon indicating copy to clipboard operation
sentry-dotnet copied to clipboard

Native AOT stack trace integration test

Open vaind opened this issue 1 year ago • 5 comments

We can't unit test Native AOT implementation of DebugStackTrace (there's no xUnit runner to support AOT so no way to test this in unit tests. There's a tracking issue: https://github.com/dotnet/runtime/issues/91069). Instead, we need to have an integration test that captures app requests.

Possible solutions

  • use something like the Sentry CLI integration test pwsh script and mock the sentry server
  • use something like the SingleFileTestApp and run through unit tests: https://github.com/getsentry/sentry-dotnet/blob/feat/4.0.0/test/Sentry.Tests/Internals/ILSpy/SingleFileAppTests.cs

More context: https://github.com/getsentry/sentry-dotnet/pull/2732#discussion_r1371006441

TODO items have been left as markers in DebugStackTraceTests.verify, to indicate the test cases that we should try to cover. For example:

// TODO: Create integration test to test this behaviour when publishing AOT apps
// See https://github.com/getsentry/sentry-dotnet/issues/2772
    [Fact]
    public void CreateSentryStackFrame_AppNamespace_InAppFrame()
    {
        var frame = new StackFrame();
        var sut = _fixture.GetSut();

        var actual = sut.CreateFrame(new RealStackFrame(frame));

        Assert.True(actual?.InApp);
    }

vaind avatar Oct 31 '23 12:10 vaind