当前位置: 首页 > 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系列了,有热心分享的小伙伴也可以投稿后台,将你遇到的错误和解决方案分享给大家,感谢~

相关文章:

【回眸】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;C11 requires a space between literal and string macro 4.error: unknown…...

2024 - 10 :生物药学: 如何获取对应核心靶点基因的激酶

如何获取对应核心靶点基因的激酶 步骤 1:收集蛋白质信息 获取 UniProt ID: 对于每个基因,使用 UniProt 数据库获取其对应的蛋白质信息,包括 UniProt ID、序列和功能注释。UniProt 网站:https://www.uniprot.org/ 示…...

STM32 HAL库UART查询方式实例

本文中介绍USART编程涵盖了三种主要方法,详细介绍STM32F407微控制器结合HAL库,通过UART的查询方式来实现一个实用的密码验证程序。提示用户键入一个字符作为密码。只有当用户精准地输入字符6时,系统才会反馈“密码正确”的确认信息。反之&…...

数据结构--线性表双向链表的实现

目录 思路设计 总体思维导图 插入部分 头插法尾插法 任意位置插入 删除部分 头结点 尾节点 中间节点 只有头结点且删除的就是头结点 ​编辑 清空链表部分 遍历清空链表的所有节点 不遍历清空 各部分代码 Main部分 MyListedList部分 IndexOutOfException部分 …...

第一个Flutter应用(一)

