1
私はプロジェクトをセットアップ中です。ブースターユニットテストを使用してスケルトンテストを実施しています。残念ながら、マクロ展開から多数の警告が生成されます。個々の行番号を指定しなくてもこれらを無効にする方法はありますか?大量のブースターユニットテスト関連の警告をclang-tidyで処理する
これは、// NOLINTがある場合でも発生します。
例:
/home/peter/checkouts/canopen-gateway/./unittests/projs/server/exe/testunit-tcp-socket.cpp:12:1: warning: construction of 'end_suite12_registrar12' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
BOOST_AUTO_TEST_SUITE_END() // NOLINT
^
/usr/include/boost/test/unit_test_suite.hpp:62:73: note: expanded from macro 'BOOST_AUTO_TEST_SUITE_END'
#define BOOST_AUTO_TEST_SUITE_END() \
^
/usr/include/boost/test/unit_test_suite.hpp:209:62: note: expanded from macro '\BOOST_AUTO_TU_REGISTRAR'
static boost::unit_test::ut_detail::auto_test_unit_registrar BOOST_JOIN(BOOST_JOIN(test_name, _registrar), __LINE__)
^
/usr/include/boost/config/suffix.hpp:544:28: note: expanded from macro 'BOOST_JOIN'
#define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y)
^
/usr/include/boost/config/suffix.hpp:545:31: note: expanded from macro 'BOOST_DO_JOIN'
#define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y)
^
/usr/include/boost/config/suffix.hpp:546:32: note: expanded from macro 'BOOST_DO_JOIN2'
#define BOOST_DO_JOIN2(X, Y) X##Y
^
note: expanded from here
/usr/include/boost/test/unit_test_suite_impl.hpp:284:17: note: possibly throwing constructor declared here
explicit auto_test_unit_registrar(int);
ありがとうございました。私が仕事に戻ったときに確認してみましょう。 –
@PeterBingham動作しましたか? – TemplateRex
残念ながら、この問題を解決するには時間が足りませんでした。私はブーストライブラリを見つけることを止めるための修正をハッキングしました。ヘッダーの欠落について不平を言うよりはるかに短いエラーリストを得るだけです。 とにかく、あなたのコマンドラインオプションを試してみました。 clang-tidy:不明なコマンドライン引数 '-Wno-disabled-macro-expansion'。試してみてください: 'clang-tidy -help' しかし、私はclangの古いubuntuでサポートされているバージョンを使用しているので、あなたのオプションは新しい機能になる可能性があります。 あなたの提案を使用して今後これが機能するようになったら、それをマークします! –