バグ #2672
完了齋藤さんからQNXのパッチが来たので当てる
100%
説明
齋藤さんからQNXのパッチが来たので当てる
カワダロボティクスの齋藤です。
src/lib/rtm/testsの下のテストも実行した結果、次のようになりました。
Linuxでは
Manager, ManagerConfig, ManagerServant, ModuleManager, Outport,
PublisherNew, RTObject, RingBuffer, SdoConfiguration
がテストを通りませんでした。
QNXではこれらに加え、CORBA_IORUtil, ConfigAdmin, InPort, SystemLoggerがテストを通りませんでした。
Linuxはおそらく使用で来ているはずなので、QNXのみ失敗するテストが通るようにフィックスを行い、SystemLogger以外はテストが通るようになりました。
CORBA_IORUtil, InPortはNULL stringの出力時にsegmentation
faultで落ちるところがありましたので、パッチすることで対策しました。ConfigAdminは浮動小数点の等号比較をしていたところで失敗していたため、条件に合わせて不等号でテストするようにしました。
ただどうしてもSystemLoggerのチェックを通すことができません。失敗しているのはtest_setNameの中で、
rtclog.header(rtclog.RTL_DEBUG);
を実行した後の、
CPPUNIT_ASSERT_EQUAL(std::string(" DEBUG: : "), s0.str());
です。同じファンクション内で後に行っているテストでも失敗します。実際に返ってきているのは""です。RTC::Loggerの中のheader関数でLogStreamに代入されている内容を表示させると"
DEBUG: : "が入っていることはわかります。どなたかよい序言はありますでしょうか?
よろしくお願いします。
ファイル