4040import com .google .firebase .crashlytics .internal .DevelopmentPlatformProvider ;
4141import com .google .firebase .crashlytics .internal .NativeSessionFileProvider ;
4242import com .google .firebase .crashlytics .internal .analytics .AnalyticsEventLogger ;
43- import com .google .firebase .crashlytics .internal .concurrency .CrashlyticsWorker ;
43+ import com .google .firebase .crashlytics .internal .concurrency .CrashlyticsWorkers ;
4444import com .google .firebase .crashlytics .internal .metadata .LogFileManager ;
4545import com .google .firebase .crashlytics .internal .metadata .UserMetadata ;
4646import com .google .firebase .crashlytics .internal .model .CrashlyticsReport ;
@@ -63,8 +63,8 @@ public class CrashlyticsControllerTest extends CrashlyticsTestCase {
6363 private static final String GOOGLE_APP_ID = "google:app:id" ;
6464 private static final String SESSION_ID = "session_id" ;
6565
66- private final CrashlyticsWorker commonWorker =
67- new CrashlyticsWorker (TestOnlyExecutors .background ());
66+ private final CrashlyticsWorkers crashlyticsWorkers =
67+ new CrashlyticsWorkers (TestOnlyExecutors .background (), TestOnlyExecutors . blocking ());
6868
6969 private Context testContext ;
7070 private IdManager idManager ;
@@ -74,8 +74,6 @@ public class CrashlyticsControllerTest extends CrashlyticsTestCase {
7474 private DataCollectionArbiter mockDataCollectionArbiter ;
7575 private CrashlyticsNativeComponent mockNativeComponent = mock (CrashlyticsNativeComponent .class );
7676
77- private CrashlyticsWorker diskWriteWorker = new CrashlyticsWorker (TestOnlyExecutors .background ());
78-
7977 @ Override
8078 protected void setUp () throws Exception {
8179 super .setUp ();
@@ -108,7 +106,7 @@ protected void setUp() throws Exception {
108106 @ Override
109107 protected void tearDown () throws Exception {
110108 super .tearDown ();
111- commonWorker .await ();
109+ crashlyticsWorkers . common .await ();
112110 }
113111
114112 /** A convenience class for building CrashlyticsController instances for testing. */
@@ -177,7 +175,6 @@ public CrashlyticsController build() {
177175 final CrashlyticsController controller =
178176 new CrashlyticsController (
179177 testContext .getApplicationContext (),
180- commonWorker ,
181178 idManager ,
182179 dataCollectionArbiter ,
183180 testFileStore ,
@@ -189,7 +186,7 @@ public CrashlyticsController build() {
189186 nativeComponent ,
190187 analyticsEventLogger ,
191188 mock (CrashlyticsAppQualitySessionsSubscriber .class ),
192- diskWriteWorker );
189+ crashlyticsWorkers );
193190 return controller ;
194191 }
195192 }
@@ -218,7 +215,7 @@ public void testWriteNonFatal_callsSessionReportingCoordinatorPersistNonFatal()
218215 controller .writeNonFatalException (thread , nonFatal );
219216 controller .doCloseSessions (testSettingsProvider );
220217
221- commonWorker .await ();
218+ crashlyticsWorkers . common .await ();
222219
223220 verify (mockSessionReportingCoordinator )
224221 .persistNonFatalEvent (eq (nonFatal ), eq (thread ), eq (sessionId ), anyLong ());
@@ -257,7 +254,7 @@ public void testOnDemandFatal_callLogFatalException() throws Exception {
257254 controller .enableExceptionHandling (SESSION_ID , exceptionHandler , testSettingsProvider );
258255 controller .logFatalException (thread , fatal );
259256
260- commonWorker .await ();
257+ crashlyticsWorkers . common .await ();
261258
262259 verify (mockUserMetadata ).setNewSession (not (eq (SESSION_ID )));
263260 }
@@ -336,8 +333,8 @@ public File getOsFile() {
336333 final CrashlyticsController controller =
337334 builder ().setNativeComponent (mockNativeComponent ).setLogFileManager (logFileManager ).build ();
338335
339- commonWorker .submit (() -> controller .finalizeSessions (testSettingsProvider ));
340- commonWorker .await ();
336+ crashlyticsWorkers . common .submit (() -> controller .finalizeSessions (testSettingsProvider ));
337+ crashlyticsWorkers . common .await ();
341338
342339 verify (mockSessionReportingCoordinator )
343340 .finalizeSessionWithNativeEvent (eq (previousSessionId ), any (), any ());
@@ -348,8 +345,8 @@ public File getOsFile() {
348345 @ SdkSuppress (minSdkVersion = 30 ) // ApplicationExitInfo
349346 public void testMissingNativeComponentCausesNoReports () throws Exception {
350347 final CrashlyticsController controller = createController ();
351- commonWorker .submit (() -> controller .finalizeSessions (testSettingsProvider ));
352- commonWorker .await ();
348+ crashlyticsWorkers . common .submit (() -> controller .finalizeSessions (testSettingsProvider ));
349+ crashlyticsWorkers . common .await ();
353350
354351 List <String > sessions = testFileStore .getAllOpenSessionIds ();
355352 for (String sessionId : sessions ) {
@@ -385,8 +382,9 @@ public void testLogStringAfterCrashOk() throws Exception {
385382 testSettingsProvider , Thread .currentThread (), new RuntimeException ());
386383
387384 // This should not throw.
388- diskWriteWorker .submit (() -> controller .writeToLog (System .currentTimeMillis (), "Hi" ));
389- diskWriteWorker .await ();
385+ crashlyticsWorkers .diskWrite .submit (
386+ () -> controller .writeToLog (System .currentTimeMillis (), "Hi" ));
387+ crashlyticsWorkers .diskWrite .await ();
390388 }
391389
392390 /**
@@ -401,8 +399,8 @@ public void testFinalizeSessionAfterCrashOk() throws Exception {
401399 testSettingsProvider , Thread .currentThread (), new RuntimeException ());
402400
403401 // This should not throw.
404- commonWorker .submit (() -> controller .finalizeSessions (testSettingsProvider ));
405- commonWorker .await ();
402+ crashlyticsWorkers . common .submit (() -> controller .finalizeSessions (testSettingsProvider ));
403+ crashlyticsWorkers . common .await ();
406404 }
407405
408406 @ SdkSuppress (minSdkVersion = 30 ) // ApplicationExitInfo
@@ -445,7 +443,7 @@ public void testUploadDisabledThenOptIn() throws Exception {
445443
446444 final DataCollectionArbiter arbiter = mock (DataCollectionArbiter .class );
447445 when (arbiter .isAutomaticDataCollectionEnabled ()).thenReturn (false );
448- when (arbiter .waitForDataCollectionPermission (any ( Executor . class ) ))
446+ when (arbiter .waitForDataCollectionPermission ())
449447 .thenReturn (new TaskCompletionSource <Void >().getTask ());
450448 when (arbiter .waitForAutomaticDataCollectionEnabled ())
451449 .thenReturn (new TaskCompletionSource <Void >().getTask ());
@@ -566,14 +564,14 @@ public void testFatalEvent_sendsAppExceptionEvent() throws Exception {
566564 when (mockSessionReportingCoordinator .listSortedOpenSessionIds ())
567565 .thenReturn (new TreeSet <>(Collections .singleton (sessionId )));
568566
569- commonWorker .submit (
567+ crashlyticsWorkers . common .submit (
570568 () -> {
571569 controller .openSession (SESSION_ID );
572570 controller .handleUncaughtException (
573571 testSettingsProvider , Thread .currentThread (), new RuntimeException ("Fatal" ));
574572 controller .finalizeSessions (testSettingsProvider );
575573 });
576- commonWorker .await ();
574+ crashlyticsWorkers . common .await ();
577575
578576 assertFirebaseAnalyticsCrashEvent (mockFirebaseAnalyticsLogger );
579577 }
0 commit comments