Parasoft C++Test常见问题


1. 源代码编译正常,但创建C++test测试用例,执行用例时,文件中定义的静态全局指针变量值并没有被正确设置上值。
被测源代码 XX.CPP
static const char * PATH_STR=".C:\1.txt" ;

int fun1()
{
if( isdirnull(PATH_STR))
return;

}
虽然从代码上看,PATH_STR应当是有值的,但是调试用例发现,PATH_STR的值却为NULL。

找了高手,可能是测试工具生成的测试用例中,会将全局变量默认初始化为0.
所以解决方法真的很简单:只要在测试用例中正确设置那些全局变量值即可。

2 fopen 以 a+ w+方式打开文件总是返回NULL
通常a+\w+方式都能成功,因为文件存在时,可以打开进行写,文件不存在时会创建。 但是我用c++test测试时,fopen总是返回NULL。
查看errno、及其错误信息,结果errno也是0,即没有问题。

FILE *fp = NULL;
if ((fp =fopen("./test/1.txt", “r”)) == NULL)
{
printf(“open fail errno = %d reason = %s \n”, errno, strerrno(errno));
}

最终高人指点,原来c++test有三种桩函数:原函数,安全、用户自定义的。
fopen同时有原函数和安全的,所以会使用安全类型的桩函数,所以总是返回0了。
解决方法很简单:将那些希望调用原函数的安全桩函数注释掉即可。

3.测试用例由于执行时长超过了指定时长而被终止掉。
解决方法:修改测试用例执行的么个用例的最大执行时长,加大该时长,即可解决该问题。
 

你可能感兴趣的:(心得)