blob: 59aa918d4f3dc3a62032574f9b437c5241d824e5 [file]
load("@rules_java//java:defs.bzl", "java_library")
load("//tools/bzl:junit.bzl", "junit_tests")
load(
"//tools/bzl:plugin.bzl",
"PLUGIN_DEPS",
"PLUGIN_TEST_DEPS",
"gerrit_plugin",
)
gerrit_plugin(
name = "index-opensearch",
srcs = glob(["src/main/java/**/*.java"]),
deps = [
"//java/com/google/gerrit/entities/converter:converters",
"//java/com/google/gerrit/entities/converter:proto_converter",
"@opensearch-rest-client//jar",
"@httpclient5//jar",
"@httpcore5//jar",
"@httpcore5-h2//jar",
"@httpcore5-reactive//jar",
"@reactive-streams//jar",
"@reactor-core//jar",
"@jackson-core//jar",
],
)
OPENSEARCH_DEPS = [
"@docker-java-api//jar",
"@docker-java-transport//jar",
"@docker-java-transport-zerodep//jar",
"@duct-tape//jar",
"@httpclient5//jar",
"@httpcore5//jar",
"@jackson-annotations//jar",
"@jna//jar",
"@testcontainers//jar",
"@opensearch-testcontainers//jar",
]
java_library(
name = "index-opensearch__plugin_test_deps",
testonly = True,
srcs = [],
visibility = ["//visibility:public"],
exports = OPENSEARCH_DEPS,
)
java_library(
name = "opensearch_test_utils",
testonly = True,
srcs = glob(
["src/test/java/**/*.java"],
exclude = ["src/test/java/**/*Test.java"],
),
visibility = ["//visibility:public"],
deps = OPENSEARCH_DEPS + PLUGIN_DEPS + PLUGIN_TEST_DEPS + [
":index-opensearch__plugin",
],
)
QUERY_TESTS_DEP = "//javatests/com/google/gerrit/server/query/%s:abstract_query_tests"
TYPES = [
"account",
"change",
"group",
"project",
]
SUFFIX = "sTest.java"
# Compiles the abstract base classes (e.g. AbstractOpenQueryChangesTest)
# into a library so the concrete version-specific test targets can depend on them.
ABSTRACT_OPENSEARCH_TESTS = {i: "OpenSearchAbstractQuery*" + i.capitalize() + SUFFIX for i in TYPES}
[java_library(
name = "abstract_open_query_%ss_test" % name,
testonly = True,
srcs = glob(["src/test/java/com/google/gerrit/opensearch/" + src]),
visibility = ["//visibility:public"],
deps = OPENSEARCH_DEPS + PLUGIN_TEST_DEPS + [
QUERY_TESTS_DEP % name,
":opensearch_test_utils",
":index-opensearch__plugin",
],
) for name, src in ABSTRACT_OPENSEARCH_TESTS.items()]
# One dict per supported OpenSearch major version.
OPENSEARCH_TESTS_V3 = {i: "OpenSearchV3Query" + i.capitalize() + SUFFIX for i in TYPES}
[junit_tests(
name = "open_query_%ss_test_V3" % name,
size = "enormous",
srcs = ["src/test/java/com/google/gerrit/opensearch/" + src],
tags = [
"docker",
"exclusive",
"opensearch",
"opensearch_V3",
],
deps = OPENSEARCH_DEPS + PLUGIN_TEST_DEPS + [
QUERY_TESTS_DEP % name,
":opensearch_test_utils",
":index-opensearch__plugin",
":abstract_open_query_%ss_test" % name,
],
) for name, src in OPENSEARCH_TESTS_V3.items()]
# Small unit tests (version/config/etc.) — excludes the large query integration tests.
junit_tests(
name = "index-opensearch_tests",
size = "small",
srcs = glob(
["src/test/java/**/*Test.java"],
exclude = ["src/test/java/**/Open*Query*" + SUFFIX],
),
tags = ["opensearch"],
deps = OPENSEARCH_DEPS + PLUGIN_TEST_DEPS + [
":opensearch_test_utils",
":index-opensearch__plugin",
],
)