为大型Fortran项目寻找严格的代码覆盖工具

时间:2017-10-19 08:10:37

标签: unit-testing fortran code-coverage intel

我正在寻找严格的Fortran代码覆盖工具。我们正在开发一个包含数万行代码的大型项目,以及固定和自由形式的数十个和几十个fortran文件。我们使用{% for photo in page.project_content.full_width_image %} <div class="fullwidth-image content-block"> <img src="{{ photo }}"> </div> {% endfor %} {% for photo in page.project_content.center_image %} <div class="center-image content-block"> <img src="{{ photo }}"> </div> {% endfor %} {% for photo in page.project_content.split_left_image %} <div class="split-image-left content-block"> <img src="{{ photo }}"> </div> {% endfor %} {% for photo in page.project_content.split_right_image %} <div class="split-image-right content-block"> <img src="{{ photo }}"> </div> {% endfor %} {% for content in page.project_content.text_content %} <div class="text-block content-block"> {{ content | markdownify }} </div> {% endfor %} 编译器。我无法找到能够为这种规模的项目提供深入反省的工具。

我的主要需求是为我们的项目创建不同配置/输入的多个运行,并真正分析它们是相同/不同的。这意味着运行被保存为某种可以查询和使用的数据意识格式。

简单的代码覆盖工具(例如英特尔ifort提供的工具)是不够的。这仅仅表明行了哪些行,哪些行不行。虽然这是有用的信息,但我需要更进一步,比较两个不同的代码覆盖率以编程方式

我真的对英特尔福特充满希望,特别是熟悉各种命令等等。几周前,当我看到内置的差异覆盖工具{{1}时,我认为我击中了金块}}。遗憾的是,文档记录很少,我提出的问题in StackOverflowthe official Intel Fortran forum几乎没有回复。这向我表明该工具尚未充分开发,很可能不符合我们的需求。

因此,我呼吁SO社区。 Fortran是古老的,毫无疑问,但是有足够的遗留代码/项目来提供彻底的代码内省有用且确实是必要的。有没有其他人遇到类似问题的大型意大利面条,如Fortran代码项目需要清理和测试?有哪些高级程序代码覆盖工具可以让人们有效地解决问题?

由于

1 个答案:

答案 0 :(得分:1)

要比较不同运行的覆盖率,我建议在单独的 XML 格式文件中输出每次运行的覆盖率报告。

codecov(英特尔)和 gcov(GNU,需要像 gcovr 这样的附加工具)都可以生成 XML 格式的覆盖文件。确切的工作流程取决于您选择的工具。

拥有 XML 文件后,您就可以与标准覆盖率分析工具进行交互。诸如 pycobertura (github.com/aconrad/pycobertura) 之类的工具应该可以满足您在不同执行情况下比较覆盖率的要求。如果您正在测试单元测试套件的覆盖率,它们也可用于生成“覆盖间隔”。