Я пытаюсь интегрировать пользовательские инструменты динамического анализа в CDash.Такие как KWStyle, CppCheck и Visual Leak Detector.
Я понял, что мне нужно сгенерировать файл DynamicAnalysis.xml и отправить его на CDash из сценариев CTest.
Я думаю, что язнать, как запустить внешний инструмент как часть скрипта ctest.
1008 * Либо с помощью этих переменных, чтобы изменить как ctest_memcheck () работает
CTEST_MEMORYCHECK_COMMAND
CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
CTEST_MEMORYCHECK_COMMAND_OPTIONS 1013 * или запустив инструмент из команды execute_process ().
Но я немного сомневаюсь, какой из них использовать.
Основная проблема, я думаю, у меня заключается в том, как извлечь ошибки из вывода пользовательского инструмента и включить эту информацию в DynamicAnalysis..xml для отправки?
Крайнее решение, которое я вижу, заключается в том, что мне нужно создать программу, которая генерирует действительный файл DynamicAnalysis.xml.
Но проблема в том, что я незнать синтаксис элемента DefectList в файле XML.Я не нашел ответа от Google, и даже XML-схема для этого файла бесполезна.
РЕДАКТИРОВАТЬ:
Глядя на это:
http://www.cdash.org/CDash/viewDynamicAnalysis.php?buildid=987149
Что рисуетмое внимание - этикетки, особенно пустые.Я не понимаю, как это может быть из файла DynamicAnalysis.xml.Может быть, он отслеживает какие-либо ярлыки, которые когда-либо появлялись?Могу ли я как-нибудь создать свои собственные метки?
Создает ли CDash метки автоматически, в зависимости от типа инструмента?Это блокирует нестандартные типы дефектов?
Я просто угадываю здесь, поэтому вопрос в том;Могу ли я создать собственные метки для своего пользовательского инструмента, просто сгенерировав файл DynamicAnalysis.xml.
Мне пришло в голову, что количество различных ошибок в CppCheck (статический анализ кода) огромно по сравнению с valgrind дляпример.Я не уверен, что мне следует использовать динамический анализ.Может быть, лучше подойдет пользовательский тип сборки (непрерывный / экспериментальный / ночной).Примерно так:
http://www.cdash.org/CDash/buildSummary.php?buildid=930174
Понятия не имею, как это сделать, я полагаю, что нужно вмешиваться в код CDash?
Какой из них будет работать лучше?