1、创建项目 1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范,其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合 1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码 以下是lib/main.dart的源代码(为了阅…...

批量查询快递单号物流信息:高效掌握最后更新动态

在电商和物流行业蓬勃发展的今天,快递单号的物流信息追踪显得尤为重要。对于商家和客户来说,了解包裹的最后更新物流状态是确保货物安全、及时送达的关键。本文将介绍如何批量查询快递单号的物流信息,帮助您高效掌握每个包裹的最新动态。 1运…...

随着硬件水平的提升,LabVIEW有哪些过去的编程方法被淘汰掉了

随着硬件水平的不断提升,尤其是处理器性能、存储能力、通信速度等方面的飞跃,LabVIEW的一些早期编程方法逐渐被更高效、现代的编程技术所取代。以下是一些随着硬件升级而逐步淘汰的LabVIEW编程方法和技术: 1. 低效的数据流传输方式 过去由于…...

Leetcode 206.反转链表

题目链接:206. 反转链表 - 力扣(LeetCode) 题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 解题思路…...

基于springboot和vue.js 养老院管理系统设计与实现

博主介绍:专注于Java(springboot ssm springcloud等开发框架) vue .net php phython node.js uniapp小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆…...

高效数据处理:MapReduce与Hive的实战应用

文章目录 hive分析汇总互联网日志分析1.项目需求2.数据说明3.算法思路 用户电影推荐1.项目需求2.数据说明3.算法思路4.解题步骤 简单数据统计WordCount数据说明 疫情数据分析1.项目需求2.数据说明step1:创建ods层数据表step2:创建dwd层数据表step3:创建d…...

【含开题报告+文档+PPT+源码】基于springboot的迎新系统

开题报告 大学迎新系统是为了满足大学在新生入学时的信息化处理需求而开发的系统。在传统方式下,我们新生接待工作是需要新生报名表,就使得我们需要耗费大量的纸张,这将造成资源浪费。在接待新生的时候需要让新生勾选、填写大量的表格&#…...

C#-委托delegate

C#-委托delegate 通常情况下,函数内部需要调用其他函数来实现代码的重用,但这样有一个问题: 如果需要更换所调用的函数则需要对该函数的定义再次修改, 事实上,在程序运行过程中,函数也是作为一个存储在堆中…...

编译Thingsboard3.7.0的过程记录

1、首先去掉test测试&#xff0c;否则会有一堆问题&#xff0c;pom.xml修改如下&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${surefire.version}</ve…...

vulnhub-THE PLANETS-EARTH靶机

下载并导入靶机至VMWare&#xff0c;设置网络模式为NAT&#xff0c;开机 开启攻击机&#xff08;kali&#xff09;&#xff0c;也设置为Nat模式&#xff0c;与靶机处于同一网段 扫描靶机ip Nmap 192.168.114.0/24 扫描网段内活跃的主机 可以推断靶机ip为192.168.114.129 扫描…...

【C语言】分支和循环(2)

&#x1f914;个人主页: 起名字真南 &#x1f619;个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 关系操作符2 条件操作符3 逻辑操作符 &#xff1a;|| &#xff0c;&& &#xff0c;&#xff01;3.1 逻辑取反运算符3.2 与运算符3.3 或运算符3.4 练习闰年判断3.5 短…...

Python数据分析-远程办公与心理健康分析

一、研究背景 随着信息技术的飞速发展和全球化的推进&#xff0c;远程工作&#xff08;Remote Work&#xff09;成为越来越多企业和员工的选择。尤其是在2020年新冠疫情&#xff08;COVID-19&#xff09;爆发后&#xff0c;全球范围内的封锁措施使得远程工作模式迅速普及。根据…...

LabVIEW提高开发效率技巧----使用动态事件

在LabVIEW开发过程中&#xff0c;用户交互行为可能是多样且不可预知的。为应对这些变化&#xff0c;使用动态事件是一种有效的策略。本文将从多个角度详细介绍动态事件的概念及其在LabVIEW开发中的应用技巧&#xff0c;并结合实际案例&#xff0c;说明如何通过动态事件提高程序…...

【STM32开发之寄存器版】(五)-窗口看门狗WWDG

一、前言 窗口看门狗简介&#xff1a; 窗口看门狗通常被用来监测&#xff0c;由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新&#xff0c;看门狗电路在达到预置的时间周期时&#xff0c;会产生一个M…...

Leetcode203.移除链表元素-Python

题目链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&a…...

属性拷贝MapStruct

端请求通过VO对象接收&#xff0c;并通过DTO对象进行流转&#xff0c;最后转换成DO对象与数据库DAO层进行交互&#xff0c;反之亦然。 当业务简单的时候&#xff0c;可以通过手动编码getter/setter函数来复制对象属性。但是当业务变的复杂&#xff0c;对象属性变得很多&#x…...

MAA明日方舟自动辅助工具终极指南:一键解放双手的智能解决方案

MAA明日方舟自动辅助工具终极指南&#xff1a;一键解放双手的智能解决方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: htt…...

ARM GIC中断控制器分组机制与安全配置详解

1. GIC中断控制器基础架构解析在ARM架构的嵌入式系统中&#xff0c;通用中断控制器&#xff08;Generic Interrupt Controller&#xff0c;GIC&#xff09;扮演着系统中断管理的核心角色。作为连接外设中断与CPU之间的桥梁&#xff0c;GIC的设计直接影响着系统的实时性、安全性…...

Ryujinx模拟器:3步搞定Switch游戏在PC上流畅运行

Ryujinx模拟器&#xff1a;3步搞定Switch游戏在PC上流畅运行 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 想在电脑上体验Switch独占大作却不知从何入手&#xff1f;Ryujinx模拟器为…...

独立硬件看门狗芯片Air153C:提升嵌入式系统可靠性的终极方案

1. 项目概述&#xff1a;为什么我们需要一颗独立的看门狗芯片&#xff1f;最近在做一个户外数据采集终端的项目&#xff0c;设备部署在野外&#xff0c;需要长期稳定运行。最头疼的问题不是功能实现&#xff0c;而是如何应对各种意想不到的“死机”。电源波动、电磁干扰、程序跑…...

告别枯燥界面!用Qt自定义控件打造游戏化HMI:雷达扫描与摇杆交互完整指南

告别枯燥界面&#xff01;用Qt自定义控件打造游戏化HMI&#xff1a;雷达扫描与摇杆交互完整指南 工业软件界面长期被诟病"功能强大但体验生硬"&#xff0c;而游戏行业早已验证了动态交互对用户注意力的魔法般吸引力。当特斯拉将赛车游戏UI引入车载系统&#xff0c;当…...

Midjourney后印象派风格实战手册(2024最新版):从模糊描述到博物馆级输出的9类失效提示词避坑清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;后印象派风格的本质解构与Midjourney语义映射 后印象派并非单一技法流派&#xff0c;而是一场以主观表达重构视觉真实性的认知革命。其核心在于色彩的情感自主性、形体的结构性简化&#xff0c;以及空间…...

Maxwell 2D仿真进阶:从磁力线可视化到磁感应强度曲线分析

1. Maxwell 2D仿真基础与优势解析 第一次接触电磁场仿真时&#xff0c;我被各种专业术语和复杂的操作界面搞得晕头转向。直到发现Maxwell 2D这个神器&#xff0c;才真正体会到电磁仿真的魅力。相比于3D仿真&#xff0c;2D版本有个特别实用的功能——可以直接观察磁力线分布&…...

draw.io桌面版终极指南:免费跨平台图表编辑解决方案

draw.io桌面版终极指南&#xff1a;免费跨平台图表编辑解决方案 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 还在为不同操作系统间的图表兼容性问题而烦恼吗&#xff1f;&am…...

基于Pomerium构建零信任网关:统一内部服务访问的实践指南

1. 项目概述与核心价值 最近在折腾一个内部应用&#xff0c;想把几个不同技术栈的服务&#xff08;比如一个Go写的API、一个Python的Web界面、一个Java的管理后台&#xff09;统一到一个入口&#xff0c;并且能安全地访问。直接暴露到公网肯定不行&#xff0c;用传统的反向代理…...

Sunshine自托管游戏串流服务器:构建高性能私人云游戏平台的完整指南

Sunshine自托管游戏串流服务器&#xff1a;构建高性能私人云游戏平台的完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款功能强大的自托管游戏串流服务器&am…...