| 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", |
| ], |
| ) |