我正在使用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安装有问题吗?
答案 0 :(得分:0)
根据示例here,问号之间的内容是您传递给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
标记。
答案 1 :(得分:0)
看来你有某种内存损坏。做一个干净的构建。试试valgrind。尝试不同的助推释放。