我正在尝试将自定义动态分析工具集成到CDash中。如KWStyle、CppCheck、视觉检漏器等。
我发现我需要生成一个DynamicAnalysis.xml文件,并从CTest脚本将它提交给CDash。
我想我知道如何将外部工具作为ctest脚本的一部分运行。
或者使用这些变量来改变ctest_memcheck()的工作方式
CTEST_MEMORYCHECK_COMMAND
CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
CTEST_MEMORYCHECK_COMMAND_OPTIONS
或者通过从execute_process()命令运行该工具。
但我有点不确定该用哪一种。
我认为我面临的主要问题是,如何从自定义工具的输出中提取错误并将这些信息包含到DynamicAnalysis.xml中以提交?
我看到的极端解决方案是,我需要创建一个生成有效DynamicAnalysis.xml文件的程序。
但问题是,我不知道XML文件中DefectList元素的语法。我没有从google那里找到答案,甚至该文件的XML也没有帮助。
编辑:
看看这个:
http://www.cdash.org/CDash/viewDynamicAnalysis.php?buildid=987149
吸引我注意的是那些标签,尤其是那些空的。我不知道这些是如何从DynamicAnalysis.xml文件中得到的。也许它能追踪到任何曾经出现过的标签?我可以以某种方式创建我自己的自定义标签吗?
CDash是否根据工具类型自动创建标签?这是否阻止自定义缺陷类型?
我只是在猜测,所以问题是,我是否可以为我的自定义工具创建自定义标签,只需生成一个DynamicAnalysis.xml文件。
我突然意识到来自CppCheck (静态代码分析)的不同错误的数量是巨大的,例如与val研相比。我不太确定我是否应该使用动态分析。也许定制的构建类型(连续/实验/夜间)会更好地工作。如下所示:
http://www.cdash.org/CDash/buildSummary.php?buildid=930174
我不知道如何做到这一点,我想这需要对CDash代码进行干预吗?
哪一个会更好?
发布于 2011-05-09 06:58:17
据我所知,对于运行在cmake脚本中的测试的工具来说,动态分析就是问题所在。
对于在整个程序上运行的工具,需要定制Build.xml。
我发现可以通过使用files参数从ctest_submit命令提交这些文件。
我还发现,您可以将自定义的“构建名称”添加到连续、夜间和其他方面。
并且您可以将来自某些机器的构建设置为在这些机器下自动传输。
DynamicAnalysis下的自定义标签确实来自CDash的某个地方,我已经不记得在哪里了。
发布于 2011-04-15 19:39:19
如果您正在使用valgrind,您可以简单地将CTEST_MEMORYCHECK_COMMAND设置为val砂糖的完整路径,当您调用ctest_memcheck时,ctest将从valgrind输出中为您生成ctest_memcheck文件。
理解DynamicAnalysis.xml文件中可能出现的值的最好方法是分析CTest的源代码。
文件CMake/Source/CTest/cmCTestMemCheckHandler.cxx在一个名为"cmCTestMemCheckResultLongStrings“的变量中包含缺陷类型列表。在该文件中搜索对该变量的引用,以了解可能的值是什么以及它们如何用于生成"“xml元素。
编辑(获得更多信息):
通过检查CDash的源代码,您也可以很容易地看到XML元素的期望。具体来说,文件"CDash/xml_handlers/dynamic_analysis_handler.php".
https://stackoverflow.com/questions/5675554
复制相似问题