Skip to content

Commit

Permalink
Fix flakey grpc_streaming_transport_test
Browse files Browse the repository at this point in the history
The Mock expectation needs to be set up before The transport is created,
or there's a slight chance of a race.

Also fix an error message mistake.

Fixed: b/350199274

Change-Id: I0871474057349da967b4463f4d7d4d3aa8a5deab
  • Loading branch information
jblebrun committed Jul 2, 2024
1 parent 4eec477 commit 0e68bb6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 13 deletions.
4 changes: 2 additions & 2 deletions cc/transport/grpc_streaming_transport.cc
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ absl::StatusOr<ResponseWrapper> GrpcStreamingTransport::Send(
absl::Status status = Close();
if (status.ok()) {
return absl::InternalError(
"failed to read request for unspecified reason. This is likely an "
"failed to write request for unspecified reason. This is likely an "
"implementation bug.");
} else {
return absl::Status(status.code(), absl::StrCat("while writing request: ",
Expand All @@ -122,7 +122,7 @@ absl::StatusOr<ResponseWrapper> GrpcStreamingTransport::Send(
absl::Status status = Close();
if (status.ok()) {
return absl::InternalError(
"failed to write request for unspecified reason. This is likely an "
"failed to read response for unspecified reason. This is likely an "
"implementation bug.");
} else {
return absl::Status(status.code(), absl::StrCat("while reading request: ",
Expand Down
17 changes: 6 additions & 11 deletions cc/transport/grpc_streaming_transport_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,12 @@ class GrpcStreamingTransportTest : public ::testing::Test {
};

TEST_F(GrpcStreamingTransportTest, InvokePropagatesSendError) {
GrpcStreamingTransport transport(stub_->Stream(&context_));

EXPECT_CALL(mock_service_, Stream(_, _))
.WillOnce([](grpc::ServerContext*, ServerStream* stream) {
return grpc::Status(grpc::StatusCode::FAILED_PRECONDITION,
"fake error");
});
GrpcStreamingTransport transport(stub_->Stream(&context_));

EncryptedRequest request;
absl::StatusOr<oak::crypto::v1::EncryptedResponse> response =
Expand All @@ -91,13 +90,12 @@ TEST_F(GrpcStreamingTransportTest, InvokePropagatesSendError) {
}

TEST_F(GrpcStreamingTransportTest, GetEndorsedEvidencePropagatesSendError) {
GrpcStreamingTransport transport(stub_->Stream(&context_));

EXPECT_CALL(mock_service_, Stream(_, _))
.WillOnce([](grpc::ServerContext*, ServerStream* stream) {
return grpc::Status(grpc::StatusCode::FAILED_PRECONDITION,
"fake error");
});
GrpcStreamingTransport transport(stub_->Stream(&context_));

absl::StatusOr<EndorsedEvidence> response = transport.GetEndorsedEvidence();
ASSERT_EQ(response.status(),
Expand All @@ -106,34 +104,31 @@ TEST_F(GrpcStreamingTransportTest, GetEndorsedEvidencePropagatesSendError) {
}

TEST_F(GrpcStreamingTransportTest, InvokePropagatesWeirdError) {
GrpcStreamingTransport transport(stub_->Stream(&context_));

EXPECT_CALL(mock_service_, Stream(_, _))
.WillOnce([](grpc::ServerContext*, ServerStream* stream) {
return grpc::Status::OK;
});
GrpcStreamingTransport transport(stub_->Stream(&context_));

EncryptedRequest request;
absl::StatusOr<oak::crypto::v1::EncryptedResponse> response =
transport.Invoke(request);

ASSERT_EQ(response.status().code(), absl::StatusCode::kInternal);
EXPECT_THAT(response.status().message(),
testing::StartsWith("failed to read request"));
testing::StartsWith("failed to write request"));
}

TEST_F(GrpcStreamingTransportTest, GetEndorsedEvidencePropagatesWeirdError) {
::grpc::ClientContext context;
GrpcStreamingTransport transport(stub_->Stream(&context));

EXPECT_CALL(mock_service_, Stream(_, _))
.WillOnce([](grpc::ServerContext*, ServerStream* stream) {
return grpc::Status::OK;
});
GrpcStreamingTransport transport(stub_->Stream(&context_));

absl::StatusOr<EndorsedEvidence> response = transport.GetEndorsedEvidence();

ASSERT_EQ(response.status().code(), absl::StatusCode::kInternal);
EXPECT_THAT(response.status().message(),
testing::StartsWith("failed to read request"));
testing::StartsWith("failed to write request"));
}

0 comments on commit 0e68bb6

Please sign in to comment.