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

Function CheckMessagesEquivalent

cpp/src/arrow/engine/substrait/serde.cc:359–377  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

357
358template <typename Message>
359static Status CheckMessagesEquivalent(const Buffer& l_buf, const Buffer& r_buf) {
360 ARROW_ASSIGN_OR_RAISE(auto l, ParseFromBuffer<Message>(l_buf));
361 ARROW_ASSIGN_OR_RAISE(auto r, ParseFromBuffer<Message>(r_buf));
362
363 using google::protobuf::util::MessageDifferencer;
364
365 std::string out;
366 google::protobuf::io::StringOutputStream out_stream{&out};
367 MessageDifferencer::StreamReporter reporter{&out_stream};
368
369 MessageDifferencer differencer;
370 differencer.set_message_field_comparison(MessageDifferencer::EQUIVALENT);
371 differencer.ReportDifferencesTo(&reporter);
372
373 if (differencer.Compare(l, r)) {
374 return Status::OK();
375 }
376 return Status::Invalid("Messages were not equivalent: ", out);
377}
378
379Status CheckMessagesEquivalent(std::string_view message_name, const Buffer& l_buf,
380 const Buffer& r_buf) {

Callers 2

TESTFunction · 0.85
serde_test.ccFile · 0.85

Calls 3

OKFunction · 0.50
InvalidFunction · 0.50
CompareMethod · 0.45

Tested by 1

TESTFunction · 0.68