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

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

Пример использует следующий код, сохраненный в файле 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.

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

Создайте кодирующий стандартный конфигурационный файл. Можно начать с файла шаблона StandardsConfiguration.xml если в polyspaceroot\polyspace\examples\cxx\Bug_Finder_Example\sources или polyspaceroot\polyspace\examples\cxx\Code_Prover_Example\sources. Здесь, polyspaceroot папка установки десктопных решений Polyspace или серверных продуктов. Например, для десктопных решений, папкой установки может быть C:\Program Files\Polyspace\R2019a.

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

<standard name="CUSTOM RULES">
  ...
  <section name="4 Structures">
      ...
      <check id="4.3" state="on">
        <convention>All struct fields must begin with s_ and have capital letters or digits</convention>
        <pattern>s_[A-Z0-9_]+</pattern>
        <comment># Issue when structure field name does not begin with c_</comment>
      </check>
      ...
  </section>
  ...
</standard>

Обеспечьте этот файл в качестве аргумента для опции Check custom rules (-custom-rules) во время анализа. Например, если XML-файл называют codingStandard.xml, для анализа с Polyspace Code Prover™ Server™, введите:

polyspace-code-prover-server -sources file -custom-rules codingStandard.xml

Смотрите также