6#include "gtest/gtest.h"
17 SeqAsserter = std::make_unique<omptest::OmptSequencedAsserter>();
20 SeqAsserter->getLog()->setLoggingLevel(logging::Level::Critical);
28 ASSERT_EQ(SeqAsserter->isActive(),
true);
29 ASSERT_EQ(SeqAsserter->AssertionSuspended,
false);
32 ASSERT_EQ(SeqAsserter->NextEvent, 0);
35 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
36 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
39 ASSERT_EQ(SeqAsserter->Events.empty(),
true);
40 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 0);
43 ASSERT_NE(SeqAsserter->getOperationMode(), AssertMode::Relaxed);
44 ASSERT_EQ(SeqAsserter->getOperationMode(), AssertMode::Strict);
47 ASSERT_NE(SeqAsserter->getState(), AssertState::Fail);
48 ASSERT_EQ(SeqAsserter->getState(), AssertState::Pass);
49 ASSERT_NE(SeqAsserter->checkState(), AssertState::Fail);
50 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
56 "ParBegin",
"", OS::Always,
61 "DevFini",
"", OS::Always,
67 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
69 SeqAsserter->notify(std::move(SuppressedEvent));
71 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
72 SeqAsserter->notify(std::move(IgnoredEvent));
73 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
74 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
75 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
80 "DevUnload",
"", OS::Always);
81 SeqAsserter->insert(std::move(ExpectedEvent));
82 ASSERT_EQ(SeqAsserter->Events.empty(),
false);
85 SeqAsserter->setActive(
false);
86 ASSERT_EQ(SeqAsserter->isActive(),
false);
87 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
91 "DevFini",
"", OS::Always,
93 SeqAsserter->notify(std::move(IgnoredEvent));
96 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
97 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
99 SeqAsserter->setActive(
true);
100 ASSERT_EQ(SeqAsserter->isActive(),
true);
103 "DevFini",
"", OS::Always);
104 SeqAsserter->notify(std::move(ObservedEvent));
107 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
108 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 1);
109 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
113 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 0);
115 "DevFini",
"", OS::Always,
117 SeqAsserter->insert(std::move(ExpectedEvent));
119 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
121 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 1);
122 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
123 ASSERT_EQ(SeqAsserter->getState(), AssertState::Pass);
128 "DevFini",
"", OS::Always,
130 SeqAsserter->insert(std::move(ExpectedEvent));
133 "ParBegin",
"", OS::Always,
137 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
138 SeqAsserter->notify(std::move(SuppressedEvent));
139 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
140 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
141 ASSERT_EQ(SeqAsserter->getState(), AssertState::Pass);
146 "DevFini",
"", OS::Always,
148 SeqAsserter->insert(std::move(ExpectedEvent));
151 "DevFini",
"", OS::Always,
153 SeqAsserter->notify(std::move(ObservedEvent));
154 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
155 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 1);
156 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
161 "DevFini",
"", OS::Always,
163 SeqAsserter->insert(std::move(ExpectedEvent));
167 "DevFini",
"", OS::Always,
170 SeqAsserter->notify(std::move(ObservedEvent));
171 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
173 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
174 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Fail);
179 "DevUnload",
"", OS::Always);
180 SeqAsserter->insert(std::move(ExpectedEvent));
183 "DevFini",
"", OS::Always,
186 SeqAsserter->notify(std::move(ObservedEvent));
187 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
189 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
190 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Fail);
199 "Target",
"MyTargetGroup", OS::Always,
203 SeqAsserter->insert(std::move(ExpectedEvent));
204 ASSERT_EQ(SeqAsserter->Events.empty(),
false);
207 SeqAsserter->setActive(
false);
208 ASSERT_EQ(SeqAsserter->isActive(),
false);
209 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
213 "Target",
"MyTargetGroup", OS::Always,
215 nullptr, 23,
nullptr);
216 SeqAsserter->notify(std::move(ObservedEvent));
219 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
220 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
221 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 1);
224 SeqAsserter->setActive(
true);
225 ASSERT_EQ(SeqAsserter->isActive(),
true);
226 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
230 "Target",
"AnotherGroup", OS::Always,
232 nullptr, 23,
nullptr);
233 SeqAsserter->notify(std::move(AnotherObservedEvent));
236 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
237 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 1);
238 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 0);
240 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
245 "Target",
"MyTargetGroup", OS::Always,
249 SeqAsserter->insert(std::move(ExpectedEvent));
250 ASSERT_EQ(SeqAsserter->Events.empty(),
false);
251 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 1);
255 "Target",
"MyTargetGroup", OS::Always,
257 nullptr, 23,
nullptr);
258 SeqAsserter->notify(std::move(ObservedEvent));
259 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
264 ASSERT_EQ(SeqAsserter->getNotificationCount(), 2);
265 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 1);
268 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
271 "Target",
"MyTargetGroup", OS::Always,
276 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 0);
277 SeqAsserter->insert(std::move(AnotherExpectedEvent));
278 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 1);
284 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Fail);
289 "Target",
"MyTargetGroup", OS::Always,
293 SeqAsserter->insert(std::move(ExpectedEvent));
294 ASSERT_EQ(SeqAsserter->Events.empty(),
false);
295 ASSERT_EQ(SeqAsserter->getRemainingEventCount(), 1);
299 "Target",
"MyTargetGroup", OS::Always,
301 nullptr, 23,
nullptr);
302 SeqAsserter->notify(std::move(ObservedEvent));
303 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
306 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
310 "Target",
"MyTargetGroup", OS::Always,
312 nullptr, 23,
nullptr);
315 SeqAsserter->notify(std::move(AnotherObservedEvent));
316 ASSERT_EQ(SeqAsserter->getNotificationCount(), 2);
317 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Fail);
323 ASSERT_EQ(SeqAsserter->Events.empty(),
false);
327 ASSERT_EQ(SeqAsserter->getNotificationCount(), 0);
328 ASSERT_EQ(SeqAsserter->AssertionSuspended,
false);
330 "DevFini",
"", OS::Always,
332 ASSERT_EQ(SeqAsserter->AssertionSuspended,
true);
333 ASSERT_EQ(SeqAsserter->getNotificationCount(), 1);
335 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 0);
336 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
339 "Target",
"MyTargetGroup", OS::Always,
343 SeqAsserter->insert(std::move(ExpectedEvent));
347 ASSERT_EQ(SeqAsserter->AssertionSuspended,
true);
349 "Target",
"MyTargetGroup", OS::Always,
353 ASSERT_EQ(SeqAsserter->AssertionSuspended,
false);
355 ASSERT_EQ(SeqAsserter->getNotificationCount(), 2);
356 ASSERT_EQ(SeqAsserter->getSuccessfulAssertionCount(), 1);
357 ASSERT_EQ(SeqAsserter->checkState(), AssertState::Pass);
Defines shorthand aliases for OMPT enum values, providing improved ease-of-use and readability.
constexpr ompt_scope_endpoint_t BEGIN
Aliases for enum: ompt_scope_endpoint_t.
constexpr ompt_target_t TARGET
Aliases for enum: ompt_target_t.
Contains all asserter-related class declarations and important enums.
TEST_F(OmptSequencedAsserterTest, DefaultState)
SequencedAsserter test-fixture class to avoid code duplication among tests.
std::unique_ptr< omptest::OmptSequencedAsserter > SeqAsserter
OmptSequencedAsserterTest()
Assertion event struct, provides statically callable CTORs.
static OmptAssertEvent AssertionSuspend(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent AssertionSyncPoint(const std::string &Name, const std::string &Group, const ObserveState &Expected, const std::string &SyncPointName)
static OmptAssertEvent DeviceUnload(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent DeviceFinalize(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum)
static OmptAssertEvent ParallelBegin(const std::string &Name, const std::string &Group, const ObserveState &Expected, int NumThreads)
static OmptAssertEvent Target(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum=expectedDefault(int), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_id_t TargetId=expectedDefault(ompt_id_t), const void *CodeptrRA=expectedDefault(void *))