Skip to content

Commit

Permalink
x
Browse files Browse the repository at this point in the history
  • Loading branch information
ctiller committed Feb 19, 2025
1 parent 684368c commit 2e71284
Show file tree
Hide file tree
Showing 22 changed files with 2,308 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/core/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8529,7 +8529,7 @@ grpc_cc_library(
"chaotic_good_legacy_client_transport",
"chaotic_good_legacy_config",
"chaotic_good_legacy_frame",
"chaotic_good_legacy_frame_cc_proto",
"chaotic_good_frame_cc_proto",
"chaotic_good_legacy_frame_header",
"closure",
"context",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include "src/core/ext/transport/chaotic_good/frame.h"
#include "src/core/ext/transport/chaotic_good/frame_header.h"
#include "src/core/ext/transport/chaotic_good/server_transport.h"
#include "src/core/ext/transport/chaotic_good_legacy/server/chaotic_good_server.h"
#include "src/core/handshaker/handshaker.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
Expand Down Expand Up @@ -478,6 +479,9 @@ void ChaoticGoodServerListener::Orphan() {
} // namespace grpc_core

int grpc_server_add_chaotic_good_port(grpc_server* server, const char* addr) {
if (!grpc_core::IsChaoticGoodFramingLayerEnabled()) {
return grpc_server_add_chaotic_good_legacy_port(server, addr);
}
using grpc_event_engine::experimental::EventEngine;
grpc_core::ExecCtx exec_ctx;
auto* const core_server = grpc_core::Server::FromC(server);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include "src/core/client_channel/client_channel_factory.h"
#include "src/core/client_channel/client_channel_filter.h"
#include "src/core/config/core_configuration.h"
#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_frame.pb.h"
#include "src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.h"
#include "src/core/ext/transport/chaotic_good_legacy/client_transport.h"
#include "src/core/ext/transport/chaotic_good_legacy/frame.h"
#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h"
Expand Down Expand Up @@ -311,8 +311,10 @@ grpc_channel* grpc_chaotic_good_legacy_channel_create(
grpc_core::CoreConfiguration::Get()
.channel_args_preconditioning()
.PreconditionChannelArgs(args)
.SetObject(grpc_core::NoDestructSingleton<
grpc_core::chaotic_good::ChaoticGoodChannelFactory>::Get())
.SetObject(
grpc_core::NoDestructSingleton<
grpc_core::chaotic_good_legacy::ChaoticGoodChannelFactory>::
Get())
.Set(GRPC_ARG_USE_V3_STACK, true),
GRPC_CLIENT_CHANNEL, nullptr);
if (r.ok()) {
Expand Down
2 changes: 1 addition & 1 deletion src/core/ext/transport/chaotic_good_legacy/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include <vector>

#include "absl/container/flat_hash_set.h"
#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_frame.pb.h"
#include "src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.h"
#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_transport.h"
#include "src/core/ext/transport/chaotic_good_legacy/message_chunker.h"
#include "src/core/ext/transport/chaotic_good_legacy/pending_connection.h"
Expand Down
2 changes: 1 addition & 1 deletion src/core/ext/transport/chaotic_good_legacy/frame.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
#include "absl/log/check.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "src/core/ext/transport/chaotic_good_legacy/chaotic_good_frame.pb.h"
#include "src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.h"
#include "src/core/ext/transport/chaotic_good_legacy/frame_header.h"
#include "src/core/lib/promise/context.h"
#include "src/core/lib/resource_quota/arena.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -521,7 +521,7 @@ int grpc_server_add_chaotic_good_legacy_port(grpc_server* server,
std::vector<std::pair<std::string, absl::Status>> error_list;
for (const auto& ee_addr : results.value()) {
auto listener = grpc_core::MakeOrphanable<
grpc_core::chaotic_good::ChaoticGoodServerListener>(
grpc_core::chaotic_good_legacy::ChaoticGoodServerListener>(
grpc_core::Server::FromC(server), core_server->channel_args());
std::string addr_str =
*grpc_event_engine::experimental::ResolvedAddressToString(ee_addr);
Expand Down
314 changes: 314 additions & 0 deletions test/core/transport/chaotic_good_legacy/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,314 @@
# Copyright 2021 gRPC 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
#
# http://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("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_proto_library", "grpc_cc_test", "grpc_internal_proto_library", "grpc_package")
load("//test/core/test_util:grpc_fuzzer.bzl", "grpc_fuzz_test")

licenses(["notice"])

grpc_package(
name = "test/core/transport/chaotic_good",
visibility = "tests",
)

grpc_cc_library(
name = "transport_test",
testonly = 1,
srcs = ["transport_test.cc"],
hdrs = ["transport_test.h"],
external_deps = ["gtest"],
deps = [
"//:iomgr_timer",
"//src/core:chaotic_good_legacy_frame",
"//src/core:memory_quota",
"//src/core:resource_quota",
"//test/core/event_engine/fuzzing_event_engine",
"//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_cc_proto",
],
)

grpc_cc_test(
name = "frame_header_test",
srcs = ["frame_header_test.cc"],
external_deps = [
"absl/status",
"gtest",
],
deps = ["//src/core:chaotic_good_legacy_frame_header"],
)

grpc_fuzz_test(
name = "frame_header_fuzzer",
srcs = ["frame_header_fuzzer.cc"],
external_deps = [
"absl/status:statusor",
"absl/strings",
"gtest",
"fuzztest",
"fuzztest_main",
],
tags = ["no_windows"],
deps = [
"//:grpc",
"//src/core:chaotic_good_legacy_frame_header",
],
)

grpc_cc_test(
name = "frame_test",
srcs = ["frame_test.cc"],
external_deps = [
"absl/log:check",
"absl/random",
"absl/status",
"absl/status:statusor",
"gtest",
],
deps = [
"//:channel_create",
"//src/core:chaotic_good_legacy_frame",
],
)

grpc_internal_proto_library(
name = "frame_fuzzer_proto",
srcs = ["frame_fuzzer.proto"],
)

grpc_cc_proto_library(
name = "frame_fuzzer_cc_proto",
deps = ["frame_fuzzer_proto"],
)

grpc_fuzz_test(
name = "frame_fuzzer",
srcs = ["frame_fuzzer.cc"],
external_deps = [
"absl/log:check",
"absl/log:log",
"absl/random:bit_gen_ref",
"absl/status:statusor",
"gtest",
"fuzztest",
"fuzztest_main",
],
tags = ["no_windows"],
deps = [
"frame_fuzzer_cc_proto",
"//:exec_ctx",
"//:gpr",
"//:hpack_encoder",
"//:hpack_parser",
"//:ref_counted_ptr",
"//src/core:arena",
"//src/core:chaotic_good_legacy_frame",
"//src/core:chaotic_good_legacy_frame_header",
"//src/core:event_engine_memory_allocator",
"//src/core:memory_quota",
"//src/core:resource_quota",
"//src/core:slice",
"//src/core:slice_buffer",
"//test/core/promise:test_context",
],
)

grpc_cc_test(
name = "client_transport_test",
srcs = ["client_transport_test.cc"],
external_deps = [
"absl/functional:any_invocable",
"absl/status:statusor",
"absl/strings:str_format",
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
"transport_test",
"//:grpc",
"//:grpc_public_hdrs",
"//src/core:arena",
"//src/core:chaotic_good_legacy_client_transport",
"//src/core:if",
"//src/core:loop",
"//src/core:seq",
"//src/core:slice_buffer",
"//test/core/transport/util:mock_promise_endpoint",
],
)

grpc_cc_test(
name = "client_transport_error_test",
srcs = ["client_transport_error_test.cc"],
external_deps = [
"absl/functional:any_invocable",
"absl/status",
"absl/status:statusor",
"absl/strings:str_format",
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
"//:grpc_public_hdrs",
"//:grpc_unsecure",
"//:iomgr_timer",
"//:ref_counted_ptr",
"//src/core:activity",
"//src/core:arena",
"//src/core:chaotic_good_legacy_client_transport",
"//src/core:event_engine_wakeup_scheduler",
"//src/core:grpc_promise_endpoint",
"//src/core:if",
"//src/core:join",
"//src/core:loop",
"//src/core:memory_quota",
"//src/core:pipe",
"//src/core:resource_quota",
"//src/core:seq",
"//src/core:slice",
"//src/core:slice_buffer",
"//test/core/event_engine/fuzzing_event_engine",
"//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_cc_proto",
],
)

grpc_cc_test(
name = "server_transport_test",
srcs = ["server_transport_test.cc"],
external_deps = [
"absl/functional:any_invocable",
"absl/status",
"absl/status:statusor",
"absl/strings:str_format",
"gtest",
],
uses_event_engine = False,
uses_polling = False,
deps = [
"transport_test",
"//:grpc",
"//:grpc_public_hdrs",
"//:iomgr_timer",
"//:ref_counted_ptr",
"//src/core:arena",
"//src/core:chaotic_good_legacy_server_transport",
"//src/core:memory_quota",
"//src/core:resource_quota",
"//src/core:seq",
"//src/core:slice",
"//src/core:slice_buffer",
"//test/core/event_engine/fuzzing_event_engine",
"//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_cc_proto",
"//test/core/transport/util:mock_promise_endpoint",
],
)

grpc_cc_test(
name = "chaotic_good_server_test",
srcs = ["chaotic_good_server_test.cc"],
external_deps = [
"absl/log:check",
"absl/log:log",
"absl/strings",
"absl/time",
"gtest",
],
tags = [
"no_windows",
],
uses_event_engine = True,
uses_polling = False,
deps = [
"//:grpc",
"//:grpc++",
"//:grpc_public_hdrs",
"//:parse_address",
"//:uri",
"//src/core:channel_args",
"//src/core:chaotic_good_legacy_connector",
"//src/core:chaotic_good_legacy_server",
"//src/core:notification",
"//src/core:resource_quota",
"//src/core:time",
"//test/core/event_engine:event_engine_test_utils",
"//test/core/test_util:grpc_test_util",
],
)

grpc_fuzz_test(
name = "control_endpoint_test",
srcs = ["control_endpoint_test.cc"],
external_deps = [
"fuzztest",
"fuzztest_main",
"gtest",
],
tags = [
"no_windows",
],
deps = [
"//src/core:chaotic_good_legacy_control_endpoint",
"//test/core/call/yodel:yodel_test",
"//test/core/transport/util:mock_promise_endpoint",
],
)

grpc_fuzz_test(
name = "data_endpoints_test",
srcs = ["data_endpoints_test.cc"],
external_deps = [
"fuzztest",
"fuzztest_main",
"gtest",
],
tags = [
"no_windows",
],
deps = [
"//src/core:chaotic_good_legacy_data_endpoints",
"//test/core/call/yodel:yodel_test",
"//test/core/transport/util:mock_promise_endpoint",
],
)

grpc_fuzz_test(
name = "config_test",
srcs = ["config_test.cc"],
external_deps = [
"fuzztest",
"fuzztest_main",
"gtest",
],
deps = [
"//src/core:chaotic_good_legacy_config",
"//src/core:chaotic_good_frame_cc_proto",
],
)

grpc_fuzz_test(
name = "message_chunker_test",
srcs = ["message_chunker_test.cc"],
external_deps = [
"fuzztest",
"fuzztest_main",
"gtest",
],
deps = [
"//src/core:chaotic_good_frame_cc_proto",
"//src/core:chaotic_good_legacy_message_chunker",
"//src/core:status_flag",
"//test/core/promise:poll_matcher",
],
)
Loading

0 comments on commit 2e71284

Please sign in to comment.