Skip to content

Commit da03580

Browse files
committed
Revert "Migrate to Firebase common executors (#6128)"
This reverts commit 96b702f.
1 parent 656882e commit da03580

19 files changed

+229
-348
lines changed

firebase-crashlytics/firebase-crashlytics.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ dependencies {
9898
testImplementation(libs.mockito.core)
9999
testImplementation(libs.robolectric)
100100
testImplementation(libs.truth)
101-
testImplementation(project(":integ-testing"))
102101

103102
androidTestImplementation(libs.androidx.test.core)
104103
androidTestImplementation(libs.androidx.test.runner)

firebase-crashlytics/src/androidTest/java/com/google/firebase/crashlytics/internal/common/CrashlyticsControllerTest.java

Lines changed: 16 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,8 @@
3434
import com.google.android.gms.tasks.TaskCompletionSource;
3535
import com.google.android.gms.tasks.Tasks;
3636
import com.google.firebase.FirebaseApp;
37-
import com.google.firebase.concurrent.TestOnlyExecutors;
3837
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
3938
import com.google.firebase.crashlytics.internal.CrashlyticsTestCase;
40-
import com.google.firebase.crashlytics.internal.CrashlyticsWorker;
4139
import com.google.firebase.crashlytics.internal.DevelopmentPlatformProvider;
4240
import com.google.firebase.crashlytics.internal.NativeSessionFileProvider;
4341
import com.google.firebase.crashlytics.internal.analytics.AnalyticsEventLogger;
@@ -57,15 +55,13 @@
5755
import java.util.TreeSet;
5856
import java.util.concurrent.Executor;
5957
import java.util.concurrent.TimeUnit;
58+
import org.junit.Test;
6059
import org.mockito.ArgumentCaptor;
6160

6261
public class CrashlyticsControllerTest extends CrashlyticsTestCase {
6362
private static final String GOOGLE_APP_ID = "google:app:id";
6463
private static final String SESSION_ID = "session_id";
6564

66-
private final CrashlyticsWorker commonWorker =
67-
new CrashlyticsWorker(TestOnlyExecutors.background());
68-
6965
private Context testContext;
7066
private IdManager idManager;
7167
private SettingsProvider testSettingsProvider;
@@ -103,19 +99,14 @@ protected void setUp() throws Exception {
10399
when(testSettingsProvider.getSettingsAsync()).thenReturn(Tasks.forResult(testSettings));
104100
}
105101

106-
@Override
107-
protected void tearDown() throws Exception {
108-
super.tearDown();
109-
commonWorker.await();
110-
}
111-
112102
/** A convenience class for building CrashlyticsController instances for testing. */
113103
private class ControllerBuilder {
114104
private DataCollectionArbiter dataCollectionArbiter;
115105
private CrashlyticsNativeComponent nativeComponent = null;
116106
private AnalyticsEventLogger analyticsEventLogger;
117107
private SessionReportingCoordinator sessionReportingCoordinator;
118108

109+
private CrashlyticsBackgroundWorker backgroundWorker;
119110
private LogFileManager logFileManager = null;
120111

121112
private UserMetadata userMetadata = null;
@@ -127,6 +118,8 @@ private class ControllerBuilder {
127118
analyticsEventLogger = mock(AnalyticsEventLogger.class);
128119

129120
sessionReportingCoordinator = mockSessionReportingCoordinator;
121+
122+
backgroundWorker = new CrashlyticsBackgroundWorker(new SameThreadExecutorService());
130123
}
131124

132125
ControllerBuilder setDataCollectionArbiter(DataCollectionArbiter arbiter) {
@@ -175,7 +168,7 @@ public CrashlyticsController build() {
175168
final CrashlyticsController controller =
176169
new CrashlyticsController(
177170
testContext.getApplicationContext(),
178-
commonWorker,
171+
backgroundWorker,
179172
idManager,
180173
dataCollectionArbiter,
181174
testFileStore,
@@ -215,8 +208,6 @@ public void testWriteNonFatal_callsSessionReportingCoordinatorPersistNonFatal()
215208
controller.writeNonFatalException(thread, nonFatal);
216209
controller.doCloseSessions(testSettingsProvider);
217210

218-
commonWorker.await();
219-
220211
verify(mockSessionReportingCoordinator)
221212
.persistNonFatalEvent(eq(nonFatal), eq(thread), eq(sessionId), anyLong());
222213
}
@@ -237,8 +228,9 @@ public void testFatalException_callsSessionReportingCoordinatorPersistFatal() th
237228
.persistFatalEvent(eq(fatal), eq(thread), eq(sessionId), anyLong());
238229
}
239230

231+
@Test
240232
@SdkSuppress(minSdkVersion = 30) // ApplicationExitInfo
241-
public void testOnDemandFatal_callLogFatalException() throws Exception {
233+
public void testOnDemandFatal_callLogFatalException() {
242234
Thread thread = Thread.currentThread();
243235
Exception fatal = new RuntimeException("Fatal");
244236
Thread.UncaughtExceptionHandler exceptionHandler = mock(Thread.UncaughtExceptionHandler.class);
@@ -254,8 +246,6 @@ public void testOnDemandFatal_callLogFatalException() throws Exception {
254246
controller.enableExceptionHandling(SESSION_ID, exceptionHandler, testSettingsProvider);
255247
controller.logFatalException(thread, fatal);
256248

257-
commonWorker.await();
258-
259249
verify(mockUserMetadata).setNewSession(not(eq(SESSION_ID)));
260250
}
261251

@@ -333,20 +323,17 @@ public File getOsFile() {
333323
final CrashlyticsController controller =
334324
builder().setNativeComponent(mockNativeComponent).setLogFileManager(logFileManager).build();
335325

336-
commonWorker.submit(() -> controller.finalizeSessions(testSettingsProvider));
337-
commonWorker.await();
338-
326+
controller.finalizeSessions(testSettingsProvider);
339327
verify(mockSessionReportingCoordinator)
340328
.finalizeSessionWithNativeEvent(eq(previousSessionId), any(), any());
341329
verify(mockSessionReportingCoordinator, never())
342330
.finalizeSessionWithNativeEvent(eq(sessionId), any(), any());
343331
}
344332

345333
@SdkSuppress(minSdkVersion = 30) // ApplicationExitInfo
346-
public void testMissingNativeComponentCausesNoReports() throws Exception {
334+
public void testMissingNativeComponentCausesNoReports() {
347335
final CrashlyticsController controller = createController();
348-
commonWorker.submit(() -> controller.finalizeSessions(testSettingsProvider));
349-
commonWorker.await();
336+
controller.finalizeSessions(testSettingsProvider);
350337

351338
List<String> sessions = testFileStore.getAllOpenSessionIds();
352339
for (String sessionId : sessions) {
@@ -397,8 +384,7 @@ public void testFinalizeSessionAfterCrashOk() throws Exception {
397384
testSettingsProvider, Thread.currentThread(), new RuntimeException());
398385

399386
// This should not throw.
400-
commonWorker.submit(() -> controller.finalizeSessions(testSettingsProvider));
401-
commonWorker.await();
387+
controller.finalizeSessions(testSettingsProvider);
402388
}
403389

404390
@SdkSuppress(minSdkVersion = 30) // ApplicationExitInfo
@@ -549,7 +535,7 @@ public void testUploadDisabledThenEnabled() throws Exception {
549535
}
550536

551537
@SdkSuppress(minSdkVersion = 30) // ApplicationExitInfo
552-
public void testFatalEvent_sendsAppExceptionEvent() throws Exception {
538+
public void testFatalEvent_sendsAppExceptionEvent() {
553539
final String sessionId = "sessionId";
554540
final LogFileManager logFileManager = new LogFileManager(testFileStore);
555541
final AnalyticsEventLogger mockFirebaseAnalyticsLogger = mock(AnalyticsEventLogger.class);
@@ -562,14 +548,10 @@ public void testFatalEvent_sendsAppExceptionEvent() throws Exception {
562548
when(mockSessionReportingCoordinator.listSortedOpenSessionIds())
563549
.thenReturn(new TreeSet<>(Collections.singleton(sessionId)));
564550

565-
commonWorker.submit(
566-
() -> {
567-
controller.openSession(SESSION_ID);
568-
controller.handleUncaughtException(
569-
testSettingsProvider, Thread.currentThread(), new RuntimeException("Fatal"));
570-
controller.finalizeSessions(testSettingsProvider);
571-
});
572-
commonWorker.await();
551+
controller.openSession(SESSION_ID);
552+
controller.handleUncaughtException(
553+
testSettingsProvider, Thread.currentThread(), new RuntimeException("Fatal"));
554+
controller.finalizeSessions(testSettingsProvider);
573555

574556
assertFirebaseAnalyticsCrashEvent(mockFirebaseAnalyticsLogger);
575557
}

firebase-crashlytics/src/androidTest/java/com/google/firebase/crashlytics/internal/common/CrashlyticsCoreInitializationTest.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,9 @@
2727
import com.google.android.gms.tasks.Tasks;
2828
import com.google.firebase.FirebaseApp;
2929
import com.google.firebase.FirebaseOptions;
30-
import com.google.firebase.concurrent.TestOnlyExecutors;
3130
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
3231
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponentDeferredProxy;
3332
import com.google.firebase.crashlytics.internal.CrashlyticsTestCase;
34-
import com.google.firebase.crashlytics.internal.CrashlyticsWorker;
3533
import com.google.firebase.crashlytics.internal.DevelopmentPlatformProvider;
3634
import com.google.firebase.crashlytics.internal.RemoteConfigDeferredProxy;
3735
import com.google.firebase.crashlytics.internal.analytics.UnavailableAnalyticsEventLogger;
@@ -46,6 +44,7 @@
4644
import java.io.IOException;
4745
import java.util.ArrayList;
4846
import java.util.List;
47+
import java.util.concurrent.ExecutorService;
4948

5049
public class CrashlyticsCoreInitializationTest extends CrashlyticsTestCase {
5150

@@ -90,9 +89,8 @@ private static final class CoreBuilder {
9089
private IdManager idManager;
9190
private CrashlyticsNativeComponent nativeComponent;
9291
private DataCollectionArbiter arbiter;
92+
private ExecutorService crashHandlerExecutor;
9393
private FileStore fileStore;
94-
private CrashlyticsWorker commonWorker;
95-
private CrashlyticsWorker diskWriteWorker;
9694

9795
public CoreBuilder(Context context, FirebaseOptions firebaseOptions) {
9896
app = mock(FirebaseApp.class);
@@ -121,8 +119,7 @@ public void whenAvailable(
121119
arbiter = mock(DataCollectionArbiter.class);
122120
when(arbiter.isAutomaticDataCollectionEnabled()).thenReturn(true);
123121

124-
commonWorker = new CrashlyticsWorker(TestOnlyExecutors.background());
125-
diskWriteWorker = new CrashlyticsWorker(TestOnlyExecutors.background());
122+
crashHandlerExecutor = new SameThreadExecutorService();
126123
fileStore = new FileStore(context);
127124
}
128125

@@ -145,10 +142,9 @@ public CrashlyticsCore build() {
145142
new DisabledBreadcrumbSource(),
146143
new UnavailableAnalyticsEventLogger(),
147144
fileStore,
145+
crashHandlerExecutor,
148146
mock(CrashlyticsAppQualitySessionsSubscriber.class),
149-
mock(RemoteConfigDeferredProxy.class),
150-
commonWorker,
151-
diskWriteWorker);
147+
mock(RemoteConfigDeferredProxy.class));
152148
}
153149
}
154150

firebase-crashlytics/src/androidTest/java/com/google/firebase/crashlytics/internal/common/CrashlyticsCoreTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,10 @@
2828
import com.google.android.gms.tasks.Tasks;
2929
import com.google.firebase.FirebaseApp;
3030
import com.google.firebase.FirebaseOptions;
31-
import com.google.firebase.concurrent.TestOnlyExecutors;
3231
import com.google.firebase.crashlytics.BuildConfig;
3332
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponent;
3433
import com.google.firebase.crashlytics.internal.CrashlyticsNativeComponentDeferredProxy;
3534
import com.google.firebase.crashlytics.internal.CrashlyticsTestCase;
36-
import com.google.firebase.crashlytics.internal.CrashlyticsWorker;
3735
import com.google.firebase.crashlytics.internal.DevelopmentPlatformProvider;
3836
import com.google.firebase.crashlytics.internal.RemoteConfigDeferredProxy;
3937
import com.google.firebase.crashlytics.internal.analytics.UnavailableAnalyticsEventLogger;
@@ -429,10 +427,9 @@ CrashlyticsCore build(Context context) {
429427
breadcrumbSource,
430428
new UnavailableAnalyticsEventLogger(),
431429
new FileStore(context),
430+
new SameThreadExecutorService(),
432431
mock(CrashlyticsAppQualitySessionsSubscriber.class),
433-
mock(RemoteConfigDeferredProxy.class),
434-
new CrashlyticsWorker(TestOnlyExecutors.background()),
435-
new CrashlyticsWorker(TestOnlyExecutors.background()));
432+
mock(RemoteConfigDeferredProxy.class));
436433
return crashlyticsCore;
437434
}
438435
}

0 commit comments

Comments
 (0)