acl  3.5.3.0
acl_test_struct.h
浏览该文件的文档.
1 #ifndef ACL_TEST_STRUCT_INCLUDE_H
2 #define ACL_TEST_STRUCT_INCLUDE_H
3 
4 # ifdef __cplusplus
5 extern "C" {
6 # endif
7 
8 #include "../stdlib/acl_array.h"
9 
10 typedef struct AUT_LINE {
11  char cmd_name[128]; /* 命令函数名称 */
12  int result; /* 执行结果 */
13  int argc; /* 参数个数 */
14  ACL_ARRAY *argv; /* 参数列表 */
15  char *args_str; /* 参数列表的备份 */
16  int valid_line_idx; /* 该有效配置行在所有有效配置行中的行号 */
17  int line_number; /* 该有效配置行在配置文件中的行号 */
18  void *arg_inner; /* 内部注册自己的参数到该结构中 */
19  void (*free_arg_inner)(void*);
20  void *arg_outer; /* 外部应用注册自己的参数到该结构中 */
21  int obj_type; /* 是内部命令对象还是外部命令对象标志位,
22  * defined as: AUT_OBJ_
23  */
24 } AUT_LINE;
25 
26 typedef int (*AUT_FN) (AUT_LINE *test_line, void *arg);
27 
28 /**
29  * 说明: 单元测试所采用的一致的数据结构
30  */
31 typedef struct AUT_FN_ITEM {
32  const char *cmd_name; /* 命令字名称 */
33  const char *fn_name; /* 函数名称 */
34  AUT_FN fn_callback; /* 测试用回调函数 */
35  void *arg; /* 测试回调函数所用的参数 */
36  int inner; /* 是否是内部的命令 */
37 } AUT_FN_ITEM;
38 
39 /* 内部数据结构定义 */
40 typedef struct {
41  char *name;
42  char *value;
43 } AUT_ARG_ITEM;
44 
45 typedef struct {
46  int match_number; /* 成对命令中相互间的匹配号,
47  * 例如: loop_begin 与 loop_end 之间
48  * 对非成对的命令项无效, 如对:
49  * stop 命令项.
50  */
51  AUT_LINE *peer; /* 与该有效配置行成对的另一个对象 */
52  int flag; /* define as: AUT_FLAG_ */
53  int status; /* define as: AUT_STAT_ */
54  int valid_line_idx; /* 在所有有效配置行中的下标位置 */
55 
56  /* 私有类型定义如下 */
57  /* 针对循环执行命令序列 */
58  int nloop_max; /* 最大循环次数, 由配置文件中获得 */
59  int nloop_cur; /* 当前循环的次数 */
60  int offset_valid_line_idx; /* 相对有效配置行下标索引 */
61  int loop_sleep; /* 循环执行时的休息 */
63 
64 #define AUT_OBJ_OUTER 0 /* 默认为外部命令对象 */
65 #define AUT_OBJ_INNER 1 /* 为内部对象 */
66 
67 #define AUT_FLAG_LOOP_BEGIN 1
68 #define AUT_FLAG_LOOP_BREAK 2
69 #define AUT_FLAG_LOOP_CONTINUE 3
70 #define AUT_FLAG_LOOP_END 4
71 
72 #define AUT_FLAG_IF 5
73 #define AUT_FLAG_ELSE 6
74 #define AUT_FLAG_ELIF 7
75 #define AUT_FLAG_ENDIF 8
76 
77 #define AUT_FLAG_STOP 9
78 
79 #define AUT_STAT_FREE 0
80 #define AUT_STAT_BUSY 1
81 
82 
83 #define AUT_LOOP_BREAK -100
84 
85 #define VAR_AUT_LOG_PRINT 0x0001
86 #define VAR_AUT_LOG_FPRINT 0x0010
87 
88 /* 配置文件中的关键字 */
89 /* 日志记录级别 */
90 #define VAR_AUT_LOG "LOG"
91 
92 /* 执行停止标志位 */
93 #define VAR_AUT_STOP "STOP"
94 
95 /* 休息标志位 */
96 #define VAR_AUT_SLEEP "SLEEP"
97 
98 /* 暂停标志位 */
99 #define VAR_AUT_PAUSE "PAUSE"
100 
101 /* 循环执行开始标志位 */
102 #define VAR_AUT_LOOP_BEGIN "LOOP_BEGIN"
103 
104 /* 循环执行停止标志位 */
105 #define VAR_AUT_LOOP_END "LOOP_END"
106 
107 /* 跳出循环执行 */
108 #define VAR_AUT_LOOP_BREAK "LOOP_BREAK"
109 
110 /* 循环继续 */
111 #define VAR_AUT_LOOP_CONTINUE "LOOP_CONTINUE"
112 
113 /* 条件判断开始语句 */
114 #define VAR_AUT_IF "IF"
115 
116 /* 条件判断 else 语句 */
117 #define VAR_AUT_ELSE "ELSE"
118 
119 /* 条件判断结束语句 */
120 #define VAR_AUT_ENDIF "ENDIF"
121 
122 /* 跳转执行语句 */
123 #define VAR_AUT_GOTO "GOTO"
124 
125 /*----------------- 内部保留的一些配置文件参数 -----------------------------*/
126 /**
127  * 通用的整数值参数名变量:
128  *
129  * 对于 VAR_AUT_SLEEP 则表示为休息的秒数值;
130  * 对于 VAR_AUT_LOOP_BEGIN 则表示循环的次数
131  */
132 
133 #define VAR_AUT_ITEM_COUNT "COUNT"
134 
135 
136 # ifdef __cplusplus
137 }
138 # endif
139 
140 #endif
141 
void * arg_outer
AUT_FN fn_callback
const char * cmd_name
int(* AUT_FN)(AUT_LINE *test_line, void *arg)
int valid_line_idx
const char * fn_name
void * arg_inner
char * args_str
struct AUT_LINE AUT_LINE
struct AUT_FN_ITEM AUT_FN_ITEM
char cmd_name[128]
ACL_ARRAY * argv
AUT_LINE * peer
void(* free_arg_inner)(void *)