我试图在Travis CI上使用c ++代码构建R包,并通过使用R CMD check
选项运行--use-valgrind
来使用valgrind检查它。在R extensions manual中,它表示要为~/.valgrindrc
文件提供必需的选项,或者在环境变量VALGRIND_OPTS
中设置它们,但是我无法弄清楚这两个。
我创建了一个演示仓库here,其中包含一个valgrind应该响应的Rcpp函数。
我的.travis.yml
设置如下所示:
language: r
sudo: false
cache: packages
r_check_args: '--use-valgrind'
addons:
apt:
packages:
- valgrind
我有一个
.valgrindrc
文件,内容如下:--leak-check=full
--track-origins=yes
,并尝试将其放在
./inst/
和根目录中,但没有一个起作用。有人知道如何正确设置这些选项吗?编辑:here是最新travis版本的链接。
最佳答案
根据the docs,文件./.valgrindrc
(因此,在当前工作目录中,仅在文件~/.valgrindrc
不存在且未设置环境变量$VALGRIND_OPTS
的情况下才读取文件。
不知道是什么情况,但是您可能需要执行以下操作:
before_install:
- "head ~/.valgrindrc || echo '~/.valgrindrc does not exist'"
- echo VALGRIND_OPTS: $VALGRIND_OPTS
- cat ./valgrindrc >> ~/.valgrindrc
前两个用于诊断目的。最后一个可能会解决该问题(它将您的配置附加到全局配置中)。如果这行不通,您可能会对正在发生的事情有更多的了解。