daml/ledger/ledger-api-tests/conformance.bzl
Samir Talwar 83ed13d799
Split the ledger-api-test-tool into libraries, under /ledger/ledger-api-tests. [KVL-1076] (#12771)
* Move //ledger/ledger-api-test-tool to //ledger/ledger-api-tests/tool.

And conformance.bzl to //ledger/ledger-api-tests.

* Move test tool infra to //ledger/ledger-api-tests/infrastructure.

* Split the ledger API test tool into smaller libraries.

There is no change to behavior.

CHANGELOG_BEGIN
CHANGELOG_END

* ledger-api-tests: Encapsulate performance tests.

* ledger-api-tests: Extract a "runner" library.

* ledger-api-tests: Publish libraries to Maven Central.

* ledger-api-tests: Fix Scaladoc so it compiles correctly.

Unfortunately I had to remove some Scaladoc in ActiveContractsServiceIT
which is incorrectly interpreted as not being attached to anything.
Fortunately, it's not actually that helpful.

* compatibility: Fix paths to the Ledger API Test Tool.

* Fix release types for ledger API test libraries.

* test-common: Publish generated Scala.

These libraries are dependencies of the ledger API tests components.

* ledger-api-tests: Use "com.daml" as the group ID everywhere.

* ledger-api-tests: Check that tests in `--additional` are valid.

* compatibility: Fix a reference to ledger-api-test-tool I missed.
2022-02-10 13:25:23 +00:00

63 lines
2.5 KiB
Python

# Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
load(
"//bazel_tools/client_server:client_server_test.bzl",
"client_server_test",
)
load("@os_info//:os_info.bzl", "is_windows")
load("@scala_version//:index.bzl", "scala_major_version")
load("//daml-lf/language:daml-lf.bzl", "lf_version_configuration", "lf_versions_aggregate")
def conformance_test(
name,
server,
server_args = [],
extra_data = [],
ports = [6865],
test_tool_args = [],
tags = [],
runner = "@//bazel_tools/client_server/runner_with_port_check",
lf_versions = ["default"],
flaky = False):
for lf_version in lf_versions_aggregate(lf_versions):
extra_server_args = ["--daml-lf-dev-mode-unsafe"] if lf_version == lf_version_configuration.get("preview") or lf_version == lf_version_configuration.get("dev") else []
if not is_windows:
test_name = "-".join([name, lf_version])
client_server_test(
name = test_name,
runner = runner,
runner_args = ["%s" % port for port in ports],
timeout = "long",
client = "//ledger/ledger-api-tests/tool:tool-%s" % lf_version,
client_args = test_tool_args + ["localhost:%s" % port for port in ports],
data = extra_data,
server = server,
server_args = server_args + extra_server_args,
tags = [
"dont-run-on-darwin",
"exclusive",
] + tags,
flaky = flaky,
)
if lf_version == lf_version_configuration.get("default"):
native.test_suite(
name = name,
tests = [test_name],
tags = tags,
)
def server_conformance_test(name, servers, server_args = [], test_tool_args = [], flaky = False, lf_versions = ["default"]):
for server_name, server in servers.items():
test_name = "-".join([name, server_name])
conformance_test(
name = test_name,
extra_data = server.get("extra_data", []),
server = server["binary"],
server_args = server.get("server_args", []) + server_args,
test_tool_args = server.get("test_tool_args", []) + test_tool_args,
tags = server.get("tags", []),
lf_versions = lf_versions,
flaky = flaky,
)