忽略现有的透析器错误与 make 和 grep



我试图让 jenkins 在 erlang 代码上运行透析器,但我遇到了问题。当我们将其引入现有项目时,有许多我们不想标记的现有错误,我们在文件中有这些错误 透析器-忽略-警告

我的 makefile 中有这个,但我真正想要做的是,如果 grep 返回一个空文档,则返回一个值,如果有新错误,则返回一个值。但是我的剧本傅就是达不到

(DEPS_PLT): compile
    @echo Building local plt at $(DEPS_PLT)
    @echo 
    @(echo "Using Dialyzer in `which dialyzer`"; dialyzer --output_plt $(DEPS_PLT) --build_plt --apps  $(DEPS))

dialyzer: compile $(DEPS_PLT)
    @(echo "Using Dialyzer in `which dialyzer`"; dialyzer --fullpath --plt $(DEPS_PLT) -Wrace_conditions -r ./ebin)|
    fgrep -v -f ./dialyzer-ignore-warnings

也许是这样的:

dialyzer: compile $(DEPS_PLT)
    @echo "Using Dialyzer in `which dialyzer`"
    @(dialyzer --fullpath --plt $(DEPS_PLT) -Wrace_conditions -r ./ebin)|
    fgrep -v -f ./dialyzer-ignore-warnings; test "$$?" != 0

也就是说,确保fgrep的退出代码为零。

这是来自 rebar 存储库的类似解决方案:

生成文件包含:

dialyzer: dialyzer_warnings
    @diff -U0 dialyzer_reference dialyzer_warnings
dialyzer_warnings:
    -@dialyzer -q -nn -n ebin -Wunmatched_returns -Werror_handling 
        -Wrace_conditions > dialyzer_warnings

参考文件包含:

rebar_eunit.erl:388: Call to missing or unexported function eunit_test:function_wrapper/2
rebar_utils.erl:163: Call to missing or unexported function escript:foldl/3

相关内容

  • 没有找到相关文章

最新更新