From 122be7a65a654d8a352d48fc95750c67cbf02ad1 Mon Sep 17 00:00:00 2001 From: Andrew McKnight Date: Sat, 11 May 2024 21:36:11 -0400 Subject: [PATCH] add data category for profile chunk --- Sources/Sentry/SentryDataCategoryMapper.m | 9 +++++++++ .../Sentry/include/HybridPublic/SentryEnvelopeItemType.h | 2 ++ Sources/Sentry/include/SentryDataCategory.h | 3 ++- Sources/Sentry/include/SentryDataCategoryMapper.h | 1 + .../Networking/SentryDataCategoryMapperTests.swift | 8 ++++++-- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Sources/Sentry/SentryDataCategoryMapper.m b/Sources/Sentry/SentryDataCategoryMapper.m index 33664570c2..0749c13762 100644 --- a/Sources/Sentry/SentryDataCategoryMapper.m +++ b/Sources/Sentry/SentryDataCategoryMapper.m @@ -11,6 +11,7 @@ NSString *const kSentryDataCategoryNameAttachment = @"attachment"; NSString *const kSentryDataCategoryNameUserFeedback = @"user_report"; NSString *const kSentryDataCategoryNameProfile = @"profile"; +NSString *const kSentryDataCategoryNameProfileChunk = @"profile_chunk"; NSString *const kSentryDataCategoryNameReplay = @"replay"; NSString *const kSentryDataCategoryNameMetricBucket = @"metric_bucket"; NSString *const kSentryDataCategoryNameUnknown = @"unknown"; @@ -35,6 +36,9 @@ if ([itemType isEqualToString:SentryEnvelopeItemTypeProfile]) { return kSentryDataCategoryProfile; } + if ([itemType isEqualToString:SentryEnvelopeItemTypeProfileChunk]) { + return kSentryDataCategoryProfileChunk; + } if ([itemType isEqualToString:SentryEnvelopeItemTypeReplayVideo]) { return kSentryDataCategoryReplay; } @@ -83,6 +87,9 @@ if ([value isEqualToString:kSentryDataCategoryNameProfile]) { return kSentryDataCategoryProfile; } + if ([value isEqualToString:kSentryDataCategoryNameProfileChunk]) { + return kSentryDataCategoryProfileChunk; + } if ([value isEqualToString:kSentryDataCategoryNameReplay]) { return kSentryDataCategoryReplay; } @@ -117,6 +124,8 @@ return kSentryDataCategoryNameUserFeedback; case kSentryDataCategoryProfile: return kSentryDataCategoryNameProfile; + case kSentryDataCategoryProfileChunk: + return kSentryDataCategoryNameProfileChunk; case kSentryDataCategoryMetricBucket: return kSentryDataCategoryNameMetricBucket; case kSentryDataCategoryUnknown: diff --git a/Sources/Sentry/include/HybridPublic/SentryEnvelopeItemType.h b/Sources/Sentry/include/HybridPublic/SentryEnvelopeItemType.h index e2caba3e9e..811c441c89 100644 --- a/Sources/Sentry/include/HybridPublic/SentryEnvelopeItemType.h +++ b/Sources/Sentry/include/HybridPublic/SentryEnvelopeItemType.h @@ -1,3 +1,5 @@ +// each item type must have a data category name mapped to it; see SentryDataCategoryMapper + static NSString *const SentryEnvelopeItemTypeEvent = @"event"; static NSString *const SentryEnvelopeItemTypeSession = @"session"; static NSString *const SentryEnvelopeItemTypeUserFeedback = @"user_report"; diff --git a/Sources/Sentry/include/SentryDataCategory.h b/Sources/Sentry/include/SentryDataCategory.h index 7b4e281deb..7d4891c848 100644 --- a/Sources/Sentry/include/SentryDataCategory.h +++ b/Sources/Sentry/include/SentryDataCategory.h @@ -16,5 +16,6 @@ typedef NS_ENUM(NSUInteger, SentryDataCategory) { kSentryDataCategoryProfile = 7, kSentryDataCategoryMetricBucket = 8, kSentryDataCategoryReplay = 9, - kSentryDataCategoryUnknown = 10 + kSentryDataCategoryProfileChunk = 10, + kSentryDataCategoryUnknown = 11 }; diff --git a/Sources/Sentry/include/SentryDataCategoryMapper.h b/Sources/Sentry/include/SentryDataCategoryMapper.h index 2fcfd9303f..6b918dcee9 100644 --- a/Sources/Sentry/include/SentryDataCategoryMapper.h +++ b/Sources/Sentry/include/SentryDataCategoryMapper.h @@ -11,6 +11,7 @@ FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameTransaction; FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameAttachment; FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameUserFeedback; FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameProfile; +FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameProfileChunk; FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameReplay; FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameMetricBucket; FOUNDATION_EXPORT NSString *const kSentryDataCategoryNameUnknown; diff --git a/Tests/SentryTests/Networking/SentryDataCategoryMapperTests.swift b/Tests/SentryTests/Networking/SentryDataCategoryMapperTests.swift index 0d6175ef15..0684bce542 100644 --- a/Tests/SentryTests/Networking/SentryDataCategoryMapperTests.swift +++ b/Tests/SentryTests/Networking/SentryDataCategoryMapperTests.swift @@ -10,6 +10,7 @@ class SentryDataCategoryMapperTests: XCTestCase { expect(sentryDataCategoryForEnvelopItemType("transaction")) == .transaction expect(sentryDataCategoryForEnvelopItemType("attachment")) == .attachment expect(sentryDataCategoryForEnvelopItemType("profile")) == .profile + expect(sentryDataCategoryForEnvelopItemType("profile_chunk")) == .profileChunk expect(sentryDataCategoryForEnvelopItemType("statsd")) == .metricBucket expect(sentryDataCategoryForEnvelopItemType("replay_video")) == .replay expect(sentryDataCategoryForEnvelopItemType("unknown item type")) == .default @@ -26,9 +27,10 @@ class SentryDataCategoryMapperTests: XCTestCase { expect(sentryDataCategoryForNSUInteger(7)) == .profile expect(sentryDataCategoryForNSUInteger(8)) == .metricBucket expect(sentryDataCategoryForNSUInteger(9)) == .replay - expect(sentryDataCategoryForNSUInteger(10)) == .unknown + expect(sentryDataCategoryForNSUInteger(10)) == .profileChunk + expect(sentryDataCategoryForNSUInteger(11)) == .unknown - XCTAssertEqual(.unknown, sentryDataCategoryForNSUInteger(10), "Failed to map unknown category number to case .unknown") + XCTAssertEqual(.unknown, sentryDataCategoryForNSUInteger(11), "Failed to map unknown category number to case .unknown") } func testMapStringToCategory() { @@ -40,6 +42,7 @@ class SentryDataCategoryMapperTests: XCTestCase { expect(sentryDataCategoryForString(kSentryDataCategoryNameAttachment)) == .attachment expect(sentryDataCategoryForString(kSentryDataCategoryNameUserFeedback)) == .userFeedback expect(sentryDataCategoryForString(kSentryDataCategoryNameProfile)) == .profile + expect(sentryDataCategoryForString(kSentryDataCategoryNameProfileChunk)) == .profileChunk expect(sentryDataCategoryForString(kSentryDataCategoryNameMetricBucket)) == .metricBucket expect(sentryDataCategoryForString(kSentryDataCategoryNameReplay)) == .replay expect(sentryDataCategoryForString(kSentryDataCategoryNameUnknown)) == .unknown @@ -56,6 +59,7 @@ class SentryDataCategoryMapperTests: XCTestCase { expect(nameForSentryDataCategory(.attachment)) == kSentryDataCategoryNameAttachment expect(nameForSentryDataCategory(.userFeedback)) == kSentryDataCategoryNameUserFeedback expect(nameForSentryDataCategory(.profile)) == kSentryDataCategoryNameProfile + expect(nameForSentryDataCategory(.profileChunk)) == kSentryDataCategoryNameProfileChunk expect(nameForSentryDataCategory(.metricBucket)) == kSentryDataCategoryNameMetricBucket expect(nameForSentryDataCategory(.replay)) == kSentryDataCategoryNameReplay expect(nameForSentryDataCategory(.unknown)) == kSentryDataCategoryNameUnknown