try to add assert_eq and bool tests
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
#ifndef __TEST_C_H__
|
||||
#define __TEST_C_H__
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "src/tools_t/tools_t.h"
|
||||
|
||||
|
||||
|
||||
struct func {
|
||||
char *name;
|
||||
void (*run)(void);
|
||||
struct func *next;
|
||||
};
|
||||
|
||||
//void begin_f();
|
||||
//struct func f_beging;
|
||||
|
||||
void vprintf_colored(char *color, char * format, ...);
|
||||
|
||||
void run_all_tests();
|
||||
void execute_all(struct func *fun);
|
||||
void append_func(void (*run)(void), char *name);
|
||||
void clear_all_func();
|
||||
void run_some_tests(size_t cnt, ... );
|
||||
void run_all_tests_exept(size_t cnt, ... );
|
||||
void run_some_tests_ordered(size_t cnt, ... );
|
||||
|
||||
|
||||
|
||||
|
||||
bool assert_true_from(bool val, const char* var_name, const char * func_name);
|
||||
bool assert_false_from(bool val, const char* var_name, const char * func_name);
|
||||
|
||||
|
||||
#define GEN_ASSERT_EQ_TYPE_FUNC(type)\
|
||||
bool assert_eq_##type(type var1, type var2, \
|
||||
const char *var1_name, const char *var2_name, const char *func_name); \
|
||||
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_CHAR)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_U_CHAR)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_INT)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_U_INT)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_L_INT)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_U_L_INT)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_SIZE_T)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_FLOAT)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_DOUBLE)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_L_DOUBLE)
|
||||
GEN_ASSERT_EQ_TYPE_FUNC(TYPE_STRING)
|
||||
|
||||
#define ASSERT_EQ_TYPE_CHAR(var1, var2) if(assert_eq_TYPE_CHAR(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_U_CHAR(var1, var2) if(assert_eq_TYPE_U_CHAR(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_INT(var1, var2) if(assert_eq_TYPE_INT(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_U_INT(var1, var2) if(assert_eq_TYPE_U_INT(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_L_INT(var1, var2) if(assert_eq_TYPE_L_INT(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_U_L_INT(var1, var2) if(assert_eq_TYPE_U_L_INT(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_SIZE_T(var1, var2) if(assert_eq_TYPE_SIZE_T(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_FLOAT(var1, var2) if(assert_eq_TYPE_FLOAT(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_DOUBLE(var1, var2) if(assert_eq_TYPE_DOUBLE(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_L_DOUBLE(var1, var2) if(assert_eq_TYPE_L_DOUBLE(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
#define ASSERT_EQ_TYPE_STRING(var1, var2) if(assert_eq_TYPE_STRING(var1, var2, #var1, #var2, __func__) == false) return ;
|
||||
|
||||
|
||||
|
||||
#define CONCAT(x,y) x ## y
|
||||
#define STRFY(x) # x
|
||||
|
||||
#define test_label test
|
||||
|
||||
#define FTEST_(count, name_f) \
|
||||
void CONCAT(test_##name_f##____,count)(void); \
|
||||
__attribute__((constructor)) \
|
||||
void CONCAT(append_test_##name_f,count)(void){ \
|
||||
append_func(CONCAT(test_##name_f##____,count),STRFY(name_f test count)); \
|
||||
} \
|
||||
void CONCAT(test_##name_f##____,count)(void)
|
||||
|
||||
#define FTEST__(count, name_f) \
|
||||
void CONCAT(name_f##___,count)(void); \
|
||||
__attribute__((constructor)) \
|
||||
void CONCAT(append_test_##name_f,count)(void){ \
|
||||
append_func(CONCAT(name_f##___,count),STRFY(name_f test count)); \
|
||||
} \
|
||||
void CONCAT(name_f##___,count)(void)
|
||||
|
||||
|
||||
#define TEST(name_f)\
|
||||
FTEST_(__COUNTER__,name_f)
|
||||
|
||||
//#define TEST(name_f) \
|
||||
FTEST__(__COUNTER__,name_f)
|
||||
|
||||
#define ASSERT_TRUE(val)\
|
||||
if(assert_true_from(val,#val,__func__) == false) return;
|
||||
|
||||
#define ASSERT_FALSE(val)\
|
||||
if(assert_false_from(val,#val,__func__) == false) return;
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* __TEST_C_H__ */
|
||||
Reference in New Issue
Block a user