TianoCore EDK2 master
Loading...
Searching...
No Matches
UnitTestFrameworkTypes.h
Go to the documentation of this file.
1
10#ifndef __UNIT_TEST_TYPES_H__
11#define __UNIT_TEST_TYPES_H__
12
13#include <Library/UnitTestLib.h>
14
18#define UNIT_TEST_MAX_STRING_LENGTH (512)
19
25#define UNIT_TEST_FINGERPRINT_SIZE (sizeof (UINT32))
26
31typedef UINT32 FAILURE_TYPE;
32#define FAILURETYPE_NOFAILURE (0)
33#define FAILURETYPE_OTHER (1)
34#define FAILURETYPE_ASSERTTRUE (2)
35#define FAILURETYPE_ASSERTFALSE (3)
36#define FAILURETYPE_ASSERTEQUAL (4)
37#define FAILURETYPE_ASSERTNOTEQUAL (5)
38#define FAILURETYPE_ASSERTNOTEFIERROR (6)
39#define FAILURETYPE_ASSERTSTATUSEQUAL (7)
40#define FAILURETYPE_ASSERTNOTNULL (8)
41#define FAILURETYPE_EXPECTASSERT (9)
42
46typedef struct {
47 CHAR8 *Description;
48 CHAR8 *Name; // can't have spaces and should be short
49 CHAR8 *Log;
50 FAILURE_TYPE FailureType;
51 CHAR8 FailureMessage[UNIT_TEST_MAX_STRING_LENGTH];
52 UINT8 Fingerprint[UNIT_TEST_FINGERPRINT_SIZE];
53 UNIT_TEST_STATUS Result;
54 UNIT_TEST_FUNCTION RunTest;
55 UNIT_TEST_PREREQUISITE Prerequisite;
56 UNIT_TEST_CLEANUP CleanUp;
57 UNIT_TEST_CONTEXT Context;
58 UNIT_TEST_SUITE_HANDLE ParentSuite;
59} UNIT_TEST;
60
64typedef struct {
65 LIST_ENTRY Entry;
66 UNIT_TEST UT;
68
72typedef struct {
73 UINTN NumTests;
74 CHAR8 *Title;
75 CHAR8 *Name;
76 UINT8 Fingerprint[UNIT_TEST_FINGERPRINT_SIZE];
79 LIST_ENTRY TestCaseList; // UNIT_TEST_LIST_ENTRY
80 UNIT_TEST_FRAMEWORK_HANDLE ParentFramework;
82
87typedef struct {
88 LIST_ENTRY Entry;
91
95typedef struct {
96 CHAR8 *Title;
97 CHAR8 *ShortTitle; // This title should contain NO spaces or non-filename characters. Is used in reporting and serialization.
98 CHAR8 *VersionString;
99 CHAR8 *Log;
100 UINT8 Fingerprint[UNIT_TEST_FINGERPRINT_SIZE];
101 LIST_ENTRY TestSuiteList; // UNIT_TEST_SUITE_LIST_ENTRY
102 EFI_TIME StartTime;
103 EFI_TIME EndTime;
104 UNIT_TEST *CurrentTest;
105 VOID *SavedState; // This is an instance of UNIT_TEST_SAVE_HEADER*, if present.
107
111typedef struct {
112 UINT32 Size; // Size of the UNIT_TEST_SAVE_TEST including Log[]
113 UINT8 Fingerprint[UNIT_TEST_FINGERPRINT_SIZE]; // Fingerprint of the test itself.
114 CHAR8 FailureMessage[UNIT_TEST_MAX_STRING_LENGTH];
115 FAILURE_TYPE FailureType;
116 UNIT_TEST_STATUS Result;
117 CHAR8 Log[];
119
123typedef struct {
124 UINT32 Size; // Size of the UNIT_TEST_SAVE_CONTEXT including Data[]
125 UINT8 Fingerprint[UNIT_TEST_FINGERPRINT_SIZE]; // Fingerprint of the corresponding test.
126 UINT8 Data[]; // Actual data of the context.
128
132typedef struct {
133 UINT8 Version;
134 UINT32 SaveStateSize; // Size of the entire serialized buffer.
135 UINT8 Fingerprint[UNIT_TEST_FINGERPRINT_SIZE]; // Fingerprint of the framework that has been saved.
136 EFI_TIME StartTime;
137 UINT32 TestCount;
138 BOOLEAN HasSavedContext;
139 // UNIT_TEST_SAVE_TEST Tests[]; // Array of structures starts here.
140 // UNIT_TEST_SAVE_CONTEXT SavedContext[]; // Saved context for the currently running test.
141 // CHAR8 Log[]; // NOTE: Not yet implemented!!
143
155VOID
156EFIAPI
159 IN UINT8 *Buffer OPTIONAL,
160 IN UINTN BufferSize OPTIONAL
161 );
162
173UNIT_TEST_FRAMEWORK_HANDLE
175 VOID
176 );
177
178#endif
UINT64 UINTN
#define VOID
Definition: Base.h:269
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
INTN EFIAPI Test(CONST VOID *b1, CONST VOID *b2)
#define UNIT_TEST_FINGERPRINT_SIZE
UINT32 FAILURE_TYPE
VOID EFIAPI UnitTestLogInit(IN OUT UNIT_TEST *Test, IN UINT8 *Buffer OPTIONAL, IN UINTN BufferSize OPTIONAL)
Definition: Log.c:110
#define UNIT_TEST_MAX_STRING_LENGTH
UNIT_TEST_FRAMEWORK_HANDLE GetActiveFrameworkHandle(VOID)
Definition: RunTests.c:20
UNIT_TEST_STATUS(EFIAPI * UNIT_TEST_PREREQUISITE)(IN UNIT_TEST_CONTEXT Context)
Definition: UnitTestLib.h:103
VOID * UNIT_TEST_CONTEXT
Definition: UnitTestLib.h:54
VOID(EFIAPI * UNIT_TEST_SUITE_TEARDOWN)(VOID)
Definition: UnitTestLib.h:158
VOID(EFIAPI * UNIT_TEST_SUITE_SETUP)(VOID)
Definition: UnitTestLib.h:144
UINT32 UNIT_TEST_STATUS
Definition: UnitTestLib.h:16
UNIT_TEST_STATUS(EFIAPI * UNIT_TEST_FUNCTION)(IN UNIT_TEST_CONTEXT Context)
Definition: UnitTestLib.h:77
VOID(EFIAPI * UNIT_TEST_CLEANUP)(IN UNIT_TEST_CONTEXT Context)
Definition: UnitTestLib.h:130