15#ifndef OPENMP_TOOLS_OMPTEST_INCLUDE_OMPTTESTERSTANDALONE_H
16#define OPENMP_TOOLS_OMPTEST_INCLUDE_OMPTTESTERSTANDALONE_H
46 virtual void execImpl() { assert(
false &&
"Allocating base class"); }
54 std::make_unique<omptest::OmptSequencedAsserter>();
56 std::make_unique<omptest::OmptEventAsserter>();
58 std::make_unique<omptest::OmptEventReporter>();
69 TestCaseVec::iterator
begin();
70 TestCaseVec::iterator
end();
77 static TestRegistrar &
get();
82 TestRegistrar() =
default;
83 TestRegistrar(
const TestRegistrar &o) =
delete;
84 TestRegistrar operator=(
const TestRegistrar &o) =
delete;
88 static std::vector<std::pair<std::string, TestSuite>> Tests;
108#define XQUOTE(str) QUOTE(str)
109#define QUOTE(str) #str
111#define TEST_TEMPLATE(SuiteName, CaseName, ExpectedState) \
112 struct SuiteName##_##CaseName : public TestCase { \
113 SuiteName##_##CaseName() \
114 : TestCase(XQUOTE(CaseName), omptest::AssertState::ExpectedState) {} \
115 virtual void execImpl() override; \
117 static Registerer R_##SuiteName##CaseName(new SuiteName##_##CaseName(), \
119 void SuiteName##_##CaseName::execImpl()
121#define TEST(SuiteName, CaseName) \
122 TEST_TEMPLATE(SuiteName, CaseName, Pass)
123#define TEST_XFAIL(SuiteName, CaseName) \
124 TEST_TEMPLATE(SuiteName, CaseName, Fail)
Contains assertion event constructors, for generally all observable events.
Contains all asserter-related class declarations and important enums.
Contains global function declarations, esp.
Static class used to register all test cases and provide them to the driver.
static void addCaseToSuite(TestCase *TC, const std::string &TSName)
static std::vector< TestSuite > getTestSuites()
static TestRegistrar & get()
Class that reports the occurred events.
Class that can assert in a sequenced fashion, i.e., events have to occur in the order they were regis...
__itt_string_handle * name
Registerer(TestCase *TC, const std::string SuiteName)
std::vector< TestSuite > TestSuites
void reportError(const Error &Err)
A pretty crude test case abstraction.
std::unique_ptr< omptest::OmptEventAsserter > SetAsserter
omptest::AssertState ExpectedState
virtual ~TestCase()=default
omptest::AssertState ResultState
TestCase(const std::string &name, const omptest::AssertState &expected)
std::unique_ptr< omptest::OmptSequencedAsserter > SequenceAsserter
std::unique_ptr< omptest::OmptEventReporter > EventReporter
TestCase(const std::string &name)
TestSuite(const TestSuite &O)=delete
TestCaseVec::iterator end()
std::vector< std::unique_ptr< TestCase > > TestCaseVec
TestCaseVec::iterator begin()
TestSuite(const std::string &TSName)
Class that asserts with set semantics, i.e., unordered.