TEST(ObObj,Serialize_createtime) { ObCreateTime data[] = {1,28,1,static_cast<int64_t>(UINT32_MAX),INT64_MAX,124543900,221348087492}; int64_t need_len = 0; for(uint32_t i=0;i<sizeof(data)/sizeof(data[0]);++i) { need_len += serialization::encoded_length_createtime(data[i]); } char *buf = (char *)malloc(need_len); ObObj t; int64_t pos = 0; for(uint32_t i=0;i<sizeof(data)/sizeof(data[0]);++i) { t.reset(); t.set_createtime(data[i]); ASSERT_EQ(t.serialize(buf,need_len,pos),OB_SUCCESS); } pos = 0; ObCreateTime v = 0; for(uint32_t i=0;i<sizeof(data)/sizeof(data[0]);++i) { t.reset(); ASSERT_EQ(t.deserialize(buf,need_len,pos),OB_SUCCESS); ASSERT_EQ(t.get_createtime(v),OB_SUCCESS); ASSERT_EQ(v,data[i]); } free(buf); }
TEST(ObObj,int_boundary) { int64_t need_len = 0; int64_t data[] = {1,28,-1,INT32_MIN,static_cast<int64_t>(UINT32_MAX),INT64_MAX,INT64_MIN,UINT64_MAX,124543900}; for(uint32_t i=0;i<sizeof(data)/sizeof(data[0]);++i) { need_len += serialization::encoded_length_int(data[i]); } char *buf = (char *)malloc(need_len); ObObj t; int64_t pos = 0; for(uint32_t i=0;i<sizeof(data)/sizeof(data[0]);++i) { t.reset(); t.set_int(data[i]); ASSERT_EQ(t.serialize(buf,need_len,pos),OB_SUCCESS); } pos = 0; int64_t v = 0; for(uint32_t i=0;i<sizeof(data)/sizeof(data[0]);++i) { t.reset(); ASSERT_EQ(t.deserialize(buf,need_len,pos),OB_SUCCESS); ASSERT_EQ(t.get_int(v),OB_SUCCESS); ASSERT_EQ(v,data[i]); } free(buf); }
TEST(ObObj, test_bug) { ObObj obj; obj.set_int(100, false); char buf[2048]; int64_t len = 2048; int64_t pos = 0; ASSERT_EQ(obj.serialize(buf, len, pos), OB_SUCCESS); pos = 0; ObObj temp; temp.set_int(200, true); temp.reset(); ASSERT_EQ(temp.deserialize(buf, len, pos), OB_SUCCESS); ASSERT_EQ(temp == obj, true); ObObj test; test.set_int(300, true); test = temp; ASSERT_EQ(test == temp, true); }