diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b29ced59..cd80dd2f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ ### Features -- Strip zeroes for ill2cpp builds(#108) +- Strip zeroes for ill2cpp builds (#108) +- Proper sdk name reporting for sentry event (#111) ## 0.0.6 diff --git a/src/Sentry.Unity/UnityEventProcessor.cs b/src/Sentry.Unity/UnityEventProcessor.cs index 583783eb2..c46576c6e 100644 --- a/src/Sentry.Unity/UnityEventProcessor.cs +++ b/src/Sentry.Unity/UnityEventProcessor.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Reflection; using Sentry.Extensibility; using Sentry.Protocol; using UnityEngine; @@ -8,21 +9,22 @@ namespace Sentry.Unity { + internal static class UnitySdkInfo + { + public static string Version { get; } = typeof(UnitySdkInfo).Assembly.GetName().Version.ToString(); + + + public const string Name = "sentry.dotnet.unity"; + public const string PackageName = "upm:sentry.unity"; + } + internal class UnityEventProcessor : ISentryEventProcessor { - public SentryEvent? Process(SentryEvent @event) + public SentryEvent Process(SentryEvent @event) { - if (@event is null) - { - return null; - } - // Add some Unity specific context: - - var version = "0.0.1-alpha"; - // TODO Sdk shouldn't be marked as nullable - @event.Sdk!.AddPackage("github:sentry.unity", version); - @event.Sdk.Name = "sentry.unity"; - @event.Sdk.Version = version; + @event.Sdk.AddPackage(UnitySdkInfo.PackageName, UnitySdkInfo.Version); + @event.Sdk.Name = UnitySdkInfo.Name; + @event.Sdk.Version = UnitySdkInfo.Version; @event.Contexts.OperatingSystem.Name = SystemInfo.operatingSystem; diff --git a/src/test/Sentry.Unity.Tests/PlayModeTests.cs b/src/test/Sentry.Unity.Tests/PlayModeTests.cs index c0244db1f..51392dba3 100644 --- a/src/test/Sentry.Unity.Tests/PlayModeTests.cs +++ b/src/test/Sentry.Unity.Tests/PlayModeTests.cs @@ -123,6 +123,28 @@ public IEnumerator UnityEventExceptionProcessor_ILL2CPPStackTraceFilenameWithZer Assert.AreEqual(string.Empty, sentryExceptionFirstFrame.FileName); } + [UnityTest] + public IEnumerator UnityEventProcessor_SdkInfo_Correct() + { + yield return SetupSceneCoroutine("BugFarmScene"); + + // arrange + var unityEventProcessor = new UnityEventProcessor(); + var sentryEvent = new SentryEvent(); + + // act + unityEventProcessor.Process(sentryEvent); + + // assert + Assert.AreEqual(UnitySdkInfo.Name, sentryEvent.Sdk.Name); + Assert.AreEqual(UnitySdkInfo.Version, sentryEvent.Sdk.Version); + + var package = sentryEvent.Sdk.Packages.FirstOrDefault(); + Assert.IsNotNull(package); + Assert.AreEqual(UnitySdkInfo.PackageName, package!.Name); + Assert.AreEqual(UnitySdkInfo.Version, package!.Version); + } + private static IEnumerator SetupSceneCoroutine(string sceneName) { // load scene with initialized Sentry, SceneManager.LoadSceneAsync(sceneName);