google test使用

gtest项目使用举例:

#include "gtest/gtest.h"
#include "messenger/server.h"

class TestServer: public ::testing::Test
{
public:
  virtual void SetUp() {
    server = new MessengerServer();
  }
  virtual void TearDown() {
    if (server) {
      delete server;
      server = nullptr;
    }
  }
bool has_any_zero_bit(unsigned char* bitmap, uint64_t size) {
    assert(bitmap);
    for (uint64_t i = 0; i < size; i++) {
      uint64_t part = i / 8;
      uint64_t off = i % 8;
      if (!(bitmap[part] & (1 << off)))
        return false;
    }
    return true;
  }

  MessengerServer *server;
};
#case1
TEST_F(TestServer, test_judge_available_chunk_with_empty) {
  unsigned char bitmap[BITMAP_SIZE];
  memset(bitmap, 0, BITMAP_SIZE);
  uint64_t s_chunk = 10;
  uint64_t e_chunk = 41;
  ASSERT_FALSE(server->test_has_any_available_chunk(bitmap, s_chunk, e_chunk));
}
#case2
TEST_F(TestServer, test_judge_available_chunk_with_full) {
  unsigned char bitmap[BITMAP_SIZE];
  memset(bitmap, ~0, BITMAP_SIZE);
  uint64_t s_chunk = 10;
  uint64_t e_chunk = 41;
  ASSERT_TRUE(server->test_has_any_available_chunk(bitmap, s_chunk, e_chunk));
}
#case3
TEST_F(TestServer, test_judge_available_chunk_with_any) {
  unsigned char bitmap[BITMAP_SIZE];
  uint64_t s_chunk = 10;
  uint64_t e_chunk = 41;
  for (uint32_t i = 0 + s_chunk; i < BITMAP_SIZE + s_chunk; i++) {
    memset(bitmap, 0, BITMAP_SIZE);
    uint64_t part = (i - s_chunk) / 8;
    uint64_t off = (i - s_chunk) % 8;
    bitmap[part] |= (1 << off);
    ASSERT_TRUE(server->test_has_any_available_chunk(bitmap, s_chunk, e_chunk));
  }
}

int main(int argc, const char **argv) {
	testing::InitGoogleTest(&argc, (char**)argv);
	return RUN_ALL_TESTS();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值