EmbeddedUnit
TestRunner.c
Go to the documentation of this file.
1 
34 #include "config.h"
35 #include "stdImpl.h"
36 #include "Test.h"
37 #include "TestListener.h"
38 #include "TestResult.h"
39 #include "TestRunner.h"
40 
41 static TestResult result_;
42 static Test* root_;
43 
44 static void TestRunner_startTest(TestListner* self,Test* test)
45 {
46  stdimpl_print(".");
47 }
48 
49 static void TestRunner_endTest(TestListner* self,Test* test)
50 {
51 }
52 
53 static void TestRunner_addFailure(TestListner* self,Test* test,char* msg,int line,char* file)
54 {
55  stdimpl_print("\n");
56  stdimpl_print(Test_name(root_));
57  stdimpl_print(".");
58  stdimpl_print(Test_name(test));
59  {
60  char buf[16];
61  stdimpl_print(" (");
62  stdimpl_print(file);
63  stdimpl_print(" ");
64  stdimpl_itoa(line, buf, 10);
65  stdimpl_print(buf);
66  stdimpl_print(") ");
67  }
68  stdimpl_print(msg);
69  stdimpl_print("\n");
70 }
71 
72 static const TestListnerImplement TestRunnerImplement = {
73  (TestListnerStartTestCallBack) TestRunner_startTest,
74  (TestListnerEndTestCallBack) TestRunner_endTest,
75  (TestListnerAddFailureCallBack) TestRunner_addFailure,
76 };
77 
78 static const TestListner testrunner_ = {
79  (TestListnerImplement*)&TestRunnerImplement,
80 };
81 
82 void TestRunner_start(void)
83 {
84  TestResult_init(&result_, (TestListner*)&testrunner_);
85 }
86 
87 void TestRunner_runTest(Test* test)
88 {
89  root_ = test;
90  Test_run(test, &result_);
91 }
92 
93 void TestRunner_end(void)
94 {
95  char buf[16];
96  if (result_.failureCount) {
97  stdimpl_print("\nrun ");
98  stdimpl_itoa(result_.runCount, buf, 10);
99  stdimpl_print(buf);
100  stdimpl_print(" failures ");
101  stdimpl_itoa(result_.failureCount, buf, 10);
102  stdimpl_print(buf);
103  stdimpl_print("\n");
104  } else {
105  stdimpl_print("\nOK (");
106  stdimpl_itoa(result_.runCount, buf, 10);
107  stdimpl_print(buf);
108  stdimpl_print(" tests)\n");
109  }
110 }
Definition: Test.h:56