Skip to content

Commit

Permalink
fixing ordering test failure
Browse files Browse the repository at this point in the history
Signed-off-by: Yanjun Xiang <yanjunxiang@google.com>
  • Loading branch information
yanjunxiang-google committed Jul 26, 2023
1 parent 597b13e commit 6592b67
Showing 1 changed file with 5 additions and 32 deletions.
37 changes: 5 additions & 32 deletions test/extensions/filters/http/ext_proc/ordering_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class OrderingTest : public testing::Test {
void initialize(absl::optional<std::function<void(ExternalProcessor&)>> cb) {
client_ = std::make_unique<MockClient>();
route_ = std::make_shared<NiceMock<Router::MockRoute>>();
EXPECT_CALL(*client_, start(_, _, _)).WillOnce(Invoke(this, &OrderingTest::doStart));
EXPECT_CALL(*client_, start(_, _, _)).WillRepeatedly(Invoke(this, &OrderingTest::doStart));
EXPECT_CALL(encoder_callbacks_, dispatcher()).WillRepeatedly(ReturnRef(dispatcher_));
EXPECT_CALL(decoder_callbacks_, dispatcher()).WillRepeatedly(ReturnRef(dispatcher_));
EXPECT_CALL(decoder_callbacks_, route()).WillRepeatedly(Return(route_));
Expand Down Expand Up @@ -500,8 +500,8 @@ TEST_F(OrderingTest, ResponseSomeDataComesFast) {
sendResponseBodyReply();
}

// Add trailers to the request path
TEST_F(OrderingTest, AddRequestTrailers) {
// Processing mode send request trailer while client is not sending trailers.
TEST_F(OrderingTest, ProcessingModeRequestTrailers) {
initialize([](ExternalProcessor& cfg) {
auto* pm = cfg.mutable_processing_mode();
pm->set_request_trailer_mode(ProcessingMode::SEND);
Expand All @@ -517,15 +517,8 @@ TEST_F(OrderingTest, AddRequestTrailers) {
Buffer::OwnedImpl req_buffer;
expectBufferedRequest(req_buffer);

Http::TestRequestTrailerMapImpl response_trailers;

// Expect the trailers callback to be sent in line with decodeData
EXPECT_CALL(stream_delegate_, send(_, false));
EXPECT_CALL(decoder_callbacks_, addDecodedTrailers()).WillOnce(ReturnRef(response_trailers));
EXPECT_EQ(FilterDataStatus::StopIterationAndBuffer, filter_->decodeData(req_body_1, true));
EXPECT_EQ(FilterDataStatus::Continue, filter_->decodeData(req_body_1, true));
req_buffer.add(req_body_1);
EXPECT_CALL(decoder_callbacks_, continueDecoding());
sendRequestTrailersReply();

Buffer::OwnedImpl resp_body_1("Dummy response");
Buffer::OwnedImpl resp_buffer;
Expand Down Expand Up @@ -1122,26 +1115,8 @@ TEST_F(FastFailOrderingTest, GrpcErrorIgnoredOnStartResponseTrailers) {
EXPECT_EQ(FilterTrailersStatus::Continue, filter_->encodeTrailers(response_trailers_));
}

// gRPC failure while opening stream with only response body enabled
TEST_F(FastFailOrderingTest, GrpcErrorOnStartAddResponseTrailers) {
initialize([](ExternalProcessor& cfg) {
auto* pm = cfg.mutable_processing_mode();
pm->set_request_header_mode(ProcessingMode::SKIP);
pm->set_response_header_mode(ProcessingMode::SKIP);
pm->set_response_trailer_mode(ProcessingMode::SEND);
});

sendRequestHeadersGet(false);
sendResponseHeaders(false);
Buffer::OwnedImpl resp_body("Hello!");
EXPECT_CALL(encoder_callbacks_, sendLocalReply(Http::Code::InternalServerError, _, _, _, _));
Http::TestResponseTrailerMapImpl response_trailers;
EXPECT_CALL(encoder_callbacks_, addEncodedTrailers()).WillOnce(ReturnRef(response_trailers));
EXPECT_EQ(FilterDataStatus::StopIterationNoBuffer, filter_->encodeData(resp_body, true));
}

// gRPC failure while opening stream with only response body enabled but errors ignored
TEST_F(FastFailOrderingTest, GrpcErrorIgnoredOnStartAddResponseTrailers) {
TEST_F(FastFailOrderingTest, GrpcErrorIgnoredOnNotSendResponseTrailer) {
initialize([](ExternalProcessor& cfg) {
cfg.set_failure_mode_allow(true);
auto* pm = cfg.mutable_processing_mode();
Expand All @@ -1153,8 +1128,6 @@ TEST_F(FastFailOrderingTest, GrpcErrorIgnoredOnStartAddResponseTrailers) {
sendRequestHeadersGet(false);
sendResponseHeaders(false);
Buffer::OwnedImpl resp_body("Hello!");
Http::TestResponseTrailerMapImpl response_trailers;
EXPECT_CALL(encoder_callbacks_, addEncodedTrailers()).WillOnce(ReturnRef(response_trailers));
EXPECT_EQ(FilterDataStatus::Continue, filter_->encodeData(resp_body, true));
}

Expand Down

0 comments on commit 6592b67

Please sign in to comment.