Создайте пользовательские правила кодирования

В этом примере показано, как создать пользовательский файл правил кодирования. Можно использовать этот файл для проверки имен или текстовых шаблонов в исходном коде на соответствие заданным пользовательским правилам. Для каждого правила задается шаблон в виде регулярного выражения. Программа сравнивает шаблон с идентификаторами в исходном коде и определяет, нарушено ли пользовательское правило.

В руководстве используется следующий код, хранящийся в файле printInitialValue.c:

#include <stdio.h>

typedef struct {
    int a;
    int b;
} collection;

void main()
{
    collection myCollection= {0,0};
    printf("Initial values in the collection are %d and %d.",myCollection.a,myCollection.b);
}

Пользовательский интерфейс (только для настольных Продуктов)

  1. Создайте Polyspace® проект. Добавить printInitialValue.c к проекту.

  2. На панели Configuration выберите Coding Standards & Code Metrics. Выберите поле Check custom rules.

  3. Нажмите кнопку.

    Откроется Findings selection окно, в котором на левой панели отображаются все стандарты кодирования, поддерживаемые Polyspace, и подсвеченный Custom узел.

  4. Задайте правила проверки на правой панели.

    Разверните узел 4 Structs. Для опции 4.3 All struct fields must follow the specified pattern:

    Заголовок столбцаДействие
    StatusВыберите.
    ConventionВведите All struct fields must begin with s_ and have capital letters or digits
    PatternВведите s_[A-Z0-9_]+
    CommentОставьте пустым. Этот столбец предназначен для комментариев, которые появляются только в файле правил кодирования.

  5. Сохраните файл и запустите анализ. На панели Results List вы видите два нарушения правила 4.3. Выберите первое нарушение.

    1. На панели Source откроется линия int a; отмечен.

    2. На панели Result Details отображается введенное сообщение об ошибке All struct fields must begin with s_ and have capital letters

  6. Щелкните правой кнопкой мыши панель Source и выберите Open Editor. Файл printInitialValue.c откроется на панели Code Editor или во внешнем текстовом редакторе в зависимости от вашего Preferences.

  7. В файле замените все образцы a с s_A и b с s_B. Перезапустите анализ.

    Пользовательские нарушения правил больше не отображаются на панели Results List.

Командная строка

С помощью продуктов рабочего стола Polyspace можно создать XML-файл стандарта кодирования в пользовательском интерфейсе, а затем использовать этот файл для анализа командной строки. Предоставьте этому XML- файлу опцию Set checkers by file (-checkers-selection-file).

С помощью серверных продуктов Polyspace вы должны создать стандарт кодирования XML с нуля. Создайте копию файла с возможностью записи custom_rules.xml в polyspaceserverroot\ help\toolbox\polyspace _ bug _ finder _ server\examples\coding _ standards _ XML и отключите правила с помощью записей в файл XML (в шаблоне включены все правила из стандарта). Здесь, polyspaceserverroot является корневой установочной папкой для продуктов Polyspace Server, например C:\Program Files\Polyspace Server\R2019a.

Для образца, чтобы пользовательское правило 4.3 было отключено, файл строения должен содержать следующие линии:

<standard name="CUSTOM RULES">
  ...
  <section name="4 Structs">
      ...
      <check id="4.3" state="off">
      </check>
      ...
  </section>
  ...
</standard>

Укажите этот файл в качестве аргумента для опции Set checkers by file (-checkers-selection-file) во время анализа наряду с опцией Check custom rules (-custom-rules). Для образца, для проверки пользовательских правил с Polyspace Code Prover™ Server™, введите:

polyspace-code-prover-server -sources file -custom-rules from-file -checkers-selection-file custom_rules.xml

См. также