OnCodeOwnerOverrrideIT: Fix flaky test If multiple override approvals are applied at once the order in which the message extensions appeared was random. Fix this by sorting the override approvals in OnCodeOwnerOverrride by name, so that the message extensions always appear in the same order. Signed-off-by: Edwin Kempin <ekempin@google.com> Change-Id: I3bc1d7c97f6e7a276500cdd689551b4a28fe6f3e
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/OnCodeOwnerOverride.java b/java/com/google/gerrit/plugins/codeowners/backend/OnCodeOwnerOverride.java index c200ae0..52ca037 100644 --- a/java/com/google/gerrit/plugins/codeowners/backend/OnCodeOwnerOverride.java +++ b/java/com/google/gerrit/plugins/codeowners/backend/OnCodeOwnerOverride.java
@@ -15,9 +15,11 @@ package com.google.gerrit.plugins.codeowners.backend; import static com.google.common.base.Preconditions.checkState; +import static com.google.common.collect.ImmutableList.toImmutableList; +import static java.util.Comparator.comparing; import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; import com.google.common.flogger.FluentLogger; import com.google.gerrit.entities.PatchSet; import com.google.gerrit.plugins.codeowners.backend.config.CodeOwnersPluginConfiguration; @@ -67,8 +69,10 @@ return Optional.empty(); } - ImmutableSet<RequiredApproval> overrideApprovals = - codeOwnersPluginConfiguration.getOverrideApproval(changeNotes.getProjectName()); + ImmutableList<RequiredApproval> overrideApprovals = + codeOwnersPluginConfiguration.getOverrideApproval(changeNotes.getProjectName()).stream() + .sorted(comparing(RequiredApproval::toString)) + .collect(toImmutableList()); List<String> messages = new ArrayList<>(); for (RequiredApproval overrideApproval : overrideApprovals) {
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java index 1628c03..08da420 100644 --- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java +++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java
@@ -389,9 +389,9 @@ + ")" + Pattern.quote( String.format( - "\n\nBy voting Owners-Override+1 the code-owners submit requirement is" + "\n\nBy voting Global-Override+1 the code-owners submit requirement is" + " overridden by %s\n\n" - + "By voting Global-Override+1 the code-owners submit requirement is" + + "By voting Owners-Override+1 the code-owners submit requirement is" + " overridden by %s\n", admin.fullName(), admin.fullName()))); }