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

根据此处的示例,问号之间的内容是您传递给的内容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 回答
0

看来您有某种内存损坏。做一个干净的构建。试试 valgrind。尝试不同的升压释放。

于 2012-02-03T22:02:40.050 回答