mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 03:16:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __LIBGIT2_TEST_H__
 | 
						|
#define __LIBGIT2_TEST_H__
 | 
						|
 | 
						|
#include <stdarg.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
#include "common.h"
 | 
						|
#include <git2.h>
 | 
						|
 | 
						|
#define DECLARE_SUITE(SNAME) extern git_testsuite *libgit2_suite_##SNAME(void)
 | 
						|
#define SUITE_NAME(SNAME) libgit2_suite_##SNAME
 | 
						|
 | 
						|
#define BEGIN_SUITE(SNAME) \
 | 
						|
	git_testsuite *libgit2_suite_##SNAME(void);\
 | 
						|
	git_testsuite *libgit2_suite_##SNAME(void) {\
 | 
						|
		git_testsuite *_gitsuite = git_testsuite_new(#SNAME);
 | 
						|
 | 
						|
#define ADD_TEST(TNAME) \
 | 
						|
	git_testsuite_add(_gitsuite, _gittest__##TNAME);
 | 
						|
 | 
						|
#define END_SUITE \
 | 
						|
		return _gitsuite;\
 | 
						|
	}
 | 
						|
 | 
						|
#define BEGIN_TEST(TNAME, DESC) \
 | 
						|
	static void _gittest__##TNAME(git_test *_gittest) { \
 | 
						|
		git_test__init(_gittest, #TNAME, DESC); \
 | 
						|
		git_clearerror();\
 | 
						|
		{\
 | 
						|
 | 
						|
#define END_TEST }}
 | 
						|
 | 
						|
typedef struct git_test git_test;
 | 
						|
typedef struct git_testsuite git_testsuite;
 | 
						|
typedef void (*git_testfunc)(git_test *);
 | 
						|
typedef git_testsuite *(*libgit2_suite)(void);
 | 
						|
 | 
						|
void git_test__init(git_test *t, const char *name, const char *description);
 | 
						|
void git_test__fail(git_test *tc, const char *file, int line, const char *message);
 | 
						|
void git_test__assert(git_test *tc, const char *file, int line, const char *message, int condition);
 | 
						|
void git_test__assert_pass(git_test *tc, const char *file, int line, const char *message, int ret_value);
 | 
						|
 | 
						|
#define must_pass(expr) git_test__assert_pass(_gittest, __FILE__, __LINE__, "Method failed: " #expr, (expr))
 | 
						|
#define must_fail(expr) git_test__assert(_gittest, __FILE__, __LINE__, "Expected method to fail: " #expr, (expr) < 0)
 | 
						|
#define must_be_true(expr) git_test__assert(_gittest, __FILE__, __LINE__, "Expression is not true: " #expr, !!(expr))
 | 
						|
 | 
						|
git_testsuite *git_testsuite_new(const char *name);
 | 
						|
void git_testsuite_add(git_testsuite *ts, git_testfunc test);
 | 
						|
int git_testsuite_run(git_testsuite *ts);
 | 
						|
 | 
						|
#endif
 | 
						|
 |