remove assertions

This commit is contained in:
Rauhul Varma 2021-08-04 13:04:15 -07:00 committed by Konrad `ktoso` Malawski
parent 42372a8598
commit 2c58b010a2
2 changed files with 10 additions and 41 deletions

View File

@ -12,10 +12,6 @@
//
//===----------------------------------------------------------------------===//
// MARK: Testing API
internal var _enableAssertions = true
// MARK: User API
extension Counter {
@ -596,29 +592,18 @@ internal class AccumulatingRoundingFloatingPointCounter: FloatingPointCounterHan
}
func increment(by amount: Double) {
// Drop values in illegal values (Asserting in debug builds)
guard !amount.isNaN else {
assert(!_enableAssertions, "cannot increment by NaN")
return
}
// Drop illegal values
// - cannot increment by NaN
guard !amount.isNaN else { return }
// - cannot increment by infinite quantities
guard !amount.isInfinite else { return }
// - cannot increment by negative values
guard amount.sign == .plus else { return }
// - cannot increment by zero
guard !amount.isZero else { return }
guard !amount.isInfinite else {
assert(!_enableAssertions, "cannot increment by infinite quantities")
return
}
guard amount.sign == .plus else {
assert(!_enableAssertions, "cannot increment by negative values")
return
}
guard !amount.isZero else {
return
}
// If amount is in Int64.max..<+Inf
if amount.exponent >= 63 {
// Ceil to Int64.max
// If amount is in Int64.max..<+Inf, ceil to Int64.max
self.lock.withLockVoid {
self.counterHandler.increment(by: .max)
}

View File

@ -57,63 +57,47 @@ class MetricsTests: XCTestCase {
// bootstrap with our test metrics
let metrics = TestMetrics()
MetricsSystem.bootstrapInternal(metrics)
// disable assertions to test fallback path
_enableAssertions = false
let label = "\(#function)-fp-counter-\(UUID())"
let fpCounter = FloatingPointCounter(label: label)
let counter = metrics.counters[label] as! TestCounter
fpCounter.increment(by: Double.nan)
fpCounter.increment(by: Double.signalingNaN)
XCTAssertEqual(counter.values.count, 0, "expected nan values to be ignored")
// reenable assertions
_enableAssertions = true
}
func testDefaultFloatingPointCounter_ignoresInfinity() throws {
// bootstrap with our test metrics
let metrics = TestMetrics()
MetricsSystem.bootstrapInternal(metrics)
// disable assertions to test fallback path
_enableAssertions = false
let label = "\(#function)-fp-counter-\(UUID())"
let fpCounter = FloatingPointCounter(label: label)
let counter = metrics.counters[label] as! TestCounter
fpCounter.increment(by: Double.infinity)
fpCounter.increment(by: -Double.infinity)
XCTAssertEqual(counter.values.count, 0, "expected infinite values to be ignored")
// reenable assertions
_enableAssertions = true
}
func testDefaultFloatingPointCounter_ignoresNegativeValues() throws {
// bootstrap with our test metrics
let metrics = TestMetrics()
MetricsSystem.bootstrapInternal(metrics)
// disable assertions to test fallback path
_enableAssertions = false
let label = "\(#function)-fp-counter-\(UUID())"
let fpCounter = FloatingPointCounter(label: label)
let counter = metrics.counters[label] as! TestCounter
fpCounter.increment(by: -100)
XCTAssertEqual(counter.values.count, 0, "expected negative values to be ignored")
// reenable assertions
_enableAssertions = true
}
func testDefaultFloatingPointCounter_ignoresZero() throws {
// bootstrap with our test metrics
let metrics = TestMetrics()
MetricsSystem.bootstrapInternal(metrics)
// disable assertions to test fallback path
_enableAssertions = false
let label = "\(#function)-fp-counter-\(UUID())"
let fpCounter = FloatingPointCounter(label: label)
let counter = metrics.counters[label] as! TestCounter
fpCounter.increment(by: 0)
fpCounter.increment(by: -0)
XCTAssertEqual(counter.values.count, 0, "expected zero values to be ignored")
// reenable assertions
_enableAssertions = true
}
func testDefaultFloatingPointCounter_ceilsExtremeValues() {