当前位置: 首页 > news >正文

【回眸】Tessy 单元测试软件使用指南(四)常见报错及解决方案与批量初始化的经验

前言

分析时Tessy的报错

1.fatal error: Tricore/Compilers/Compilers.h: No such file or directory

2.error: #error "Compiler unsupported"

3.warning: invalid suffix on literal;C++11 requires a space between literal and string macro

4.error: unknown type name 'Ifx_Strict_32Bit'; did you mean 'Ifx_SReg_32Bit' ​编辑

5.error: unknown type name 'fract' error:unkown type name 'sfract';did you mean 'cfract'?

6.error:  use of undeclared identifier '__extru' 

error:  use of undeclared identifier '__insert' 

error:  use of undeclared identifier '__getbit' 

error:  use of undeclared identifier '__mfcr' 

error:  use of undeclared identifier '__disable' 

7. error: unkonwn register name 'd2' in asm

error: unkonwn register name 'd0' in asm

error: unkonwn register name 'a11' in asm

error: unkonwn register name 'a10' in asm

error: unkonwn register name 'e14' in asm

8. gcc:  error: inline: No such file or directory

gcc:error: int: No such file or directory

输入测试用例后Tessy的报错

1. gcc:  error: inline: No such file or directory

gcc:error: int: No such file or directory

2.Undefined reference to 'Mcal_WriteCpuEndInitProtReg'

Undefined reference to 'wait'

3.error 0x4:  [tstcomm:readFromBuffer] Unable to receive block size

4.error 0x4: [tstcomm: readFromBuffer] Uable to receive block size

5. error: expected  ';' ,  ','  or  ')'  before '&'  token 

6.Undefined reference to 'm88q5192_set_port_based_vlan'

Undefined reference to 'm88q5192_set_vlan_tag'

批量初始化

后记

前言

在使用Tessy进行单元测试时,测试遇到的问题可谓五花八门,分析代码时遇到的错误很多,输入测试用例执行后的错误更是多如牛毛。以下是一些我做单元测试中遇到的报错,和我试了好用的解决方案,供各位C友们参考

分析时Tessy的报错

1.fatal error: Tricore/Compilers/Compilers.h: No such file or directory

 解决方案:

需要在源码里找到Compilers.h的完整路径,添加至 Overview--Source--compiler--includes,如果代码中包含头文件的上级目录,则路径添加到上级目录的上级目录即可。

2.error: #error "Compiler unsupported"

解决方案:

问题出现的原因时编译器不支持 #error .理论上应该替换合适的编译器和环境,但是由于Tessy没有更合适的编译器,只好退而求其次,不更换编译器,选择注释 代码中的#error部分,而后该错误消失。

3.warning: invalid suffix on literal;C++11 requires a space between literal and string macro

解决方案:

该警告出现的原因是编译器误用为C++的编译器,调回C语言的编译器即可

4.error: unknown type name 'Ifx_Strict_32Bit'; did you mean 'Ifx_SReg_32Bit' 

解决方案:

该错误出现的原因是编译器不认识 type define的内容,需要在Tessy的 Overview--Source--compiler--define 里添加Ifx_Strict_32Bit的定义,源代码里定义的volatile unsigned int ,但是在define里这样添加后编译器不认 unsigned 并将其识别为error,于是将其改为int。

5.error: unknown type name 'fract' error:unkown type name 'sfract';did you mean 'cfract'?

解决方案:

该错误出现的原因是编译器不认识 type define的内容,需要在Tessy的 Overview--Source--compiler--define 里添加 fract = long ; sfract = short  随后该错误消失。

6.error: error: unknown type name 'IFX_INLINE'

解决方案:

该错误出现的原因是编译器不认识 type define的内容,需要在Tessy的 Overview--Source--compiler--define 里添加宏定义 IFX_INLINE = static inline 编译器不认,并且报错 error: inline: No such file or directory.经过研究发现改成IFX_INLINE = inline  报错信息随后消失。

6.error:  use of undeclared identifier '__extru' 

error:  use of undeclared identifier '__insert' 

error:  use of undeclared identifier '__getbit' 

error:  use of undeclared identifier '__mfcr' 

error:  use of undeclared identifier '__disable' 

解决方案:

该错误主要是由一个很大的库文件引起的,暂时没有找到很好的解决方案,选择替代的方案就是注释Bsp.h(包含那个库文件的头文件),并且添加 _TASKING_的宏,在环境设置的地方禁用内联函数。

7. error: unkonwn register name 'd2' in asm

error: unkonwn register name 'd0' in asm

error: unkonwn register name 'a11' in asm

error: unkonwn register name 'a10' in asm

error: unkonwn register name 'e14' in asm

