私は並列(mpiベース)のC++コードのためにboost :: unit_testを使っていくつかのテストを作成したいと思います。私は、テストフレームワークの使用に関するいくつかの基本的な経験があります。私にとって、並列コードに行くときの主な問題は、最初に呼び出されるようなMPI :: Initを置く場所です。私が作成したテストスイートには、主な機能はありません。さらに、いくつかのアサーションが既存のランクのサブセットで失敗した場合、Boost :: Testは(mpiに関して)正しく存在しますか?並列コードのためのBoost :: Testの使用
4
A
答えて
2
ブーストテストにはfixture supportがあり、テストケースごと、テストスイートごと、またはグローバルにセットアップ/クリーンアップを実行できます。あなたはMPI::Init
に電話をかけなければならないように思えます。
struct MPIFixture {
MPIFixture() { MPI::Init(); }
~MPIFixture() { /* I bet there's a deinit you should call */ }
};
BOOST_GLOBAL_FIXTURE(MPIFixture);
あなたは、独自のmain
機能を提供するフレームワークで作業している場合のトラブルは、それに取り組んで、または持っている場合は、することができます#define BOOST_TEST_NO_MAIN
ブーストヘッダを含む前。その後、boost::unit_test::unit_test_main
を呼び出してテストスイートを実行することができます。
関連する問題
- 1. boost :: property_mapsの列挙型のためのboost :: lexical_cast
- 2. 汎用タスクのためのboost :: asioスレッドプールの使用
- 3. コマンドラインからBoost :: Testを使用してDLLをテストする
- 4. ロボット制御のための並列プログラミング
- 5. 並列処理のためのPythonマルチプロセッシング
- 6. 並行ファイルコピー操作のためのPythonマルチプロセス/マルチスレッドの使用
- 7. モナドでの並列ストラテジーの使用
- 8. boost :: indirect_iteratorの使用
- 9. タスクActive Directoryに照会するための並列ライブラリ(DirectoryServicesを使用)
- 10. TPLを使用した並列I/O
- 11. GPUを使用した並列プログラミングR
- 12. タスク並列ライブラリを使用したスケジューリング
- 13. xcopyを使用した並列コピー
- 14. タスク並列ライブラリを使用したイベント
- 15. libCURLまたはネットワークプログラミングのためのBoost?
- 16. boost :: gil :: color_converted_viewとboost :: gil :: for_each_pixelの使用
- 17. Boost :: TestでDLLをテストしますか?
- 18. 巣私はこれをしたいのためのループの並列内部のforループの並列
- 19. 並列Webのタスクキューを使用しているコードについての質問
- 20. Visual StudioでのCuda並列コード生成
- 21. 並列コードの実行python2.7 ndb
- 22. RxJava観察者コードの並列実行
- 23. マルチクライアントプロセスのためのboost :: asioの正しい使い方
- 24. 並列処理のためのXvfbの複数の表示?
- 25. OpenCV GPUを使用した人の検出のためのコード
- 26. boost :: testとverify codeが実行されました
- 27. DDoS防止のための並列アルゴリズムの設計?
- 28. iOS:アドホックベータテストのための「並列」アプリケーションバージョンの配布方法
- 29. jQuery 2列の並べ替えのためのソート可能?
- 30. BoostとVisual Studioの使用
MPI :: Initがコマンドライン引数を必要とするため、Fixturesは機能しません。あなたの2番目の提案は問題を解決します!私にとっては、この文脈ではpost http://stackoverflow.com/q/963158/1326595も役に立ちました。 –
実際には、framework :: master_test_suite()インターフェイスを通してグローバルフィクスチャのコマンドライン引数にアクセスすることができます。 –