В этом примере показано, как создать пользовательский файл правил кодирования. Можно использовать этот файл для проверки имен или текстовых шаблонов в исходном коде на соответствие заданным пользовательским правилам. Для каждого правила задается шаблон в виде регулярного выражения. Программа сравнивает шаблон с идентификаторами в исходном коде и определяет, нарушено ли пользовательское правило.
В руководстве используется следующий код, хранящийся в файле 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);
}![]()
Создайте Polyspace® проект. Добавить printInitialValue.c к проекту.
На панели Configuration выберите Coding Standards & Code Metrics. Выберите поле Check custom rules.
Нажмите кнопку.
Откроется Findings selection окно, в котором на левой панели отображаются все стандарты кодирования, поддерживаемые Polyspace, и подсвеченный Custom узел.
Задайте правила проверки на правой панели.
Разверните узел 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 | Оставьте пустым. Этот столбец предназначен для комментариев, которые появляются только в файле правил кодирования. |
Сохраните файл и запустите анализ. На панели Results List вы видите два нарушения правила 4.3. Выберите первое нарушение.
На панели Source откроется линия int a; отмечен.
На панели Result Details отображается введенное сообщение об ошибке All struct fields must begin with s_ and have capital letters
Щелкните правой кнопкой мыши панель Source и выберите Open Editor. Файл printInitialValue.c откроется на панели Code Editor или во внешнем текстовом редакторе в зависимости от вашего Preferences.
В файле замените все образцы a с s_A и b с s_B. Перезапустите анализ.
Пользовательские нарушения правил больше не отображаются на панели Results List.
![]()
С помощью продуктов рабочего стола Polyspace можно создать XML-файл стандарта кодирования в пользовательском интерфейсе, а затем использовать этот файл для анализа командной строки. Предоставьте этому XML- файлу опцию Set checkers by file (-checkers-selection-file).
С помощью серверных продуктов Polyspace вы должны создать стандарт кодирования XML с нуля. Создайте копию файла с возможностью записи custom_rules.xml в и отключите правила с помощью записей в файл XML (в шаблоне включены все правила из стандарта). Здесь, polyspaceserverroot\ help\toolbox\polyspace _ bug _ finder _ server\examples\coding _ standards _ XML является корневой установочной папкой для продуктов Polyspace Server, например polyspaceserverrootC:\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
![]()