# 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_library", "silencer_plugin", ) load( "//language-support/scala/codegen:codegen.bzl", "dar_to_scala", ) load("@scala_version//:index.bzl", "scala_major_version") load("@scala_version//:index.bzl", "scala_major_version") load( "//daml-lf/language:daml-lf.bzl", "lf_version_configuration", "lf_version_configuration_versions", ) load("//ledger/test-common:test-common.bzl", "da_scala_dar_resources_library") alias( name = "dar-files", actual = "dar-files-default", visibility = ["//visibility:public"], ) [ [ # alias model-tests-KEYWORD.dar, dar-files-KEYWORD, and dar-files-KEYWORD-lib # to model-tests-TAG.dar, dar-files-TAG, dar-files-TAG-lib, and test-common-TAG # where : KEYWORD is a keyword like default, latest, or dev # TAG is a (java friendly) version TAG like 1_8 # The mapping KEYWORD -> TAG is defined by test_common_configurations alias( name = "%s-%s%s" % (target_prefix, name, target_suffix), actual = ":%s-%s%s" % (target_prefix, lf_version, target_suffix), visibility = ["//visibility:public"], ), ] for (target_prefix, target_suffix) in [ ("model-tests", ".dar"), ("dar-files", ""), ("dar-files", "-lib"), ("test-common", ""), ] for (name, lf_version) in lf_version_configuration.items() ] alias( name = "test-common", actual = "test-common-default", visibility = ["//visibility:public"], ) [ [ da_scala_library( name = "test-common-%s" % target, srcs = glob(["src/main/scala/**/*.scala"]), scala_deps = [ "@maven//:org_scalatest_scalatest_shouldmatchers", "@maven//:org_scalatest_scalatest_core", "@maven//:org_scalactic_scalactic", "@maven//:org_scalatest_scalatest_matchers_core", ], tags = ["maven_coordinates=com.daml:test-common-%s:__VERSION__" % target], visibility = [ "//visibility:public", ], deps = [ "//daml-lf/archive:daml_lf_1.dev_archive_proto_java", "//daml-lf/archive:daml_lf_archive_reader", "//ledger-api/grpc-definitions:ledger_api_proto_scala", "//ledger/test-common:dar-files-%s-lib" % target, "//libs-scala/scala-utils", "//libs-scala/timer-utils", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", "@maven//:io_grpc_grpc_context", "@maven//:org_scalatest_scalatest_compatible", "@maven//:org_slf4j_slf4j_api", ], ), ] for target in lf_version_configuration_versions ] # Correspond to the directories under src/test/lib/daml test_names_with_dependencies = { "model": ["@maven//:org_scala_lang_modules_scala_collection_compat"], "semantic": ["@maven//:org_scala_lang_modules_scala_collection_compat"], "performance": [], "package_management": [], } da_scala_dar_resources_library( add_maven_tag = True, daml_dir_names = test_names_with_dependencies.keys(), daml_root_dir = "src/main/daml", exclusions = { "1.8": ["**/*Exception*.daml"], }, lf_versions = lf_version_configuration_versions, maven_name_prefix = "test", visibility = ["//visibility:public"], ) [ [ [ dar_to_scala( name = "%s-tests-%s.scala-codegen" % (test_name, target), srcs = [":%s-tests-%s.dar" % (test_name, target)], package_prefix = "com.daml.ledger.test.%s" % test_name, srcjar_out = "%s-%s.scala.srcjar" % (test_name, target), visibility = ["//visibility:public"], ), da_scala_library( name = "%s-tests-%s.scala" % (test_name, target), srcs = [ ":%s-tests-%s.scala-codegen" % (test_name, target), ], plugins = [ silencer_plugin, ], scala_deps = extra_deps, scalacopts = [ "-P:silencer:lineContentFilters=import _root_.scala.language.higherKinds;", ], visibility = ["//visibility:public"], deps = [ "//language-support/scala/bindings", ], ), ] for (test_name, extra_deps) in test_names_with_dependencies.items() ] for target in lf_version_configuration_versions ]