我正在尝试将自定义动态分析工具集成到 Cdash。如 KWStyle、CppCheck 和 Visual Leak Detector。
我发现我需要从 CTest 脚本生成一个 DynamicAnalysis.xml 文件并将其提交给 Cdash。
我想我知道如何将外部工具作为 ctest 脚本的一部分运行。
通过使用这些变量来更改 ctest_memcheck() 的工作
方式 CTEST_MEMORYCHECK_COMMAND
CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
CTEST_MEMORYCHECK_COMMAND_OPTIONS
或通过 execute_process() 命令运行该工具。
但我有点不确定该使用哪一个。
我认为我遇到的主要问题是,如何从自定义工具的输出中提取错误并将该信息包含到 DynamicAnalysis.xml 中以提交?
我看到的极端解决方案是我需要制作一个生成有效 DynamicAnalysis.xml 文件的程序。
但问题是我不知道 XML 文件中 DefectList 元素的语法。我没有找到谷歌的答案,甚至该文件的 XML 模式也无济于事。
编辑:
看这个:
http ://www.cdash.org/Cdash/viewDynamicAnalysis.php?buildid=987149
引起我注意的是标签,尤其是空的标签。我看不出这些将如何来自 DynamicAnalysis.xml 文件。也许它会追踪任何曾经出现过的标签?我可以以某种方式创建自己的自定义标签吗?
Cdash 是否会根据工具类型自动创建标签?这会阻止自定义缺陷类型吗?
我只是在这里猜测,所以问题是;我可以通过生成 DynamicAnalysis.xml - 文件来为我的自定义工具创建自定义标签吗?
我突然想到,与 valgrind 相比,来自 CppCheck(静态代码分析)的不同错误数量是巨大的。我不确定我应该使用动态分析。也许自定义构建类型(连续/实验/夜间)会更好。像这样:
http
:
//www.cdash.org/CDash/buildSummary.php?buildid=930174 我不知道该怎么做,我想它需要插手 CDash 代码?
哪一个会更好?