40
40
import com .google .firebase .crashlytics .internal .DevelopmentPlatformProvider ;
41
41
import com .google .firebase .crashlytics .internal .NativeSessionFileProvider ;
42
42
import 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 ;
44
44
import com .google .firebase .crashlytics .internal .metadata .LogFileManager ;
45
45
import com .google .firebase .crashlytics .internal .metadata .UserMetadata ;
46
46
import com .google .firebase .crashlytics .internal .model .CrashlyticsReport ;
@@ -63,8 +63,8 @@ public class CrashlyticsControllerTest extends CrashlyticsTestCase {
63
63
private static final String GOOGLE_APP_ID = "google:app:id" ;
64
64
private static final String SESSION_ID = "session_id" ;
65
65
66
- private final CrashlyticsWorker commonWorker =
67
- new CrashlyticsWorker (TestOnlyExecutors .background ());
66
+ private final CrashlyticsWorkers crashlyticsWorkers =
67
+ new CrashlyticsWorkers (TestOnlyExecutors .background (), TestOnlyExecutors . blocking ());
68
68
69
69
private Context testContext ;
70
70
private IdManager idManager ;
@@ -74,8 +74,6 @@ public class CrashlyticsControllerTest extends CrashlyticsTestCase {
74
74
private DataCollectionArbiter mockDataCollectionArbiter ;
75
75
private CrashlyticsNativeComponent mockNativeComponent = mock (CrashlyticsNativeComponent .class );
76
76
77
- private CrashlyticsWorker diskWriteWorker = new CrashlyticsWorker (TestOnlyExecutors .background ());
78
-
79
77
@ Override
80
78
protected void setUp () throws Exception {
81
79
super .setUp ();
@@ -108,7 +106,7 @@ protected void setUp() throws Exception {
108
106
@ Override
109
107
protected void tearDown () throws Exception {
110
108
super .tearDown ();
111
- commonWorker .await ();
109
+ crashlyticsWorkers . common .await ();
112
110
}
113
111
114
112
/** A convenience class for building CrashlyticsController instances for testing. */
@@ -177,7 +175,6 @@ public CrashlyticsController build() {
177
175
final CrashlyticsController controller =
178
176
new CrashlyticsController (
179
177
testContext .getApplicationContext (),
180
- commonWorker ,
181
178
idManager ,
182
179
dataCollectionArbiter ,
183
180
testFileStore ,
@@ -189,7 +186,7 @@ public CrashlyticsController build() {
189
186
nativeComponent ,
190
187
analyticsEventLogger ,
191
188
mock (CrashlyticsAppQualitySessionsSubscriber .class ),
192
- diskWriteWorker );
189
+ crashlyticsWorkers );
193
190
return controller ;
194
191
}
195
192
}
@@ -218,7 +215,7 @@ public void testWriteNonFatal_callsSessionReportingCoordinatorPersistNonFatal()
218
215
controller .writeNonFatalException (thread , nonFatal );
219
216
controller .doCloseSessions (testSettingsProvider );
220
217
221
- commonWorker .await ();
218
+ crashlyticsWorkers . common .await ();
222
219
223
220
verify (mockSessionReportingCoordinator )
224
221
.persistNonFatalEvent (eq (nonFatal ), eq (thread ), eq (sessionId ), anyLong ());
@@ -257,7 +254,7 @@ public void testOnDemandFatal_callLogFatalException() throws Exception {
257
254
controller .enableExceptionHandling (SESSION_ID , exceptionHandler , testSettingsProvider );
258
255
controller .logFatalException (thread , fatal );
259
256
260
- commonWorker .await ();
257
+ crashlyticsWorkers . common .await ();
261
258
262
259
verify (mockUserMetadata ).setNewSession (not (eq (SESSION_ID )));
263
260
}
@@ -336,8 +333,8 @@ public File getOsFile() {
336
333
final CrashlyticsController controller =
337
334
builder ().setNativeComponent (mockNativeComponent ).setLogFileManager (logFileManager ).build ();
338
335
339
- commonWorker .submit (() -> controller .finalizeSessions (testSettingsProvider ));
340
- commonWorker .await ();
336
+ crashlyticsWorkers . common .submit (() -> controller .finalizeSessions (testSettingsProvider ));
337
+ crashlyticsWorkers . common .await ();
341
338
342
339
verify (mockSessionReportingCoordinator )
343
340
.finalizeSessionWithNativeEvent (eq (previousSessionId ), any (), any ());
@@ -348,8 +345,8 @@ public File getOsFile() {
348
345
@ SdkSuppress (minSdkVersion = 30 ) // ApplicationExitInfo
349
346
public void testMissingNativeComponentCausesNoReports () throws Exception {
350
347
final CrashlyticsController controller = createController ();
351
- commonWorker .submit (() -> controller .finalizeSessions (testSettingsProvider ));
352
- commonWorker .await ();
348
+ crashlyticsWorkers . common .submit (() -> controller .finalizeSessions (testSettingsProvider ));
349
+ crashlyticsWorkers . common .await ();
353
350
354
351
List <String > sessions = testFileStore .getAllOpenSessionIds ();
355
352
for (String sessionId : sessions ) {
@@ -385,8 +382,9 @@ public void testLogStringAfterCrashOk() throws Exception {
385
382
testSettingsProvider , Thread .currentThread (), new RuntimeException ());
386
383
387
384
// 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 ();
390
388
}
391
389
392
390
/**
@@ -401,8 +399,8 @@ public void testFinalizeSessionAfterCrashOk() throws Exception {
401
399
testSettingsProvider , Thread .currentThread (), new RuntimeException ());
402
400
403
401
// This should not throw.
404
- commonWorker .submit (() -> controller .finalizeSessions (testSettingsProvider ));
405
- commonWorker .await ();
402
+ crashlyticsWorkers . common .submit (() -> controller .finalizeSessions (testSettingsProvider ));
403
+ crashlyticsWorkers . common .await ();
406
404
}
407
405
408
406
@ SdkSuppress (minSdkVersion = 30 ) // ApplicationExitInfo
@@ -445,7 +443,7 @@ public void testUploadDisabledThenOptIn() throws Exception {
445
443
446
444
final DataCollectionArbiter arbiter = mock (DataCollectionArbiter .class );
447
445
when (arbiter .isAutomaticDataCollectionEnabled ()).thenReturn (false );
448
- when (arbiter .waitForDataCollectionPermission (any ( Executor . class ) ))
446
+ when (arbiter .waitForDataCollectionPermission ())
449
447
.thenReturn (new TaskCompletionSource <Void >().getTask ());
450
448
when (arbiter .waitForAutomaticDataCollectionEnabled ())
451
449
.thenReturn (new TaskCompletionSource <Void >().getTask ());
@@ -566,14 +564,14 @@ public void testFatalEvent_sendsAppExceptionEvent() throws Exception {
566
564
when (mockSessionReportingCoordinator .listSortedOpenSessionIds ())
567
565
.thenReturn (new TreeSet <>(Collections .singleton (sessionId )));
568
566
569
- commonWorker .submit (
567
+ crashlyticsWorkers . common .submit (
570
568
() -> {
571
569
controller .openSession (SESSION_ID );
572
570
controller .handleUncaughtException (
573
571
testSettingsProvider , Thread .currentThread (), new RuntimeException ("Fatal" ));
574
572
controller .finalizeSessions (testSettingsProvider );
575
573
});
576
- commonWorker .await ();
574
+ crashlyticsWorkers . common .await ();
577
575
578
576
assertFirebaseAnalyticsCrashEvent (mockFirebaseAnalyticsLogger );
579
577
}
0 commit comments