21 #include <gtest/gtest.h>
39 TEST(XdsChannelStackModifierTest, CopyChannelArgs) {
41 auto channel_stack_modifier = MakeRefCounted<XdsChannelStackModifier>(
42 std::vector<const grpc_channel_filter*>{});
43 grpc_arg arg = channel_stack_modifier->MakeChannelArg();
52 TEST(XdsChannelStackModifierTest, ChannelArgsCompare) {
54 auto channel_stack_modifier = MakeRefCounted<XdsChannelStackModifier>(
55 std::vector<const grpc_channel_filter*>{});
56 grpc_arg arg = channel_stack_modifier->MakeChannelArg();
66 constexpr
char kTestFilter1[] =
"test_filter_1";
67 constexpr
char kTestFilter2[] =
"test_filter_2";
70 TEST(XdsChannelStackModifierTest, XdsHttpFiltersInsertion) {
75 nullptr,
nullptr,
nullptr, 0,
nullptr,
nullptr,
nullptr,
76 0,
nullptr,
nullptr,
nullptr,
nullptr, kTestFilter1};
78 nullptr,
nullptr,
nullptr, 0,
nullptr,
nullptr,
nullptr,
79 0,
nullptr,
nullptr,
nullptr,
nullptr, kTestFilter2};
80 auto channel_stack_modifier = MakeRefCounted<XdsChannelStackModifier>(
81 std::vector<const grpc_channel_filter*>{&test_filter_1, &test_filter_2});
82 grpc_arg arg = channel_stack_modifier->MakeChannelArg();
90 fake_transport_vtable.
name =
"fake";
92 builder.SetTransport(&fake_transport);
96 std::vector<std::string> filters;
97 for (
const auto& entry : *
builder.mutable_stack()) {
98 filters.push_back(entry->name);
102 std::vector<std::string>({
"server", kTestFilter1, kTestFilter2}));
107 TEST(XdsChannelStackModifierTest, XdsHttpFiltersInsertionAfterCensus) {
113 nullptr,
nullptr,
nullptr, 0,
nullptr,
nullptr,
nullptr,
114 0,
nullptr,
nullptr,
nullptr,
nullptr, kTestFilter1};
116 nullptr,
nullptr,
nullptr, 0,
nullptr,
nullptr,
nullptr,
117 0,
nullptr,
nullptr,
nullptr,
nullptr, kTestFilter2};
118 auto channel_stack_modifier = MakeRefCounted<XdsChannelStackModifier>(
119 std::vector<const grpc_channel_filter*>{&test_filter_1, &test_filter_2});
120 grpc_arg arg = channel_stack_modifier->MakeChannelArg();
128 fake_transport_vtable.
name =
"fake";
130 builder.SetTransport(&fake_transport);
134 std::vector<std::string> filters;
135 for (
const auto& entry : *
builder.mutable_stack()) {
136 filters.push_back(entry->name);
139 EXPECT_EQ(filters, std::vector<std::string>({
"server",
"opencensus_server",
140 kTestFilter1, kTestFilter2}));
148 int main(
int argc,
char** argv) {