event_engine_test.h
Go to the documentation of this file.
1 // Copyright 2021 gRPC authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef GRPC_TEST_CORE_EVENT_ENGINE_TEST_SUITE_EVENT_ENGINE_TEST_H
16 #define GRPC_TEST_CORE_EVENT_ENGINE_TEST_SUITE_EVENT_ENGINE_TEST_H
17 #include <gtest/gtest.h>
18 
20 
22 
23 extern std::function<
24  std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>*
26 
27 extern std::function<
28  std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>*
30 
31 // Manages the lifetime of the global EventEngine factory.
33  public:
36  std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>
37  factory,
39  std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>
40  oracle_factory)
41  : factory_(factory), oracle_factory_(oracle_factory) {}
42 
43  void SetUp() override {
46  }
47 
48  void TearDown() override {
49  g_ee_factory = nullptr;
50  g_oracle_ee_factory = nullptr;
51  }
52 
53  private:
54  std::function<std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>
56  std::function<std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>
58 };
59 
61  protected:
62  std::unique_ptr<grpc_event_engine::experimental::EventEngine>
64  GPR_ASSERT(g_ee_factory != nullptr);
65  return (*g_ee_factory)();
66  }
67 
68  std::unique_ptr<grpc_event_engine::experimental::EventEngine>
70  GPR_ASSERT(g_oracle_ee_factory != nullptr);
71  return (*g_oracle_ee_factory)();
72  }
73 };
74 
75 // Set a custom factory for the EventEngine test suite. An optional oracle
76 // EventEngine can additionally be specified here.
79  std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>
80  ee_factory,
82  std::unique_ptr<grpc_event_engine::experimental::EventEngine>()>
83  oracle_ee_factory);
84 
85 #endif // GRPC_TEST_CORE_EVENT_ENGINE_TEST_SUITE_EVENT_ENGINE_TEST_H
EventEngineTestEnvironment::SetUp
void SetUp() override
Definition: event_engine_test.h:43
event_engine.h
EventEngineTestEnvironment::factory_
std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >)> factory_
Definition: event_engine_test.h:55
testing::Test
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:402
EventEngineTest::NewEventEngine
std::unique_ptr< grpc_event_engine::experimental::EventEngine > NewEventEngine()
Definition: event_engine_test.h:63
EventEngineTestEnvironment
Definition: event_engine_test.h:32
GPR_ASSERT
#define GPR_ASSERT(x)
Definition: include/grpc/impl/codegen/log.h:94
EventEngineTestEnvironment::TearDown
void TearDown() override
Definition: event_engine_test.h:48
g_oracle_ee_factory
std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >)> * g_oracle_ee_factory
Definition: event_engine_test.cc:24
testing::Environment
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1045
SetEventEngineFactories
void SetEventEngineFactories(std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >()> ee_factory, std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >()> oracle_ee_factory)
Definition: event_engine_test.cc:26
EventEngineTest::NewOracleEventEngine
std::unique_ptr< grpc_event_engine::experimental::EventEngine > NewOracleEventEngine()
Definition: event_engine_test.h:69
EventEngineTestEnvironment::oracle_factory_
std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >)> oracle_factory_
Definition: event_engine_test.h:57
EventEngineTestEnvironment::EventEngineTestEnvironment
EventEngineTestEnvironment(std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >()> factory, std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >()> oracle_factory)
Definition: event_engine_test.h:34
g_ee_factory
std::function< std::unique_ptr< grpc_event_engine::experimental::EventEngine >)> * g_ee_factory
Definition: event_engine_test.cc:21
EventEngineTest
Definition: event_engine_test.h:60
function
std::function< bool(GrpcTool *, int, const char **, const CliCredentials &, GrpcToolOutputCallback)> function
Definition: grpc_tool.cc:250
sync.h


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:16