Skip to content

Commit

Permalink
Revert "Add some unit test cases"
Browse files Browse the repository at this point in the history
This reverts commit a9fc68b.

Signed-off-by: leilei.gll <[email protected]>
  • Loading branch information
gengleilei committed Feb 28, 2019
1 parent a9fc68b commit d9eb2c1
Show file tree
Hide file tree
Showing 4 changed files with 3 additions and 172 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ Network::FilterStatus Router::transportEnd() {
// No response expected
upstream_request_->onResponseComplete();
cleanup();
ENVOY_LOG(debug, "dubbo upstream request: the message is one-way and no response is required");
}

filter_complete_ = true;
Expand Down Expand Up @@ -208,14 +207,12 @@ void Router::UpstreamRequest::resetStream() {
ASSERT(!conn_data_);
conn_pool_handle_->cancel(Tcp::ConnectionPool::CancelPolicy::Default);
conn_pool_handle_ = nullptr;
ENVOY_LOG(debug, "dubbo upstream request: reset connection pool handler");
}

if (conn_data_) {
ASSERT(!conn_pool_handle_);
conn_data_->connection().close(Network::ConnectionCloseType::NoFlush);
conn_data_.reset();
ENVOY_LOG(debug, "dubbo upstream request: reset connection data");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,92 +139,6 @@ TEST(DubboProtocolImplTest, encode) {
EXPECT_EQ(context.body_size_, expect_body_size);
}

TEST(DubboProtocolImplTest, decode) {
Buffer::OwnedImpl buffer;
MessageMetadataSharedPtr metadata;
Protocol::Context context;
DubboProtocolImpl dubbo_protocol;

// metadata is nullptr
EXPECT_THROW_WITH_MESSAGE(dubbo_protocol.decode(buffer, &context, metadata), EnvoyException,
"invalid metadata parameter");

metadata = std::make_shared<MessageMetadata>();

// Invalid message header size
EXPECT_FALSE(dubbo_protocol.decode(buffer, &context, metadata));

// Invalid dubbo magic number
{
addInt64(buffer, 0);
addInt64(buffer, 0);
EXPECT_THROW_WITH_MESSAGE(dubbo_protocol.decode(buffer, &context), EnvoyException,
"invalid dubbo message magic number 0");
buffer.drain(buffer.length());
}

// Invalid message body size
{
buffer.add(std::string({'\xda', '\xbb', '\xc2', 0x00}));
addInt64(buffer, 1);
addInt32(buffer, DubboProtocolImpl::MaxBodySize + 1);
std::string exception_string =
fmt::format("invalid dubbo message size {}", DubboProtocolImpl::MaxBodySize + 1);
EXPECT_THROW_WITH_MESSAGE(dubbo_protocol.decode(buffer, &context), EnvoyException,
exception_string);
buffer.drain(buffer.length());
}

// Invalid serialization type
{
buffer.add(std::string({'\xda', '\xbb', '\xc3', 0x00}));
addInt64(buffer, 1);
addInt32(buffer, 0xff);
EXPECT_THROW_WITH_MESSAGE(dubbo_protocol.decode(buffer, &context, metadata), EnvoyException,
"invalid dubbo message serialization type 3");
buffer.drain(buffer.length());
}

// Invalid response status
{
buffer.add(std::string({'\xda', '\xbb', 0x42, 0x00}));
addInt64(buffer, 1);
addInt32(buffer, 0xff);
EXPECT_THROW_WITH_MESSAGE(dubbo_protocol.decode(buffer, &context, metadata), EnvoyException,
"invalid dubbo message response status 0");
buffer.drain(buffer.length());
}

// The dubbo request message
{
Protocol::Context context;
buffer.add(std::string({'\xda', '\xbb', '\xc2', 0x00}));
addInt64(buffer, 1);
addInt32(buffer, 1);
EXPECT_TRUE(dubbo_protocol.decode(buffer, &context, metadata));
EXPECT_EQ(1, context.body_size_);
EXPECT_FALSE(context.is_heartbeat_);
EXPECT_EQ(MessageType::Request, metadata->message_type());
EXPECT_EQ(1, metadata->request_id());
EXPECT_EQ(SerializationType::Hessian, metadata->serialization_type());
buffer.drain(buffer.length());
}

// The One-way dubbo request message
{
Protocol::Context context;
buffer.add(std::string({'\xda', '\xbb', '\x82', 0x00}));
addInt64(buffer, 1);
addInt32(buffer, 1);
EXPECT_TRUE(dubbo_protocol.decode(buffer, &context, metadata));
EXPECT_EQ(1, context.body_size_);
EXPECT_FALSE(context.is_heartbeat_);
EXPECT_EQ(MessageType::Oneway, metadata->message_type());
EXPECT_EQ(1, metadata->request_id());
EXPECT_EQ(SerializationType::Hessian, metadata->serialization_type());
}
}

} // namespace DubboProxy
} // namespace NetworkFilters
} // namespace Extensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,6 @@ TEST(HessianProtocolTest, deserializeRpcResult) {
EXPECT_TRUE(result->hasException());
}

