| 
									
										
										
										
											2012-03-23 10:01:23 -07:00
										 |  |  | #ifndef _TEST_RUNNER_H_
 | 
					
						
							|  |  |  | #define _TEST_RUNNER_H_
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-19 12:14:19 +03:00
										 |  |  | #ifdef NDEBUG
 | 
					
						
							|  |  |  | #error "Tests must not be built with NDEBUG defined, they rely on assert()."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-02 18:03:16 -05:00
										 |  |  | struct test { | 
					
						
							|  |  |  | 	const char *name; | 
					
						
							|  |  |  | 	void (*run)(void); | 
					
						
							| 
									
										
										
										
											2012-04-19 14:26:51 +03:00
										 |  |  | 	int must_fail; | 
					
						
							|  |  |  | } __attribute__ ((aligned (16))); | 
					
						
							| 
									
										
										
										
											2012-03-02 18:03:16 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define TEST(name)						\
 | 
					
						
							|  |  |  | 	static void name(void);					\ | 
					
						
							|  |  |  | 								\ | 
					
						
							| 
									
										
										
										
											2012-04-19 14:26:51 +03:00
										 |  |  | 	const struct test test##name				\ | 
					
						
							| 
									
										
										
										
											2012-03-02 18:03:16 -05:00
										 |  |  | 		 __attribute__ ((section ("test_section"))) = {	\ | 
					
						
							| 
									
										
										
										
											2012-04-19 14:26:51 +03:00
										 |  |  | 		#name, name, 0					\
 | 
					
						
							|  |  |  | 	};							\ | 
					
						
							|  |  |  | 								\ | 
					
						
							|  |  |  | 	static void name(void) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define FAIL_TEST(name)						\
 | 
					
						
							|  |  |  | 	static void name(void);					\ | 
					
						
							|  |  |  | 								\ | 
					
						
							|  |  |  | 	const struct test test##name				\ | 
					
						
							|  |  |  | 		 __attribute__ ((section ("test_section"))) = {	\ | 
					
						
							|  |  |  | 		#name, name, 1					\
 | 
					
						
							| 
									
										
										
										
											2012-03-02 18:03:16 -05:00
										 |  |  | 	};							\ | 
					
						
							|  |  |  | 								\ | 
					
						
							|  |  |  | 	static void name(void) | 
					
						
							| 
									
										
										
										
											2012-03-23 10:01:23 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |