test(integ-test): exclude suites integTestRemote cannot support - #5709
Open
mengweieric wants to merge 1 commit into
Open
test(integ-test): exclude suites integTestRemote cannot support#5709mengweieric wants to merge 1 commit into
mengweieric wants to merge 1 commit into
Conversation
mengweieric
force-pushed
the
fix/integtestremote-mirror-integtest-exclusions
branch
from
August 20, 2026 04:01
54f7af5 to
0210c53
Compare
mengweieric
force-pushed
the
fix/integtestremote-mirror-integtest-exclusions
branch
from
August 20, 2026 04:05
0210c53 to
6289059
Compare
mengweieric
force-pushed
the
fix/integtestremote-mirror-integtest-exclusions
branch
from
August 20, 2026 04:15
2ce0abe to
f8658e8
Compare
mengweieric
force-pushed
the
fix/integtestremote-mirror-integtest-exclusions
branch
from
August 20, 2026 04:16
f8658e8 to
b53453a
Compare
mengweieric
marked this pull request as ready for review
August 20, 2026 04:52
mengweieric
requested review from
LantaoJin,
RyanL1997,
Swiddis,
acarbonetto,
ahkcs,
anirudha,
dai-chen,
joshuali925,
noCharger,
penghuo,
ps48,
qianheng-aws,
songkant-aws,
vamsimanohar,
ykmr1224 and
yuancu
as code owners
August 20, 2026 04:52
mengweieric
force-pushed
the
fix/integtestremote-mirror-integtest-exclusions
branch
from
August 23, 2026 22:13
b53453a to
e83160d
Compare
Contributor
PR Code Analyzer ❗AI-powered 'Code-Diff-Analyzer' found issues on commit e83160d.
The table above displays the top 10 most important findings. Pull Requests Author(s): Please update your Pull Request according to the report above. Repository Maintainer(s): You can Thanks. |
integTestRemote runs against an externally provided cluster. It cannot install plugins, cannot set node-level settings, and unlike integTest it does not start Prometheus. Three groups of suites depend on one of those and are still selected by it, so they fail during setup instead of being skipped. Analytics-engine suites. AnalyticsEngineCompatIT, AnalyticsEngineSecurityIT and AnalyticsEngineProfileIT create composite (parquet-backed) indices and depend on opensearch.experimental.feature.pluggable.dataformat.enabled and opensearch.experimental.feature.transport.stream.enabled. Each has a dedicated task whose testClusters block provisions that stack. Added as an else branch on the existing analyticsEnabled gate, so all analytics-engine filtering for this task stays in one place and the suites still run when the analytics-engine route is active. AnalyticsEngineSecurityIT is also the slowest suite in the run: its setup polls the security configuration API 60 times at one second intervals and only marks itself initialised on success, so every test method repeats the full wait before failing. Prometheus suites. integTest starts Prometheus itself (dependsOn startPrometheus) and so only skips these when the caller passes -DignorePrometheus. integTestRemote has no such dependency and cannot supply Prometheus for an external cluster. Datasource suites. Creating or updating a datasource requires plugins.query.datasources.encryption.masterkey, which EncryptorImpl validates as "a required config for using create and update datasource APIs" and which must be present in opensearch.yml on every node. testClusters supplies it for integTest and yamlRestTest; integTestRemote sets no cluster settings at all and cannot add a node config to an externally provided cluster. The last two groups are excluded unconditionally, the same way integTest unconditionally excludes the analytics-engine suites it cannot provision. integTest continues to cover all of them, so no coverage is lost. Signed-off-by: Eric Wei <mengwei.eric@gmail.com>
mengweieric
force-pushed
the
fix/integtestremote-mirror-integtest-exclusions
branch
from
August 23, 2026 22:17
e83160d to
a723993
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
integTestRemoteruns against an externally provided cluster (-Dtests.rest.cluster). It cannot install plugins, cannot set node-level settings, and — unlikeintegTest— does not start Prometheus. Three groups of suites need one of those, so instead of being skipped they are selected and fail during setup.AnalyticsEngineCompatIT,AnalyticsEngineSecurityIT,AnalyticsEngineProfileITopensearch.experimental.feature.pluggable.dataformat.enabled/...transport.stream.enabledPrometheusDataSourceCommandsIT,ShowDataSourcesCommandIT,InformationSchemaCommandITintegTeststarts one viadependsOn startPrometheus, this task has no such dependencyDataSourceAPIsIT,DataSourceEnabledITplugins.query.datasources.encryption.masterkey, whichEncryptorImplvalidates as "a required config for using create and update datasource APIs" and which must be inopensearch.ymlon every nodeEach group already has a task that provisions what it needs: the dedicated
analyticsEngine*ITtasks, andintegTest/yamlRestTestwhosetestClustersblocks start Prometheus and set the masterkey. Those are untouched, so no coverage is lost.Change
The analytics-engine group is added as an
elseon the existinganalyticsEnabledgate, so those suites still run when the analytics-engine route is active and all analytics-engine filtering for this task stays in one place.The Prometheus and datasource groups are excluded unconditionally, as
integTestalready does for the analytics-engine suites it cannot provision. Class-level exclusion is needed rather than method filtering because these suites also fail in@After/@AfterClasscleanup, which a test filter cannot suppress.Verified by inspecting the task's resolved filter state at configuration time: with no system properties set all eight suites are excluded and the pre-existing
bwc.*ITexclusion is unaffected; with-Dtests.analytics.parquet_indices=truethe analytics-engine suites are no longer excluded while the other two groups remain.Not included: the security package
integTestalso excludesorg/opensearch/sql/security/**because those suites run in:integTestWithSecurity. That does not carry over:integTestWithSecurityuses its ownconfigureSecurityPlugin()cluster and does not cover the remote case, andintegTestRemoteforwardshttps,userandpasswordprecisely so it can target a secured cluster — where those suites are meaningful. Whether they can run depends on the target cluster, which Gradle cannot determine at configuration time, so that case needs a runtime check in the tests rather than a static exclusion. Left for separate work.Related Issues
No separate tracking issue.
Check List
--signoffor-s.Unchecked items are not applicable: this changes a test task's exclusion list and adds no functionality, API surface or user-facing behaviour.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.