{
Buffer::OwnedImpl buffer;
buffer.add(std::string({
'\x91', // return type
0x04, 't', 'e', 's', 't', // return body
}));
auto result = deserializer.deserializeRpcResult(buffer, 4);
EXPECT_TRUE(result->hasException());
}

// incorrect body size
{
Buffer::OwnedImpl buffer;
Expand Down
76 changes: 3 additions & 73 deletions test/extensions/filters/network/dubbo_proxy/router_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,6 @@ class DubboRouterTestBase {
.WillOnce(Return(SerializationType::Hessian));
EXPECT_CALL(callbacks_, downstreamProtocolType()).WillOnce(Return(ProtocolType::Dubbo));

EXPECT_EQ(Network::FilterStatus::Continue,
router_->messageBegin(msg_type, metadata_->request_id(), SerializationType::Hessian));
EXPECT_EQ(Network::FilterStatus::StopIteration, router_->messageEnd(metadata_));

EXPECT_CALL(callbacks_, connection()).WillRepeatedly(Return(&connection_));
Expand Down Expand Up @@ -171,6 +169,9 @@ class DubboRouterTestBase {
context_.cluster_manager_.tcp_conn_pool_.poolReady(upstream_connection_);
return nullptr;
}));

EXPECT_EQ(Network::FilterStatus::Continue, router_->transportBegin());
EXPECT_NE(nullptr, upstream_callbacks_);
}

void returnResponse() {
Expand Down Expand Up @@ -411,8 +412,6 @@ TEST_F(DubboRouterTest, OneWay) {
startRequest(MessageType::Oneway);
connectUpstream();

EXPECT_EQ(Network::FilterStatus::Continue, router_->transportEnd());

destroyRouter();
}

Expand All @@ -425,7 +424,6 @@ TEST_F(DubboRouterTest, Call) {
startRequest(MessageType::Request);
connectUpstream();

EXPECT_EQ(Network::FilterStatus::Continue, router_->transportBegin());
EXPECT_EQ(Network::FilterStatus::Continue, router_->transportEnd());

returnResponse();
Expand All @@ -443,7 +441,6 @@ TEST_F(DubboRouterTest, DecoderFilterCallbacks) {
startRequest(MessageType::Request);
connectUpstream();

EXPECT_EQ(Network::FilterStatus::Continue, router_->transportBegin());
EXPECT_EQ(Network::FilterStatus::Continue, router_->transportEnd());

Buffer::OwnedImpl buffer;
Expand All @@ -453,73 +450,6 @@ TEST_F(DubboRouterTest, DecoderFilterCallbacks) {
destroyRouter();
}

TEST_F(DubboRouterTest, UpstreamDataReset) {
initializeRouter();
initializeMetadata(MessageType::Request);

EXPECT_CALL(callbacks_, startUpstreamResponse(_, _)).Times(1);
EXPECT_CALL(callbacks_, upstreamData(_))
.WillOnce(Return(DubboFilters::UpstreamResponseStatus::Reset));
EXPECT_CALL(upstream_connection_, close(Network::ConnectionCloseType::NoFlush));

startRequest(MessageType::Request);
connectUpstream();

Buffer::OwnedImpl buffer;
buffer.add(std::string("This is the test data"));
router_->onUpstreamData(buffer, false);

destroyRouter();
}

TEST_F(DubboRouterTest, StartRequestWithExistingConnection) {
initializeRouter();
startRequestWithExistingConnection(MessageType::Request);

EXPECT_EQ(Network::FilterStatus::Continue, router_->messageEnd(metadata_));

destroyRouter();
}

TEST_F(DubboRouterTest, DestroyWhileConnecting) {
initializeRouter();
initializeMetadata(MessageType::Request);

NiceMock<Tcp::ConnectionPool::MockCancellable> conn_pool_handle;
EXPECT_CALL(context_.cluster_manager_.tcp_conn_pool_, newConnection(_))
.WillOnce(Invoke([&](Tcp::ConnectionPool::Callbacks&) -> Tcp::ConnectionPool::Cancellable* {
return &conn_pool_handle;
}));

EXPECT_CALL(conn_pool_handle, cancel(Tcp::ConnectionPool::CancelPolicy::Default));

startRequest(MessageType::Request);
router_->onDestroy();

destroyRouter();
}

TEST_F(DubboRouterTest, LocalClosedWhileResponseComplete) {
initializeRouter();
initializeMetadata(MessageType::Request);

EXPECT_CALL(callbacks_, startUpstreamResponse(_, _)).Times(1);
EXPECT_CALL(callbacks_, upstreamData(_))
.WillOnce(Return(DubboFilters::UpstreamResponseStatus::Complete));
EXPECT_CALL(callbacks_, sendLocalReply(_, _)).Times(0);

startRequest(MessageType::Request);
connectUpstream();

Buffer::OwnedImpl buffer;
buffer.add(std::string("This is the test data"));
router_->onUpstreamData(buffer, false);

upstream_connection_.close(Network::ConnectionCloseType::NoFlush);

destroyRouter();
}

} // namespace Router
} // namespace DubboProxy
} // namespace NetworkFilters
Expand Down

0 comments on commit d9eb2c1

Please sign in to comment.