1 #ifndef _IPXE_TEST_H
2 #define _IPXE_TEST_H
3 
4 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
5 
6 /** @file
7  *
8  * Self-test infrastructure
9  *
10  */
11 
12 #include <ipxe/tables.h>
13 
14 /** A self-test set */
15 struct self_test {
16 	/** Test set name */
17 	const char *name;
18 	/** Run self-tests */
19 	void ( * exec ) ( void );
20 	/** Number of tests run */
21 	unsigned int total;
22 	/** Number of test failures */
23 	unsigned int failures;
24 	/** Number of assertion failures */
25 	unsigned int assertion_failures;
26 };
27 
28 /** Self-test table */
29 #define SELF_TESTS __table ( struct self_test, "self_tests" )
30 
31 /** Declare a self-test */
32 #define __self_test __table_entry ( SELF_TESTS, 01 )
33 
34 extern void test_ok ( int success, const char *file, unsigned int line,
35 		      const char *test );
36 
37 /**
38  * Report test result
39  *
40  * @v success		Test succeeded
41  * @v file		File name
42  * @v line		Line number
43  */
44 #define okx( success, file, line ) \
45 	test_ok ( success, file, line, #success )
46 #define ok( success ) \
47 	okx ( success, __FILE__, __LINE__ )
48 
49 #endif /* _IPXE_TEST_H */
50