Skip to content

Commit 4a70e4a

Browse files
Overflow safety on timestamp and try! in tests
1 parent da21b25 commit 4a70e4a

2 files changed

Lines changed: 13 additions & 13 deletions

File tree

DatadogRUM/Sources/Timeseries/TimeseriesSessionCollector.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ internal class TimeseriesSessionCollector: TimeseriesCollecting {
175175
// MARK: - Private
176176

177177
private func sample() {
178-
let now = Int64(Date().timeIntervalSince1970 * 1_000_000_000)
178+
let now = Int64.ddWithNoOverflow(Date().timeIntervalSince1970 * 1_000_000_000)
179179

180180
if let bytes = memoryReader.readVitalData() {
181181
let memoryPercent = totalRAM > 0 ? bytes / totalRAM * 100 : 0

DatadogRUM/Tests/Timeseries/TimeseriesSessionCollectorTests.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ class TimeseriesSessionCollectorTests: XCTestCase {
181181

182182
// MARK: - Session restart
183183

184-
func testWhenStartIsCalledAgain_itUsesNewSessionMetadata() {
184+
func testWhenStartIsCalledAgain_itUsesNewSessionMetadata() throws {
185185
// Given
186186
memoryReader.vitalData = 512_000
187187
let collector = TimeseriesSessionCollector(
@@ -215,13 +215,13 @@ class TimeseriesSessionCollectorTests: XCTestCase {
215215

216216
// Then — the flushed event should carry session-2 metadata
217217
let events = featureScope.eventsWritten(ofType: RUMTimeseriesMemoryEvent.self)
218-
let lastEvent = try! XCTUnwrap(events.last)
218+
let lastEvent = try XCTUnwrap(events.last)
219219
XCTAssertEqual(lastEvent.session.id, "session-2")
220220
}
221221

222222
// MARK: - Schema coin flip
223223

224-
func testWhenDeltaCompressionSampled_itWritesDeltaEventForMemory() {
224+
func testWhenDeltaCompressionSampled_itWritesDeltaEventForMemory() throws {
225225
// Given
226226
memoryReader.vitalData = 1_000_000
227227
let collector = TimeseriesSessionCollector(
@@ -248,11 +248,11 @@ class TimeseriesSessionCollectorTests: XCTestCase {
248248
let anyEncodableEvents = featureScope.eventsWritten.compactMap { $0 as? AnyEncodable }
249249
XCTAssertFalse(anyEncodableEvents.isEmpty, "Expected delta-schema AnyEncodable event")
250250

251-
let jsonData = try! JSONEncoder().encode(anyEncodableEvents[0])
252-
let dict = try! XCTUnwrap(try? JSONSerialization.jsonObject(with: jsonData) as? [String: Any])
253-
let tsDict = try! XCTUnwrap(dict["timeseries"] as? [String: Any])
251+
let jsonData = try JSONEncoder().encode(anyEncodableEvents[0])
252+
let dict = try XCTUnwrap(try? JSONSerialization.jsonObject(with: jsonData) as? [String: Any])
253+
let tsDict = try XCTUnwrap(dict["timeseries"] as? [String: Any])
254254
XCTAssertEqual(tsDict["schema"] as? String, "delta-object")
255-
let dataDict = try! XCTUnwrap(tsDict["data"] as? [String: Any])
255+
let dataDict = try XCTUnwrap(tsDict["data"] as? [String: Any])
256256
XCTAssertEqual(dataDict["resolution"] as? String, "ns")
257257
XCTAssertNotNil(dataDict["ts"])
258258
XCTAssertNotNil(dataDict["memory_max"])
@@ -286,7 +286,7 @@ class TimeseriesSessionCollectorTests: XCTestCase {
286286
XCTAssertTrue(featureScope.eventsWritten.compactMap { $0 as? AnyEncodable }.isEmpty)
287287
}
288288

289-
func testWhenDeltaCompressionSampled_itWritesDeltaEventForCPU() {
289+
func testWhenDeltaCompressionSampled_itWritesDeltaEventForCPU() throws {
290290
// Given
291291
memoryReader.vitalData = nil
292292
let collector = TimeseriesSessionCollector(
@@ -313,11 +313,11 @@ class TimeseriesSessionCollectorTests: XCTestCase {
313313
let anyEncodableEvents = featureScope.eventsWritten.compactMap { $0 as? AnyEncodable }
314314
XCTAssertFalse(anyEncodableEvents.isEmpty, "Expected delta-schema AnyEncodable event")
315315

316-
let jsonData = try! JSONEncoder().encode(anyEncodableEvents[0])
317-
let dict = try! XCTUnwrap(try? JSONSerialization.jsonObject(with: jsonData) as? [String: Any])
318-
let tsDict = try! XCTUnwrap(dict["timeseries"] as? [String: Any])
316+
let jsonData = try JSONEncoder().encode(anyEncodableEvents[0])
317+
let dict = try XCTUnwrap(try? JSONSerialization.jsonObject(with: jsonData) as? [String: Any])
318+
let tsDict = try XCTUnwrap(dict["timeseries"] as? [String: Any])
319319
XCTAssertEqual(tsDict["schema"] as? String, "delta-scalar")
320-
let dataDict = try! XCTUnwrap(tsDict["data"] as? [String: Any])
320+
let dataDict = try XCTUnwrap(tsDict["data"] as? [String: Any])
321321
XCTAssertEqual(dataDict["resolution"] as? String, "ns")
322322
XCTAssertNotNil(dataDict["ts"])
323323
XCTAssertNotNil(dataDict["value"])

0 commit comments

Comments
 (0)