使用属性抑制 Coverity 中的消息?
Suppress messages in Coverity using attributes?
我们正在使用 Coverity 分析我们的 C# 代码是否存在缺陷。
我们有一些单元测试可以明确验证是否正确处理了空参数。
这些被 Coverity 列为缺陷。如果这是 Microsoft 自己的代码分析,我们可以用 [SuppressMessage(...)]
标记我们执行 null 传递的方法,是否有类似的东西可用于 Coverity?
我们不想将代码混淆到足以混淆 Coverity 的地步。
下面是一段存在此缺陷的示例代码:
[Test]
public void SomeRandomTest()
{
var obj = new SomeRandomObject();
Assert.Throws<ArgumentNullException>(() => obj.Method(null));
}
...
public class SomeRandomObject
{
public void Method(object value)
{
if (value == null) throw new ArgumentNullException(nameof(value));
...
}
}
显式错误显示为
Explicit null dereferenced (FORWARD_NULL)
var_deref_model: Passing null to Method, which throws an exception after checking for null.
以 this site 中的示例为例,您可以在报告的错误行上方使用注释来抑制这些消息,但在您的情况下,您将使用 var_deref_model
标记。例如:
// coverity[var_deref_model]
我们正在使用 Coverity 分析我们的 C# 代码是否存在缺陷。
我们有一些单元测试可以明确验证是否正确处理了空参数。
这些被 Coverity 列为缺陷。如果这是 Microsoft 自己的代码分析,我们可以用 [SuppressMessage(...)]
标记我们执行 null 传递的方法,是否有类似的东西可用于 Coverity?
我们不想将代码混淆到足以混淆 Coverity 的地步。
下面是一段存在此缺陷的示例代码:
[Test]
public void SomeRandomTest()
{
var obj = new SomeRandomObject();
Assert.Throws<ArgumentNullException>(() => obj.Method(null));
}
...
public class SomeRandomObject
{
public void Method(object value)
{
if (value == null) throw new ArgumentNullException(nameof(value));
...
}
}
显式错误显示为
Explicit null dereferenced (FORWARD_NULL)
var_deref_model: Passing null to Method, which throws an exception after checking for null.
以 this site 中的示例为例,您可以在报告的错误行上方使用注释来抑制这些消息,但在您的情况下,您将使用 var_deref_model
标记。例如:
// coverity[var_deref_model]