В этом примере показано, как создать файл пользовательских правил кодирования. Этот файл можно использовать для проверки имен или текстовых шаблонов в исходном коде на соответствие заданным пользовательским правилам. Для каждого правила задается шаблон в виде регулярного выражения. Программа сравнивает шаблон с идентификаторами в исходном коде и определяет, нарушено ли пользовательское правило.
В учебном пособии используется следующий код, хранящийся в файле 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 в проект.
На панели Конфигурация выберите Стандарты кодирования и метрики кода. Установите флажок Проверить пользовательские правила.
Щелкните.
Откроется окно Выбор результатов (Findings selection), отображающее на левой панели все стандарты кодирования, поддерживаемые Polyspace, с выделенным узлом Пользовательский (Custom).
Укажите правила для проверки на правой панели.
Разверните узел 4 Structs. Для опции 4.3 Все поля структуры должны соответствовать заданному шаблону:
| Заголовок столбца | Действие |
|---|---|
| Статус | Выберите. |
| Конвенция | Войти All struct fields must begin with s_ and have capital letters or digits |
| Образец | Войти s_[A-Z0-9_]+ |
| Комментарий | Оставьте пустым. Этот столбец предназначен только для комментариев, отображаемых в файле правил кодирования. |
Сохраните файл и выполните анализ. На панели «Список результатов» отображаются два нарушения правила 4.3. Выберите первое нарушение.
На панели «Источник» строка int a; помечен.
На панели «Сведения о результатах» отображается введенное сообщение об ошибке. All struct fields must begin with s_ and have capital letters
Щелкните правой кнопкой мыши панель «Источник» и выберите «Открыть редактор». Файл printInitialValue.c открывается на панели Редактор кода (Code Editor) или во внешнем текстовом редакторе в зависимости от настроек.
В файле замените все экземпляры a с s_A и b с s_B. Повторите анализ.
Пользовательские нарушения правил больше не отображаются на панели Список результатов (Results List).
![]()
С помощью настольных продуктов Polyspace можно создать стандартный XML-файл кодирования в интерфейсе пользователя, а затем использовать этот файл для анализа командной строки. Предоставить этот XML-файл с параметром Set checkers by file (-checkers-selection-file).
С помощью продуктов Polyspace Server необходимо создать стандартный 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 Prover™ Server™ введите:
polyspace-code-prover-server -sources file -custom-rules from-file -checkers-selection-file custom_rules.xml
![]()