daml/ledger/sandbox-on-x/BUILD.bazel

419 lines
13 KiB
Python
Raw Normal View History

# Copyright (c) 2022 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-tests:conformance.bzl", "conformance_test", "server_conformance_test")
load("@oracle//:index.bzl", "oracle_tags")
load("@os_info//:os_info.bzl", "is_windows")
da_scala_library(
name = "sandbox-on-x",
srcs = glob(["src/main/scala/**/*.scala"]),
resources = glob(["src/main/resources/**/*"]),
scala_deps = [
"@maven//:com_github_scopt_scopt",
"@maven//:com_typesafe_akka_akka_actor",
"@maven//:com_typesafe_akka_akka_stream",
],
tags = ["maven_coordinates=com.daml:sandbox-on-x:__VERSION__"],
visibility = [
"//visibility:public",
],
deps = [
"//daml-lf/archive:daml_lf_1.dev_archive_proto_java",
"//daml-lf/data",
"//daml-lf/engine",
"//daml-lf/language",
"//daml-lf/transaction",
"//language-support/scala/bindings",
"//ledger/caching",
"//ledger/error",
"//ledger/ledger-api-auth",
"//ledger/ledger-api-common",
"//ledger/ledger-api-domain",
"//ledger/ledger-api-health",
"//ledger/ledger-configuration",
"//ledger/ledger-offset",
"//ledger/ledger-resources",
"//ledger/ledger-runner-common",
"//ledger/metrics",
"//ledger/participant-integration-api",
"//ledger/participant-state",
"//ledger/participant-state-index",
"//ledger/participant-state-metrics",
"//libs-scala/build-info",
"//libs-scala/concurrent",
"//libs-scala/contextualized-logging",
"//libs-scala/logging-entries",
"//libs-scala/ports",
"//libs-scala/resources",
"//libs-scala/resources-akka",
"//libs-scala/resources-grpc",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:io_dropwizard_metrics_metrics_core",
"@maven//:org_slf4j_slf4j_api",
],
)
da_scala_library(
name = "sandbox-classic-server",
srcs = glob(["src/classic/scala/**/*.scala"]),
resources = ["//ledger/sandbox-common:src/main/resources/banner.txt"],
scala_deps = [
"@maven//:com_typesafe_akka_akka_actor",
"@maven//:com_typesafe_akka_akka_stream",
"@maven//:org_scalaz_scalaz_core",
],
tags = ["maven_coordinates=com.daml:sandbox-classic-server:__VERSION__"],
visibility = [
"//visibility:public",
],
runtime_deps = [
"@maven//:ch_qos_logback_logback_core",
"@maven//:com_h2database_h2",
"@maven//:org_postgresql_postgresql",
],
deps = [
"//daml-lf/archive:daml_lf_1.dev_archive_proto_java",
"//daml-lf/archive:daml_lf_archive_reader",
"//daml-lf/data",
"//daml-lf/language",
"//language-support/scala/bindings",
"//ledger/caching",
"//ledger/ledger-api-auth",
"//ledger/ledger-api-common",
"//ledger/ledger-api-domain",
"//ledger/ledger-api-health",
"//ledger/ledger-resources",
"//ledger/ledger-runner-common",
"//ledger/metrics",
"//ledger/participant-integration-api",
"//ledger/participant-state",
"//ledger/participant-state-index",
"//ledger/sandbox-common:sandbox-common-ce",
"//ledger/sandbox-on-x",
"//libs-scala/build-info",
"//libs-scala/contextualized-logging",
"//libs-scala/logging-entries",
"//libs-scala/ports",
"//libs-scala/resources",
"//libs-scala/resources-akka",
"//libs-scala/resources-grpc",
"@maven//:com_typesafe_config",
"@maven//:io_dropwizard_metrics_metrics_core",
"@maven//:org_slf4j_slf4j_api",
],
)
da_scala_library(
name = "sandbox-on-x-test-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_scalatest_scalatest_flatspec",
"@maven//:org_scalatest_scalatest_matchers_core",
"@maven//:org_scalatest_scalatest_shouldmatchers",
"@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-classic-server",
"//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-auth-client",
"//ledger/ledger-api-common",
"//ledger/ledger-api-domain",
"//ledger/ledger-configuration",
"//ledger/ledger-resources",
"//ledger/metrics",
"//ledger/participant-integration-api",
"//ledger/participant-integration-api:participant-integration-api-tests-lib",
"//ledger/sandbox-common",
"//ledger/sandbox-common:sandbox-common-scala-tests-lib",
"//ledger/test-common",
"//libs-scala/grpc-utils",
"//libs-scala/ports",
"//libs-scala/resources",
"//libs-scala/resources-akka",
"//libs-scala/resources-grpc",
"//libs-scala/timer-utils",
"@maven//:ch_qos_logback_logback_classic",
"@maven//:io_netty_netty_handler",
"@maven//:org_scalatest_scalatest_compatible",
"@maven//:org_slf4j_slf4j_api",
],
)
da_scala_test_suite(
name = "sandbox-on-x-unit-tests",
size = "small",
srcs = glob(["src/test/suite/**/*.scala"]),
resources = glob(["src/test/resources/**/*"]),
scala_deps = [
"@maven//:org_mockito_mockito_scala",
],
deps = [
":sandbox-on-x",
"//daml-lf/data",
"//daml-lf/transaction",
"//daml-lf/transaction-test-lib",
"//language-support/scala/bindings",
"//ledger/error",
"//ledger/ledger-api-common",
"//ledger/ledger-api-domain",
"//ledger/ledger-api-health",
"//ledger/ledger-configuration",
"//ledger/ledger-offset",
"//ledger/metrics",
"//ledger/participant-integration-api",
"//ledger/participant-state",
"//ledger/participant-state-index",
"//libs-scala/contextualized-logging",
"//libs-scala/logging-entries",
"@maven//:io_dropwizard_metrics_metrics_core",
"@maven//:org_mockito_mockito_core",
],
)
da_scala_test_suite(
name = "sandbox-on-x-it-tests",
# Sandbox-on-X has high end-to-end submission latency.
# TODO Downsize to `small` once the latency is optimized
size = "medium",
srcs = glob(
["src/test/it/**/*.scala"],
),
data = [
"//daml-lf/encoder:testing-dars",
"//ledger/test-common:model-tests-default.dar",
"//ledger/test-common/test-certificates",
],
resources = glob(["src/test/resources/**/*"]),
scala_deps = [
"@maven//:com_typesafe_akka_akka_actor",
"@maven//:com_typesafe_akka_akka_stream",
"@maven//:org_scalatest_scalatest_core",
"@maven//:org_scalatest_scalatest_matchers_core",
"@maven//:org_scalatest_scalatest_shouldmatchers",
"@maven//:org_scalaz_scalaz_core",
],
deps = [
":sandbox-classic-server",
":sandbox-on-x",
":sandbox-on-x-test-lib",
"//bazel_tools/runfiles:scala_runfiles",
"//daml-lf/data",
"//daml-lf/language",
"//language-support/scala/bindings",
"//ledger-api/rs-grpc-akka",
"//ledger-api/rs-grpc-bridge",
"//ledger-api/testing-utils",
"//ledger/caching",
"//ledger/error",
"//ledger/error:error-test-lib",
"//ledger/ledger-api-auth",
"//ledger/ledger-api-client",
"//ledger/ledger-api-common",
"//ledger/ledger-api-domain",
"//ledger/ledger-configuration",
"//ledger/ledger-resources",
"//ledger/ledger-resources:ledger-resources-test-lib",
"//ledger/ledger-runner-common",
"//ledger/metrics",
"//ledger/participant-integration-api",
"//ledger/participant-integration-api:participant-integration-api-tests-lib",
"//ledger/sandbox-common",
"//ledger/sandbox-common:sandbox-common-scala-tests-lib",
"//ledger/test-common",
"//libs-scala/contextualized-logging",
"//libs-scala/grpc-utils",
"//libs-scala/ports",
"//libs-scala/postgresql-testing",
"//libs-scala/resources",
"//libs-scala/timer-utils",
"@maven//:ch_qos_logback_logback_classic",
"@maven//:io_grpc_grpc_services",
"@maven//:io_netty_netty_handler",
"@maven//:org_awaitility_awaitility",
"@maven//:org_scalatest_scalatest_compatible",
"@maven//:org_slf4j_slf4j_api",
],
)
da_scala_library(
name = "sandbox-on-x-app-lib",
srcs = glob(["src/app/scala/**/*.scala"]),
resources = glob(["src/app/resources/**/*"]),
scala_deps = [],
tags = ["maven_coordinates=com.daml:sandbox-on-x-app:__VERSION__"],
visibility = ["//visibility:public"],
deps = [
":sandbox-on-x",
"//ledger/ledger-resources",
"//ledger/ledger-runner-common",
"//libs-scala/contextualized-logging",
"//libs-scala/resources",
],
)
da_scala_library(
name = "sandbox-on-x-test-app",
srcs = glob(["src/test/app/scala/**/*.scala"]),
resources = glob(["src/test/app/resources/**/*"]),
scala_deps = [],
visibility = ["//visibility:public"],
deps = [
":sandbox-on-x",
"//daml-lf/data",
"//ledger/caching",
"//ledger/ledger-api-auth",
"//ledger/ledger-api-common",
"//ledger/ledger-resources",
"//ledger/ledger-runner-common",
"//ledger/participant-integration-api",
"//libs-scala/contextualized-logging",
"//libs-scala/oracle-testing",
"//libs-scala/ports",
"//libs-scala/postgresql-testing",
"//libs-scala/resources",
],
)
da_scala_binary(
name = "app",
main_class = "com.daml.ledger.sandbox.Main",
tags = [
"fat_jar",
"maven_coordinates=com.daml:sandbox-on-x-app-jar:__VERSION__",
"no_scala_version_suffix",
],
visibility = ["//visibility:public"],
runtime_deps = [
"@maven//:ch_qos_logback_logback_classic",
"@maven//:ch_qos_logback_logback_core",
"@maven//:com_h2database_h2",
],
deps = [
":sandbox-on-x-app-lib",
],
)
da_scala_binary(
name = "conformance-test-oracle-bin",
main_class = "com.daml.ledger.sandbox.MainWithEphemeralOracleUser",
visibility = ["//visibility:public"],
runtime_deps = [],
deps = [
":sandbox-on-x-test-app",
],
)
da_scala_binary(
name = "conformance-test-postgres-bin",
main_class = "com.daml.ledger.sandbox.MainWithEphemeralPostgresql",
visibility = ["//visibility:public"],
runtime_deps = [],
deps = [
":sandbox-on-x-test-app",
],
)
SERVERS = {
"h2database": {
"binary": ":app",
},
"postgresql": {
"binary": ":conformance-test-postgres-bin",
},
"oracle": {
"binary": ":conformance-test-oracle-bin",
"tags": oracle_tags,
},
}
conformance_test(
name = "conformance-test-no-conflict-checking",
ports = [6865],
server = ":app",
server_args = [
"--contract-id-seeding=testing-weak",
"--participant participant-id=example,port=6865",
"--disable-conflict-checking",
],
test_tool_args = [
"--verbose",
"--exclude=ClosedWorldIT",
"--exclude=ContractKeysIT",
"--exclude=SemanticTests",
Race condition test suite for the ledger-api-test-tool [DPP-274] (#9138) * Early draft of the race condition ITs * Archival vs Successful lookup by key test * More descriptive failure messages * Unsuccessful lookup vs non-transient creation test * Double-archival test * Fixed a test case name * Archival vs Creation order test * Reduced number of test templates * Improved race test template naming * Helper object with transaction and template utils * Simplified transaction util * Fixed wrong choice name * Removed redundant println * Formatted code changes * Minor change * CHANGELOG_BEGIN - Integration Kit - added a test suite for race condition to the ledger-api-test-tool CHANGELOG_END * Removed unnecessary sorting of transactions * Added explanatory comments to test cases * Mechanism for running ledger-api-test-tool test cases multiple times * Running each race condition test case 5 times * Fixed WWArchiveVsNonTransientCreate test case * Fixed flakiness of RWArchiveVsNonConsumingChoice * Disabled RaceConditionIT in Canton tests * Formatted code changes * Moved RaceConditionIT to conformance tests with unique contract keys mode on for Canton * Nicer delay mechanism * Improved WWArchiveVsNonTransientCreate to take contention into account * Fixed RWTransientCreateVsNonTransientCreate conditions for Canton * Increased the delay before reading the transaction trees stream to 1 second * Fixed incorrect conformance tests definition for RaceConditionIT * Running race condition tests sequentially to avoid timeouts * Simplified race condition test case definition * Return sum of durations for repeating test cases in the ledger-api-test-tool * Reverted previous change with computing sum of durations * Exclude RaceConditionIT from sandbox-on-x conformance tests * Print the number of a test run only for cases when the number of repetitions is > 1 * Fixed RWArchiveVsFetch scenario
2021-03-26 01:07:01 +03:00
"--exclude=RaceConditionIT",
"--exclude=ExceptionRaceConditionIT",
"--exclude=ExceptionsIT:ExRollbackDuplicateKeyCreated",
"--exclude=ExceptionsIT:ExRollbackDuplicateKeyArchived",
"--exclude=ConfigManagementServiceIT:CMConcurrentSetConflicting",
"--exclude=CommandDeduplication",
"--exclude=CommandServiceIT:CSduplicate",
"--exclude=PartyManagementServiceIT:PMRejectionDuplicateHint",
],
)
server_conformance_test(
name = "conformance-test",
server_args = [
"--contract-id-seeding=testing-weak",
"--participant participant-id=example,port=6865",
"--enable-user-management=true",
],
servers = SERVERS,
test_tool_args = [
"--verbose",
],
)
conformance_test(
name = "conformance-test-static-time",
ports = [6865],
server = ":app",
server_args = [
"--contract-id-seeding=testing-weak",
"--participant participant-id=example,port=6865",
"--static-time",
],
test_tool_args = [
"--verbose",
],
)
conformance_test(
name = "conformance-test-in-memory-fan-out",
ports = [6865],
server = ":app",
server_args = [
"--contract-id-seeding=testing-weak",
"--participant participant-id=example,port=6865,ledger-api-transactions-buffer-max-size=10",
"--buffered-ledger-api-streams",
],
test_tool_args = [
"--verbose",
],
)