# Copyright 2020 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/test_package.gni")

source_set("openssl-ecjpake") {
  sources = [
    "ecjpake.c",
    "ecjpake_err.c",
  ]
  public = [ "openssl/ecjpake.h" ]
  public_configs = [ ":openssl-ecjpake_config" ]
  deps = [ "//third_party/boringssl" ]
  # Suppress warnings in upstream code that are triggered by Fuchsia compilation flags.
}

config("openssl-ecjpake_config") {
  include_dirs = [
    ".",
    "openssl",
  ]
  cflags = [ "-Wno-conversion" ]
  visibility = [ ":*" ]
}

executable("openssl-ecjpake_test") {
  testonly = true
  visibility = [ ":*" ]
  sources = [ "ecjpaketest.c" ]
  configs += [ ":openssl-ecjpake_test_config" ]
  deps = [
    ":openssl-ecjpake",
    "//third_party/boringssl",
  ]
}

config("openssl-ecjpake_test_config") {
  configs = [ ":openssl-ecjpake_config" ]
  # Suppress warnings in upstream code that are triggered by Fuchsia compilation flags.
  cflags = [
    "-Wno-error=sign-compare",
    "-Wno-conversion",
  ]
}

unittest_package("openssl-ecjpake_tests") {
  deps = [ ":openssl-ecjpake_test" ]
  tests = [
    {
      name = "openssl-ecjpake_test"
    },
  ]
}
