mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-20 05:41:06 +00:00
79174155ba
Move test_server, test data generation from third_party/boringssl back to pw_tls_client to avoid awkward dependencies. Change-Id: I10a885affad4b7283783da6129a2bef729037a07 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/54240 Commit-Queue: Yecheng Zhao <zyecheng@google.com> Reviewed-by: Ali Zhang <alizhang@google.com>
169 lines
4.6 KiB
Plaintext
169 lines
4.6 KiB
Plaintext
# Copyright 2021 The Pigweed Authors
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
# use this file except in compliance with the License. You may obtain a copy of
|
|
# the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations under
|
|
# the License.
|
|
|
|
import("//build_overrides/pigweed.gni")
|
|
import("$dir_pw_build/facade.gni")
|
|
import("$dir_pw_build/target_types.gni")
|
|
import("$dir_pw_docgen/docs.gni")
|
|
import("$dir_pw_third_party/boringssl/boringssl.gni")
|
|
import("$dir_pw_tls_client/configs.gni")
|
|
import("$dir_pw_unit_test/test.gni")
|
|
|
|
config("public_includes") {
|
|
include_dirs = [ "public" ]
|
|
}
|
|
|
|
pw_facade("pw_tls_client") {
|
|
backend = pw_tls_client_BACKEND
|
|
public_configs = [ ":public_includes" ]
|
|
public = [
|
|
"public/pw_tls_client/options.h",
|
|
"public/pw_tls_client/session.h",
|
|
"public/pw_tls_client/status.h",
|
|
]
|
|
public_deps = [
|
|
"$dir_pw_assert",
|
|
"$dir_pw_bytes",
|
|
"$dir_pw_result",
|
|
"$dir_pw_status",
|
|
"$dir_pw_stream",
|
|
"$dir_pw_string",
|
|
]
|
|
}
|
|
|
|
pw_facade("tls_entropy") {
|
|
backend = pw_tls_client_ENTROPY_BACKEND
|
|
public_configs = [ ":public_includes" ]
|
|
public = [ "public/pw_tls_client/entropy.h" ]
|
|
public_deps = [
|
|
"$dir_pw_bytes",
|
|
"$dir_pw_status",
|
|
]
|
|
}
|
|
|
|
# A fake entropy source that does nothing. It should only be used for
|
|
# demo and test purpose only. Production code shall not use it.
|
|
pw_source_set("fake_entropy") {
|
|
public_deps = [ ":tls_entropy.facade" ]
|
|
sources = [ "fake_entropy.cc" ]
|
|
deps = [ "$dir_pw_log" ]
|
|
}
|
|
|
|
# The ":time" target wraps the time() and gettimeofday(), which are
|
|
# commonly used by TLS libraries for expiration check.
|
|
config("time_wrap") {
|
|
# Link options that wrap C time calls.
|
|
ldflags = [
|
|
"-Wl,--wrap=time",
|
|
"-Wl,--wrap=gettimeofday",
|
|
]
|
|
}
|
|
|
|
pw_facade("time") {
|
|
backend = pw_tls_client_TIME_BACKEND
|
|
public_configs = [ ":time_wrap" ]
|
|
public = []
|
|
|
|
# The target should only be used by TLS libraries to obtain date time
|
|
visibility = [
|
|
":*",
|
|
"$dir_pw_third_party/boringssl",
|
|
"$dir_pw_third_party/mbedtls",
|
|
]
|
|
}
|
|
|
|
# The build time is obtained with a python script and put in a generated header
|
|
# file. The header file is included in build_time.cc
|
|
pw_python_action("generate_buid_time_header") {
|
|
header_output = "$target_gen_dir/$target_name/build_time.h"
|
|
script = "generate_build_time_header.py"
|
|
outputs = [
|
|
header_output,
|
|
|
|
# A output file that is never generated so that this action is always
|
|
# re-run. This is to make sure that the build time in the header is always
|
|
# up-to-date.
|
|
"$target_gen_dir/non_exists",
|
|
]
|
|
args = [ rebase_path(header_output) ]
|
|
}
|
|
|
|
# The target provides a backend to :time that returns build time.
|
|
pw_source_set("build_time") {
|
|
time_injection_outputs = get_target_outputs(":generate_buid_time_header")
|
|
include_dirs = [ get_path_info(time_injection_outputs[0], "dir") ]
|
|
sources = [ "build_time.cc" ]
|
|
deps = [
|
|
":generate_buid_time_header",
|
|
":time.facade",
|
|
]
|
|
}
|
|
|
|
# TODO(pwbug/396): Add a python target to generate source file from the
|
|
# specified CRLSet file in `pw_tls_client_CRLSET_FILE`
|
|
|
|
pw_source_set("crlset") {
|
|
public_configs = [ ":public_includes" ]
|
|
public = [ "public/pw_tls_client/crlset.h" ]
|
|
|
|
# TODO(pwbug/396): Add sources generated from a CRLSet file to build.
|
|
}
|
|
|
|
pw_source_set("test_server") {
|
|
sources = [ "test_server.cc" ]
|
|
public_configs = [ ":public_includes" ]
|
|
public = [ "public/pw_tls_client/test/test_server.h" ]
|
|
public_deps = [
|
|
"$dir_pw_bytes",
|
|
"$dir_pw_log",
|
|
"$dir_pw_stream",
|
|
"$dir_pw_third_party/boringssl",
|
|
]
|
|
}
|
|
|
|
pw_test("test_server_test") {
|
|
enable_if = dir_pw_third_party_boringssl != ""
|
|
public_deps = [
|
|
":test_data",
|
|
":test_server",
|
|
]
|
|
sources = [ "test_server_test.cc" ]
|
|
}
|
|
|
|
pw_python_action("generate_test_data") {
|
|
header_output = "$target_gen_dir/$target_name/test_certs_and_keys.h"
|
|
script = "py/pw_tls_client/generate_test_data.py"
|
|
python_deps = [ "py" ]
|
|
outputs = [ header_output ]
|
|
args = [ rebase_path(header_output) ]
|
|
}
|
|
|
|
config("test_data_includes") {
|
|
test_header_out = get_target_outputs(":generate_test_data")
|
|
include_dirs = [ get_path_info(test_header_out[0], "dir") ]
|
|
}
|
|
|
|
group("test_data") {
|
|
public_deps = [ ":generate_test_data" ]
|
|
public_configs = [ ":test_data_includes" ]
|
|
}
|
|
|
|
pw_test_group("tests") {
|
|
tests = [ ":test_server_test" ]
|
|
}
|
|
|
|
pw_doc_group("docs") {
|
|
sources = [ "docs.rst" ]
|
|
}
|