You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/06/09 03:47:27 UTC
[pulsar] 02/02: [refactor][test] Move assert equals and retry to a base class (#14815)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit efc36b31f510548f0c93e1201c9ffe5e24464280
Author: Kai Wang <kw...@streamnative.io>
AuthorDate: Thu Mar 24 23:09:20 2022 +0800
[refactor][test] Move assert equals and retry to a base class (#14815)
(cherry picked from commit d0d9aa583b1ed1fc4387443d0d4d81c616ad77ff)
---
.../pulsar/metadata/BaseMetadataStoreTest.java | 33 ++++++++++++++++++++++
.../apache/pulsar/metadata/LeaderElectionTest.java | 1 -
.../apache/pulsar/metadata/MetadataCacheTest.java | 32 ---------------------
3 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/BaseMetadataStoreTest.java b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/BaseMetadataStoreTest.java
index 8dd2c017650..4dc3fb3589c 100644
--- a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/BaseMetadataStoreTest.java
+++ b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/BaseMetadataStoreTest.java
@@ -18,6 +18,7 @@
*/
package org.apache.pulsar.metadata;
+import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import io.etcd.jetcd.launcher.EtcdCluster;
import io.etcd.jetcd.launcher.EtcdClusterFactory;
@@ -25,6 +26,7 @@ import java.io.File;
import java.net.URI;
import java.util.UUID;
import java.util.concurrent.CompletionException;
+import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import org.apache.pulsar.tests.TestRetrySupport;
@@ -103,4 +105,35 @@ public abstract class BaseMetadataStoreTest extends TestRetrySupport {
static void assertException(Throwable t, Class<?> clazz) {
assertTrue(clazz.isInstance(t), String.format("Exception %s is not of type %s", t.getClass(), clazz));
}
+
+ public static void assertEqualsAndRetry(Supplier<Object> actual,
+ Object expected,
+ Object expectedAndRetry) throws Exception {
+ assertEqualsAndRetry(actual, expected, expectedAndRetry, 5, 100);
+ }
+
+ public static void assertEqualsAndRetry(Supplier<Object> actual,
+ Object expected,
+ Object expectedAndRetry,
+ int retryCount,
+ long intSleepTimeInMillis) throws Exception {
+ assertTrue(retryStrategically((__) -> {
+ if (actual.get().equals(expectedAndRetry)) {
+ return false;
+ }
+ assertEquals(actual.get(), expected);
+ return true;
+ }, retryCount, intSleepTimeInMillis));
+ }
+
+ public static boolean retryStrategically(Predicate<Void> predicate, int retryCount, long intSleepTimeInMillis)
+ throws Exception {
+ for (int i = 0; i < retryCount; i++) {
+ if (predicate.test(null)) {
+ return true;
+ }
+ Thread.sleep(intSleepTimeInMillis + (intSleepTimeInMillis * i));
+ }
+ return false;
+ }
}
diff --git a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LeaderElectionTest.java b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LeaderElectionTest.java
index f1292811424..97587b1520e 100644
--- a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LeaderElectionTest.java
+++ b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LeaderElectionTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.pulsar.metadata;
-import static org.apache.pulsar.metadata.MetadataCacheTest.assertEqualsAndRetry;
import static org.testng.Assert.assertEquals;
import java.util.EnumSet;
import java.util.Optional;
diff --git a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/MetadataCacheTest.java b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/MetadataCacheTest.java
index 1c663abd327..be6a03d0eac 100644
--- a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/MetadataCacheTest.java
+++ b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/MetadataCacheTest.java
@@ -36,7 +36,6 @@ import java.util.TreeMap;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Predicate;
import java.util.function.Supplier;
import lombok.AllArgsConstructor;
import lombok.Cleanup;
@@ -587,35 +586,4 @@ public class MetadataCacheTest extends BaseMetadataStoreTest {
assertEquals(res.getValue().b, 2);
assertEquals(res.getValue().path, key1);
}
-
- public static void assertEqualsAndRetry(Supplier<Object> actual,
- Object expected,
- Object expectedAndRetry) throws Exception {
- assertEqualsAndRetry(actual, expected, expectedAndRetry, 5, 100);
- }
-
- public static void assertEqualsAndRetry(Supplier<Object> actual,
- Object expected,
- Object expectedAndRetry,
- int retryCount,
- long intSleepTimeInMillis) throws Exception {
- assertTrue(retryStrategically((__) -> {
- if (actual.get().equals(expectedAndRetry)) {
- return false;
- }
- assertEquals(actual.get(), expected);
- return true;
- }, retryCount, intSleepTimeInMillis));
- }
-
- public static boolean retryStrategically(Predicate<Void> predicate, int retryCount, long intSleepTimeInMillis)
- throws Exception {
- for (int i = 0; i < retryCount; i++) {
- if (predicate.test(null) || i == (retryCount - 1)) {
- return true;
- }
- Thread.sleep(intSleepTimeInMillis + (intSleepTimeInMillis * i));
- }
- return false;
- }
}