Skip to content

Commit 038e4d2

Browse files
Maybe Deflake RTDB tests (#2422)
1 parent ce966dd commit 038e4d2

File tree

11 files changed

+34
-0
lines changed

11 files changed

+34
-0
lines changed

firebase-database/src/androidTest/java/com/google/firebase/database/DataTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public class DataTest {
5757

5858
@After
5959
public void tearDown() {
60+
RepoManager.clear();
6061
IntegrationTestHelpers.failOnFirstUncaughtException();
6162
}
6263

firebase-database/src/androidTest/java/com/google/firebase/database/EventTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.junit.Assert.fail;
2222

2323
import androidx.test.ext.junit.runners.AndroidJUnit4;
24+
import com.google.firebase.database.core.RepoManager;
2425
import com.google.firebase.database.core.ZombieVerifier;
2526
import com.google.firebase.database.core.view.Event;
2627
import com.google.firebase.database.future.ReadFuture;
@@ -46,8 +47,10 @@ public class EventTest {
4647

4748
@After
4849
public void tearDown() {
50+
RepoManager.clear();
4951
IntegrationTestHelpers.failOnFirstUncaughtException();
5052
}
53+
5154
// NOTE: skipping test on valid types.
5255

5356
@Test

firebase-database/src/androidTest/java/com/google/firebase/database/FirebaseDatabaseTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.firebase.FirebaseApp;
2626
import com.google.firebase.FirebaseOptions;
2727
import com.google.firebase.database.core.DatabaseConfig;
28+
import com.google.firebase.database.core.RepoManager;
2829
import com.google.firebase.database.core.persistence.CachePolicy;
2930
import com.google.firebase.database.core.persistence.DefaultPersistenceManager;
3031
import com.google.firebase.database.core.persistence.MockPersistenceStorageEngine;
@@ -45,6 +46,7 @@ public class FirebaseDatabaseTest {
4546

4647
@After
4748
public void tearDown() {
49+
RepoManager.clear();
4850
IntegrationTestHelpers.failOnFirstUncaughtException();
4951
}
5052

firebase-database/src/androidTest/java/com/google/firebase/database/InfoTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class InfoTest {
3636

3737
@After
3838
public void tearDown() {
39+
RepoManager.clear();
3940
IntegrationTestHelpers.failOnFirstUncaughtException();
4041
}
4142

firebase-database/src/androidTest/java/com/google/firebase/database/IntegrationTestHelpers.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ public static DatabaseConfig newTestConfig() {
262262
config.setRunLoop(runLoop);
263263
config.setFirebaseApp(FirebaseApp.getInstance());
264264
config.setAuthTokenProvider(AndroidAuthTokenProvider.forUnauthenticatedAccess());
265+
config.setSessionPersistenceKey(UUID.randomUUID().toString());
265266
return config;
266267
}
267268

firebase-database/src/androidTest/java/com/google/firebase/database/OrderByTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static org.junit.Assert.assertEquals;
1818

1919
import androidx.test.ext.junit.runners.AndroidJUnit4;
20+
import com.google.firebase.database.core.RepoManager;
2021
import com.google.firebase.database.future.ReadFuture;
2122
import com.google.firebase.database.future.WriteFuture;
2223
import java.util.ArrayList;
@@ -27,6 +28,7 @@
2728
import java.util.concurrent.ExecutionException;
2829
import java.util.concurrent.Semaphore;
2930
import java.util.concurrent.TimeoutException;
31+
import org.junit.After;
3032
import org.junit.Assert;
3133
import org.junit.Rule;
3234
import org.junit.Test;
@@ -35,6 +37,12 @@
3537
public class OrderByTest {
3638
@Rule public RetryRule retryRule = new RetryRule(3);
3739

40+
@After
41+
public void tearDown() {
42+
RepoManager.clear();
43+
IntegrationTestHelpers.failOnFirstUncaughtException();
44+
}
45+
3846
@Test
3947
public void snapshotsAreIteratedInOrder()
4048
throws InterruptedException, ExecutionException, TimeoutException, TestFailure {

firebase-database/src/androidTest/java/com/google/firebase/database/OrderTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static org.junit.Assert.fail;
2121

2222
import androidx.test.ext.junit.runners.AndroidJUnit4;
23+
import com.google.firebase.database.core.RepoManager;
2324
import com.google.firebase.database.core.view.Event;
2425
import com.google.firebase.database.future.ReadFuture;
2526
import com.google.firebase.database.future.WriteFuture;
@@ -49,6 +50,7 @@ public void setUp()
4950

5051
@After
5152
public void tearDown() {
53+
RepoManager.clear();
5254
IntegrationTestHelpers.failOnFirstUncaughtException();
5355
}
5456

firebase-database/src/androidTest/java/com/google/firebase/database/QueryTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public class QueryTest {
5656

5757
@After
5858
public void tearDown() {
59+
RepoManager.clear();
5960
IntegrationTestHelpers.failOnFirstUncaughtException();
6061
}
6162

firebase-database/src/androidTest/java/com/google/firebase/database/RealtimeTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public class RealtimeTest {
4545

4646
@After
4747
public void tearDown() {
48+
RepoManager.clear();
4849
IntegrationTestHelpers.failOnFirstUncaughtException();
4950
}
5051

firebase-database/src/androidTest/java/com/google/firebase/database/TransactionTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class TransactionTest {
5252

5353
@After
5454
public void tearDown() {
55+
RepoManager.clear();
5556
IntegrationTestHelpers.failOnFirstUncaughtException();
5657
}
5758

firebase-database/src/main/java/com/google/firebase/database/core/RepoManager.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package com.google.firebase.database.core;
1616

17+
import androidx.annotation.VisibleForTesting;
1718
import com.google.firebase.FirebaseApp;
1819
import com.google.firebase.database.DatabaseException;
1920
import com.google.firebase.database.FirebaseDatabase;
@@ -74,6 +75,18 @@ public static void resume(Context ctx) {
7475

7576
public RepoManager() {}
7677

78+
/** Remove all active instances. */
79+
@VisibleForTesting
80+
public static void clear() {
81+
instance.clearRepos();
82+
}
83+
84+
private void clearRepos() {
85+
synchronized (repos) {
86+
repos.clear();
87+
}
88+
}
89+
7790
private Repo getLocalRepo(Context ctx, RepoInfo info) throws DatabaseException {
7891
ctx.freeze(); // No-op if it's already frozen
7992
String repoHash = "https://" + info.host + "/" + info.namespace;

0 commit comments

Comments
 (0)