28 #ifndef D_OrderedTest_h 29 #define D_OrderedTest_h 31 class OrderedTestShell :
public UtestShell
35 virtual ~OrderedTestShell();
37 virtual OrderedTestShell* addOrderedTest(OrderedTestShell* test);
38 virtual OrderedTestShell* getNextOrderedTest();
41 void setLevel(
int level);
43 static void addOrderedTestToHead(OrderedTestShell* test);
44 static OrderedTestShell* getOrderedTestHead();
45 static bool firstOrderedTest();
47 static void setOrderedTestHead(OrderedTestShell* test);
49 static OrderedTestShell* _orderedTestsHead;
50 OrderedTestShell* _nextOrderedTest;
56 class OrderedTestInstaller
59 explicit OrderedTestInstaller(OrderedTestShell& test,
const char* groupName,
const char* testName,
const char* fileName,
int lineNumber,
int level);
60 virtual ~OrderedTestInstaller();
63 void addOrderedTestInOrder(OrderedTestShell* test);
64 void addOrderedTestInOrderNotAtHeadPosition(OrderedTestShell* test);
68 #define TEST_ORDERED(testGroup, testName, testLevel) \ 70 class TEST_##testGroup##_##testName##_TestShell; \ 71 extern TEST_##testGroup##_##testName##_TestShell TEST_##testGroup##_##testName##_Instance; \ 72 class TEST_##testGroup##_##testName##_Test : public TEST_GROUP_##CppUTestGroup##testGroup \ 73 { public: TEST_##testGroup##_##testName##_Test () : TEST_GROUP_##CppUTestGroup##testGroup () {} \ 75 class TEST_##testGroup##_##testName##_TestShell : public OrderedTestShell { \ 76 virtual Utest* createTest() _override { return new TEST_##testGroup##_##testName##_Test; } \ 77 } TEST_##testGroup##_##testName##_Instance; \ 78 static OrderedTestInstaller TEST_##testGroup##_##testName##_Installer(TEST_##testGroup##_##testName##_Instance, #testGroup, #testName, __FILE__,__LINE__, testLevel); \ 79 void TEST_##testGroup##_##testName##_Test::testBody()