解决方案:

该错误主要是由一个很大的库文件引起的,暂时没有找到很好的解决方案,选择注释掉这个库文件,该错误最终消失

8. gcc:  error: inline: No such file or directory

gcc:error: int: No such file or directory

解决方案:

该错误主要是与Overview--Source--compiler--define 里宏定义设置的空格有关,删除空格后重新分析,该错误消失。

输入测试用例后Tessy的报错

1. gcc:  error: inline: No such file or directory

gcc:error: int: No such file or directory

解决方案:

 该错误出现的原因是宏定义位置在 = 之前删除空格即可,删除空格后该错误消失。

2.Undefined reference to 'Mcal_WriteCpuEndInitProtReg'

Undefined reference to 'wait'

解决方案:

在TIE界面找到unused的函数Mcal_WriteCpuEndInitPortReg和函数wait,移到Used 函数部分并且进行打桩。需要注意的是,如果已经打了普通桩,还是报这个类似的错误,则需要取消普通桩,将普通桩改为高级桩。有些void函数必要时也可以打advanced桩(高级桩)

3.error 0x4:  [tstcomm:readFromBuffer] Unable to receive block size

解决方案:

该错误有很多可能的原因,这个排查出是一个函数没有打桩导致的这个错误。

4.error 0x4: [tstcomm: readFromBuffer] Uable to receive block size

 

解决方案:

该错误并未解决。

5. error: expected  ';' ,  ','  or  ')'  before '&'  token 

解决方案: 

遇到这个错误的原因经过多网站查找,确定了是因为C语言不支持引用,因为必须打桩print_f,总会遇到这个问题,而且没法避免。迫不得已只好把默认的C语言环境改为C++,这个错误就消失了。

6.Undefined reference to 'm88q5192_set_port_based_vlan'

Undefined reference to 'm88q5192_set_vlan_tag'

解决方案:

在TIE界面的搜索栏里 搜索 m88q5192_set_port_based_vlan函数和 m88q5192_set_vlan_tag函数,将他们移入Used函数,然后打桩(普通桩或者高级桩)填入每个case需要的参数即可执行test case后进行下一步分析。

批量初始化

有些函数在进行测试时,打桩后有很多个函数,进而有很多参数,测试用例多则百来个,如果一个一个赋值时一件非常痛苦的事情,在使用Tessy的过程中我逐渐了解到一些可以批量初始化的方法,即在最左边的变量栏,不管是参数还是单个变量,点击右键开始赋值,和单个case赋值的逻辑一样,如果需要随机值选random即可,如果需要赋值 NULL 和 *none* 也是一样,只要选空指针和忽略值就行了。

后记

短期内应该不会再继续更新Tessy系列了,有热心分享的小伙伴也可以投稿后台,将你遇到的错误和解决方案分享给大家,感谢~

相关文章:

  • 分布式难题-三座大山NPC
  • 微信卖茶叶套路
  • 华为源NAT技术与目的NAT技术
  • debian linux 只安装mysql client
  • 从GDAL中 读取遥感影像的信息
  • 67 自注意力_by《李沐:动手学深度学习v2》pytorch版
  • 【GAN 图像生成】
  • 【Python】Python多行输入储存为字典,值为列表
  • ServiceEntry WorkloadEntry WorkloadGroup
  • 《十年国庆游,洞察中国旅游新趋势》
  • GraphRAG
  • 模糊测试SFuzz亮相第32届中国国际信息通信展览会
  • 帆软下拉框设置
  • MySql的慢查询(慢日志)
  • 【Echarts地图开发全流程加全套代码】
  • CODING 缺陷管理功能正式开始公测
  • iOS 颜色设置看我就够了
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • JS实现简单的MVC模式开发小游戏
  • MySQL QA
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • node-glob通配符
  • Python爬虫--- 1.3 BS4库的解析器
  • React Transition Group -- Transition 组件
  • Redis的resp协议
  • Spring Boot快速入门(一):Hello Spring Boot
  • Yeoman_Bower_Grunt
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 聊聊redis的数据结构的应用
  • 漂亮刷新控件-iOS
  • 悄悄地说一个bug
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 硬币翻转问题,区间操作
  • 《天龙八部3D》Unity技术方案揭秘
  • Spring Batch JSON 支持
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # include “ “ 和 # include < >两者的区别
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 达梦数据库知识点
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (SpringBoot)第二章:Spring创建和使用
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (二)构建dubbo分布式平台-平台功能导图
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (含笔试题)深度解析数据在内存中的存储
  • (六)vue-router+UI组件库
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (一)WLAN定义和基本架构转
  • .net 7和core版 SignalR
  • .NET BackgroundWorker