1 /* ------------------------------------------------------------------
2 * Copyright (C) 1998-2009 PacketVideo
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13 * express or implied.
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 * -------------------------------------------------------------------
17 */
18 #include "text_test_interpreter.h"
19
20
_yak_itoa(int input)21 _STRING _yak_itoa(int input)
22 {
23 char buffer[32];
24 sprintf(buffer, "%d", input);
25 return buffer;
26 }
27
28 //the header for the report
29 _STRING
header(const test_result & result) const30 text_test_interpreter::header(const test_result& result) const
31 {
32 _STRING Result("\nTest output begins\nNumber of tests: ");
33 _APPEND(Result, _yak_itoa(result.total_test_count()));
34 _APPEND(Result, "\n");
35 return Result;
36
37 }
38
39 _STRING
footer(const test_result & result) const40 text_test_interpreter::footer(const test_result& result) const
41 {
42 result.total_test_count();
43 _STRING Result("Test output ends\n");
44 return Result;
45 }
46
47 _STRING
successes(const test_result & result) const48 text_test_interpreter::successes(const test_result& result) const
49 {
50 _STRING Result("Successes: ");
51 _APPEND(Result, _yak_itoa(result.success_count()));
52 _APPEND(Result, "\n");
53 return Result;
54 }
55
56 _STRING
failures(const test_result & result) const57 text_test_interpreter::failures(const test_result& result) const
58 {
59 _STRING Result("Failures: ");
60 _APPEND(Result, _yak_itoa(result.failures().size()));
61 _APPEND(Result, "\n");
62 _APPEND(Result, problem_vector_string(result.failures()));
63 _APPEND(Result, "\n");
64 return Result;
65 }
66
67 _STRING
errors(const test_result & result) const68 text_test_interpreter::errors(const test_result& result) const
69 {
70 _STRING Result("Errors: ");
71 _APPEND(Result, _yak_itoa(result.errors().size()));
72 _APPEND(Result, "\n");
73 _APPEND(Result, problem_vector_string(result.errors()));
74 _APPEND(Result, "\n");
75 return Result;
76 }
77
78 _STRING
problem_vector_string(const _VECTOR (test_problem,unit_test_allocator)& vect) const79 text_test_interpreter::problem_vector_string(const _VECTOR(test_problem, unit_test_allocator)&
80 vect) const
81 {
82 _STRING Result;
83
84 for (_VECTOR(test_problem, unit_test_allocator)::const_iterator iter = vect.begin();
85 iter != vect.end();
86 ++iter)
87 {
88 _APPEND(Result, problem_string(*iter));
89 }
90 return Result;
91 }
92
93 _STRING
problem_string(const test_problem & problem) const94 text_test_interpreter::problem_string(const test_problem& problem) const
95 {
96 _STRING Result;
97 _APPEND(Result, problem.filename());
98 _APPEND(Result, ":");
99 _APPEND(Result, _yak_itoa(problem.line_number()));
100 _APPEND(Result, ":");
101 _APPEND(Result, problem.message());
102 _APPEND(Result, "\n");
103 return Result;
104 }
105
106 _STRING
interpretation(const test_result & result_to_interpret) const107 text_test_interpreter::interpretation(const test_result& result_to_interpret) const
108 {
109 _STRING Result;
110 _APPEND(Result, header(result_to_interpret));
111 _APPEND(Result, successes(result_to_interpret));
112 _APPEND(Result, failures(result_to_interpret));
113 _APPEND(Result, errors(result_to_interpret));
114 _APPEND(Result, footer(result_to_interpret));
115 return Result;
116 }
117
118