ReplicationFanoutIT: Inherit from ReplicationDaemon Reduces duplication across the replication IT classes. More dedup is possible with the helper methods, but leave that for a future change. Change-Id: Iddd6dca9a4fe84b065954cd4dcec7289d7ed68a2
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationDaemon.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationDaemon.java index 815f140..063d4b4 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationDaemon.java +++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationDaemon.java
@@ -63,19 +63,6 @@ protected Path gitPath; protected FileBasedConfig config; - @Override - public void setUpTestPlugin() throws Exception { - gitPath = sitePaths.site_path.resolve("git"); - config = - new FileBasedConfig(sitePaths.etc_dir.resolve("replication.config").toFile(), FS.DETECTED); - config.save(); - setReplicationDestination( - "remote1", - "suffix1", - Optional.of("not-used-project")); // Simulates a full replication.config initialization - super.setUpTestPlugin(); - } - protected void setReplicationDestination( String remoteName, String replicaSuffix, Optional<String> project) throws IOException { setReplicationDestination( @@ -179,4 +166,14 @@ return false; } } + + protected void initConfig() throws IOException { + if (config == null) { + gitPath = sitePaths.site_path.resolve("git"); + config = + new FileBasedConfig( + sitePaths.etc_dir.resolve("replication.config").toFile(), FS.DETECTED); + config.save(); + } + } }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationFanoutIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationFanoutIT.java index fe70126..6121f0f 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationFanoutIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationFanoutIT.java
@@ -17,19 +17,14 @@ import static com.google.common.truth.Truth.assertThat; import static java.util.stream.Collectors.toList; -import com.google.common.flogger.FluentLogger; import com.google.common.io.MoreFiles; import com.google.common.io.RecursiveDeleteOption; -import com.google.gerrit.acceptance.LightweightPluginDaemonTest; import com.google.gerrit.acceptance.PushOneCommit.Result; import com.google.gerrit.acceptance.TestPlugin; import com.google.gerrit.acceptance.UseLocalDisk; -import com.google.gerrit.acceptance.testsuite.project.ProjectOperations; import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.annotations.PluginData; import com.google.gerrit.extensions.api.projects.BranchInput; -import com.google.gerrit.server.config.SitePaths; -import com.google.inject.Inject; import com.google.inject.Key; import com.googlesource.gerrit.plugins.replication.ReplicationTasksStorage.ReplicateRefUpdate; import java.io.IOException; @@ -55,29 +50,19 @@ @TestPlugin( name = "replication", sysModule = "com.googlesource.gerrit.plugins.replication.ReplicationModule") -public class ReplicationFanoutIT extends LightweightPluginDaemonTest { - private static final Optional<String> ALL_PROJECTS = Optional.empty(); - private static final FluentLogger logger = FluentLogger.forEnclosingClass(); - private static final int TEST_REPLICATION_DELAY = 1; - private static final Duration TEST_TIMEOUT = Duration.ofSeconds(TEST_REPLICATION_DELAY * 2); +public class ReplicationFanoutIT extends ReplicationDaemon { + private static final Duration TEST_TIMEOUT = + Duration.ofSeconds(TEST_REPLICATION_DELAY_SECONDS * 2); - @Inject private SitePaths sitePaths; - @Inject private ProjectOperations projectOperations; private Path pluginDataDir; - private Path gitPath; private Path storagePath; - private FileBasedConfig config; private ReplicationTasksStorage tasksStorage; @Override public void setUpTestPlugin() throws Exception { - gitPath = sitePaths.site_path.resolve("git"); - - config = - new FileBasedConfig(sitePaths.etc_dir.resolve("replication.config").toFile(), FS.DETECTED); - setAutoReload(); + initConfig(); + config.setBoolean("gerrit", null, "autoReload", true); config.save(); - setReplicationDestinationRemoteConfig("remote1", "suffix1", Optional.of("not-used-project")); super.setUpTestPlugin(); @@ -169,19 +154,10 @@ return repo.getRefDatabase().exactRef(branchName); } - private Ref checkedGetRef(Repository repo, String branchName) { - try { - return repo.getRefDatabase().exactRef(branchName); - } catch (Exception e) { - logger.atSevere().withCause(e).log("failed to get ref %s in repo %s", branchName, repo); - return null; - } - } - private void setReplicationDestinationRemoteConfig( String remoteName, String replicaSuffix, Optional<String> project) throws IOException { setReplicationDestinationRemoteConfig( - remoteName, Arrays.asList(replicaSuffix), project, TEST_REPLICATION_DELAY); + remoteName, Arrays.asList(replicaSuffix), project, TEST_REPLICATION_DELAY_SECONDS); } private FileBasedConfig setReplicationDestinationRemoteConfig( @@ -199,11 +175,6 @@ return remoteConfig; } - private void setAutoReload() throws IOException { - config.setBoolean("gerrit", null, "autoReload", true); - config.save(); - } - private void setReplicationDestination( FileBasedConfig config, List<String> replicaSuffixes, @@ -226,22 +197,6 @@ WaitUtil.waitUntil(waitCondition, TEST_TIMEOUT); } - private void reloadConfig() { - getAutoReloadConfigDecoratorInstance().reload(); - } - - private AutoReloadConfigDecorator getAutoReloadConfigDecoratorInstance() { - return getInstance(AutoReloadConfigDecorator.class); - } - - private <T> T getInstance(Class<T> classObj) { - return plugin.getSysInjector().getInstance(classObj); - } - - private Project.NameKey createTestProject(String name) throws Exception { - return projectOperations.newProject().name(name).create(); - } - private List<ReplicateRefUpdate> listWaitingTasks(String refRegex) { Pattern refmaskPattern = Pattern.compile(refRegex); return tasksStorage.listWaiting().stream()
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java index e62f85a..25440f8 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java
@@ -30,6 +30,7 @@ import com.google.inject.Inject; import java.io.IOException; import java.time.Duration; +import java.util.Optional; import java.util.function.Supplier; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.ObjectId; @@ -51,6 +52,16 @@ @Inject private DynamicSet<ProjectDeletedListener> deletedListeners; + @Override + public void setUpTestPlugin() throws Exception { + initConfig(); + setReplicationDestination( + "remote1", + "suffix1", + Optional.of("not-used-project")); // Simulates a full replication.config initialization + super.setUpTestPlugin(); + } + @Test public void shouldReplicateNewProject() throws Exception { setReplicationDestination("foo", "replica", ALL_PROJECTS);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationStorageIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationStorageIT.java index 991c045..9e28b24 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationStorageIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationStorageIT.java
@@ -27,6 +27,7 @@ import java.time.Duration; import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.regex.Pattern; import java.util.stream.Stream; import org.junit.Test; @@ -49,6 +50,11 @@ @Override public void setUpTestPlugin() throws Exception { + initConfig(); + setReplicationDestination( + "remote1", + "suffix1", + Optional.of("not-used-project")); // Simulates a full replication.config initialization super.setUpTestPlugin(); tasksStorage = plugin.getSysInjector().getInstance(ReplicationTasksStorage.class); }