问题标签 [cdash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 将 CMake 与 CTest 和 CDash 一起使用
我将在我的 C++ 项目中使用带有 CMake/CTest 的 CDash。
为了启用 Cdash 和自定义设置,如 "MEMORYCHECK_SUPPRESSIONS_FILE"、"DART_TESTING_TIMEOUT",我在根CMakeLists.txt中添加了以下行
但是,生成的“DartConfiguration.tcl”根本不包含我的设置(MemoryCheckSuppressionFile 为空,TimeOut 仍然是默认值)
我发现,例如,如果我通过 -DDART_TESTING_TIMEOUT=STRING:120 ,它可以工作,但如果在 CMakeLists.txt 中指定它们,它会失败。
先感谢您 :)
DartConfiguration.tcl
ctest - 未设置 CTest 构建 ID
我有一个 Cdash 配置为接受自动构建和测试的帖子。但是,当任何系统尝试将结果发布到 Cdash 时,会产生以下错误。结果是每个结果都被发布了四次(大概是原始发布尝试加上三次重试)。
谁能告诉我这个神秘的构建 ID 是由什么设置的?我发现一些代码似乎会产生类似的错误,但仍然无法确定可能发生的情况。
Build::GetNumberOfErrors(): BuildId not set
Build::GetNumberOfWarnings(): BuildId not set
提交失败,等待 5 秒...
重试提交:尝试 1 of 3
服务器响应:
ctest - 未设置 Cdash 构建 ID(CTest、CMake)
我有一个 Cdash 配置为接受自动构建和测试的帖子。但是,当任何系统尝试将结果发布到 Cdash 时,会产生以下错误。结果是每个结果都被发布了四次(大概是原始发布尝试加上三次重试)。
谁能告诉我这个神秘的构建 ID 是由什么设置的?我发现一些代码似乎会产生类似的错误,但仍然无法确定可能发生的情况。
Build::GetNumberOfErrors(): BuildId not set
Build::GetNumberOfWarnings(): BuildId not set
提交失败,等待 5 秒...
重试提交:尝试 1 of 3
服务器响应:
continuous-integration - Cdash 客户端设置
我正在尝试使用 CDash 创建 C++ CI 环境。
我已经在我的计算机上运行了 Cdash,我可以通过手动运行 ctest 从 Cdash 客户端向它发送一些结果。
当源代码在版本控制系统(颠覆)中或在特定时间发生变化时,我对如何设置客户端自动编译和测试代码有点迷茫。
我有 Mastering CMake 这本书,但它似乎并没有在这个话题上说太多。
有没有办法在不使用计划任务/ cron 的情况下进行连续构建?
有什么好的例子可以用来检查吗?
我可以以某种方式从仪表板命令在某个站点上运行构建吗?我记得在某个地方看到过这个,但我现在找不到了。
Cdash 对 CI 环境有好处吗?(使用评论来回答这个问题)
cmake - Cdash自定义动态分析
我正在尝试将自定义动态分析工具集成到 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 代码?
哪一个会更好?
c++ - Ctest/Cdash 工作流程:部署夜间构建
我使用/维护了一些 CMake 项目,所以我开始检查 CTest/CDash,但有一些我无法弄清楚:
它仅用于显示构建/测试结果吗?(又名美化原木)
或者:在服务器上部署夜间构建二进制文件是否可以包含在该工作流程中?
尽管我认为 CTest 是测试 CMake 项目和显示测试结果的理想工具,但我还想在 Web 服务器上自动部署夜间构建,我想知道它是否是正确的工具。 .
c++ - 将 gcov 与 CMake/Cash 结合使用的详细指南?
我在我的项目中使用 CMake,并设置了一个 cdash 服务器以进行连续/夜间构建。一切正常,通过设置 crontab,我们每小时/每晚的构建/测试结果会自动上传到我们的 cdash 服务器。
我的下一步是将测试覆盖率报告添加到构建中。我在这里找到了文档http://www.cmake.org/Wiki/CTest:Coverage但坦率地说它离实用指南有点远。
目前我已经添加了 required 标志(而不是-fprofile-arcs -ftest-coverage
,我觉得--coverage
更好),编译过程会生成 .gcno 文件。但后来我被困住了。命令
似乎什么也没做。谁能告诉我下一步该做什么?我想要的结果make NightlyCoverage
是生成覆盖率报告并将其上传到 cdash 服务器。
properties - CTest Cdash:站点下缺少 SubProject xml 元素,仅使用 include(CTest) 提交测试结果
我使用 CMake 构建了一个包含多个独立项目的源代码树来构建每个单独的项目。
重要提示:我没有全局 CMakeLists.txt 文件来执行整个构建,我使用通用脚本(windows (.cmd) 和 unix (.sh))循环所有子项目。我想保持项目的独立性,同时又能够自动构建它们。
另一方面,在 Cdash 中,我希望将所有这些独立项目视为Cdash 子项目,作为更大的独特人工Cdash 项目的一部分。
为了使用 Cdash,我遵循了以下描述的方法: http ://www.cmake.org/Wiki/CMake/Testing_With_CTest
我将此方法命名为 A。
即,我这样做:
然后,我自己做一些测试。
之后,我尝试按照以下页面指示将我的个人项目视为子项目: http ://www.kitware.com/media/html/CdashSubprojects.html
我将此方法命名为 B。
问题是提交给 CDash 的 xml 缺少和SubProject
xmlLabels
元素(xml 滥用者的标签)Sites
,尽管我的 CMakeLists.txt(实际上是我的 CTestConfig.cmake)文件具有以下全局属性设置(我试图把它在两个文件中):
其中 CMAKE_PROJECT_NAME - 当然 - 定义明确。
- 你知道提交的 xml 文件的元素下缺少wjy
SubProject
和元素吗?Labels
Sites
- 方法A和B可以混用吗?
另外,我检查了CTest源,这些全局属性是由这个函数添加的(我从2.8.10获取,无法下载我正在使用的2.8.11的源,所以我希望没有改变它,否则对不起) :
ch->GetCMake()
在我的情况下会以某种方式返回 NULL 吗?
在此先感谢您的帮助。问候。
P.-S.:请不要问我为什么要这样做或那样(除非你有相关的观点要提出),因为-一-没有帮助,-二-如果我这样做,那是因为我有一个很好的理由,这个地方不适合暴露它。我来这里是为了寻求你的帮助,最好是从知道他/她在说什么的人那里寻求帮助,或者明确的最终结果“不,不可能那样做,因为这个”(因为是强制性的 - 请不要强制答案)。
php - 当多个进程正在调用它并且目标是自定义日志文件时,如何避免来自 php 的 error_log 函数的权限被拒绝错误?
开源项目Cdash使用 PHP 的error_log函数将特定于 Cdash 的信息、警告和错误记录到自定义日志文件中。默认情况下,此自定义日志文件位于“backup/cdash.log”的 Cdash 源代码树中
文件log.php像这样调用 error_log:
我观察到的问题(在带有 XAMPP 1.8.1 包括 php 5.4.7 的 Windows XP 上)是当 Cdash 测试套件运行并且多个进程试图通过 Cdashadd_log
函数写入时,第二个和以后的进程得到“权限被拒绝”错误,直到第一个进程消失并释放其对$logFile
.
当多个进程正在调用它并且目标是自定义日志文件时,如何避免来自 php 的 error_log 函数的权限被拒绝错误?