В этом примере показано, как создать пользовательский файл правил кодирования. Можно использовать этот файл для проверки имен или текстовых шаблонов в исходном коде на соответствие заданным пользовательским правилам. Для каждого правила задается шаблон в виде регулярного выражения. Программа сравнивает шаблон с идентификаторами в исходном коде и определяет, нарушено ли пользовательское правило.
В руководстве используется следующий код, хранящийся в файле 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, например polyspaceserverroot
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