Skip to content

Commit 6cc86a9

Browse files
committed
more test fixes to handle deadline exceeded etc
1 parent de93291 commit 6cc86a9

34 files changed

+158
-38
lines changed

fdb-extensions/src/test/java/com/apple/foundationdb/async/RangeSetTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public class RangeSetTest {
6565
@RegisterExtension
6666
static final TestDatabaseExtension dbExtension = new TestDatabaseExtension();
6767
@RegisterExtension
68-
TestSubspaceExtension rsSubspaceExtension = new TestSubspaceExtension(dbExtension);
68+
final TestSubspaceExtension rsSubspaceExtension = new TestSubspaceExtension(dbExtension);
6969
private Database db;
7070
private Subspace rsSubspace;
7171
private RangeSet rs;

fdb-extensions/src/test/java/com/apple/test/LimitConcurrencyExtension.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,20 @@
2121
package com.apple.test;
2222

2323
import com.google.auto.service.AutoService;
24+
import org.junit.jupiter.api.Order;
2425
import org.junit.jupiter.api.extension.AfterEachCallback;
2526
import org.junit.jupiter.api.extension.BeforeEachCallback;
2627
import org.junit.jupiter.api.extension.Extension;
2728
import org.junit.jupiter.api.extension.ExtensionContext;
2829

30+
import javax.annotation.Nonnull;
2931
import java.util.concurrent.Semaphore;
3032

3133
@AutoService(Extension.class)
34+
@Order(0)
3235
public class LimitConcurrencyExtension implements BeforeEachCallback, AfterEachCallback {
33-
static Semaphore testConcurrency = new Semaphore(Integer.parseInt(System.getProperty("tests.concurrencyLimit", "10")));
36+
@Nonnull
37+
static Semaphore testConcurrency = new Semaphore(Integer.parseInt(System.getProperty("com.apple.foundationdb.test.concurrencyLimit", "50")));
3438

3539
@Override
3640
public void beforeEach(final ExtensionContext context) throws InterruptedException {

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/cursors/ConcatCursorTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.junit.jupiter.api.AfterEach;
4141
import org.junit.jupiter.api.Assertions;
4242
import org.junit.jupiter.api.BeforeEach;
43+
import org.junit.jupiter.api.Order;
4344
import org.junit.jupiter.api.Tag;
4445
import org.junit.jupiter.api.Test;
4546
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -60,8 +61,10 @@
6061
public class ConcatCursorTest {
6162

6263
@RegisterExtension
64+
@Order(0)
6365
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
6466
@RegisterExtension
67+
@Order(1)
6568
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
6669
FDBDatabase fdb;
6770
FDBRecordContext context;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/common/MappedPoolTest.java

+17-9
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
package com.apple.foundationdb.record.provider.common;
2222

2323
import org.junit.jupiter.api.Test;
24+
25+
import javax.annotation.Nonnull;
2426
import javax.crypto.Cipher;
2527
import java.security.GeneralSecurityException;
2628

@@ -40,37 +42,43 @@
4042
public class MappedPoolTest {
4143

4244
public static String CIPHER = "DES/ECB/PKCS5Padding";
43-
public static MappedPool<String, Cipher, GeneralSecurityException> MAPPED_POOL = new MappedPool<>(Cipher::getInstance);
45+
46+
@Nonnull
47+
private MappedPool<String, Cipher, GeneralSecurityException> getPool() {
48+
return new MappedPool<>(Cipher::getInstance);
49+
}
4450

4551
@Test
4652
public void testCipherPool() throws Exception {
53+
final var mappedPool = getPool();
4754
Cipher lastCipher = null;
4855
for (int i = 0; i < 100; i++) {
49-
Cipher cipher = MAPPED_POOL.poll(CIPHER);
56+
Cipher cipher = mappedPool.poll(CIPHER);
5057
if (lastCipher != null) {
5158
assertSame(cipher, lastCipher);
5259
lastCipher = cipher;
5360
}
5461
assertNotNull(cipher);
55-
assertTrue(MAPPED_POOL.offer(CIPHER, cipher));
62+
assertTrue(mappedPool.offer(CIPHER, cipher));
5663
}
57-
assertEquals(1, MAPPED_POOL.getPoolSize(CIPHER));
58-
assertThat(MAPPED_POOL.getKeys(), hasItem(CIPHER));
64+
assertEquals(1, mappedPool.getPoolSize(CIPHER));
65+
assertThat(mappedPool.getKeys(), hasItem(CIPHER));
5966
}
6067

6168
@Test
6269
public void testMaxPoolSize() throws Exception {
70+
final var mappedPool = getPool();
6371
Cipher[] ciphers = new Cipher[1000];
6472
for (int i = 0; i < 1000; i++) {
65-
ciphers[i] = MAPPED_POOL.poll(CIPHER);
73+
ciphers[i] = mappedPool.poll(CIPHER);
6674
}
6775
for (int i = 0; i < MappedPool.DEFAULT_POOL_SIZE; i++) {
68-
assertTrue(MAPPED_POOL.offer(CIPHER, ciphers[i]));
76+
assertTrue(mappedPool.offer(CIPHER, ciphers[i]));
6977
}
7078
for (int i = MappedPool.DEFAULT_POOL_SIZE; i < 1000; i++) {
71-
assertFalse(MAPPED_POOL.offer(CIPHER, ciphers[i]));
79+
assertFalse(mappedPool.offer(CIPHER, ciphers[i]));
7280
}
73-
assertEquals(64, MAPPED_POOL.getPoolSize(CIPHER));
81+
assertEquals(64, mappedPool.getPoolSize(CIPHER));
7482
}
7583

7684
}

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/BlockingInAsyncDetectionTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.junit.jupiter.api.Tag;
2929
import org.junit.jupiter.api.Test;
3030
import org.junit.jupiter.api.extension.RegisterExtension;
31+
import org.junit.jupiter.api.parallel.Isolated;
3132

3233
import java.util.concurrent.CompletableFuture;
3334
import java.util.concurrent.TimeUnit;
@@ -36,6 +37,7 @@
3637
import static org.junit.jupiter.api.Assertions.assertEquals;
3738
import static org.junit.jupiter.api.Assertions.assertThrows;
3839

40+
@Isolated
3941
@Tag(Tags.RequiresFDB)
4042
class BlockingInAsyncDetectionTest {
4143
@RegisterExtension

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBDatabaseRunnerTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.google.protobuf.Message;
3939
import org.apache.logging.log4j.ThreadContext;
4040
import org.junit.jupiter.api.BeforeEach;
41+
import org.junit.jupiter.api.Order;
4142
import org.junit.jupiter.api.Tag;
4243
import org.junit.jupiter.api.Test;
4344
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -70,8 +71,10 @@
7071
@Tag(Tags.RequiresFDB)
7172
public class FDBDatabaseRunnerTest {
7273
@RegisterExtension
74+
@Order(0)
7375
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
7476
@RegisterExtension
77+
@Order(1)
7578
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
7679

7780
FDBDatabase database;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBDatabaseTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,15 @@
4040
import com.apple.test.BooleanSource;
4141
import com.apple.test.Tags;
4242
import com.google.protobuf.Message;
43+
import org.junit.jupiter.api.Order;
4344
import org.junit.jupiter.api.Tag;
4445
import org.junit.jupiter.api.Test;
4546
import org.junit.jupiter.api.extension.RegisterExtension;
4647
import org.junit.jupiter.api.function.Executable;
4748
import org.junit.jupiter.api.parallel.Execution;
4849
import org.junit.jupiter.api.parallel.ExecutionMode;
50+
import org.junit.jupiter.api.parallel.ResourceLock;
51+
import org.junit.jupiter.api.parallel.Resources;
4952
import org.junit.jupiter.params.ParameterizedTest;
5053
import org.junit.jupiter.params.provider.EnumSource;
5154
import org.slf4j.Logger;
@@ -83,8 +86,10 @@ class FDBDatabaseTest {
8386
@Nonnull
8487
private static final Logger LOGGER = LoggerFactory.getLogger(FDBDatabaseTest.class);
8588
@RegisterExtension
89+
@Order(0)
8690
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
8791
@RegisterExtension
92+
@Order(1)
8893
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
8994

9095
@Test
@@ -216,6 +221,7 @@ void cachedReadVersionWithRetryLoops(boolean async) throws InterruptedException,
216221

217222
@ParameterizedTest(name = "testJoinNowOnCompletedFuture (behavior = {0})")
218223
@EnumSource(BlockingInAsyncDetection.class)
224+
@ResourceLock(Resources.GLOBAL)
219225
void testJoinNowOnCompletedFuture(BlockingInAsyncDetection behavior) {
220226
FDBDatabaseFactory factory = dbExtension.getDatabaseFactory();
221227
factory.setBlockingInAsyncDetection(behavior);
@@ -231,6 +237,7 @@ void testJoinNowOnCompletedFuture(BlockingInAsyncDetection behavior) {
231237

232238
@ParameterizedTest(name = "testJoinNowOnNonCompletedFuture (behavior = {0})")
233239
@EnumSource(BlockingInAsyncDetection.class)
240+
@ResourceLock(Resources.GLOBAL)
234241
void testJoinNowOnNonCompletedFuture(BlockingInAsyncDetection behavior) {
235242
FDBDatabaseFactory factory = dbExtension.getDatabaseFactory();
236243
factory.setBlockingInAsyncDetection(behavior);

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBMetaDataStoreTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import com.google.protobuf.Descriptors;
6767
import com.google.protobuf.ExtensionRegistry;
6868
import org.junit.jupiter.api.BeforeEach;
69+
import org.junit.jupiter.api.Order;
6970
import org.junit.jupiter.api.Tag;
7071
import org.junit.jupiter.api.Test;
7172
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -103,8 +104,10 @@
103104
@Tag(Tags.RequiresFDB)
104105
public class FDBMetaDataStoreTest {
105106
@RegisterExtension
107+
@Order(0)
106108
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
107109
@RegisterExtension
110+
@Order(1)
108111
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
109112

110113
FDBDatabase fdb;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBRecordContextTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@
4343
import com.google.common.base.Utf8;
4444
import com.google.common.collect.ImmutableList;
4545
import org.junit.jupiter.api.BeforeEach;
46+
import org.junit.jupiter.api.Order;
4647
import org.junit.jupiter.api.Tag;
4748
import org.junit.jupiter.api.Test;
4849
import org.junit.jupiter.api.extension.RegisterExtension;
50+
import org.junit.jupiter.api.parallel.ResourceLock;
51+
import org.junit.jupiter.api.parallel.Resources;
4952
import org.junit.jupiter.params.ParameterizedTest;
5053

5154
import javax.annotation.Nonnull;
@@ -82,8 +85,10 @@
8285
@Tag(Tags.RequiresFDB)
8386
public class FDBRecordContextTest {
8487
@RegisterExtension
88+
@Order(0)
8589
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
8690
@RegisterExtension
91+
@Order(1)
8792
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
8893

8994
// A list of transaction IDs where the left item is the original ID and the right item is the expected
@@ -333,6 +338,7 @@ public void getReadVersionWithWeakReadSemantics() {
333338
}
334339
}
335340

341+
@ResourceLock(Resources.GLOBAL)
336342
@Test
337343
public void getReadVersionAtBatch() {
338344
final FDBStoreTimer timer = new FDBStoreTimer();

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBRecordStoreConcurrentTestBase.java

+3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.apple.test.Tags;
4040
import com.google.common.collect.ImmutableMap;
4141
import org.junit.jupiter.api.BeforeEach;
42+
import org.junit.jupiter.api.Order;
4243
import org.junit.jupiter.api.Tag;
4344
import org.junit.jupiter.api.extension.RegisterExtension;
4445
import org.slf4j.Logger;
@@ -57,8 +58,10 @@
5758
@Tag(Tags.RequiresFDB)
5859
public class FDBRecordStoreConcurrentTestBase {
5960
@RegisterExtension
61+
@Order(0)
6062
protected final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
6163
@RegisterExtension
64+
@Order(1)
6265
protected final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
6366

6467
private static final Logger LOGGER = LoggerFactory.getLogger(FDBRecordStoreConcurrentTestBase.class);

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBRecordStoreIndexTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2250,7 +2250,7 @@ public IndexState needRebuildIndex(Index index, long recordCount, boolean indexO
22502250
recordStore.clearAndMarkIndexWriteOnly("index-1").join();
22512251
context.commit();
22522252
}
2253-
try (OnlineIndexer onlineIndexBuilder = OnlineIndexer.forRecordStoreAndIndex(recordStore, "index-1")) {
2253+
try (OnlineIndexer onlineIndexBuilder = newIndexerBuilder().setIndex("index-1").build()) {
22542254
onlineIndexBuilder.buildIndex();
22552255
}
22562256
try (FDBRecordContext context = openContext()) {

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBReverseDirectoryCacheTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.google.common.collect.BiMap;
4141
import com.google.common.collect.ImmutableBiMap;
4242
import org.junit.jupiter.api.BeforeEach;
43+
import org.junit.jupiter.api.Order;
4344
import org.junit.jupiter.api.Tag;
4445
import org.junit.jupiter.api.Test;
4546
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -80,8 +81,10 @@
8081
@Tag(Tags.RequiresFDB)
8182
public class FDBReverseDirectoryCacheTest {
8283
@RegisterExtension
84+
@Order(0)
8385
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
8486
@RegisterExtension
87+
@Order(1)
8588
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
8689

8790
private static final Logger logger = LoggerFactory.getLogger(FDBReverseDirectoryCacheTest.class);

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBStoreTimerTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.hamcrest.Matchers;
4444
import org.junit.jupiter.api.AfterEach;
4545
import org.junit.jupiter.api.BeforeEach;
46+
import org.junit.jupiter.api.Order;
4647
import org.junit.jupiter.api.Tag;
4748
import org.junit.jupiter.api.Test;
4849
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -76,8 +77,10 @@
7677
@Execution(ExecutionMode.CONCURRENT)
7778
public class FDBStoreTimerTest {
7879
@RegisterExtension
80+
@Order(0)
7981
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
8082
@RegisterExtension
83+
@Order(1)
8184
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
8285
FDBDatabase fdb;
8386
KeySpacePath path;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/FDBTypedRecordStoreTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.apple.foundationdb.tuple.Tuple;
3434
import com.apple.test.Tags;
3535
import org.junit.jupiter.api.BeforeEach;
36+
import org.junit.jupiter.api.Order;
3637
import org.junit.jupiter.api.Tag;
3738
import org.junit.jupiter.api.Test;
3839
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -47,8 +48,10 @@
4748
@Tag(Tags.RequiresFDB)
4849
public class FDBTypedRecordStoreTest {
4950
@RegisterExtension
51+
@Order(0)
5052
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
5153
@RegisterExtension
54+
@Order(1)
5255
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
5356
FDBDatabase fdb;
5457
KeySpacePath path;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/KeyValueCursorTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.apple.foundationdb.tuple.Tuple;
4242
import com.apple.test.Tags;
4343
import org.junit.jupiter.api.BeforeEach;
44+
import org.junit.jupiter.api.Order;
4445
import org.junit.jupiter.api.Tag;
4546
import org.junit.jupiter.api.Test;
4647
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -64,8 +65,10 @@
6465
@Tag(Tags.RequiresFDB)
6566
public class KeyValueCursorTest {
6667
@RegisterExtension
68+
@Order(0)
6769
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
6870
@RegisterExtension
71+
@Order(1)
6972
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
7073

7174
private FDBDatabase fdb;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/OneOfTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.apple.test.Tags;
3535
import com.google.protobuf.Message;
3636
import org.junit.jupiter.api.BeforeEach;
37+
import org.junit.jupiter.api.Order;
3738
import org.junit.jupiter.api.Tag;
3839
import org.junit.jupiter.api.Test;
3940
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -47,8 +48,10 @@
4748
@Tag(Tags.RequiresFDB)
4849
public class OneOfTest {
4950
@RegisterExtension
51+
@Order(0)
5052
final FDBDatabaseExtension dbExtension = new FDBDatabaseExtension();
5153
@RegisterExtension
54+
@Order(1)
5255
final TestKeySpacePathManagerExtension pathManager = new TestKeySpacePathManagerExtension(dbExtension);
5356
private FDBDatabase fdb;
5457
private KeySpacePath path;

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/OnlineIndexerMergeTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.junit.jupiter.api.Assertions;
5151
import org.junit.jupiter.api.Tag;
5252
import org.junit.jupiter.api.Test;
53+
import org.junit.jupiter.api.parallel.Isolated;
5354

5455
import javax.annotation.Nonnull;
5556
import javax.annotation.Nullable;
@@ -72,6 +73,7 @@
7273
* Tests specifically of {@link OnlineIndexer#mergeIndex()}.
7374
*/
7475
@Tag(Tags.RequiresFDB)
76+
@Isolated
7577
public class OnlineIndexerMergeTest extends FDBRecordStoreConcurrentTestBase {
7678

7779
private static final String INDEX_NAME = "mergableIndex";

fdb-record-layer-core/src/test/java/com/apple/foundationdb/record/provider/foundationdb/OnlineIndexerMutualTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.apple.test.Tags;
4242
import org.junit.jupiter.api.Tag;
4343
import org.junit.jupiter.api.Test;
44+
import org.junit.jupiter.api.parallel.Isolated;
4445
import org.junit.jupiter.params.ParameterizedTest;
4546
import org.junit.jupiter.params.provider.CsvSource;
4647
import org.slf4j.Logger;
@@ -75,6 +76,7 @@
7576
* Tests for mutually building indexes {@link OnlineIndexer}.
7677
*/
7778
@Tag(Tags.Slow)
79+
@Isolated
7880
class OnlineIndexerMutualTest extends OnlineIndexerTest {
7981
private static final Logger LOGGER = LoggerFactory.getLogger(OnlineIndexerMutualTest.class);
8082

0 commit comments

Comments
 (0)