CT 2024.12 提供了多个宏,帮助用户更轻松地编写测试代码。您可以使用测试编辑器中的快捷键( Ctrl
+ Spacebar
)查看并编写所提供的宏。
断言宏
检查条件表达式,并在Test Case选项卡中打印成功/失败。
宏 | 参数 | 示例 |
---|---|---|
CS_ASSERT(_b) | _b: 条件表达式 | CS_ASSERT(val!=1); |
CS_ASSERT_MSG(_B, _msg) | _B: 条件表达式 _mgs: 当条件表达式为假时打印的消息 |
CS_ASSERT_MSG(val==1, "val is not 1!"); |
输出宏
打印Test Case选项卡中特定变量的值。
宏 | 参数 | 示例 |
---|---|---|
CS_INT_OUTPUT(_v, _s) CS_UINT_OUTPUT(_v, _s) CS_FLT_OUTPUT(_v, _s) CS_STR_OUTPUT(_v, _s) |
v: 变量,用于打印数值 _s: 在Test Case选项卡中显示的名称 |
CS_INT_OUTPUT(int_var, "int_var_name"); CS_UINT_OUTPUT(unsigned_int_var, "unsigned_int_var_name"); CS_FLT_OUTPUT(float_var, "float_var_name"); CS_STR_OUTPUT(string_var, "string_var_name"); |
输入宏
将测试数据传递给被测函数。
宏 | 参数 | 示例 |
---|---|---|
CS_INT_INPUT(_t, _s) CS_UINT_INPUT(_t, _s) CS_FLT_INPUT(_t, _s) CS_STR_INPUT(_t, _s) |
_t: 变量的类型 _s: 在Test Case选项卡中显示的名称 |
CS_INT_INPUT(int, "int_var_name"); CS_UINT_INPUT(unsigned int, "unsigned_int_var_name"); CS_FLT_INPUT(float, "float_var_name"); CS_STR_INPUT(char*, "string_var_name"); |
与地址相关的宏
如果在转换后的源代码中存在直接赋值或获取嵌入地址值的部分,则在本地计算机上执行时可能无法正常运行。在这种情况下,可以为虚拟地址使用与地址相关的宏。
宏 | 说明 |
---|---|
CS_VIRTUAL_ADDR(_b,_e) | 创建从地址 (_b) 到地址 (_e) 的空间 |
CS_ADDR_ASSIGN(_t,_a,_v) CS_ADDR_SET(_t,_a,_v) |
将类型 (_t) 的值 (_v) 赋给地址 (_a) |
CS_ADDR_GET(_t,_a) | 从地址 (_a) 抓取类型 (_t) 的值 |
CS_VIRTUAL_ADDR_CLEAR() | 释放创建的内存空间 |
地址相关宏示例
// 从 0xFFE40000U 创建大小为 100 的虚拟内存区域。
CS_VIRTUAL_ADDR(0xFFE40000U, 0xFFE40000U+100);
// 将 int 类型的值 10 分配给 0xFFE40000U
CS_ADDR_ASSIGN(int ,0xFFE40000U, 10);
CS_ADDR_SET(int ,0xFFE40000U, 10);
// 将 0xFFE40000U 的值返回变量 a。
int a = CS_ADDR_GET(int ,0xFFE40000U);
// 将 0xFFE40000U 的地址返回到指针类型的变量 ptr 中。
int* ptr = CS_ADDR_PTR(0xFFE40000U);
// 释放创建的内存空间。
CS_VIRTUAL_ADDR_CLEAR();
其他宏
宏 | 参数 | 说明 | 示例 |
---|---|---|---|
CS_LOG(_msg) | _msg: 日志信息 | 打印用户日志 | CS_LOG("User Log"); |
CS_LOG_FORMAT(_msg, …) | _msg: 带格式说明符的日志信息 …: 格式规范引用的参数 |
以指定格式打印用户日志 | CS_LOG_FORMAT("Message: %s", "example"); CS_LOG_FORMAT("Message: %d", 10); |
CS_TESTCASENO() | 返回当前正在运行的测试的编号 | int testCaseNum = CS_TESTCASENO(); |
Need more help with this?
Don’t hesitate to contact us here.