acl  3.5.3.0
acl_test_global.h
浏览该文件的文档.
1 #ifndef ACL_TEST_GLOBAL_INCLUDE_H
2 #define ACL_TEST_GLOBAL_INCLUDE_H
3 
4 # ifdef __plusplus
5 extern "C" {
6 # endif
7 
8 #include "../stdlib/acl_define.h"
9 #include "../stdlib/acl_loadcfg.h"
10 #include "../stdlib/acl_array.h"
11 
12 #include "acl_test_struct.h"
13 
14 /*----------------------- 内部函数接口 -----------------------------------*/
15 /* in acl_test_cfg.c */
16 ACL_API ACL_ARRAY *aut_parse_args_list(const char *str_in);
17 ACL_API void aut_free_args_list(ACL_ARRAY *a);
18 
19 /* in acl_test_cfg_general.c */
20 ACL_API int aut_cfg_add_general_line(const ACL_CFG_LINE *line);
21 
22 /* in acl_test_inner.c*/
23 ACL_API AUT_LINE *aut_add_inner_cmd(const ACL_CFG_LINE *line);
24 
25 /* in acl_test_outer.c */
26 ACL_API AUT_LINE *aut_add_outer_cmd(const ACL_CFG_LINE *line);
27 
28 /* in acl_test_token.c */
29 ACL_API AUT_CMD_TOKEN *aut_line_peer_token(const AUT_LINE *test_line);
30 ACL_API AUT_LINE *aut_line_peer(const AUT_LINE *test_line);
31 
32 /* in acl_test_misc.c */
33 ACL_API void aut_line_free(void *ctx);
34 
35 /*------------------ 外部可以调用的一些函数接口 ----------------------------*/
36 
37 /* in acl_test_cfg.c */
38 
39 /**
40  * 功能: 读取配置文件
41  * @param pathname 配置文件名
42  * @return 0 表示成功, -1 表示失败
43  */
44 ACL_API int aut_cfg_parse(const char *pathname);
45 
46 /**
47  * 功能: 打印所有有效的配置行内容
48  * @return 成功: 0, 失败: -1
49  */
50 ACL_API int aut_cfg_print(void);
51 
52 /* in acl_test_misc.c */
53 
54 ACL_API AUT_LINE *aut_line_new(const ACL_CFG_LINE *cfg_line);
55 
56 /**
57  * 功能: 获得对应于命令字的配置参数集合的容器, 以动态数组表示
58  * @param cmd_name 命令字
59  * @return 成功: 非空指针, 失败: 空指针
60  */
61 ACL_API const ACL_ARRAY *aut_args_get(const char *cmd_name);
62 
63 /**
64  * 功能: 获得有效配置项的总条目
65  * @return 成功: >0, 失败: -1
66  */
67 ACL_API int aut_size(void);
68 
69 /**
70  * 功能: 根据下标值取出所对应的有效配置行结构指针
71  * @param idx 下标索引值
72  * @return 成功: 非空结构指针, 失败: 空指针
73  *
74  */
75 ACL_API AUT_LINE *aut_index(int idx);
76 
77 /**
78  * 功能: 比较所给的命令是否与 test_line 中所记录的命令相同
79  * @param test_line 与某一有效配置行相关的结构指针
80  * @param cmd_name 待查询的命令
81  * @return 如果相等则返回 0, 如果不等则返回非 0
82  */
83 ACL_API int aut_line_cmdcmp(const AUT_LINE *test_line, const char *cmd_name);
84 
85 /**
86  * 功能: 比较所给的执行结果值是否与配置文件中所期望的结果值相等
87  * @param test_line 与某一有效配置行相关的结构指针
88  * @param result 程序某个任务函数的执行结果值
89  * @return 相等则返回 0, 不相等则返回非 0
90  */
91 ACL_API int aut_line_resultcmp(const AUT_LINE *test_line, int result);
92 
93 /**
94  * 功能: 取得该有效配置行在配置文件中的行号位置
95  * @param test_line 与某一有效配置行相关的结构指针
96  * @return 成功: >=0, 该值即为行号, 失败: < 0
97  */
98 ACL_API int aut_line_number(const AUT_LINE *test_line);
99 
100 /**
101  * 功能: 取得所给命令行的有效行号
102  * @param test_line 与某一有效配置行相关的结构指针
103  * @return 成功: >=0, 该值即为行号, 失败: < 0
104  */
105 ACL_API int aut_line_valid_linenum(const AUT_LINE *test_line);
106 
107 /**
108  * 功能: 获得该配置行的命令字
109  * @param test_line 与某一有效配置行相关的结构指针
110  * @return 相等返回 0, 不等则返回非 0
111  */
112 ACL_API const char *aut_line_cmdname(const AUT_LINE *test_line);
113 
114 /**
115  * 功能: 返回该配置行中参数的个数
116  * @param test_line 与某一有效配置行相关的结构指针
117  * @return 成功: >= 0, 失败: -1
118  */
119 ACL_API int aut_line_argc(const AUT_LINE *test_line);
120 
121 /**
122  * 功能: 读取配置文件行中的参数值
123  * @param test_line AUT_LINE 结构指针
124  * @param name 要查找的关建字
125  * @return 成功: 非空指针, 失败: 空指针
126  */
127 ACL_API const char *aut_line_getvalue(const AUT_LINE *test_line, const char *name);
128 
129 /**
130  * 功能: 返回该配置行的内容
131  * @param test_line 与某一有效配置行相关的结构指针
132  * @return 成功: 非空指针, 失败: 空指针
133  */
134 ACL_API const char *aut_line_argstr(const AUT_LINE *test_line);
135 
136 /**
137  * 功能: 返回该配置行中期望的执行结果值
138  * @param test_line 与某一有效配置行相关的结构指针
139  * @return 期望的执行结果值
140  * 说明: 没有出错的情况, 如果传入的参数非法则返回 -1, 但无法区分该 -1 值是
141  * 非法值还是期望的执行结果值
142  */
143 ACL_API int aut_line_result(const AUT_LINE *test_line);
144 
145 /**
146  * 功能: 是否遇到了配置行中的结束字段
147  * @param test_line 与某一有效配置行相关的结构指针
148  * @return 是: 1, 否: 0
149  */
150 ACL_API int aut_line_stop(const AUT_LINE *test_line);
151 
152 /**
153  * 功能: 内部保留字段, 遇到此内部保留配置行则需要跳过
154  * @param test_line 与某一有效配置行相关的结构指针
155  * @return 是: 1, 否: 0
156  */
157 ACL_API int aut_line_reserved(AUT_LINE *test_line);
158 
159 /**
160  * 功能: 调用者可以把自己的参数添加到 test_line 之中
161  * @param test_line 与某一有效配置行相关的结构指针
162  * @param arg 用户要添加的参数
163  * @return 成功: 0, 失败: -1
164  */
165 ACL_API int aut_line_add_arg(AUT_LINE *test_line, void *arg);
166 
167 /**
168  * 功能: 从 test_line 删除用户自己的参数
169  * @param test_line 与某一有效配置行相关的结构指针
170  * @param free_fn 用户自己的析构函数
171  */
172 ACL_API void aut_line_del_arg(AUT_LINE *test_line, void (*free_fn) (void *));
173 
174 /**
175  * 功能: 从 test_line 中取出用户自己的参数
176  * @param test_line 与某一有效配置行相关的结构指针
177  * @return 成功: 非空指针, 如果返回指针为空则有可能是内部错误或本来就是空
178  */
179 ACL_API void *aut_line_get_arg(const AUT_LINE *test_line);
180 
181 /**
182  * 功能: 取得所给命令行的结尾行
183  * @param start_linenum 命令开始执行点所在行号
184  * @return >= 0 ok; < 0 未找到
185  */
186 ACL_API int aut_end_linenum(int start_linenum);
187 
188 /**
189  * 功能: 从当前所提供的 test_line 起, 一直向下找到某个与所提供标志位相同的
190  * test_line.
191  * @param test_line 与某一有效配置行相关的结构指针
192  * @param flag defined as AUT_FLAG_ in acl_test_struct.h
193  * @return != NULL, ok find it; == NULL, not found.
194  */
195 ACL_API const AUT_LINE *aut_lookup_from_line(const AUT_LINE *test_line, int flag);
196 
197 /* in acl_test_runner.c */
198 
199 /**
200  * 功能 执行所有注册的测试函数, 如果有任何一个任务执行的结果与预期结果不一致则退
201  * 出执行
202  * @return 成功: 0, 失败: -1
203  */
204 ACL_API int aut_start(void);
205 
206 /**
207  * 测试过程结束后需要调用此函数以释放一些内存资源
208  */
209 ACL_API void aut_stop(void);
210 
211 /**
212  * 功能 将需要进行单元测试的任务函数注册
213  * @param test_fn_tab 单元测试函数结构数组
214  */
215 ACL_API void aut_register(const AUT_FN_ITEM test_fn_tab[]);
216 
217 /* in acl_test_loop.c */
218 ACL_API AUT_LINE *aut_loop_make_begin(const ACL_CFG_LINE *cfg_line);
219 ACL_API AUT_LINE *aut_loop_make_break(const ACL_CFG_LINE *cfg_line);
220 ACL_API AUT_LINE *aut_loop_make_end(const ACL_CFG_LINE *cfg_line);
221 ACL_API const AUT_LINE *aut_loop_end(const AUT_LINE *test_begin);
222 ACL_API int aut_loop_count(const AUT_LINE *test_line);
223 ACL_API int aut_loop_from(const AUT_LINE *test_line);
224 ACL_API int aut_loop_to(const AUT_LINE *test_line);
225 
226 /* in acl_test_log.c */
227 
228 ACL_API int aut_log_open(const char *pathname);
229 ACL_API void aut_log_info(const char *format, ...);
230 ACL_API void aut_log_warn(const char *format, ...);
231 ACL_API void aut_log_error(const char *format, ...);
232 ACL_API void aut_log_fatal(const char *format, ...);
233 ACL_API void aut_log_panic(const char *format, ...);
234 
235 # ifdef __plusplus
236 }
237 # endif
238 
239 #endif
240 
ACL_API int aut_line_argc(const AUT_LINE *test_line)
ACL_API AUT_LINE * aut_line_peer(const AUT_LINE *test_line)
ACL_API const AUT_LINE * aut_loop_end(const AUT_LINE *test_begin)
HTTP_API void const char * name
Definition: lib_http.h:620
ACL_API const char * aut_line_cmdname(const AUT_LINE *test_line)
ACL_API ACL_VSTRING const char * format
Definition: acl_vstring.h:239
ACL_API AUT_LINE * aut_loop_make_break(const ACL_CFG_LINE *cfg_line)
ACL_API const AUT_LINE * aut_lookup_from_line(const AUT_LINE *test_line, int flag)
ACL_API void aut_log_info(const char *format,...)
ACL_API int aut_line_add_arg(AUT_LINE *test_line, void *arg)
ACL_API const char * aut_line_getvalue(const AUT_LINE *test_line, const char *name)
ACL_API int aut_line_number(const AUT_LINE *test_line)
ACL_API void aut_stop(void)
ACL_API void aut_log_fatal(const char *format,...)
ACL_API int aut_end_linenum(int start_linenum)
ACL_API AUT_LINE * aut_line_new(const ACL_CFG_LINE *cfg_line)
ACL_API int aut_line_stop(const AUT_LINE *test_line)
ACL_API AUT_LINE * aut_loop_make_begin(const ACL_CFG_LINE *cfg_line)
ACL_API void aut_register(const AUT_FN_ITEM test_fn_tab[])
ACL_API int aut_cfg_add_general_line(const ACL_CFG_LINE *line)
ACL_API void aut_line_del_arg(AUT_LINE *test_line, void(*free_fn)(void *))
ACL_API AUT_LINE * aut_index(int idx)
ACL_API void aut_line_free(void *ctx)
ACL_API AUT_LINE * aut_add_outer_cmd(const ACL_CFG_LINE *line)
ACL_API void aut_log_panic(const char *format,...)
ACL_API void aut_free_args_list(ACL_ARRAY *a)
ACL_API int aut_start(void)
ACL_API const char * aut_line_argstr(const AUT_LINE *test_line)
ACL_API void * aut_line_get_arg(const AUT_LINE *test_line)
ACL_API int aut_loop_to(const AUT_LINE *test_line)
ACL_API int aut_line_cmdcmp(const AUT_LINE *test_line, const char *cmd_name)
ACL_API AUT_CMD_TOKEN * aut_line_peer_token(const AUT_LINE *test_line)
ACL_API int aut_line_reserved(AUT_LINE *test_line)
ACL_API void aut_log_error(const char *format,...)
ACL_API void aut_log_warn(const char *format,...)
ACL_API int aut_line_result(const AUT_LINE *test_line)
ACL_API int aut_line_valid_linenum(const AUT_LINE *test_line)
ACL_API const ACL_ARRAY * aut_args_get(const char *cmd_name)
ACL_API int aut_loop_count(const AUT_LINE *test_line)
ACL_API int aut_cfg_parse(const char *pathname)
ACL_API AUT_LINE * aut_add_inner_cmd(const ACL_CFG_LINE *line)
ACL_API AUT_LINE * aut_loop_make_end(const ACL_CFG_LINE *cfg_line)
ACL_API int aut_log_open(const char *pathname)
ACL_API ACL_ARRAY * aut_parse_args_list(const char *str_in)
ACL_API int aut_size(void)
ACL_API int aut_line_resultcmp(const AUT_LINE *test_line, int result)
ACL_API int aut_cfg_print(void)
ACL_API int aut_loop_from(const AUT_LINE *test_line)