1 | |
---|
2 | |
---|
3 | |
---|
4 | |
---|
5 | |
---|
6 | |
---|
7 | |
---|
8 | |
---|
9 | |
---|
10 | |
---|
11 | |
---|
12 | |
---|
13 | |
---|
14 | |
---|
15 | |
---|
16 | |
---|
17 | |
---|
18 | |
---|
19 | |
---|
20 | |
---|
21 | |
---|
22 | |
---|
23 | |
---|
24 | |
---|
25 | |
---|
26 | |
---|
27 | |
---|
28 | |
---|
29 | |
---|
30 | |
---|
31 | |
---|
32 | with Ada_Containers.AUnit_Lists; |
---|
33 | |
---|
34 | with AUnit.Time_Measure; use AUnit.Time_Measure; |
---|
35 | |
---|
36 | |
---|
37 | |
---|
38 | package AUnit.Test_Results is |
---|
39 | |
---|
40 | type Result is tagged limited private; |
---|
41 | |
---|
42 | |
---|
43 | |
---|
44 | type Test_Failure is record |
---|
45 | Message : Message_String; |
---|
46 | Source_Name : Message_String; |
---|
47 | Line : Natural; |
---|
48 | end record; |
---|
49 | type Test_Failure_Access is access all Test_Failure; |
---|
50 | pragma No_Strict_Aliasing (Test_Failure_Access); |
---|
51 | |
---|
52 | |
---|
53 | type Test_Error is record |
---|
54 | Exception_Name : Message_String; |
---|
55 | Exception_Message : Message_String; |
---|
56 | Traceback : Message_String; |
---|
57 | end record; |
---|
58 | type Test_Error_Access is access all Test_Error; |
---|
59 | pragma No_Strict_Aliasing (Test_Error_Access); |
---|
60 | |
---|
61 | |
---|
62 | type Test_Result is record |
---|
63 | Test_Name : Message_String; |
---|
64 | Routine_Name : Message_String; |
---|
65 | Failure : Test_Failure_Access; |
---|
66 | Error : Test_Error_Access; |
---|
67 | Elapsed : Time := Null_Time; |
---|
68 | end record; |
---|
69 | |
---|
70 | |
---|
71 | use Ada_Containers; |
---|
72 | |
---|
73 | package Result_Lists is new Ada_Containers.AUnit_Lists (Test_Result); |
---|
74 | |
---|
75 | |
---|
76 | procedure Add_Error |
---|
77 | (R : in out Result; |
---|
78 | Test_Name : Message_String; |
---|
79 | Routine_Name : Message_String; |
---|
80 | Error : Test_Error; |
---|
81 | Elapsed : Time); |
---|
82 | |
---|
83 | |
---|
84 | procedure Add_Failure |
---|
85 | (R : in out Result; |
---|
86 | Test_Name : Message_String; |
---|
87 | Routine_Name : Message_String; |
---|
88 | Failure : Test_Failure; |
---|
89 | Elapsed : Time); |
---|
90 | |
---|
91 | |
---|
92 | procedure Add_Success |
---|
93 | (R : in out Result; |
---|
94 | Test_Name : Message_String; |
---|
95 | Routine_Name : Message_String; |
---|
96 | Elapsed : Time); |
---|
97 | |
---|
98 | |
---|
99 | procedure Set_Elapsed (R : in out Result; T : Time); |
---|
100 | |
---|
101 | |
---|
102 | function Error_Count (R : Result) return Count_Type; |
---|
103 | |
---|
104 | |
---|
105 | procedure Errors (R : Result; |
---|
106 | E : in out Result_Lists.List); |
---|
107 | |
---|
108 | |
---|
109 | function Failure_Count (R : Result) return Count_Type; |
---|
110 | |
---|
111 | |
---|
112 | procedure Failures (R : Result; F : in out Result_Lists.List); |
---|
113 | |
---|
114 | |
---|
115 | function Elapsed (R : Result) return Time; |
---|
116 | |
---|
117 | |
---|
118 | procedure Start_Test (R : in out Result; Subtest_Count : Count_Type); |
---|
119 | |
---|
120 | |
---|
121 | function Success_Count (R : Result) return Count_Type; |
---|
122 | |
---|
123 | |
---|
124 | procedure Successes (R : Result; S : in out Result_Lists.List); |
---|
125 | |
---|
126 | |
---|
127 | function Successful (R : Result) return Boolean; |
---|
128 | |
---|
129 | |
---|
130 | function Test_Count (R : Result) return Ada_Containers.Count_Type; |
---|
131 | |
---|
132 | |
---|
133 | procedure Clear (R : in out Result); |
---|
134 | |
---|
135 | |
---|
136 | private |
---|
137 | |
---|
138 | pragma Inline (Errors, Failures, Successes); |
---|
139 | |
---|
140 | type Result is tagged limited record |
---|
141 | Tests_Run : Count_Type := 0; |
---|
142 | Result_List : Result_Lists.List; |
---|
143 | Elapsed_Time : Time := Null_Time; |
---|
144 | end record; |
---|
145 | |
---|
146 | end AUnit.Test_Results; |
---|