Как создать файл данных сборки (bdf) в Parasoft?

Я пытаюсь использовать Parasoft C/C++ Test для контроля "Стандартов кодирования" в статических тестах. Я нашел только "Как создать bdf в проектах Makefile" в руководстве пользователя Parasoft.

Как я могу создать bdf для каждого проекта? Обязательно ли использование проекта makefile?

2 ответа

Решение

Спасибо за ваш ответ, Parasoft не является предполагаемой темой. Ответы стоят золота. Я не смог найти cpptesttrace. Есть cpptest и cpptestscan. Могут ли они быть? Я использую старую версию parasoft.

Ты прав. 'cpptesttrace' был добавлен в тестовой версии 9.4 Parasoft C++ (середина 2012 года), поэтому, скорее всего, вы используете версию 9.2 или более раннюю, где присутствовал только "cpptestscan".

Кстати, вот краткое объяснение программ внутри автономной установки теста C++ (не плагин Visual Studio):

  • cpptest - запускает тестовый графический интерфейс C++ (на основе Eclipse) обычно для интерактивной работы на рабочем столе
  • cpptestcli - драйвер командной строки теста C++, используемый для автоматизации статического анализа, например, запускаемый как задание Jenkins,
  • cpptestscan - используется в качестве префикса для командной строки компилятора, чтобы захватить одну информацию о компиляции и добавить ее в файл BDF
  • cpptesttrace - (начиная с Parasoft C++test 9.4) используется в качестве префикса для построения командной строки, для захвата всех команд компиляции и сохранения в файл BDF

Основное различие между cpptestscan и cpptesttrace заключается в том, что:

  • cpptestscan должен был быть добавлен к каждой командной строке компиляции. Это означает, что cpptestscan может захватывать только одну компиляцию и сохранять по одной в BDF. Обычно это делалось перезаписью переменных make CC или CXX (с указанием компилятора, например, "cpptestscan g++ -c foo.c -o foo.o").
  • Предполагалось, что cpptestrace будет добавлен один раз перед всей командой сборки и отслеживает дочерние процессы, вызываемые командой сборки. Запись всех процессов, распознаваемых как вызовы компилятора, хранилась в BDF.

cpptestscan нормально, если make-файл или скрипт сборки достаточно гибки, чтобы разрешить перезапись компилятора в командной строке, например

make CXX="cpptestscan g++" CC="cpptestscan gcc"

Обычно это возможно с проектами на основе. В случае пользовательских или автоматически созданных сценариев сборки все ставки отключены. Зачастую единственным вариантом было изменение сценариев сборки проекта, о которых люди обычно нервничают. В таких случаях может помочь cpptesttrace, поскольку он абсолютно не навязчив и может собирать информацию о сборке практически из любого процесса сборки.

Возвращаясь к первоначальному вопросу этого поста, если у вас есть несколько проектов:

  • используя cpptestscan, вам нужно каким-то образом добавить префикс компилятора cpptestscan в сценарии сборки каждого проекта, чтобы создать соответствующий BDF
  • используя cpptesttrace, вы можете запустить сборку для каждого проекта, добавив cpptesttrace перед командой сборки каждого проекта, чтобы создать соответствующий BDF. Последнее часто проще, но вам потребуется более новый тест C++ (последняя версия - 10.3).

Надеюсь, это поможет. Кстати: уточните у Parasoft, можете ли вы обновить тест C++.

Использование make-файлов не обязательно. Parasoft C++test имеет инструмент под названием "cpptesttrace", который отслеживает процесс сборки и собирает вызовы компилятора для создания файла BDF.
cpptesttrace может использоваться с любым процессом сборки, будь то make, сценарий оболочки или даже сборка в IDE (в крайнем случае, если сборка из командной строки недоступна).

Как работает cpptesttrace:

  • вам просто нужно добавить префикс вашей исходной командной строки к "cpptesttrace" и, возможно, пару опций, и запустить вашу обычную сборку
  • убедитесь, что запущена полная перестройка (например, "make clean all"), чтобы убедиться, что BDF содержит информацию обо всех источниках, принадлежащих вашей сборке, и о том, как они компилируются
  • cpptesttrace имеет встроенный набор поддерживаемых компиляторов, и вы можете увидеть исполняемые шаблоны компилятора, запустив 'cpptesttrace --cpptesttraceHelp'. Если ваше имя компилятора GNU GCC "необычное", вы можете переопределить шаблон, который ищет cpptesttrace.
  • в случае проблем вы всегда можете обратиться в службу поддержки Parasoft

Пример 1:

Я приведу пример файла make:), но это может быть scons, jam, Python-скрипт или.bat: Предположим, моя полная сборка сделана так:

 make clean all

Я могу запустить сборку следующим образом, используя cpptesttrace: cpptesttrace make clean all. Он будет отслеживать всю сборку и создавать файл BDF из прогона.

Пример 2:

Если ваша сборка представляет собой многоуровневый процесс со сценарием или вносит изменения в папки по пути, было бы хорошо сообщить cpptesttrace абсолютное местоположение для BDF. Расширяя приведенный выше пример, мы можем запустить:

cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf  make clean all

что гарантирует, что путь BDF является абсолютным, независимо от того, на каком уровне дерева исходного кода вызывается cpptesttrace.

Другие вопросы по тегам