Merge "Add a separate internal task executor pool to fix flaky tests." into androidx-master-dev
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/foreground/WorkerWrapperForegroundTest.kt b/work/workmanager/src/androidTest/java/androidx/work/impl/foreground/WorkerWrapperForegroundTest.kt
index 845b0ad..8d660e5 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/foreground/WorkerWrapperForegroundTest.kt
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/foreground/WorkerWrapperForegroundTest.kt
@@ -60,6 +60,7 @@
private lateinit var handler: Handler
private lateinit var config: Configuration
private lateinit var executor: ExecutorService
+ private lateinit var internalExecutor: ExecutorService
private lateinit var taskExecutor: TaskExecutor
private lateinit var workDatabase: WorkDatabase
private lateinit var schedulers: List<Scheduler>
@@ -76,6 +77,7 @@
doReturn(context).`when`(context).applicationContext
executor = Executors.newSingleThreadExecutor()
+ internalExecutor = Executors.newSingleThreadExecutor()
handler = Handler(Looper.getMainLooper())
config = Configuration.Builder()
.setExecutor(executor)
@@ -86,7 +88,7 @@
val main = Executor { runnable ->
handler.post(runnable)
}
- val serialExecutor = SerialExecutor(executor)
+ val serialExecutor = SerialExecutor(internalExecutor)
override fun postToMainThread(runnable: Runnable) {
handler.post(runnable)
}
@@ -154,10 +156,6 @@
wrapper.run()
val future = wrapper.future as SettableFuture<Boolean>
- while (taskExecutor.backgroundExecutor.hasPendingTasks()) {
- // Wait until all pending operations in the internal task executor are complete
- }
-
val latch = CountDownLatch(1)
future.addListener(Runnable {
assertThat(future.isDone, `is`(true))
diff --git a/work/workmanager/src/androidTest/java/androidx/work/worker/TestForegroundWorker.kt b/work/workmanager/src/androidTest/java/androidx/work/worker/TestForegroundWorker.kt
index 27c98bb..db1a6d4 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/worker/TestForegroundWorker.kt
+++ b/work/workmanager/src/androidTest/java/androidx/work/worker/TestForegroundWorker.kt
@@ -26,7 +26,7 @@
Worker(context, parameters) {
override fun doWork(): Result {
- setForegroundAsync(getNotification())
+ setForegroundAsync(getNotification()).get()
return Result.success()
}