blob: 093ac36280099de9ab579564cca9ab48a740ab33 [file]
#include "OmptAssertEvent.h"
#include "OmptAsserter.h"
#include "OmptTester.h"
#include <omp-tools.h>
#include "gtest/gtest.h"
using OS = omptest::ObserveState;
using OAE = omptest::OmptAssertEvent;
TEST(CompareOperatorTests, ThreadBeginIdentity) {
auto TBInitial =
OAE::ThreadBegin("dflt", "", OS::Always, ompt_thread_initial);
auto TBWorker = OAE::ThreadBegin("dflt", "", OS::Always, ompt_thread_worker);
auto TBOther = OAE::ThreadBegin("dflt", "", OS::Always, ompt_thread_other);
auto TBUnknown =
OAE::ThreadBegin("dflt", "", OS::Always, ompt_thread_unknown);
ASSERT_EQ(TBInitial, TBInitial);
ASSERT_EQ(TBWorker, TBWorker);
ASSERT_EQ(TBOther, TBOther);
ASSERT_EQ(TBUnknown, TBUnknown);
}
TEST(CompareOperatorTests, ThreadEndIdentity) {
auto TE = OAE::ThreadEnd("dflt", "", OS::Always);
ASSERT_EQ(TE, TE);
}
TEST(CompareOperatorTests, ParallelBeginIdentity) {
auto PBNumT = OAE::ParallelBegin("thrdenable", "", OS::Always, 3);
ASSERT_EQ(PBNumT, PBNumT);
}
TEST(CompareOperatorTests, ParallelEndIdentity) {
auto PEDflt = OAE::ParallelEnd("dflt", "", OS::Always);
// TODO: Add cases with parallel data set, task data set, flags
ASSERT_EQ(PEDflt, PEDflt);
}
TEST(CompareOperatorTests, WorkIdentity) {
auto WDLoopBgn =
OAE::Work("loopbgn", "", OS::Always, ompt_work_loop, ompt_scope_begin);
auto WDLoopEnd =
OAE::Work("loopend", "", OS::Always, ompt_work_loop, ompt_scope_end);
ASSERT_EQ(WDLoopBgn, WDLoopBgn);
ASSERT_EQ(WDLoopEnd, WDLoopEnd);
auto WDSectionsBgn = OAE::Work("sectionsbgn", "", OS::Always,
ompt_work_sections, ompt_scope_begin);
auto WDSectionsEnd = OAE::Work("sectionsend", "", OS::Always,
ompt_work_sections, ompt_scope_end);
// TODO: singleexecutor, single_other, workshare, distribute, taskloop, scope,
// loop_static, loop_dynamic, loop_guided, loop_other
ASSERT_EQ(WDSectionsBgn, WDSectionsBgn);
ASSERT_EQ(WDSectionsEnd, WDSectionsEnd);
}
TEST(CompareOperatorTests, DispatchIdentity) {
auto DIDflt = OAE::Dispatch("dflt", "", OS::Always);
ASSERT_EQ(DIDflt, DIDflt);
}
TEST(CompareOperatorTests, TaskCreateIdentity) {
auto TCDflt = OAE::TaskCreate("dflt", "", OS::Always);
ASSERT_EQ(TCDflt, TCDflt);
}
TEST(CompareOperatorTests, TaskScheduleIdentity) {
auto TS = OAE::TaskSchedule("dflt", "", OS::Always);
ASSERT_EQ(TS, TS);
}
TEST(CompareOperatorTests, ImplicitTaskIdentity) {
auto ITDfltBgn =
OAE::ImplicitTask("dfltbgn", "", OS::Always, ompt_scope_begin);
auto ITDfltEnd = OAE::ImplicitTask("dfltend", "", OS::Always, ompt_scope_end);
ASSERT_EQ(ITDfltBgn, ITDfltBgn);
ASSERT_EQ(ITDfltEnd, ITDfltEnd);
}
TEST(CompareOperatorTests, SyncRegionIdentity) {
auto SRDfltBgn =
OAE::SyncRegion("srdfltbgn", "", OS::Always,
ompt_sync_region_barrier_explicit, ompt_scope_begin);
auto SRDfltEnd =
OAE::SyncRegion("srdfltend", "", OS::Always,
ompt_sync_region_barrier_explicit, ompt_scope_end);
ASSERT_EQ(SRDfltBgn, SRDfltBgn);
ASSERT_EQ(SRDfltEnd, SRDfltEnd);
}
TEST(CompareOperatorTests, TargetIdentity) {
auto TargetDfltBgn =
OAE::Target("dfltbgn", "", OS::Always, ompt_target, ompt_scope_begin);
auto TargetDfltEnd =
OAE::Target("dfltend", "", OS::Always, ompt_target, ompt_scope_end);
ASSERT_EQ(TargetDfltBgn, TargetDfltBgn);
ASSERT_EQ(TargetDfltEnd, TargetDfltEnd);
auto TargetDevBgn = OAE::Target("tgtdevbgn", "", OS::Always, ompt_target,
ompt_scope_begin, 1);
auto TargetDevEnd =
OAE::Target("tgtdevend", "", OS::Always, ompt_target, ompt_scope_end, 1);
ASSERT_EQ(TargetDevBgn, TargetDevBgn);
ASSERT_EQ(TargetDevEnd, TargetDevEnd);
}
TEST(CompareOperatorTests, BufferRecordIdentity) {
// Default, no time limit or anything
auto BRDflt =
OAE::BufferRecord("dflt", "", OS::Always, ompt_callback_target_submit);
// Minimum time set, no max time
auto BRMinSet = OAE::BufferRecord("minset", "", OS::Always,
ompt_callback_target_submit, 10);
// Minimum time and maximum time set
auto BRMinMaxSet = OAE::BufferRecord("minmaxset", "", OS::Always,
ompt_callback_target_submit, {10, 100});
ASSERT_EQ(BRDflt, BRDflt);
ASSERT_EQ(BRMinSet, BRMinSet);
ASSERT_EQ(BRMinMaxSet, BRMinMaxSet);
}
// Add main definition
OMPTEST_TESTSUITE_MAIN()