mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
be4e06427f
* Support adding tests as an hidden option * Simplify existing suites CHANGELOG_BEGIN CHANGELOG_END * Remove stale conformance suites from build.yml * `--add` -> ``--additional` * Re-add `--all-tests` as deprecated CLI option to be tested * Move sandbox-classic pruning test to wall clock again * Run KVCommandDeduplicationIT for sandbox append-only * Tidy-up * Also add participant pruning test to ledger-on-memory/single-participant * Remove KVCommandDeduplicationIT on ledger-on-memory/append-only * Run the full suite plus pruning (rather than just pruning) for ledger-on-memory with multiple participants and append-only * Add KVCommandDeduplicationIT to ledger-on-memory append-only * Exclude ConfigManagementServiceIT from ledger-on-memory append-only multi-participant * Tidy-up * Use KVCommandDeduplicationIT for sandbox-on-x too * Fix merge Add max dedup duration arg to all the test suites that include command dedup tests * Make `--include` and `--additional` mutually exclusive * Uniform formatting of multi-line strings * Move exclusions after additions as they are applied last * Re-disable deduplication test on sandbox with static time * Re-disable deduplication test on sandbox-on-x
347 lines
12 KiB
Python
347 lines
12 KiB
Python
# Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
load("//bazel_tools:scala.bzl", "da_scala_binary", "da_scala_library", "da_scala_test_suite")
|
|
load("//ledger/ledger-api-test-tool:conformance.bzl", "server_conformance_test")
|
|
load("@os_info//:os_info.bzl", "is_windows")
|
|
load("@build_environment//:configuration.bzl", "mvn_version")
|
|
|
|
alias(
|
|
name = "sandbox",
|
|
actual = "sandbox-ce",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
[
|
|
da_scala_library(
|
|
name = "sandbox-{}".format(edition),
|
|
srcs = glob(["src/main/scala/**/*.scala"]),
|
|
# Do not include logback.xml into the library: let the user
|
|
# of the sandbox-as-a-library decide how to log.
|
|
resources = ["//ledger/sandbox-common:src/main/resources/banner.txt"],
|
|
scala_deps = [
|
|
"@maven//:com_github_scopt_scopt",
|
|
"@maven//:com_typesafe_akka_akka_actor",
|
|
"@maven//:com_typesafe_akka_akka_stream",
|
|
"@maven//:org_scala_lang_modules_scala_java8_compat",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
],
|
|
tags = ["maven_coordinates=com.daml:sandbox:__VERSION__"],
|
|
visibility = [
|
|
"//visibility:public",
|
|
],
|
|
runtime_deps = [
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:ch_qos_logback_logback_core",
|
|
"@maven//:com_h2database_h2",
|
|
"@maven//:org_postgresql_postgresql",
|
|
"@maven//:org_xerial_sqlite_jdbc",
|
|
],
|
|
deps = [
|
|
"//daml-lf/archive:daml_lf_archive_reader",
|
|
"//daml-lf/archive:daml_lf_dev_archive_proto_java",
|
|
"//daml-lf/data",
|
|
"//daml-lf/engine",
|
|
"//daml-lf/language",
|
|
"//daml-lf/transaction",
|
|
"//language-support/scala/bindings",
|
|
"//ledger/caching",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-common",
|
|
"//ledger/ledger-api-domain",
|
|
"//ledger/ledger-api-health",
|
|
"//ledger/ledger-configuration",
|
|
"//ledger/ledger-on-sql",
|
|
"//ledger/ledger-resources",
|
|
"//ledger/metrics",
|
|
"//ledger/participant-integration-api",
|
|
"//ledger/participant-state",
|
|
"//ledger/participant-state-metrics",
|
|
"//ledger/participant-state/kvutils",
|
|
"//ledger/sandbox-common:sandbox-common-{}".format(edition),
|
|
"//ledger-service/cli-opts",
|
|
"//libs-scala/build-info",
|
|
"//libs-scala/contextualized-logging",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/resources",
|
|
"//libs-scala/resources-akka",
|
|
"//libs-scala/resources-grpc",
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:com_typesafe_config",
|
|
"@maven//:org_slf4j_slf4j_api",
|
|
],
|
|
)
|
|
for edition in [
|
|
"ce",
|
|
"ee",
|
|
]
|
|
]
|
|
|
|
da_scala_binary(
|
|
name = "sandbox-binary",
|
|
main_class = "com.daml.platform.sandboxnext.Main",
|
|
resources = ["//ledger/sandbox-common:src/main/resources/logback.xml"],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":sandbox",
|
|
],
|
|
)
|
|
|
|
da_scala_binary(
|
|
name = "sandbox-ephemeral-postgresql",
|
|
main_class = "com.daml.platform.sandboxnext.persistence.MainWithEphemeralPostgresql",
|
|
resources = ["//ledger/sandbox-common:src/main/resources/logback.xml"],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":sandbox",
|
|
":sandbox-scala-tests-lib",
|
|
],
|
|
)
|
|
|
|
da_scala_library(
|
|
name = "sandbox-scala-tests-lib",
|
|
srcs = glob(["src/test/lib/**/*.scala"]),
|
|
scala_deps = [
|
|
"@maven//:com_typesafe_akka_akka_actor",
|
|
"@maven//:com_typesafe_akka_akka_stream",
|
|
"@maven//:org_scalactic_scalactic",
|
|
"@maven//:org_scalatest_scalatest_core",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
],
|
|
scala_runtime_deps = [
|
|
"@maven//:com_typesafe_akka_akka_slf4j",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
runtime_deps = [
|
|
"@maven//:com_h2database_h2",
|
|
"@maven//:org_postgresql_postgresql",
|
|
],
|
|
deps = [
|
|
":sandbox",
|
|
"//daml-lf/data",
|
|
"//language-support/scala/bindings",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger-api/testing-utils",
|
|
"//ledger/caching",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-common",
|
|
"//ledger/ledger-api-domain",
|
|
"//ledger/ledger-configuration",
|
|
"//ledger/ledger-resources",
|
|
"//ledger/participant-integration-api",
|
|
"//ledger/participant-integration-api:participant-integration-api-tests-lib",
|
|
"//ledger/sandbox-common",
|
|
"//ledger/sandbox-common:sandbox-common-scala-tests-lib",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/postgresql-testing",
|
|
"//libs-scala/resources",
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:io_netty_netty_handler",
|
|
"@maven//:org_scalatest_scalatest_compatible",
|
|
"@maven//:org_slf4j_slf4j_api",
|
|
],
|
|
)
|
|
|
|
openssl_executable = "@openssl_dev_env//:bin/openssl" if not is_windows else "@openssl_dev_env//:usr/bin/openssl.exe"
|
|
|
|
# The reset service is cursed so we mark all tests involving it as flaky.
|
|
reset_service_pattern = "src/test/suite/**/*ResetService*.scala"
|
|
|
|
[
|
|
da_scala_test_suite(
|
|
name = "sandbox-tests{}".format(suffix),
|
|
srcs = glob(
|
|
[pattern],
|
|
exclude = exclusions,
|
|
),
|
|
data = [
|
|
"//ledger/test-common:dar-files",
|
|
"//ledger/test-common/test-certificates",
|
|
openssl_executable,
|
|
],
|
|
flaky = flaky,
|
|
jvm_flags = [
|
|
"-Djava.security.debug=\"certpath ocsp\"", # This facilitates debugging of the OCSP checks mechanism
|
|
],
|
|
resources = glob(["src/test/resources/**/*"]),
|
|
scala_deps = [
|
|
"@maven//:com_typesafe_akka_akka_actor",
|
|
"@maven//:com_typesafe_akka_akka_stream",
|
|
"@maven//:com_typesafe_akka_akka_stream_testkit",
|
|
"@maven//:com_typesafe_akka_akka_testkit",
|
|
"@maven//:org_mockito_mockito_scala",
|
|
"@maven//:org_scalacheck_scalacheck",
|
|
"@maven//:org_scalactic_scalactic",
|
|
"@maven//:org_scalatest_scalatest_core",
|
|
"@maven//:org_scalatest_scalatest_matchers_core",
|
|
"@maven//:org_scalatest_scalatest_shouldmatchers",
|
|
"@maven//:org_scalatest_scalatest_wordspec",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
],
|
|
deps = [
|
|
":sandbox",
|
|
":sandbox-scala-tests-lib",
|
|
"//bazel_tools/runfiles:scala_runfiles",
|
|
"//daml-lf/archive:daml_lf_archive_reader",
|
|
"//daml-lf/archive:daml_lf_dev_archive_proto_java",
|
|
"//daml-lf/data",
|
|
"//daml-lf/engine",
|
|
"//daml-lf/interpreter",
|
|
"//daml-lf/language",
|
|
"//daml-lf/transaction",
|
|
"//daml-lf/transaction-test-lib",
|
|
"//language-support/scala/bindings",
|
|
"//ledger-api/rs-grpc-akka",
|
|
"//ledger-api/rs-grpc-akka:rs-grpc-akka-tests-lib",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger-api/sample-service",
|
|
"//ledger-api/testing-utils",
|
|
"//ledger/caching",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-client",
|
|
"//ledger/ledger-api-common",
|
|
"//ledger/ledger-api-common:ledger-api-common-scala-tests-lib",
|
|
"//ledger/ledger-api-domain",
|
|
"//ledger/ledger-api-health",
|
|
"//ledger/ledger-configuration",
|
|
"//ledger/ledger-offset",
|
|
"//ledger/ledger-resources",
|
|
"//ledger/ledger-resources:ledger-resources-test-lib",
|
|
"//ledger/metrics",
|
|
"//ledger/participant-integration-api",
|
|
"//ledger/participant-integration-api:participant-integration-api-tests-lib",
|
|
"//ledger/participant-state",
|
|
"//ledger/participant-state-index",
|
|
"//ledger/participant-state-metrics",
|
|
"//ledger/sandbox-common",
|
|
"//ledger/sandbox-common:sandbox-common-scala-tests-lib",
|
|
"//ledger/test-common",
|
|
"//libs-scala/concurrent",
|
|
"//libs-scala/contextualized-logging",
|
|
"//libs-scala/grpc-utils",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/postgresql-testing",
|
|
"//libs-scala/resources",
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:ch_qos_logback_logback_core",
|
|
"@maven//:com_typesafe_config",
|
|
"@maven//:commons_io_commons_io",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
"@maven//:io_grpc_grpc_services",
|
|
"@maven//:io_netty_netty_handler",
|
|
"@maven//:org_awaitility_awaitility",
|
|
"@maven//:org_flywaydb_flyway_core",
|
|
"@maven//:org_mockito_mockito_core",
|
|
"@maven//:org_reactivestreams_reactive_streams",
|
|
"@maven//:org_scalatest_scalatest_compatible",
|
|
"@maven//:org_slf4j_slf4j_api",
|
|
],
|
|
)
|
|
for (suffix, pattern, exclusions, flaky) in [
|
|
(
|
|
"",
|
|
"src/test/suite/**/*.scala",
|
|
[reset_service_pattern],
|
|
False,
|
|
),
|
|
(
|
|
"-resetservice",
|
|
reset_service_pattern,
|
|
[],
|
|
True,
|
|
),
|
|
]
|
|
]
|
|
|
|
NEXT_SERVERS = {
|
|
"memory": {
|
|
"binary": ":sandbox-binary",
|
|
"server_args": [
|
|
"--contract-id-seeding=testing-weak",
|
|
"--port=6865",
|
|
"--eager-package-loading",
|
|
],
|
|
},
|
|
"postgresql": {
|
|
"binary": ":sandbox-ephemeral-postgresql",
|
|
"server_args": [
|
|
"--contract-id-seeding=testing-weak",
|
|
"--port=6865",
|
|
"--eager-package-loading",
|
|
],
|
|
},
|
|
}
|
|
|
|
server_conformance_test(
|
|
name = "next-conformance-test-static-time",
|
|
lf_versions = [
|
|
"default",
|
|
"latest",
|
|
"preview",
|
|
],
|
|
server_args = [
|
|
"--static-time",
|
|
],
|
|
servers = NEXT_SERVERS,
|
|
test_tool_args = [
|
|
"--open-world",
|
|
"--exclude=CommandDeduplicationIT", # It's a KV ledger so it needs the KV variant
|
|
"--exclude=ClosedWorldIT",
|
|
],
|
|
)
|
|
|
|
server_conformance_test(
|
|
name = "next-conformance-test-wall-clock",
|
|
server_args = [
|
|
"--wall-clock-time",
|
|
"--max-deduplication-duration=PT5S",
|
|
],
|
|
servers = NEXT_SERVERS,
|
|
test_tool_args = [
|
|
"--open-world",
|
|
"--additional=KVCommandDeduplicationIT",
|
|
"--exclude=CommandDeduplicationIT", # It's a KV ledger so it needs the KV variant
|
|
"--exclude=ClosedWorldIT",
|
|
],
|
|
)
|
|
|
|
server_conformance_test(
|
|
name = "next-conformance-test-closed-world",
|
|
server_args = [
|
|
"--wall-clock-time",
|
|
"--implicit-party-allocation=false",
|
|
],
|
|
servers = NEXT_SERVERS,
|
|
test_tool_args = [
|
|
"--verbose",
|
|
"--include=ClosedWorldIT",
|
|
],
|
|
)
|
|
|
|
server_conformance_test(
|
|
name = "next-conformance-test-contract-ids",
|
|
servers = {"memory": NEXT_SERVERS["memory"]},
|
|
test_tool_args = [
|
|
"--verbose",
|
|
"--include=ContractIdIT:RejectV0,ContractIdIT:AcceptSuffixedV1,ContractIdIT:AcceptNonSuffixedV1",
|
|
],
|
|
)
|
|
|
|
# TODO append-only: cleanup
|
|
server_conformance_test(
|
|
name = "next-conformance-test-append-only",
|
|
server_args = [
|
|
"--enable-append-only-schema",
|
|
"--max-deduplication-duration=PT5S",
|
|
],
|
|
servers = {"postgresql": NEXT_SERVERS["postgresql"]},
|
|
test_tool_args = [
|
|
"--open-world",
|
|
"--additional=AppendOnlyCompletionDeduplicationInfoITCommandService",
|
|
"--additional=AppendOnlyCompletionDeduplicationInfoITCommandSubmissionService",
|
|
"--additional=AppendOnlyKVCommandDeduplicationIT",
|
|
"--exclude=CommandDeduplicationIT", # It's a KV ledger so it needs the KV variant
|
|
"--exclude=ClosedWorldIT",
|
|
],
|
|
)
|