上一篇文章讲解了 基础的测试函数如何编写,本章介绍一些常用到的测试函数。
首先是ChkStart_InconsistentDlc()函数,可以在它的参数中填测试的报文名,该函数的作用是检测总线中的报文长度是否与数据库中的报文长度一致。
根据上述方法写出测试函数后,若我们想要手动去制作报文长度错误,可使用函数testSetMsgDlc()函数,前面参数未报文名,后一个参数为我们想要将该报文设置为多少长度的值。这样在执行到该用例时,我们点击s键,就会将对应的报文长度设置为4,改用例就会报错。
ChkStart_UndefinedMessageReceived()函数,它的作用是检测总线上是否存在未被定义的报文出现,具体使用方法如下。
当然我们也可以使用对应语句来发送一个未被数据库定义的报文到总线上来制造该用例报错,具体操作如下图所示。
上图中*号表示这是一个数据库未定义的报文,msgChannel为报文的发送总线,dlc是该报文的长度,id为序号,byte为在此位的数据。若该位未定义则默认为0,如上图的byte(2)值就为0。
ChkStart_ErrorFramesOccured()函数作用是检测总线上是否存在错误帧,使用方法如下图所示。
我们可以使用直接使用output()来发送错误帧,如下图所示。
ChkStart_MsgAbsCycleTimeViolation()函数是检测报文的发送周期是否正确。在第一个参数填写测试报文的报文名,第二个参数填写最小间隔周期时间(单位ms),第三个参数填写最大间隔周期时间(单位ms)。
ChkStart_MsgSignalValueRangeViolation()函数是检测信号值的函数,第一个参数填写信号名,第二个参数填写信号的最小值,第三个参数填写信号的最大值。使用方法如图下所示。
值得一提的是,我们也可以使用ChkStart_MsgSignalValueRangeViolation()函数来检测指定的信号值,只需将信号的最小值和最大值都写为同一数值即可(利用范围函数将信号值写死)。如下图所示。
testWaitForSignalMatch()函数主要运用于检测某个信号是否在指定时间内变化成了指定的值。第一个参数填写信号名,第二个参数填写期望改变后的信号值,第三个参数为等待信号的改变时间。使用如下图所示。