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

news2024/9/30 17:33:58

前言

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2180244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv7改进:Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU

💡💡💡现有IoU问题点:IoU (Intersection over Union)作为模型训练的关键,极大地显示了当前预测框与Ground Truth框之间的差异。后续研究者不断在IoU中加入更多的考虑因素,如中心距离、纵横比等。然而,仅仅提炼几何差异是有上限的;而且新的对价指数与借据本身存在潜在…

优化Mysql

目录 Mysql优化就四种:定位慢查询/sql执行计划/索引/Sql优化经验... 2 1Mysql如何定位慢查询?... 2 2Sql语句执行很慢,如何分析呢?... 3 2.1那这个SQL语句执行很慢,如何分析呢?. 3 3.了解过索引吗?(什么是索引)…

DC00018基于java swing+MySQL花卉信息管理系统

1、项目功能演示 DC00018基于java swingMySQL花卉信息管理系统java项目信息管理系统 2、项目功能描述 基于java swingMySQL花卉信息管理系统 系统包括用户信息管理以及花卉信息管理等功能。 3、项目运行截图 4、项目核心代码 4.1 日期格式化 package utils;import java.t…

C++ STL容器(四) —— vector底层剖析

这篇讲解vector,不说废话,直接开始! 文章目录 原理UML类图代码实现构造函数插入元素删除元素清空容器析构函数赋值运算符 案例分析 原理 这里简单说一下 vector 的大致思想,动态数组,即它的长度会随着我们插入元素而产…

【YOLO目标检测二维码数据集】共3112张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式:YOLO格式 图片数量:3112 标注数量(txt文件个数):3112 标注类别数:1 标注类别名称:qrcode 数据集下载:二维码数据集 图片示例 数据集图片: 数据集…

【开源免费】基于SpringBoot+Vue.JS微服务在线教育系统(JAVA毕业设计)

本文项目编号 T 060 ,文末自助获取源码 \color{red}{T060,文末自助获取源码} T060,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

【hot100-java】【合并两个有序链表】

记忆中,两个指针合并即可。 建立哨兵节点dum /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { t…

idea启动项目报错Command line is too long

idea启动项目报错 Command line is too long. Shorten command line for Idmap5CoreApplication or also for Spring Boot default configuration? 选择出问题的项目,shorten command line 选项选择 JAR manifest 或者 classpath file 选项

用责任链模式改造 if else

我的上一篇文章,因为if else 多了,捣鼓很久,今天用责任链模式改造一下。 代码写着写着,if else if 逻辑忘记了,哎。。。-CSDN博客 责任链模式(Chain of Responsibility Pattern) 1. 什么是责任…

SpringBoot之Profile的两种使用方式

0. 需求 通常项目开发过程中,会经历多种环境转换,典型的如开发环境(dev)、测试环境(test)和生产环境(prod)。在这三种不同的环境下,连接数据库时使用的配置信息是不同的,即三个不同环境对应三个不同的数据库。 现在的需求是&#…

【论文导读】Graphusion (LLM + KGC)

序言 第一次论文出现在 《Leveraging Large Language Models for Concept Graph Recovery and Question Answering in NLP Education》 论文地址:https://arxiv.org/abs/2402.14293 七月份的时候应该是又改进了一次。但是又发了一篇新的地址:《Graphu…

css 中 ~ 符号、text-indent、ellipsis、ellipsis-2、text-overflow: ellipsis、::before的使用

1、~的使用直接看代码 <script setup> </script><template><div class"container"><p><a href"javascript:;">纪检委</a><a href"javascript:;">中介为</a><a href"javascript:…

SpringAOP实现的两种方式-JDK动态代理和CGLIB动态代理

前言 想要了解SpringAOP的实现方式&#xff0c;需要先了解什么是AOP OOP和AOP的区别 OOP 面向对象&#xff0c;允许开发者定义纵向的关系&#xff0c;但并适用于定义横向的关系&#xff0c;导致了大量代码的重复&#xff0c;而不利于各个模块的重用。 AOP&#xff0c;一般称为…

让小脚本成为自己高效测试的工具

测试中会遇到的工具 软件测试如果仅仅靠手工去执行会发现在很多地方力不从心&#xff0c;虽然市面上已经有大牛开源了一些测试工具可以供我们使用但是在一些公司特有的业务方面则需要我们借助开源或重新做一个自己的测试工具。 测试常用的开源工具 死链接检测工具 Xenu home…

如何使用便签高效管理自己的工作和时间?

在快节奏的现代生活中&#xff0c;我们每天都要面对众多工作任务&#xff0c;而时间却是有限的。如何在有限的时间内高效地完成工作&#xff0c;成为了每个职场人士必须面对的挑战。为了更好地管理时间&#xff0c;提高工作效率&#xff0c;我们往往需要借助一些工具来帮助我们…

Linux上Java项目环境安装

java环境 一.免费的管理Linux软件 家庭/学校免费 - NetSarang Website (xshell.com) 二.安装jdk // 检查以前是否安装过jdk java -version // 我们还可以通过以下指令来看我们安装了多少openJDK apt list --installed | grep openjdk// 如果你想卸载某个apt安装的java版本&am…

CMOS Sensor调试笔记

最近在调CMOS Sensor&#xff1b;基于无ISP的芯片。 第一步&#xff0c;找模组厂要到对应Sensor对应分辨率&#xff0c;YUV信息的驱动。 第二步&#xff0c;确认信号的极性&#xff0c;VSYNC&#xff0c;SYNC, PCLK。 第三步&#xff0c;开始测试。 问题解决&#xff1a; 1&am…

覆盖生活中各方面的5款软件,非常好用

​ 在现代生活中&#xff0c;各类工具软件为我们提供了便捷的解决方案&#xff0c;从日程管理到系统优化&#xff0c;再到文件传输与多媒体编辑&#xff0c;各类软件的功能多样&#xff0c;极大地提升了我们的工作与生活效率。 1.日历清单——日历清单 ​ 日历清单是一款集日…

运营计划管理——电商运营(案例分享)

运营计划&#xff0c;作为运营管理的重要组成部分&#xff0c;通过科学规划与有效执行&#xff0c;对确保企业目标实现起着至关重要的作用。 运营计划是指通过制定、执行、监控和调整运营计划&#xff0c;以确保企业资源得到合理配置&#xff0c;业务活动有序进行&#xff0c;最…