8000 [PH2] Adding DebugLocation to PH2 testing infra · grpc/grpc@44d5828 · GitHub
[go: up one dir, main page]

Skip to content

Commit 44d5828

Browse files
tanvi-jagtapcopybara-github
authored andcommitted
[PH2] Adding DebugLocation to PH2 testing infra
PiperOrigin-RevId: 814690028
1 parent ecb1d4a commit 44d5828

File tree

3 files changed

+57
-18
lines changed

3 files changed

+57
-18
lines changed

test/core/transport/util/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ grpc_cc_library(
3939
"//src/core:grpc_promise_endpoint",
4040
"//src/core:notification",
4141
"//src/core:transport_framing_endpoint_extension",
42+
"//src/core:useful",
4243
],
4344
)
4445

test/core/transport/util/mock_promise_endpoint.cc

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@
1717
#include <grpc/event_engine/event_engine.h>
1818

1919
#include <cstddef>
20+
#include <initializer_list>
21+
#include <utility>
22+
#include <vector>
2023

2124
#include "gmock/gmock.h"
2225
#include "gtest/gtest.h"
26+
#include "src/core/util/debug_location.h"
2327
#include "src/core/util/notification.h"
2428

2529
using EventEngineSlice = grpc_event_engine::experimental::Slice;
@@ -33,15 +37,19 @@ namespace testing {
3337

3438
void MockPromiseEndpoint::ExpectRead(
3539
std::initializer_list<EventEngineSlice> slices_init,
36-
EventEngine* schedule_on_event_engine) {
40+
EventEngine* schedule_on_event_engine, DebugLocation whence) {
3741
std::vector<EventEngineSlice> slices;
3842
for (auto&& slice : slices_init) slices.emplace_back(slice.Copy());
3943
EXPECT_CALL(*endpoint, Read)
4044
.InSequence(read_sequence)
4145
.WillOnce(WithArgs<0, 1>(
42-
[slices = std::move(slices), schedule_on_event_engine](
46+
[slices = std::move(slices), schedule_on_event_engine, whence](
4347
absl::AnyInvocable<void(absl::Status)> on_read,
4448
grpc_event_engine::experimental::SliceBuffer* buffer) mutable {
49+
if (::testing::Test::HasFailure()) {
50+
ADD_FAILURE_AT(whence.file(), whence.line())
51+
<< "Failure in ExpectRead";
52+
}
4553
for (auto& slice : slices) {
4654
buffer->Append(std::move(slice));
4755
}
@@ -95,17 +103,21 @@ class DelayedRead {
95103

96104
absl::AnyInvocable<void()> MockPromiseEndpoint::ExpectDelayedRead(
97105
std::initializer_list<EventEngineSlice> slices_init,
98-
EventEngine* schedule_on_event_engine) {
106+
EventEngine* schedule_on_event_engine, DebugLocation whence) {
99107
std::shared_ptr<DelayedRead> delayed_read =
100108
std::make_shared<DelayedRead>(schedule_on_event_engine, absl::OkStatus());
101109
std::vector<EventEngineSlice> slices;
102110
for (auto&& slice : slices_init) slices.emplace_back(slice.Copy());
103111
EXPECT_CALL(*endpoint, Read)
104112
.InSequence(read_sequence)
105113
.WillOnce(WithArgs<0, 1>(
106-
[slices = std::move(slices), delayed_read](
114+
[slices = std::move(slices), delayed_read, whence](
107115
absl::AnyInvocable<void(absl::Status)> on_read,
108116
grpc_event_engine::experimental::SliceBuffer* buffer) mutable {
117+
if (::testing::Test::HasFailure()) {
118+
ADD_FAILURE_AT(whence.file(), whence.line())
119+
<< "Failure in ExpectDelayedRead";
120+
}
109121
for (auto& slice : slices) {
110122
buffer->Append(std::move(slice));
111123
}
@@ -117,16 +129,21 @@ absl::AnyInvocable<void()> MockPromiseEndpoint::ExpectDelayedRead(
117129

118130
void MockPromiseEndpoint::ExpectReadClose(
119131
absl::Status status,
120-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine) {
132+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
133+
DebugLocation whence) {
121134
DCHECK_NE(status, absl::OkStatus());
122135
DCHECK_NE(schedule_on_event_engine, nullptr);
123136
EXPECT_CALL(*endpoint, Read)
124137
.InSequence(read_sequence)
125138
.WillOnce(WithArgs<0, 1>(
126-
[status = std::move(status), schedule_on_event_engine](
139+
[status = std::move(status), schedule_on_event_engine, whence](
127140
absl::AnyInvocable<void(absl::Status)> on_read,
128141
GRPC_UNUSED grpc_event_engine::experimental::SliceBuffer*
129142
buffer) {
143+
if (::testing::Test::HasFailure()) {
144+
ADD_FAILURE_AT(whence.file(), whence.line())
145+
<< "Failure in ExpectReadClose";
146+
}
130147
schedule_on_event_engine->Run(
131148
[on_read = std::move(on_read), status]() mutable {
132149
on_read(status);
@@ -137,17 +154,22 @@ void MockPromiseEndpoint::ExpectReadClose(
137154

138155
absl::AnyInvocable<void()> MockPromiseEndpoint::ExpectDelayedReadClose(
139156
absl::Status status,
140-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine) {
157+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
158+
DebugLocation whence) {
141159
std::shared_ptr<DelayedRead> delayed_read_close =
142160
std::make_shared<DelayedRead>(schedule_on_event_engine, status);
143161
DCHECK_NE(schedule_on_event_engine, nullptr);
144162
EXPECT_CALL(*endpoint, Read)
145163
.InSequence(read_sequence)
146164
.WillOnce(WithArgs<0, 1>(
147-
[delayed_read_close](
165+
[delayed_read_close, whence](
148166
absl::AnyInvocable<void(absl::Status)> on_read,
149167
GRPC_UNUSED grpc_event_engine::experimental::SliceBuffer*
150168
buffer) {
169+
if (::testing::Test::HasFailure()) {
170+
ADD_FAILURE_AT(whence.file(), whence.line())
171+
<< "Failure in ExpectDelayedReadClose";
172+
}
151173
delayed_read_close->GotOnRead(std::move(on_read));
152174
return false;
153175
}));
@@ -160,7 +182,7 @@ absl::AnyInvocable<void()> MockPromiseEndpoint::ExpectDelayedReadClose(
160182

161183
void MockPromiseEndpoint::ExpectWrite(
162184
std::initializer_list<EventEngineSlice> slices,
163-
EventEngine* schedule_on_event_engine) {
185+
EventEngine* schedule_on_event_engine, DebugLocation whence) {
164186
SliceBuffer expect;
165187
for (auto&& slice : slices) {
166188
expect.Append(grpc_event_engine::experimental::internal::SliceCast<Slice>(
@@ -169,13 +191,17 @@ void MockPromiseEndpoint::ExpectWrite(
169191
EXPECT_CALL(*endpoint, Write)
170192
.InSequence(write_sequence)
171193
.WillOnce(WithArgs<0, 1>(
172-
[expect = expect.JoinIntoString(), schedule_on_event_engine](
194+
[expect = expect.JoinIntoString(), schedule_on_event_engine, whence](
173195
absl::AnyInvocable<void(absl::Status)> on_writable,
174196
grpc_event_engine::experimental::SliceBuffer* buffer) mutable {
175197
SliceBuffer tmp;
176198
grpc_slice_buffer_swap(buffer->c_slice_buffer(),
177199
tmp.c_slice_buffer());
178200
EXPECT_EQ(tmp.JoinIntoString(), expect);
201+
if (::testing::Test::HasFailure()) {
202+
ADD_FAILURE_AT(whence.file(), whence.line())
203+
<< "Failure in ExpectWrite";
204+
}
179205
if (schedule_on_event_engine != nullptr) {
180206
schedule_on_event_engine->Run(
181207
[on_writable = std::move(on_writable)]() mutable {
@@ -191,7 +217,8 @@ void MockPromiseEndpoint::ExpectWrite(
191217
void MockPromiseEndpoint::ExpectWriteWithCallback(
192218
std::initializer_list<EventEngineSlice> slices,
193219
EventEngine* schedule_on_event_engine,
194-
absl::AnyInvocable<void(SliceBuffer&, SliceBuffer&)> callback) {
220+
absl::AnyInvocable<void(SliceBuffer&, SliceBuffer&)> callback,
221+
DebugLocation whence) {
195222
SliceBuffer expect;
196223
for (auto&& slice : slices) {
197224
expect.Append(grpc_event_engine::experimental::internal::SliceCast<Slice>(
@@ -201,13 +228,17 @@ void MockPromiseEndpoint::ExpectWriteWithCallback(
201228
.InSequence(write_sequence)
202229
.WillOnce(WithArgs<0, 1>(
203230
[expect = std::move(expect), schedule_on_event_engine,
204-
callback = std::move(callback)](
231+
callback = std::move(callback), whence](
205232
absl::AnyInvocable<void(absl::Status)> on_writable,
206233
grpc_event_engine::experimental::SliceBuffer* buffer) mutable {
207234
SliceBuffer tmp;
208235
grpc_slice_buffer_swap(buffer->c_slice_buffer(),
209236
tmp.c_slice_buffer());
210237
callback(tmp, expect);
238+
if (::testing::Test::HasFailure()) {
239+
ADD_FAILURE_AT(whence.file(), whence.line())
240+
<< "Failure in ExpectWriteWithCallback";
241+
}
211242

212243
if (schedule_on_event_engine != nullptr) {
213244
schedule_on_event_engine->Run(

test/core/transport/util/mock_promise_endpoint.h

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "src/core/lib/event_engine/tcp_socket_utils.h"
2929
#include "src/core/lib/transport/promise_endpoint.h"
3030
#include "src/core/lib/transport/transport_framing_endpoint_extension.h"
31+
#include "src/core/util/debug_location.h"
3132

3233
namespace grpc_core {
3334
namespace util {
@@ -174,25 +175,31 @@ struct MockPromiseEndpoint {
174175
::testing::Sequence write_sequence;
175176
void ExpectRead(
176177
std::initializer_list<grpc_event_engine::experimental::Slice> slices_init,
177-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine);
178+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
179+
DebugLocation whence = {});
178180
absl::AnyInvocable<void()> ExpectDelayedRead(
179181
std::initializer_list<grpc_event_engine::experimental::Slice> slices_init,
180-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine);
182+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
183+
DebugLocation whence = {});
181184
void ExpectReadClose(
182185
absl::Status status,
183-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine);
186+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
187+
DebugLocation whence = {});
184188
// Returns a function that will complete an EventEngine::Endpoint::Read call
185189
// with the given status.
186190
absl::AnyInvocable<void()> ExpectDelayedReadClose(
187191
absl::Status status,
188-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine);
192+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
193+
DebugLocation whence = {});
189194
void ExpectWrite(
190195
std::initializer_list<grpc_event_engine::experimental::Slice> slices,
191-
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine);
196+
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
197+
DebugLocation whence = {});
192198
void ExpectWriteWithCallback(
193199
std::initializer_list<grpc_event_engine::experimental::Slice> slices,
194200
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine,
195-
absl::AnyInvocable<void(SliceBuffer&, SliceBuffer&)> callback);
201+
absl::AnyInvocable<void(SliceBuffer&, SliceBuffer&)> callback,
202+
DebugLocation whence = {});
196203
void CaptureWrites(
197204
SliceBuffer& writes,
198205
grpc_event_engine::experimental::EventEngine* schedule_on_event_engine);

0 commit comments

Comments
 (0)
0