Skip to content

Commit

Permalink
fix: flaky test ClusterMetadataManifestTests (#9728) (#9804)
Browse files Browse the repository at this point in the history
We're comparing for unequal manifests but randomBoolean() has a high
probability of getting clashed because of a small search-space, making
test flaky. Let's limit randomization here.


(cherry picked from commit 6fe9388)

Signed-off-by: Rohit Ashiwal <rashiwal@amazon.com>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
1 parent 5729c64 commit 9c707c9
Showing 1 changed file with 111 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import org.opensearch.gateway.remote.ClusterMetadataManifest.UploadedIndexMetadata;
import org.opensearch.test.EqualsHashCodeTestUtils;
import org.opensearch.test.OpenSearchTestCase;
import org.opensearch.test.VersionUtils;

import java.io.IOException;
import java.util.ArrayList;
Expand Down Expand Up @@ -52,53 +51,120 @@ public void testClusterMetadataManifestXContent() throws IOException {

public void testClusterMetadataManifestSerializationEqualsHashCode() {
ClusterMetadataManifest initialManifest = new ClusterMetadataManifest(
randomNonNegativeLong(),
randomNonNegativeLong(),
randomAlphaOfLength(10),
randomAlphaOfLength(10),
VersionUtils.randomOpenSearchVersion(random()),
randomAlphaOfLength(10),
randomBoolean(),
1337L,
7L,
"HrYF3kP5SmSPWtKlWhnNSA",
"6By9p9G0Rv2MmFYJcPAOgA",
Version.CURRENT,
"B10RX1f5RJenMQvYccCgSQ",
true,
randomUploadedIndexMetadataList()
);
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
switch (randomInt(7)) {
case 0:
builder.clusterTerm(randomNonNegativeLong());
break;
case 1:
builder.stateVersion(randomNonNegativeLong());
break;
case 2:
builder.clusterUUID(randomAlphaOfLength(10));
break;
case 3:
builder.stateUUID(randomAlphaOfLength(10));
break;
case 4:
builder.opensearchVersion(VersionUtils.randomOpenSearchVersion(random()));
break;
case 5:
builder.nodeId(randomAlphaOfLength(10));
break;
case 6:
builder.committed(randomBoolean());
break;
case 7:
builder.indices(randomUploadedIndexMetadataList());
break;
{ // Mutate Cluster Term
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.clusterTerm(1338L);
return builder.build();
}
return builder.build();
}
);
);
}
{ // Mutate State Version
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.stateVersion(8L);
return builder.build();
}
);
}
{ // Mutate Cluster UUID
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.clusterUUID("efOkMiPbQZCUQQgtFWdbPw");
return builder.build();
}
);
}
{ // Mutate State UUID
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.stateUUID("efOkMiPbQZCUQQgtFWdbPw");
return builder.build();
}
);
}
{ // Mutate OpenSearch Version
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.opensearchVersion(Version.V_EMPTY);
return builder.build();
}
);
}
{ // Mutate Committed State
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.committed(false);
return builder.build();
}
);
}
{ // Mutate Indices
EqualsHashCodeTestUtils.checkEqualsAndHashCode(
initialManifest,
orig -> OpenSearchTestCase.copyWriteable(
orig,
new NamedWriteableRegistry(Collections.emptyList()),
ClusterMetadataManifest::new
),
manifest -> {
ClusterMetadataManifest.Builder builder = ClusterMetadataManifest.builder(manifest);
builder.indices(randomUploadedIndexMetadataList());
return builder.build();
}
);
}
}

private List<UploadedIndexMetadata> randomUploadedIndexMetadataList() {
Expand Down

0 comments on commit 9c707c9

Please sign in to comment.