0

Boost.Testを使用していますが、テストが失敗します。それは楽しいことですが、結果は恐ろしいものです。これはBoost.Testの出力です。

$ zwja/Build/Products/Debug/test ; exit;                                     <
Running 2 test cases...
/Users/daknok/Desktop/libxxqlite/test/DatabaseTest.cpp:32: error in "P
                                                                      `??k??k
                                                                             ???k?%??k??k
         l
          p??k????k?": 
*** 1 failure detected in test suite "Master Test Suite"

これが私の失敗したテストケースです:

BOOST_AUTO_TEST_CASE(Querying) {
  BOOST_CHECK_NO_THROW({
    XXQLite::Database db;
    XXQLite::Query query1 = db.createQuery("CREATE TABLE Foo (Id PRIMARY KEY)");
    XXQLite::Query query2
      = db.createQuery("SELECT * FROM Foo WHERE Id=? OR Id=? OR Id=?",
                       1, 2, 3);
  });
}

ここで何が起こっているのか本当にわかりません。これらの奇妙で読めないエラーメッセージの原因は何でしょうか?Boostは私のコードが気に入らなかったのですか?Boostのインストールに何か問題がありますか?

4

2 に答える 2

0

ある種のメモリ破損があるようです。クリーンビルドを行います。valgrind を試してください。別のブーストリリースを試してください。

于 2012-02-03T22:02:40.050 に答える
0

ここの例によると、疑問符の間のものが渡されたものですBOOST_AUTO_TEST_CASE:

BOOST_AUTO_TEST_CASE( test )
{
    BOOST_CHECK_NO_THROW( throw my_exception() );
}

出力:

Running 1 test case...
test.cpp(8): error in "test": exception thrown by throw my_exception()

つまり、印刷する必要があります"Querying"。その名前で何かが起こっていますか?違うものに変えたら効果ありますか?

また、プリプロセッサの出力を調べてみてください。gcc を使用している場合は、-Eフラグを使用します。

于 2012-02-03T21:19:12.393 に答える