exponenta event banner

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

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

В учебном пособии используется следующий код, хранящийся в файле 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. На панели Конфигурация выберите Стандарты кодирования и метрики кода. Установите флажок Проверить пользовательские правила.

  3. Щелкните.

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

  4. Укажите правила для проверки на правой панели.

    Разверните узел 4 Structs. Для опции 4.3 Все поля структуры должны соответствовать заданному шаблону:

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

  5. Сохраните файл и выполните анализ. На панели «Список результатов» отображаются два нарушения правила 4.3. Выберите первое нарушение.

    1. На панели «Источник» строка int a; помечен.

    2. На панели «Сведения о результатах» отображается введенное сообщение об ошибке. All struct fields must begin with s_ and have capital letters

  6. Щелкните правой кнопкой мыши панель «Источник» и выберите «Открыть редактор». Файл printInitialValue.c открывается на панели Редактор кода (Code Editor) или во внешнем текстовом редакторе в зависимости от настроек.

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

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

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

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

С помощью продуктов Polyspace Server необходимо создать стандартный 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 Prover™ Server™ введите:

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

См. также