MCPcopy Create free account
hub / github.com/apache/arrow / TestRoundtrip

Function TestRoundtrip

cpp/src/arrow/flight/flight_internals_test.cc:54–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52
53template <typename PbType, typename FlightType>
54void TestRoundtrip(const std::vector<FlightType>& values,
55 const std::vector<std::string>& reprs) {
56 for (size_t i = 0; i < values.size(); i++) {
57 ARROW_SCOPED_TRACE("LHS = ", values[i].ToString());
58 for (size_t j = 0; j < values.size(); j++) {
59 ARROW_SCOPED_TRACE("RHS = ", values[j].ToString());
60 if (i == j) {
61 EXPECT_EQ(values[i], values[j]);
62 EXPECT_TRUE(values[i].Equals(values[j]));
63 } else {
64 EXPECT_NE(values[i], values[j]);
65 EXPECT_FALSE(values[i].Equals(values[j]));
66 }
67 }
68 EXPECT_EQ(values[i].ToString(), reprs[i]);
69
70 ASSERT_OK_AND_ASSIGN(std::string serialized, values[i].SerializeToString());
71 ASSERT_OK_AND_ASSIGN(auto deserialized, FlightType::Deserialize(serialized));
72 if constexpr (std::is_same_v<FlightType, FlightInfo> ||
73 std::is_same_v<FlightType, PollInfo>) {
74 ARROW_SCOPED_TRACE("Deserialized = ", deserialized->ToString());
75 EXPECT_EQ(values[i], *deserialized);
76 } else {
77 ARROW_SCOPED_TRACE("Deserialized = ", deserialized.ToString());
78 EXPECT_EQ(values[i], deserialized);
79 }
80
81// This tests the internal protobuf types which don't get exported in the Flight DLL.
82#ifndef _WIN32
83 PbType pb_value;
84 ASSERT_OK(internal::ToProto(values[i], &pb_value));
85
86 if constexpr (std::is_same_v<FlightType, FlightInfo>) {
87 FlightInfo::Data info_data;
88 ASSERT_OK(internal::FromProto(pb_value, &info_data));
89 EXPECT_EQ(values[i], FlightInfo{std::move(info_data)});
90 } else if constexpr (std::is_same_v<FlightType, SchemaResult>) {
91 SchemaResult value;
92 ASSERT_OK(internal::FromProto(pb_value, &value));
93 EXPECT_EQ(values[i], value);
94 } else {
95 FlightType value;
96 ASSERT_OK(internal::FromProto(pb_value, &value));
97 EXPECT_EQ(values[i], value);
98 }
99#endif
100 }
101}
102
103TEST(FlightTypes, Action) {
104 std::vector<Action> values = {

Callers

nothing calls this directly

Calls 5

ToProtoFunction · 0.70
FromProtoFunction · 0.70
sizeMethod · 0.45
ToStringMethod · 0.45
EqualsMethod · 0.45

Tested by

no test coverage detected