【发布时间】:2017-01-17 18:01:40
【问题描述】:
我正在开发一个简单的模糊测试工具,该工具涉及生成某些文件类型的有效实例并监视被测程序的故障。这个工具的一个关键组件是进程监控模块:这个模块应该提供函数,给定一个表示程序路径和参数的字符串(例如,corrupt.py 和random_file.wav)指示调用currupt.py random_file.wav 是否会触发一些错误。
什么是最简单的方法来定义一个函数来监视这样一个过程以在 OCaml 中挂起或抛出一个错误?我计划在循环中运行这样一个函数,从而转移副作用(例如,内容打印到 std.out) 是至关重要的。这种函数的类型签名应该是字节 -> int,其中 int 有一些相关的含义(例如,0 -> 健康退出)。
此外,我知道停止问题使得无法判断停止是否是意外行为,所以我可以在任意等待时间画线。
【问题讨论】:
-
退出代码说得不多。很多人
try ... catch(..} {} return 0;主要。我怀疑您是否可以在不知道被测应用程序应该做什么的情况下使其通用。例如。应该停止?然后,已经有很多(免费)测试套件可以做类似的事情......只需选择一个你喜欢的。 -
“已经有很多(免费)测试套件可以做类似的事情”我这样做是为了好玩,而不是原创。