-
Notifications
You must be signed in to change notification settings - Fork 526
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
Enable all CoroutineExecutorService tests in CI #1763
Comments
We've learned a lot since this was originally filed. #3715 is actually a better approach as it has lots of downstream benefits (namely allowing us to coordinate execution with third-party Java libraries that allow for executor customization, like OkHttp, Retrofit, and Glide). Trying to make a coroutine executor service work was very difficult, especially in testing. I'd much rather abandon this approach in favor of the coordinated executors. |
Ah, this issue can be closed with the removal of |
With the recent introduction of
CoroutineExecutorService
in #1764, tests were also added to verify that the service follows Java's ExecutorService contract correctly in a way that's interoperable with Oppia's test dispatchers. While the tests are fairly thorough, they were exceptionally difficult to build due to needing to coordinate between custom test dispatchers, Oppia's centralized test dispatchers, and real dispatchers to test blocking behaviors (where coroutines generally don't like blocking scenarios). Most tests are fairly stable, but a few are still flaky and will require substantial investigation to stabilize. This issue will stay open until all tests in this suite can pass with at least 100 runs in the CI environment (since it's slower than most developer machines, and these tests can be sensitive to CPU speeds).Note also that this is 'nice-to-have' since we don't expect any code iteration to occur in
CoroutineExecutorService
after initial introduction.The text was updated successfully, but these errors were encountered: