# Copyright (c) 2019 The DAML Authors. 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( "//rules_daml:daml.bzl", "daml_compile", ) load( "//daml-lf/language:daml-lf.bzl", "lf_dev_version", "lf_stable_version", ) compileDependencies = [ # this has to come first other as somehow a different instance of grpc-core.jar "@maven//:io_grpc_grpc_services", "//daml-lf/data", "//daml-lf/interface", "//daml-lf/transaction", "//ledger-api/rs-grpc-bridge", "//ledger-api/rs-grpc-akka", "//language-support/scala/bindings", "//ledger/ledger-api-auth", "//ledger/ledger-api-client", "//ledger/ledger-api-common", "//ledger/ledger-api-domain", "//ledger-service/lf-value-json", "//ledger-service/utils", "//libs-scala/auth-utils", "//libs-scala/grpc-utils", "//libs-scala/timer-utils", "@maven//:io_netty_netty_handler", "@maven//:io_netty_netty_tcnative_boringssl_static", "@maven//:com_chuusai_shapeless_2_12", "@maven//:com_lihaoyi_fansi_2_12", "@maven//:org_spire_math_kind_projector_2_12", "@maven//:org_typelevel_cats_core_2_12", "@maven//:org_typelevel_cats_effect_2_12", "@maven//:org_typelevel_cats_free_2_12", "@maven//:org_typelevel_cats_kernel_2_12", "@maven//:com_github_scopt_scopt_2_12", "@maven//:com_lihaoyi_pprint_2_12", "@maven//:com_lihaoyi_sourcecode_2_12", "@maven//:org_tpolecat_doobie_core_2_12", "@maven//:org_tpolecat_doobie_free_2_12", "@maven//:org_tpolecat_doobie_postgres_2_12", "@maven//:com_typesafe_akka_akka_actor_2_12", "@maven//:com_typesafe_akka_akka_stream_2_12", "@maven//:org_scalaz_scalaz_core_2_12", "@maven//:org_slf4j_slf4j_api", "@maven//:com_typesafe_scala_logging_scala_logging_2_12", "@maven//:io_circe_circe_core_2_12", "@maven//:io_circe_circe_generic_2_12", "@maven//:io_circe_circe_parser_2_12", "@maven//:io_spray_spray_json_2_12", "@maven//:io_grpc_grpc_netty", ] TEST_DARS = [ "RecordsAndVariants", "PrimitiveTypes", "TransactionExample", ] [ daml_compile( name = darmod, main_src = "src/test/resources/damls/%s.daml" % darmod, # FixMe: https://github.com/digital-asset/daml/issues/2289 # change version to lf_latest_version when freezing numeric in the next language version target = lf_dev_version, ) for darmod in TEST_DARS ] genrule( name = "VeryLargeArchive_src", outs = ["VeryLargeArchive/Blobs.daml"] + ["VeryLargeArchive/Blob%s.daml" % n for n in range( 1, 32 + 1, )], cmd = ''' filecount=32 outs=($(OUTS)) main="$${outs[0]}" echo 'daml 1.2 module VeryLargeArchive.Blobs where import VeryLargeArchive.Blob1()' > "$$main" firstfil="$${outs[1]}" echo 'daml 1.2 module VeryLargeArchive.Blob1 where ' > "$$firstfil" { for linen in `seq 1 1024`; do echo -n "x$$linen = "\\" for charn in `seq 1 16`; do echo -n qqqqqqqq done; echo \\" done; } >> $$firstfil for filen in `seq 2 $$filecount`; do echo "import VeryLargeArchive.Blob$$filen()" >> "$$main" sed -e '2s/^\\(module .*\\)1/\\1'$$filen/ "$$firstfil" > "$${outs[$$filen]}" done ''', ) daml_compile( name = "VeryLargeArchive", srcs = [":VeryLargeArchive_src"], main_src = ":VeryLargeArchive/Blobs.daml", ) testDependencies = [ ":extractor", "//bazel_tools/runfiles:scala_runfiles", "//daml-lf/data-scalacheck", "//daml-lf/transaction-scalacheck", "//ledger/participant-state", "//ledger/sandbox:sandbox", "//ledger/sandbox:sandbox-scala-tests-lib", "//ledger/test-common", "//ledger-api/testing-utils", "//ledger-service/jwt", "@maven//:ch_qos_logback_logback_classic", "@maven//:commons_io_commons_io", "@maven//:org_scalactic_scalactic_2_12", "@maven//:org_scalacheck_scalacheck_2_12", "@maven//:org_scalaz_scalaz_scalacheck_binding_2_12", "@maven//:org_scalatest_scalatest_2_12", "@maven//:org_postgresql_postgresql", ] + compileDependencies da_scala_library( name = "extractor", srcs = glob(["src/main/scala/**/*.scala"]), resources = glob(["src/main/resources/**/*"]), visibility = ["//visibility:public"], runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", ], deps = compileDependencies, ) da_scala_binary( name = "extractor-binary", main_class = "com.digitalasset.extractor.Main", tags = [ "maven_coordinates=com.digitalasset:extractor:__VERSION__", "no_scala_version_suffix", ], visibility = ["//visibility:public"], deps = [ ":extractor", ], ) da_scala_library( name = "extractor-scala-tests-lib", srcs = glob(["src/test/lib/**/*.scala"]), deps = testDependencies, ) da_scala_test_suite( name = "extractor-scala-tests", size = "medium", srcs = glob(["src/test/suite/**/*.scala"]), data = [ "//daml-lf/encoder:testing-dar-dev", "//daml-lf/encoder:testing-dar-latest", "//extractor:PrimitiveTypes.dar", "//extractor:RecordsAndVariants.dar", "//extractor:TransactionExample.dar", "//extractor:VeryLargeArchive.dar", "//ledger/test-common:Test-stable.dar", "@postgresql_dev_env//:all", ], resources = glob(["src/test/resources/**/*"]), deps = [ ":extractor-scala-tests-lib", ] + testDependencies, )