51Testing软件测试论坛
标题:
这个复杂的函数如何设计测试用例?
[打印本页]
作者:
wangdan1600
时间:
2009-4-13 10:20
标题:
这个复杂的函数如何设计测试用例?
static inline uint32_t modify(int i, uint64_t seed, uint64_t idx, uint32_t ori, uint64_t num)
{
uint32_t mod;
mod = ori;
if(seed == 0)
{
if(mdo[idx].offsetop[i][0] != 0)
{
if(((~mdo[idx].offset[i][1]) & ori) !=
((~mdo[idx].offset[i][1]) & mdo[idx].offset[i][0]))
return mod;//match fails
else
matchbit[idx][num] += (1 << i);
}
}
else
{
if(mdo[idx].offsetop[i][0] != 0)
{
if((matchbit[idx][num] & (1 << i)) == 0)
{
return mod;
}
}
}
if(mdo[idx].offset[i][2] == mdo[idx].offset[i][3])
{
mod = (mdo[idx].offset[i][1]&ori) + (mdo[idx].offset[i][2]&(~mdo[idx].offset[i][1]));
}
else
{
if(mdo[idx].offsetop[i][3] == 0)
{
mod = RandomULLimit(seed, idx, i);
mod = (mdo[idx].offset[i][1] & ori) + ((~mdo[idx].offset[i][1]) & mod);
}
else
{
if(seed == 0)
{
if(mdo[idx].offsetop[i][3] > 0)
{
mod = (mdo[idx].offset[i][1] & ori)
+ (mdo[idx].offset[i][2] & (~mdo[idx].offset[i][1]));
}
else
{
mod = (mdo[idx].offset[i][1] & ori)
+ (mdo[idx].offset[i][3] & (~mdo[idx].offset[i][1]));
}
}
else
{
int k = 0;
do
{
if((mdo[idx].offset[i][1] >> k) % 2 != 0)
k++;
else
break;
}
while(k < 32);
if(mdo[idx].offsetop[i][3] > 0)
{
mod = ori + ((mdo[idx].offsetop[i][3]<<k) & (~mdo[idx].offset[i][1]));
if(mod > (mdo[idx].offset[i][1] & ori) + (mdo[idx].offset[i][3] & (~mdo[idx].offset[i][1])))
mod = mod - (mdo[idx].offset[i][3] & (~mdo[idx].offset[i][1]))
+ (mdo[idx].offset[i][2] & (~mdo[idx].offset[i][1])) - (1<<k);
}
else if(mdo[idx].offsetop[i][3] < 0)
{
mod = ori - (((-mdo[idx].offsetop[i][3])<<k) & (~mdo[idx].offset[i][1]));
if(mod < (mdo[idx].offset[i][1] & ori) + (mdo[idx].offset[i][2] & (~mdo[idx].offset[i][1])))
mod = mod - (mdo[idx].offset[i][2] & (~mdo[idx].offset[i][1]))
+ (mdo[idx].offset[i][3] & (~mdo[idx].offset[i][1])) + (1<<k);
}
}
}
}
return mod;
}
复制代码
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2