Exemplo n.º 1
0
TEST(msgpack_pack, empty) {
  const bit_vector bv(10);
  EXPECT_EQ(NULL, bv.raw_data_unsafe());

  msgpack::sbuffer buf;
  msgpack::pack(buf, bv);

  msgpack::unpacked unpacked;
  msgpack::unpack(&unpacked, buf.data(), buf.size());
  msgpack::object obj = unpacked.get();

  ASSERT_EQ(msgpack::type::ARRAY, obj.type);
  ASSERT_EQ(2u, obj.via.array.size);

  const size_t bits = obj.via.array.ptr[0].as<uint64_t>();
  const std::string data = obj.via.array.ptr[1].as<std::string>();

  EXPECT_EQ(bv.bit_num(), bits);

  EXPECT_EQ(bv.used_bytes(), data.size());
  for (size_t i = 0; i < data.size(); ++i) {
    EXPECT_EQ(0, data[i]);
  }
}