Подавить сообщения в Coverity с помощью атрибутов? - PullRequest
0 голосов
/ 03 сентября 2018

Мы используем 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: передача нулевого значения в метод, который выдает исключение после проверки на нулевое значение.

1 Ответ

0 голосов
/ 04 сентября 2018

Взяв пример с этого сайта , вы можете подавить эти сообщения комментарием над строкой сообщения об ошибке, но в вашем случае вы бы использовали тег var_deref_model. Например:

// coverity[var_deref_model]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...