# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/test.gni")

copy("key_tests_files") {
  sources = [
    "analyzer_prod_public.cobalt_key",
    "analyzer_public.cobalt_key",
    "shuffler_prod_public.cobalt_key",
    "shuffler_public.cobalt_key",
  ]
  outputs = [ "$root_out_dir/tests/cpp/keys/{{source_file_part}}" ]
}

test("keys_tests") {
  testonly = true
  sources = [ "keys_tests.cc" ]
  deps = [
    ":key_tests_files",
    "$cobalt_root/src:logging",
    "$cobalt_root/src/lib/crypto_util",
    "$cobalt_root/src/lib/util:encrypted_message_util",
    "$cobalt_root/src/lib/util:file_util",
    "$cobalt_root/src/pb",
    "$cobalt_root/src/public/lib/statusor",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/googletest:gtest",
    "//third_party/tink/proto:tink_proto",
  ]
  public_configs = [ "//third_party/tink:tink_config" ]
  configs += [
    "//build/config:no_exceptions",
    "//build/config:no_rtti",
  ]
  configs -= [
    "//build/config:no_exceptions",
    "//build/config:no_rtti",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":keys_tests" ]
}
