MCPcopy Create free account
hub / github.com/apache/impala / TEST

Function TEST

be/src/rpc/thrift-util-test.cc:34–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32namespace impala {
33
34TEST(ThriftUtil, SimpleSerializeDeserialize) {
35 // Loop over compact and binary protocols
36 for (int i = 0; i < 2; ++i) {
37 bool compact = (i == 0);
38 ThriftSerializer serializer(compact);
39
40 TCounter counter;
41 counter.__set_name("Test");
42 counter.__set_unit(TUnit::UNIT);
43 counter.__set_value(123);
44
45 vector<uint8_t> msg;
46 EXPECT_OK(serializer.SerializeToVector(&counter, &msg));
47
48 uint8_t* buffer1 = NULL;
49 uint8_t* buffer2 = NULL;
50 uint32_t len1 = 0;
51 uint32_t len2 = 0;
52
53 EXPECT_OK(serializer.SerializeToBuffer(&counter, &len1, &buffer1));
54
55 EXPECT_EQ(len1, msg.size());
56 EXPECT_TRUE(memcmp(buffer1, msg.data(), len1) == 0);
57
58 // Serialize again and ensure the memory buffer is the same and being reused.
59 EXPECT_OK(serializer.SerializeToBuffer(&counter, &len2, &buffer2));
60
61 EXPECT_EQ(len1, len2);
62 EXPECT_TRUE(buffer1 == buffer2);
63
64 TCounter deserialized_counter;
65 EXPECT_OK(DeserializeThriftMsg(buffer1, &len1, compact, &deserialized_counter));
66 EXPECT_EQ(len1, len2);
67 EXPECT_EQ(counter, deserialized_counter);
68
69 // Serialize to string
70 std::string str;
71 EXPECT_OK(serializer.SerializeToString(&counter, &str));
72 EXPECT_EQ(len2, str.length());
73
74 // Verifies that deserialization of 'str' works.
75 TCounter deserialized_counter_2;
76 EXPECT_OK(DeserializeThriftMsg(reinterpret_cast<const uint8_t*>(str.data()), &len2,
77 compact, &deserialized_counter_2));
78 EXPECT_EQ(counter, deserialized_counter_2);
79 }
80}
81
82TEST(ThriftUtil, SerDeBuffer100MB) {
83 // Test ThriftSerializer and DeserializeThriftMsg to handle a little over 100MB

Callers

nothing calls this directly

Calls 11

SerializeToVectorMethod · 0.80
SerializeToBufferMethod · 0.80
SerializeToStringMethod · 0.80
push_backMethod · 0.80
GetDetailMethod · 0.80
DeserializeThriftMsgFunction · 0.70
sizeMethod · 0.45
dataMethod · 0.45
lengthMethod · 0.45
strMethod · 0.45
okMethod · 0.45

Tested by

no test coverage detected