[Test] Separate testAcceptsMismatchedServerlessBuildHash (#122570)

This PR moves
TransportServiceHandshakeTests.testAcceptsMismatchedServerlessBuildHash
to its own test job to ensure the expected system property is always set
correctly.

Resolves: #122565
This commit is contained in:
Yang Wang 2025-02-18 10:15:08 +11:00 committed by GitHub
parent 2f4abbf870
commit 2eb0d00b8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 38 additions and 35 deletions

View file

@ -144,18 +144,30 @@ if (buildParams.isSnapshotBuild() == false) {
tasks.named("test").configure { tasks.named("test").configure {
systemProperty 'es.insecure_network_trace_enabled', 'true' systemProperty 'es.insecure_network_trace_enabled', 'true'
filter {
excludeTestsMatching("*.TransportServiceHandshakeTests.testAcceptsMismatchedServerlessBuildHash")
}
excludes << '**/IndexSettingsOverrideTests.class' excludes << '**/IndexSettingsOverrideTests.class'
} }
TaskProvider<Test> indexSettingsOverrideTest = tasks.register("indexSettingsOverrideTest", Test) { // There are tests rely on system properties to be configured differently. They must run in a separate test job
// since the default does not work for them and configuring the system properties inside the test class/method
// is too late because fields based on the system properties are often initialized statically.
TaskProvider<Test> systemPropertiesOverrideTest = tasks.register("systemPropertiesOverrideTest", Test) {
include '**/IndexSettingsOverrideTests.class' include '**/IndexSettingsOverrideTests.class'
include '**/TransportServiceHandshakeTests.class'
filter {
includeTestsMatching("*.TransportServiceHandshakeTests.testAcceptsMismatchedServerlessBuildHash")
includeTestsMatching("*.IndexSettingsOverrideTests.*")
}
systemProperty 'es.stateless.allow.index.refresh_interval.override', 'true' systemProperty 'es.stateless.allow.index.refresh_interval.override', 'true'
systemProperty 'es.serverless_transport', 'true'
classpath = sourceSets.test.runtimeClasspath classpath = sourceSets.test.runtimeClasspath
testClassesDirs = sourceSets.test.output.classesDirs testClassesDirs = sourceSets.test.output.classesDirs
} }
tasks.named("check").configure { tasks.named("check").configure {
dependsOn(indexSettingsOverrideTest) dependsOn(systemPropertiesOverrideTest)
} }
tasks.named("thirdPartyAudit").configure { tasks.named("thirdPartyAudit").configure {

View file

@ -22,7 +22,6 @@ import org.elasticsearch.common.network.NetworkService;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.common.util.PageCacheRecycler;
import org.elasticsearch.core.Releasable; import org.elasticsearch.core.Releasable;
import org.elasticsearch.core.SuppressForbidden;
import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.TimeValue;
import org.elasticsearch.index.IndexVersion; import org.elasticsearch.index.IndexVersion;
import org.elasticsearch.index.IndexVersions; import org.elasticsearch.index.IndexVersions;
@ -373,13 +372,8 @@ public class TransportServiceHandshakeTests extends ESTestCase {
assertFalse(transportServiceA.nodeConnected(discoveryNode)); assertFalse(transportServiceA.nodeConnected(discoveryNode));
} }
@SuppressForbidden(reason = "Sets property for testing")
public void testAcceptsMismatchedServerlessBuildHash() { public void testAcceptsMismatchedServerlessBuildHash() {
assumeTrue("Current build needs to be a snapshot", Build.current().isSnapshot()); assumeTrue("Current build needs to be a snapshot", Build.current().isSnapshot());
assumeTrue("Security manager needs to be disabled", System.getSecurityManager() == null);
System.setProperty(TransportService.SERVERLESS_TRANSPORT_SYSTEM_PROPERTY, Boolean.TRUE.toString()); // security manager blocks
// this
try {
final DisruptingTransportInterceptor transportInterceptorA = new DisruptingTransportInterceptor(); final DisruptingTransportInterceptor transportInterceptorA = new DisruptingTransportInterceptor();
final DisruptingTransportInterceptor transportInterceptorB = new DisruptingTransportInterceptor(); final DisruptingTransportInterceptor transportInterceptorB = new DisruptingTransportInterceptor();
transportInterceptorA.setModifyBuildHash(true); transportInterceptorA.setModifyBuildHash(true);
@ -404,9 +398,6 @@ public class TransportServiceHandshakeTests extends ESTestCase {
); );
AbstractSimpleTransportTestCase.connectToNode(transportServiceA, transportServiceB.getLocalNode(), TestProfiles.LIGHT_PROFILE); AbstractSimpleTransportTestCase.connectToNode(transportServiceA, transportServiceB.getLocalNode(), TestProfiles.LIGHT_PROFILE);
assertTrue(transportServiceA.nodeConnected(transportServiceB.getLocalNode())); assertTrue(transportServiceA.nodeConnected(transportServiceB.getLocalNode()));
} finally {
System.clearProperty(TransportService.SERVERLESS_TRANSPORT_SYSTEM_PROPERTY);
}
} }
public void testAcceptsMismatchedBuildHashFromDifferentVersion() { public void testAcceptsMismatchedBuildHashFromDifferentVersion() {