问题标签 [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.

0 投票
1 回答
3378 浏览

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

0 投票
2 回答
586 浏览

ctest - 未设置 CTest 构建 ID

我有一个 Cdash 配置为接受自动构建和测试的帖子。但是,当任何系统尝试将结果发布到 Cdash 时,会产生以下错误。结果是每个结果都被发布了四次(大概是原始发布尝试加上三次重试)。

谁能告诉我这个神秘的构建 ID 是由什么设置的?我发现一些代码似乎会产生类似的错误,但仍然无法确定可能发生的情况。

Build::GetNumberOfErrors(): BuildId not set
Build::GetNumberOfWarnings(): BuildId not set
提交失败,等待 5 秒...
重试提交:尝试 1 of 3
服务器响应:

0 投票
1 回答
439 浏览

ctest - 未设置 Cdash 构建 ID(CTest、CMake)

我有一个 Cdash 配置为接受自动构建和测试的帖子。但是,当任何系统尝试将结果发布到 Cdash 时,会产生以下错误。结果是每个结果都被发布了四次(大概是原始发布尝试加上三次重试)。

谁能告诉我这个神秘的构建 ID 是由什么设置的?我发现一些代码似乎会产生类似的错误,但仍然无法确定可能发生的情况。

Build::GetNumberOfErrors(): BuildId not set
Build::GetNumberOfWarnings(): BuildId not set
提交失败,等待 5 秒...
重试提交:尝试 1 of 3
服务器响应:

0 投票
1 回答
629 浏览

continuous-integration - Cdash 客户端设置

我正在尝试使用 CDash 创建 C++ CI 环境。

我已经在我的计算机上运行了 Cdash,我可以通过手动运行 ctest 从 Cdash 客户端向它发送一些结果。

当源代码在版本控制系统(颠覆)中或在特定时间发生变化时,我对如何设置客户端自动编译和测试代码有点迷茫。

我有 Mastering CMake 这本书,但它似乎并没有在这个话题上说太多。

有没有办法在不使用计划任务/ cron 的情况下进行连续构建?

有什么好的例子可以用来检查吗?

我可以以某种方式从仪表板命令在某个站点上运行构建吗?我记得在某个地方看到过这个,但我现在找不到了。

Cdash 对 CI 环境有好处吗?(使用评论来回答这个问题)

0 投票
2 回答
769 浏览

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 代码?

哪一个会更好?

0 投票
2 回答
1503 浏览

c++ - Ctest/Cdash 工作流程:部署夜间构建

我使用/维护了一些 CMake 项目,所以我开始检查 CTest/CDash,但有一些我无法弄清楚:

它仅用于显示构建/测试结果吗?(又名美化原木)

或者:在服务器上部署夜间构建二进制文件是否可以包含在该工作流程中?

尽管我认为 CTest 是测试 CMake 项目和显示测试结果的理想工具,但我还想在 Web 服务器上自动部署夜间构建,我想知道它是否是正确的工具。 .

0 投票
4 回答
43102 浏览

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 服务器。

0 投票
1 回答
899 浏览

continuous-integration - Cdash 是一个持续集成系统吗?

前几天我在一次关于持续集成的对话中提到了CDash。一位同事说,CDash 不是 CI 系统,它是一个测试系统。我们没有机会详细说明。

CDash 不是 CI 系统是真的吗?

那么有什么区别呢?

0 投票
0 回答
328 浏览

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 缺少SubProjectxmlLabels元素(xml 滥用者的标签)Sites,尽管我的 CMakeLists.txt(实际上是我的 CTestConfig.cmake)文件具有以下全局属性设置(我试图把它在两个文件中):

其中 CMAKE_PROJECT_NAME - 当然 - 定义明确。

  • 你知道提交的 xml 文件的元素下缺少wjySubProject和元素吗?LabelsSites
  • 方法A和B可以混用吗?

另外,我检查了CTest源,这些全局属性是由这个函数添加的(我从2.8.10获取,无法下载我正在使用的2.8.11的源,所以我希望没有改变它,否则对不起) :

  • ch->GetCMake()在我的情况下会以某种方式返回 NULL 吗?

在此先感谢您的帮助。问候。


P.-S.:请不要问我为什么要这样做或那样(除非你有相关的观点要提出),因为-一-没有帮助,-二-如果我这样做,那是因为我有一个很好的理由,这个地方不适合暴露它。我来这里是为了寻求你的帮助,最好是从知道他/她在说什么的人那里寻求帮助,或者明确的最终结果“不,不可能那样做,因为这个”(因为是强制性的 - 请不要强制答案)。

0 投票
0 回答
238 浏览

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 函数的权限被拒绝错误?