[运行Test Case时遇到的报错:](#运行Test Case时遇到的报错:)
[报错1:error 0x4: [tstcom:readFromBuffer] unable to receive block size](#报错1:error 0x4: [tstcom:readFromBuffer] unable to receive block size)
[报错5:error: ecepted '=', ' ,' ,' ; ' , 'asm' or 'attribute' before 'const'](#报错5:error: ecepted '=', ' ,' ,' ; ' , 'asm' or 'attribute' before 'const')
[相似问题报错:error: expected ';' , ',' or ')' before '&' token](#相似问题报错:error: expected ';' , ',' or ')' before '&' token)
[报错6:error: assignment of read-only location '*_Src'](#报错6:error: assignment of read-only location '*_Src')
[报错7:Prepare Test : Missing return statement for non-void function 'wcsnlen'](#报错7:Prepare Test : Missing return statement for non-void function 'wcsnlen')
[报错8:undefined reference to 'XXXXX'](#报错8:undefined reference to 'XXXXX')
[报错11:Error: no such instruction:'dmb''cpsid''cpsie'](#报错11:Error: no such instruction:‘dmb’‘cpsid’‘cpsie’)
[报错12:Error:number of operands mismatch for 'ds'](#报错12:Error:number of operands mismatch for 'ds')
[报错14:The test object's interface is incomplete.](#报错14:The test object's interface is incomplete.)
[报错15:multiple defiition of '__acrt_iob_func';](#报错15:multiple defiition of '__acrt_iob_func';)
[报错16:ERROR: Test driver slave has detected corruption of its global variables by the test object in test step 3.1](#报错16:ERROR: Test driver slave has detected corruption of its global variables by the test object in test step 3.1)
前言
没想到单元测试报错的博文还有更新,又积攒了一些报错和解决方法,今天终于有时间整理出来了。2025年攒的素材~
分析过程中出现的报错比较基础,本次博文暂不收录了。但是如果编译器不匹配,在分析过程中还是有很多需要加宏的报错,主要集中在不识别的结构体 关键字。
运行Test Case时遇到的报错:
报错1:error 0x4: [tstcom:readFromBuffer] unable to receive block size

情况1解决方案:
接口问题,根据源代码可知round、char(*state)[4][4]和RoundKey是待测函数输入的参数,需要将passing和指针target passing 均设置成IN。

这个也是接口的问题,前面一个case的buf指针设置成空指针所以报错了,非空指针如果这样选target passing就会无法赋值

后面的也需要改成IN
情况2解决方案:
有时候我们会遇到一种特殊情况,当其他test case可以正常运行,但是新增了一个 test case 之后新的case 执行遇到这个报错,这个时候说明不是接口的问题,很有可能是测试Cese里有非空指针需要赋值,但是给的指针是空指针(给的指针里的值为0也一样),也会报这个错,这个时候需要检查case里有没有空指针,再做进一步排查。
报错2:执行RS结果是×
解决方案:
由于有些函数是无返回值的,所以直接执行RS会是×,这个时候需要将 No Call Expected移到前面来执行。

这样RS就没有×了
当有很多Function Call时,可以点击中间位置的蓝色按钮,一键实现Expected calls 与实际值一致,这个功能真是救老命,有一个有几千个的Function Call就是这样搞定的,节约了很长时间。
报错3:OUT一直是×,输出值已经完整且正确
解决方案:
在没打桩的时候就新增了case,导致接口方向设置错误,这个问题除了接口方向设置错误,也有可能和一些指针设置成NULL 非法有关,指针不要设置成空,再试试吧!
报错4:执行某些case的时候一直卡在执行界面无法结束
情况1解决方案:
一直无法成功结束的原因可能是死循环,也可能和接口相关,这里是因为有一个用到的接口我设置成extern,排除这个错误用了很久!崩溃

这里是给了野指针导致的错误

情况2解决方案:
另一个原因也遇到过,代码里需要大小为100以上的结构体,赋值小于这个数,也导致了死循环,具体需要结合代码分析。数组给的不够多。本来给16个,不够循环的了,给100个就够了,这个具体数值需要根据代码试错而来的。
报错5:error: ecepted '=', ' ,' ,' ; ' , 'asm' or 'attribute' before 'const'

情况1解决方案:
除了代码问题:缺少 } ;之外,最可能的原因就是有以下划线开头的函数打桩导致的这个错误,这个时候需要取消这个自动打桩的函数(全部取消打桩)

情况2解决方案:
这个错误是因为一些一下划线开头的变量在tessy里自动打桩,一打桩就会出错,取消打桩即可,注意其他以下划线开头的函数也不要打桩,不然也会报错。


取消自动Define Variable

相似问题报错:error: expected ';' , ',' or ')' before '&' token
解决方案:
也是给下划线开头的函数打桩导致的,这个错误也恶心人,新手基本上不知道是这个原因,干一天都不知道怎么处理。

报错6:error: assignment of read-only location '*_Src'


解决方案:
将src改成Out,因为这是一个只读的指针,改成OUT后该错误消失
报错7:Prepare Test : Missing return statement for non-void function 'wcsnlen'


解决方案:
有使用到的函数没有正确打桩,名字为wcslen,找到后正常打桩刷新一下这个错误就没了。
报错8:undefined reference to 'XXXXX'

解决方案:
这个错误比较简单,原因是没有给PORT_Init 打davanced 桩

报错9:结果显著性调用次数不对

结果显著性为X,打开Call Trace 将rand移到左边。

重新执行,悬浮在rand上,发现实际值为4x,将1改成4,重新执行一下,没有问题了

报错10:一些寄存器相关的代码测不通
解决方案:
注释相关寄存器操作/写封装函数测试
注释死循环,否则tessy会卡住

报错11:Error: no such instruction:'dmb''cpsid''cpsie'


解决方案:打桩

发现下面这三个有用

报错12:Error:number of operands mismatch for 'ds'

解决方案:涉及到寄存器的代码会出现这个错误,在TIE里搜索,然后打桩就好

报错13:误关了TDE的这个视图
解决方案:
右键TDE - Test Data Editor 点击Reset,可以看到视图又回来了。

报错14:The test object's interface is incomplete.

解决方案:
遇到这种不能添加case的情况,都是因为默认的有变量的passing 默认为unknow,根据代码passing改正后能够正常添加Test case
报错15:multiple defiition of '__acrt_iob_func';

解决方案:
在TIE里搜索找到相应函数,取消打桩,问题解决。

报错16:ERROR: Test driver slave has detected corruption of its global variables by the test object in test step 3.1

解决方案:
数据越界,试试赋值小一点的数吧!也有可能给的指针大小太小了,也会出这个错误,如果一个指针满足,一个指针不满足,则会出现代码一直在执行的错误,这个具体要结合代码,给出准确的IN值.
后记
还有很多很多tessy的错误没有展示,欢迎联系博主添加群聊下载资料一起探讨使用Tessy过程中遇到的问题!也欢迎其他开发者的加入,世界因为有你们,因此变得更加美好。