Skip to content

Commit 0ee9432

Browse files
committed
try overriding WindowsEventEngine on Windows
1 parent 4ed2384 commit 0ee9432

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

test/core/end2end/goaway_server_test.cc

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
#include "absl/strings/string_view.h"
4545
#include "src/core/lib/channel/channel_args.h"
4646
#include "src/core/lib/event_engine/default_event_engine.h"
47+
#ifdef GPR_WINDOWS
48+
#include "src/core/lib/event_engine/windows/windows_engine.h"
49+
#endif
4750
#include "src/core/lib/experiments/experiments.h"
4851
#include "src/core/lib/iomgr/closure.h"
4952
#include "src/core/lib/iomgr/error.h"
@@ -131,6 +134,8 @@ class TestDNSResolver : public EventEngine::DNSResolver {
131134
absl::StatusOr<std::unique_ptr<EventEngine::DNSResolver>> default_resolver_;
132135
};
133136

137+
#ifndef GPR_WINDOWS
138+
134139
class TestEventEngine : public EventEngine {
135140
public:
136141
explicit TestEventEngine(std::shared_ptr<EventEngine> default_event_engine)
@@ -195,6 +200,78 @@ class TestEventEngine : public EventEngine {
195200
std::shared_ptr<EventEngine> default_event_engine_;
196201
};
197202

203+
#else // GPR_WINDOWS
204+
205+
class TestEventEngine : public WindowsEventEngine {
206+
public:
207+
explicit TestEventEngine(
208+
std::shared_ptr<WindowsEventEngine> default_event_engine)
209+
: default_event_engine_(std::move(default_event_engine)) {}
210+
~TestEventEngine() override = default;
211+
212+
absl::StatusOr<std::unique_ptr<Listener>> CreateListener(
213+
Listener::AcceptCallback on_accept,
214+
absl::AnyInvocable<void(absl::Status)> on_shutdown,
215+
const EndpointConfig& config,
216+
std::unique_ptr<MemoryAllocatorFactory> memory_allocator_factory)
217+
override {
218+
return default_event_engine_->CreateListener(
219+
std::move(on_accept), std::move(on_shutdown), config,
220+
std::move(memory_allocator_factory));
221+
}
222+
223+
ConnectionHandle Connect(OnConnectCallback on_connect,
224+
const ResolvedAddress& addr,
225+
const EndpointConfig& args,
226+
MemoryAllocator memory_allocator,
227+
Duration timeout) override {
228+
return default_event_engine_->Connect(std::move(on_connect), addr, args,
229+
std::move(memory_allocator), timeout);
230+
}
231+
232+
bool CancelConnect(ConnectionHandle handle) override {
233+
return default_event_engine_->CancelConnect(handle);
234+
}
235+
236+
bool IsWorkerThread() override {
237+
return default_event_engine_->IsWorkerThread();
238+
}
239+
240+
absl::StatusOr<std::unique_ptr<DNSResolver>> GetDNSResolver(
241+
const DNSResolver::ResolverOptions& options) override {
242+
return std::make_unique<TestDNSResolver>(default_event_engine_);
243+
}
244+
245+
void Run(Closure* closure) override {
246+
return default_event_engine_->Run(closure);
247+
}
248+
249+
void Run(absl::AnyInvocable<void()> closure) override {
250+
return default_event_engine_->Run(std::move(closure));
251+
}
252+
253+
TaskHandle RunAfter(Duration when, Closure* closure) override {
254+
return default_event_engine_->RunAfter(when, closure);
255+
}
256+
257+
TaskHandle RunAfter(Duration when,
258+
absl::AnyInvocable<void()> closure) override {
259+
return default_event_engine_->RunAfter(when, std::move(closure));
260+
}
261+
262+
bool Cancel(TaskHandle handle) override {
263+
return default_event_engine_->Cancel(handle);
264+
}
265+
266+
ThreadPool* thread_pool() { return default_event_engine_->thread_pool(); }
267+
IOCP* poller() { return default_event_engine_->poller(); }
268+
269+
private:
270+
std::shared_ptr<WindowsEventEngine> default_event_engine_;
271+
};
272+
273+
#endif // GPR_WINDOWS
274+
198275
} // namespace
199276

200277
int main(int argc, char** argv) {

0 commit comments

Comments
 (0)