-
Notifications
You must be signed in to change notification settings - Fork 338
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replaced FatalErrorUtil
with Nimble
#2802
Conversation
a27e95e
to
48939f0
Compare
@@ -25,10 +25,7 @@ final class UserDefaultsDefaultTests: TestCase { | |||
override func setUp() { | |||
super.setUp() | |||
|
|||
// We don't care if `DeviceCache` detects the modification of `UserDefaults` from this test. | |||
self.ignoreFatalErrors { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#2407 got rid of this assertion.
48939f0
to
fcda671
Compare
Turns out that all the testing issues in CI with #2780 were due to these functions. /Users/ignacio/Desktop/Screenshot 2023-07-12 at 16.45.37.png Even though I wasn't able to reproduce the slowness, I was able to detect the root cause using Instruments, which detects this "severe hang". With this commit, all the slow test issues go away 🎉 The only downside is we lose the ability to verify the assertion message. The benefit is we don't have to maintain that hacky code and instead rely on `Nimble` with a much better implementation that use this hack: ```swift func unreachable() { repeat { NSRunLoop.currentRunLoop().run() } while (true) } ```
fcda671
to
85aa524
Compare
Codecov Report
@@ Coverage Diff @@
## main #2802 +/- ##
==========================================
- Coverage 86.51% 86.50% -0.01%
==========================================
Files 214 213 -1
Lines 15396 15386 -10
==========================================
- Hits 13320 13310 -10
Misses 2076 2076 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so long, FatalErrorUtil
amazing find!! |
**This is an automatic release.** ### Dependency Updates * Bump fastlane from 2.213.0 to 2.214.0 (#2824) via dependabot[bot] (@dependabot[bot]) ### Other Changes * `MainThreadMonitor`: don't crash if there is no test in progress (#2838) via NachoSoto (@NachoSoto) * `CI`: fixed Fastlane APITester lanes (#2836) via NachoSoto (@NachoSoto) * `Integration Tests`: workaround Swift runtime crash (#2826) via NachoSoto (@NachoSoto) * `@EnsureNonEmptyArrayDecodable` (#2831) via NachoSoto (@NachoSoto) * `iOS 17`: added tests for simulating cancellations (#2597) via NachoSoto (@NachoSoto) * `CI`: make all `Codecov` jobs `informational` (#2828) via NachoSoto (@NachoSoto) * `MainThreadMonitor`: check deadlocks only ever N seconds (#2820) via NachoSoto (@NachoSoto) * New `@NonEmptyStringDecodable` (#2819) via NachoSoto (@NachoSoto) * `MockDeviceCache`: avoid using real `UserDefaults` (#2814) via NachoSoto (@NachoSoto) * `throwAssertion`: fixed Xcode 15 compilation (#2813) via NachoSoto (@NachoSoto) * `CustomEntitlementsComputation`: fixed API testers (#2815) via NachoSoto (@NachoSoto) * `PackageTypeTests`: fixed iOS 12 (#2807) via NachoSoto (@NachoSoto) * `Tests`: avoid race-condition in leak detection (#2806) via NachoSoto (@NachoSoto) * Revert "`Unit Tests`: removed leak detection" (#2805) via NachoSoto (@NachoSoto) * `PackageType: Codable` implementation (#2797) via NachoSoto (@NachoSoto) * `SystemInfo.init` no longer `throws` (#2803) via NachoSoto (@NachoSoto) * `Trusted Entitlements`: add support for signing `POST` body (#2753) via NachoSoto (@NachoSoto) * `Tests`: unified default timeouts (#2801) via NachoSoto (@NachoSoto) * `Tests`: removed forced-unwrap (#2799) via NachoSoto (@NachoSoto) * `Tests`: added missing `super.setUp()` (#2804) via NachoSoto (@NachoSoto) * Replaced `FatalErrorUtil` with `Nimble` (#2802) via NachoSoto (@NachoSoto) * `Tests`: fixed another flaky test (#2795) via NachoSoto (@NachoSoto) * `TimingUtil`: improved tests by using `Clock` (#2794) via NachoSoto (@NachoSoto) * `IgnoreDecodeErrors`: log decoding error (#2778) via NachoSoto (@NachoSoto) * `TestLogHandler`: changed all tests to explicitly deinitialize it (#2784) via NachoSoto (@NachoSoto) * `LocalReceiptParserStoreKitTests`: fixed flaky test failure (#2785) via NachoSoto (@NachoSoto) * `Unit Tests`: removed leak detection (#2792) via NachoSoto (@NachoSoto) * `Tests`: fixed another flaky failure with asynchronous check (#2786) via NachoSoto (@NachoSoto) --------- Co-authored-by: NachoSoto <[email protected]>
Turns out that all the testing issues in CI with #2780 were due to these functions.
Even though I wasn't able to reproduce the slowness, I was able to detect the root cause using Instruments, which detects this "severe hang".
With this commit, all the slow test issues go away 🎉
The benefit is we don't have to maintain that hacky code and instead rely on
Nimble
with a much better implementation that use this hack:Downsides:
watchOS