【发布时间】:2011-04-15 10:45:02
【问题描述】:
我正在尝试将自定义动态分析工具集成到 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 Schema 也无济于事。
编辑:
看这个:
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 代码?
哪个会更好?
【问题讨论】: