264 lines
6.2 KiB
Python
264 lines
6.2 KiB
Python
# Copyright 2022 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.
|
|
|
|
load("//pw_build:pigweed.bzl", "pw_cc_binary")
|
|
load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")
|
|
load("@rules_proto//proto:defs.bzl", "proto_library")
|
|
|
|
pw_cc_binary(
|
|
name = "server",
|
|
srcs = ["server.cc"],
|
|
deps = [
|
|
":config_cc_proto",
|
|
"//pw_assert",
|
|
"//pw_chrono:system_clock",
|
|
"//pw_log",
|
|
"//pw_rpc/system_server",
|
|
"//pw_stream",
|
|
"//pw_stream:std_file_stream",
|
|
"//pw_thread:thread",
|
|
"//pw_thread_stl:thread_headers",
|
|
"//pw_transfer",
|
|
"@com_google_protobuf//:protobuf",
|
|
],
|
|
)
|
|
|
|
py_binary(
|
|
name = "proxy",
|
|
srcs = ["proxy.py"],
|
|
deps = [
|
|
":config_pb2",
|
|
"//pw_hdlc/py:pw_hdlc",
|
|
"//pw_transfer:transfer_proto_pb2",
|
|
"//pw_transfer/py:pw_transfer",
|
|
"@com_google_protobuf//:protobuf_python",
|
|
],
|
|
)
|
|
|
|
py_test(
|
|
name = "proxy_test",
|
|
srcs = [
|
|
"proxy.py",
|
|
"proxy_test.py",
|
|
],
|
|
main = "proxy_test.py",
|
|
deps = [
|
|
":config_pb2",
|
|
"//pw_rpc:internal_packet_proto_pb2",
|
|
"//pw_transfer:transfer_proto_pb2",
|
|
"//pw_transfer/py:pw_transfer",
|
|
],
|
|
)
|
|
|
|
proto_library(
|
|
name = "config_proto",
|
|
srcs = ["config.proto"],
|
|
)
|
|
|
|
cc_proto_library(
|
|
name = "config_cc_proto",
|
|
deps = [":config_proto"],
|
|
)
|
|
|
|
py_proto_library(
|
|
name = "config_pb2",
|
|
srcs = ["config.proto"],
|
|
)
|
|
|
|
java_proto_library(
|
|
name = "config_java_proto",
|
|
deps = [":config_proto"],
|
|
)
|
|
|
|
pw_cc_binary(
|
|
name = "cpp_client",
|
|
srcs = ["client.cc"],
|
|
deps = [
|
|
":config_cc_proto",
|
|
"//pw_log",
|
|
"//pw_rpc:integration_testing",
|
|
"//pw_status",
|
|
"//pw_stream:std_file_stream",
|
|
"//pw_sync:binary_semaphore",
|
|
"//pw_thread:thread",
|
|
"//pw_transfer",
|
|
"//pw_transfer:client",
|
|
"@com_google_protobuf//:protobuf",
|
|
],
|
|
)
|
|
|
|
py_library(
|
|
name = "integration_test_fixture",
|
|
srcs = [
|
|
"test_fixture.py",
|
|
],
|
|
data = [
|
|
":cpp_client",
|
|
":java_client",
|
|
":proxy",
|
|
":python_client",
|
|
":server",
|
|
],
|
|
deps = [
|
|
":config_pb2",
|
|
"//pw_protobuf:status_proto_pb2",
|
|
"@com_google_protobuf//:protobuf_python",
|
|
"@rules_python//python/runfiles",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3310 and 3311.
|
|
py_test(
|
|
name = "cross_language_large_write_test",
|
|
# Actually 1 hour, see
|
|
# https://docs.bazel.build/versions/main/test-encyclopedia.html#role-of-the-test-runner
|
|
timeout = "eternal",
|
|
srcs = [
|
|
"cross_language_large_write_test.py",
|
|
],
|
|
# This test is not run in CQ because it's too slow.
|
|
tags = ["manual"],
|
|
deps = [
|
|
":integration_test_fixture",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3306 and 3307.
|
|
py_test(
|
|
name = "cross_language_large_read_test",
|
|
# Actually 1 hour, see
|
|
# https://docs.bazel.build/versions/main/test-encyclopedia.html#role-of-the-test-runner
|
|
timeout = "eternal",
|
|
srcs = [
|
|
"cross_language_large_read_test.py",
|
|
],
|
|
# This test is not run in CQ because it's too slow.
|
|
tags = ["manual"],
|
|
deps = [
|
|
":integration_test_fixture",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3304 and 3305.
|
|
py_test(
|
|
name = "cross_language_medium_read_test",
|
|
timeout = "long",
|
|
srcs = [
|
|
"cross_language_medium_read_test.py",
|
|
],
|
|
deps = [
|
|
":config_pb2",
|
|
":integration_test_fixture",
|
|
"@com_google_protobuf//:protobuf_python",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3316 and 3317.
|
|
py_test(
|
|
name = "cross_language_medium_write_test",
|
|
timeout = "long",
|
|
srcs = [
|
|
"cross_language_medium_write_test.py",
|
|
],
|
|
deps = [
|
|
":config_pb2",
|
|
":integration_test_fixture",
|
|
"@com_google_protobuf//:protobuf_python",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3302 and 3303.
|
|
py_test(
|
|
name = "cross_language_small_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"cross_language_small_test.py",
|
|
],
|
|
deps = [
|
|
":config_pb2",
|
|
":integration_test_fixture",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3308 and 3309.
|
|
py_test(
|
|
name = "multi_transfer_test",
|
|
timeout = "moderate",
|
|
srcs = [
|
|
"multi_transfer_test.py",
|
|
],
|
|
deps = [
|
|
":config_pb2",
|
|
":integration_test_fixture",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3312 and 3313.
|
|
py_test(
|
|
name = "expected_errors_test",
|
|
timeout = "moderate",
|
|
srcs = ["expected_errors_test.py"],
|
|
deps = [
|
|
":config_pb2",
|
|
":integration_test_fixture",
|
|
"//pw_protobuf:status_proto_pb2",
|
|
"@com_google_protobuf//:protobuf_python",
|
|
],
|
|
)
|
|
|
|
# Uses ports 3314 and 3315.
|
|
py_test(
|
|
name = "legacy_binaries_test",
|
|
timeout = "moderate",
|
|
srcs = ["legacy_binaries_test.py"],
|
|
data = [
|
|
"@pw_transfer_test_binaries//:all",
|
|
],
|
|
deps = [
|
|
":config_pb2",
|
|
":integration_test_fixture",
|
|
"//pw_protobuf:status_proto_pb2",
|
|
"@rules_python//python/runfiles",
|
|
],
|
|
)
|
|
|
|
java_binary(
|
|
name = "java_client",
|
|
srcs = ["JavaClient.java"],
|
|
main_class = "JavaClient",
|
|
deps = [
|
|
":config_java_proto",
|
|
"//pw_hdlc/java/main/dev/pigweed/pw_hdlc",
|
|
"//pw_log/java/main/dev/pigweed/pw_log",
|
|
"//pw_rpc/java/main/dev/pigweed/pw_rpc:client",
|
|
"//pw_transfer/java/main/dev/pigweed/pw_transfer:client",
|
|
"@com_google_protobuf//:protobuf_java",
|
|
"@maven//:com_google_flogger_flogger_system_backend",
|
|
"@maven//:com_google_guava_guava",
|
|
],
|
|
)
|
|
|
|
py_binary(
|
|
name = "python_client",
|
|
srcs = ["python_client.py"],
|
|
deps = [
|
|
":config_pb2",
|
|
"//pw_hdlc/py:pw_hdlc",
|
|
"//pw_rpc/py:pw_rpc",
|
|
"//pw_transfer:transfer_proto_pb2",
|
|
"//pw_transfer/py:pw_transfer",
|
|
"@com_google_protobuf//:protobuf_python",
|
|
],
|
|
)
|