MCPcopy Create free account
hub / github.com/Snapchat/Valdi / testEncode

Method testEncode

valdi_protobuf/test/Field_tests.cpp:86–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

84
85 template<typename F>
86 void testEncode(F&& doEncode) {
87 std::string target;
88 size_t writtenCount;
89 {
90 google::protobuf::io::StringOutputStream stream(&target);
91 google::protobuf::io::CodedOutputStream outputStream(&stream, false);
92
93 doEncode(1, &outputStream);
94
95 writtenCount = static_cast<size_t>(outputStream.ByteCount());
96 }
97
98 auto byteSize = field.byteSize(1, false, false);
99
100 ASSERT_EQ(writtenCount, byteSize);
101
102 ByteBuffer buffer;
103 buffer.resize(byteSize);
104
105 auto* bufferEnd = field.write(1, false, false, buffer.begin(), buffer.end());
106
107 ASSERT_EQ(buffer.end(), bufferEnd);
108
109 ASSERT_EQ(std::string_view(target.data(), writtenCount), buffer.toStringView());
110
111 if (writtenCount > 0) {
112 switch (field.getInternalType()) {
113 case Protobuf::Field::InternalType::Varint:
114 checkVarintConformance(buffer);
115 break;
116 case Protobuf::Field::InternalType::Fixed64:
117 checkFixed64Conformance(buffer);
118 break;
119 case Protobuf::Field::InternalType::Fixed32:
120 checkFixed32Conformance(buffer);
121 break;
122 default:
123 break;
124 }
125 }
126 }
127
128 template<typename T>
129 void testField(T fieldValue,

Callers

nothing calls this directly

Calls 8

byteSizeMethod · 0.80
getInternalTypeMethod · 0.80
writeMethod · 0.65
endMethod · 0.65
resizeMethod · 0.45
beginMethod · 0.45
dataMethod · 0.45
toStringViewMethod · 0.45

Tested by

no test coverage detected