leveldb学习:测试代码

leveldb中带有了大量的测试程序,凡是文件命名中带有_test的文件都是测试代码。就我的理解,阅读测试代码非常要,因为作为一个库,leveldb并不带有main函数,这也不利于我们理解leveldb的结构和流程,而测试代码相当程度上弥补了一点。并且,作为一个在校学生,我们在平时的项目中也极少考虑过写测试代码,今天我就抛砖引玉,以我的水平来剖析下leveldb的测试部分。
leveldb的测试代码还是比较容易让人摸不着头脑的,至少我第一次看是这样。下面我选用db_test.cc文件来举例分析。
测试代码必然有一个主函数入口,在db_test.cc的最下面有main函数:

int main(int argc, char** argv) {
  if (argc > 1 && std::string(argv[1]) == "--benchmark") {
    leveldb::BM_LogAndApply(1000, 1);
    leveldb::BM_LogAndApply(1000, 100);
    leveldb::BM_LogAndApply(1000, 10000);
    leveldb::BM_LogAndApply(100, 100000);
    return 0;
  }

  return leveldb::test::RunAllTests();
}

如果你看过其他的leveldb测试程序,你就会发现这个leveldb::test::RunAllTests()函数很关键。
这个test是何物?是嵌套在命名空间leveldb下的子命名空间还是一个类,我们利用sublime编辑器搜索test关键字。在文件testharness下发现:

namespace 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值