2

カスタム動的分析ツールを CDashに統合しようとしています。KWStyle、CppCheck、Visual Leak Detector など。

DynamicAnalysis.xml ファイルを生成し、CTest スクリプトから CDash に送信する必要があることがわかりました。

外部ツールを ctest スクリプトの一部として実行する方法を知っていると思います。

これらの変数を使用して ctest_memcheck() の動作 を
変更
する

または execute_process() コマンドからツールを実行します。

でも、どれを使えばいいのかわからない。

私が抱えている主な問題は、カスタム ツールの出力からエラーを抽出し、その情報を DynamicAnalysis.xml に含めて送信するにはどうすればよいかということです。

私が見る極端な解決策は、有効な DynamicAnalysis.xml ファイルを生成するプログラムを作成する必要があるということです。

しかし問題は、XML ファイルの DefectList 要素の構文がわからないことです。Google からの回答は見つかりませんでした。そのファイルの XML スキーマでさえ役に立ちません。

編集:

これを見る:
http://www.cdash.org/CDash/viewDynamicAnalysis.php?buildid=987149

私の注意を引くのは、ラベル、特に空のラベルです。これらが DynamicAnalysis.xml ファイルからどのように得られるかわかりません。たぶん、これまでに登場したレーベルを追跡しているのでしょうか?どうにかして独自のカスタム ラベルを作成できますか?

ツールの種類に応じて、CDash は自動的にラベルを作成しますか? これはカスタム欠陥タイプをブロックしますか?

ここで推測しているだけなので、質問は次のとおりです。DynamicAnalysis.xml ファイルを生成するだけで、カスタム ツールのカスタム ラベルを作成できますか?

たとえば、valgrind と比較して、CppCheck (静的コード分析) からのさまざまなエラーの量が膨大であることがわかりました。動的分析を使用する必要があるかどうかはわかりません。カスタム ビルド タイプ (Continuous / Experimental / Nightly) の方がうまくいくかもしれません。このように:
http://www.cdash.org/CDash/buildSummary.php?buildid=930174
これを行う方法がわかりません。CDash コードをいじる必要があると思いますか?

どちらがうまくいくでしょうか?

4

2 に答える 2

1

valgrindを使用している場合は、CTEST_MEMORYCHECK_COMMANDをvalgrindへのフルパスに設定するだけで、ctest_memcheckを呼び出すと、ctestがvalgrind出力からDynamicAnalysis.xmlファイルを生成します。

DynamicAnalysis.xmlファイルに表示される可能性のある値を理解する最良の方法は、CTestのソースコードを分析することです。

ファイルCMake/Source / CTest / cmCTestMemCheckHandler.cxxには、「cmCTestMemCheckResultLongStrings」という名前の変数に欠陥タイプのリストがあります。そのファイルを検索してその変数への参照を探し、可能な値と、それらが「<Defect/>」xml要素を生成するためにどのように使用されるかを確認します。

編集(追加情報):

また、CDashのソースコードを調べることで、CDashが期待しているXML要素を簡単に確認できます。具体的には、ファイル「CDash / xml_handlers/dynamic_analysis_handler.php」。

于 2011-04-15T19:39:19.007 に答える
0

私がこれまでに学んだことから、cmake スクリプトで作成されたテストで実行されるツールの場合、動的分析が重要であるということです。

プログラム全体で実行されるツールの場合、カスタム Build.xml が必要です。

FILES パラメータを使用して、ctest_submit コマンドからこれらのファイルをコミットできることがわかりました。

また、Continuous、Nightly などの側にカスタムの「ビルド名」を追加できることもわかりました。

また、特定のマシンからのビルドをこれらの下に自動的に転送するように設定できること。

DynamicAnalysis の下のカスタム ラベルは、CDash のどこかから取得されたもので、もうどこか思い出せません。

于 2011-05-09T06:58:17.120 に答える