Мы используем Coverity для анализа нашего кода C # на наличие дефектов.
У нас есть несколько юнит-тестов, которые явно проверяют правильность обработки нулевых параметров.
Они перечислены как дефекты по Coverity. Если бы это был собственный анализ кода Microsoft, мы могли бы пометить наш метод, который передает ноль через [SuppressMessage(...)]
, есть ли что-то подобное для 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));
...
}
}
Явная ошибка показана как
Явный нулевой разыменованный (FORWARD_NULL)
var_deref_model: передача нулевого значения в метод, который выдает исключение после проверки на нулевое значение.