katch分析-运行流程

Katch是基于klee的一个专门针对补丁的测试工具。主要原理,首先通过静态分析,获取补丁代码,并以补丁代码为目标,计算测试用例到达补丁的距离。选择距离最小的测试用例作为种子。然后使用concolic来选择路径执行到目标程序。

  1. Katch之使用流程

$ cd ~/infra

$ rm -rf diffutils/l-\* diffutils/log-\* diffutils/patch.size\*

$ ./analyze-patches-multiple.sh diffutils 0 175

analyze-patches-multiple.sh是主要功能脚本。其中diffutils 是目标repo, 0 是起始commit id,175是结束id。


调用了几个脚本:

Checkout.sh

Build.sh

InstrumentPrograms(analyze-patches-multiple.sh中的函数)

Minimizediff.sh (又实现了一次InstrumentPrograms)

restoreNatives

Katch-process.sh 

Get-statistics.sh

2.Checkout.sh

首先git查看补丁:

git diff HEAD~$PREVREVISION HEAD~$REVISION -b -U0 -- $DIFFTARGETS 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值