Go to the documentation of this file.
35 #ifndef GOOGLE_PROTOBUF_TEST_UTIL_H__
36 #define GOOGLE_PROTOBUF_TEST_UTIL_H__
38 #include <google/protobuf/unittest.pb.h>
40 #define UNITTEST ::protobuf_unittest
41 #define UNITTEST_IMPORT ::protobuf_unittest_import
43 #include <google/protobuf/test_util.inc>
45 #undef UNITTEST_IMPORT
47 #include <google/protobuf/port_def.inc>
52 namespace unittest = ::protobuf_unittest;
53 namespace unittest_import = ::protobuf_unittest_import;
76 bool expect_extensions_notnull);
128 : base_descriptor_(base_descriptor) {
130 std::string package = base_descriptor->file()->package();
132 pool->FindFieldByName(
package +
".TestAllTypes.optional_import_message");
134 import_descriptor->message_type()->file()->package();
138 import_d_ =
pool->FindFieldByName(import_package +
".ImportMessage.d");
139 import_e_ =
pool->FindFieldByName(import_package +
".PublicImportMessage.e");
146 import_foo_ =
pool->FindEnumValueByName(import_package +
".IMPORT_FOO");
147 import_bar_ =
pool->FindEnumValueByName(import_package +
".IMPORT_BAR");
148 import_baz_ =
pool->FindEnumValueByName(import_package +
".IMPORT_BAZ");
153 pool->FindFieldByName(
package +
".RepeatedGroup_extension.a");
157 pool->FindFieldByName(
package +
".TestAllTypes.RepeatedGroup.a");
542 message,
F(
"optional_string_piece"), &scratch));
629 message,
F(
"repeated_string"), 0, &scratch));
631 message,
F(
"repeated_bytes"), 0, &scratch));
641 message,
F(
"repeated_foreign_message"), 0);
656 message,
F(
"repeated_foreign_enum"), 0));
661 message,
F(
"repeated_string_piece"), 0));
663 message,
F(
"repeated_string_piece"), 0, &scratch));
668 message,
F(
"repeated_cord"), 0, &scratch));
698 message,
F(
"repeated_string"), 1, &scratch));
700 message,
F(
"repeated_bytes"), 1, &scratch));
710 message,
F(
"repeated_foreign_message"), 1);
725 message,
F(
"repeated_foreign_enum"), 1));
730 message,
F(
"repeated_string_piece"), 1));
732 message,
F(
"repeated_string_piece"), 1, &scratch));
737 message,
F(
"repeated_cord"), 1, &scratch));
800 message,
F(
"default_string_piece"), &scratch));
962 message,
F(
"optional_string_piece"), &scratch));
1039 message,
F(
"default_string"), &scratch));
1052 message,
F(
"default_string_piece"), &scratch));
1086 message,
F(
"repeated_nested_message"), 1);
1089 message,
F(
"repeated_foreign_message"), 1);
1092 message,
F(
"repeated_import_message"), 1);
1095 message,
F(
"repeated_lazy_message"), 1);
1113 std::vector<const FieldDescriptor*>
output;
1115 for (
int i = 0;
i <
output.size(); ++
i) {
1117 if (!
field->is_repeated())
continue;
1127 std::vector<const FieldDescriptor*>
output;
1129 for (
int i = 0;
i <
output.size(); ++
i) {
1131 if (!
field->is_repeated())
continue;
1135 if (!
field->is_extension() || expect_extensions_notnull) {
1137 <<
"ReleaseLast returned nullptr for: " <<
field->name();
1147 std::vector<const FieldDescriptor*>
output;
1149 for (
int i = 0;
i <
output.size(); ++
i) {
1151 if (!
field->is_repeated())
continue;
1161 std::vector<const FieldDescriptor*>
fields;
1164 for (
int i = 0;
i <
fields.size(); ++
i) {
1166 if (!
field->is_optional() ||
1181 std::vector<const FieldDescriptor*>
fields;
1184 for (
int i = 0;
i <
fields.size(); ++
i) {
1186 if (!
field->is_optional() ||
1200 static const char*
fields[] = {
1202 "optional_nested_message",
1203 "optional_foreign_message",
1204 "optional_import_message",
1209 switch (expected_release_state) {
1215 if (
message->GetArena() ==
nullptr) {
1236 unittest::TestFieldOrderings
message;
1238 message.AppendToString(&expected);
1240 message.SetExtension(unittest::my_extension_int, 23);
1241 message.AppendToString(&expected);
1244 message.AppendToString(&expected);
1246 message.SetExtension(unittest::my_extension_string,
"bar");
1247 message.AppendToString(&expected);
1250 message.AppendToString(&expected);
1261 #include <google/protobuf/port_undef.inc>
1263 #endif // GOOGLE_PROTOBUF_TEST_UTIL_H__
void AddUInt32(Message *message, const FieldDescriptor *field, uint32 value) const
std::string GetString(const Message &message, const FieldDescriptor *field) const
const std::string & GetStringReference(const Message &message, const FieldDescriptor *field, std::string *scratch) const
GLuint const GLchar * name
const EnumValueDescriptor * nested_bar_
void ExpectAllFieldsSetViaReflection2(const Message &message)
void SetBool(Message *message, const FieldDescriptor *field, bool value) const
float GetRepeatedFloat(const Message &message, const FieldDescriptor *field, int index) const
void SetRepeatedString(Message *message, const FieldDescriptor *field, int index, const std::string &value) const
const EnumValueDescriptor * nested_foo_
float GetFloat(const Message &message, const FieldDescriptor *field) const
uint32 GetUInt32(const Message &message, const FieldDescriptor *field) const
const std::string & GetRepeatedStringReference(const Message &message, const FieldDescriptor *field, int index, std::string *scratch) const
const Reflection * GetReflection() const
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ReflectionTester)
#define EXPECT_EQ(val1, val2)
void SetAllocatedMessage(Message *message, Message *sub_message, const FieldDescriptor *field) const
void ReleaseLastRepeatedsViaReflection(Message *message, bool expect_extensions_notnull)
void SetDouble(Message *message, const FieldDescriptor *field, double value) const
void SetAllocatedOptionalMessageFieldsToNullViaReflection(Message *message)
const FieldDescriptor * group_a_
void AddInt32(Message *message, const FieldDescriptor *field, int32 value) const
const FieldDescriptor * nested_b_
GLsizei const GLchar *const * string
void SetInt64(Message *message, const FieldDescriptor *field, int64 value) const
const EnumValueDescriptor * GetRepeatedEnum(const Message &message, const FieldDescriptor *field, int index) const
void SetString(Message *message, const FieldDescriptor *field, const std::string &value) const
bool HasField(const Message &message, const FieldDescriptor *field) const
bool GetBool(const Message &message, const FieldDescriptor *field) const
void AddDouble(Message *message, const FieldDescriptor *field, double value) const
void SetPackedFieldsViaReflection(Message *message)
const FieldDescriptor * import_e_
void RemoveLastRepeatedsViaReflection(Message *message)
void SetUInt64(Message *message, const FieldDescriptor *field, uint64 value) const
#define ASSERT_EQ(val1, val2)
void ExpectAllFieldsSetViaReflection3(const Message &message)
void ExpectAllFieldsAndExtensionsInOrder(const std::string &serialized)
std::string GetRepeatedString(const Message &message, const FieldDescriptor *field, int index) const
#define GOOGLE_ARRAYSIZE(a)
const EnumValueDescriptor * foreign_bar_
double GetRepeatedDouble(const Message &message, const FieldDescriptor *field, int index) const
void AddEnum(Message *message, const FieldDescriptor *field, const EnumValueDescriptor *value) const
const DescriptorPool * pool() const
uint32 GetRepeatedUInt32(const Message &message, const FieldDescriptor *field, int index) const
int32 GetRepeatedInt32(const Message &message, const FieldDescriptor *field, int index) const
void ExpectMessagesReleasedViaReflection(Message *message, MessageReleaseState expected_release_state)
void SetInt32(Message *message, const FieldDescriptor *field, int32 value) const
const EnumValueDescriptor * foreign_foo_
const EnumValueDescriptor * GetEnum(const Message &message, const FieldDescriptor *field) const
static void ExpectOneofSetViaReflection(const Message &message)
ReflectionTester(const Descriptor *base_descriptor)
void SetRepeatedDouble(Message *message, const FieldDescriptor *field, int index, double value) const
void SwapElements(Message *message, const FieldDescriptor *field, int index1, int index2) const
void RemoveLast(Message *message, const FieldDescriptor *field) const
#define EXPECT_TRUE(cond)
#define ASSERT_TRUE(condition)
const FieldDescriptor * repeated_group_a_
void SetEnum(Message *message, const FieldDescriptor *field, const EnumValueDescriptor *value) const
void ExpectAllFieldsSetViaReflection1(const Message &message)
const FieldDescriptor * field
void AddString(Message *message, const FieldDescriptor *field, const std::string &value) const
int FieldSize(const Message &message, const FieldDescriptor *field) const
int32 GetInt32(const Message &message, const FieldDescriptor *field) const
int64 GetRepeatedInt64(const Message &message, const FieldDescriptor *field, int index) const
void SetRepeatedUInt32(Message *message, const FieldDescriptor *field, int index, uint32 value) const
static void SetAllocatedOptionalMessageFieldsToMessageViaReflection(Message *from_message, Message *to_message)
Message * MutableMessage(Message *message, const FieldDescriptor *field, MessageFactory *factory=nullptr) const
const FieldDescriptor * foreign_c_
void SetRepeatedInt64(Message *message, const FieldDescriptor *field, int index, int64 value) const
#define GOOGLE_CHECK(EXPRESSION)
InternalDescriptorPool * pool
void SetRepeatedInt32(Message *message, const FieldDescriptor *field, int index, int32 value) const
const EnumValueDescriptor * foreign_baz_
const FieldDescriptor * FindExtensionByName(const std::string &name) const
static const upb_fielddef fields[107]
Message * ReleaseLast(Message *message, const FieldDescriptor *field) const
const Descriptor * GetDescriptor() const
const Descriptor * base_descriptor_
Message * MutableRepeatedMessage(Message *message, const FieldDescriptor *field, int index) const
void ModifyRepeatedFieldsViaReflection(Message *message)
void SwapRepeatedsViaReflection(Message *message)
void ExpectPackedFieldsSetViaReflection(const Message &message)
static void SetOneofViaReflection(Message *message)
const FieldDescriptor * FindFieldByName(const std::string &name) const
void AddFloat(Message *message, const FieldDescriptor *field, float value) const
void SetAllFieldsViaReflection(Message *message)
#define EXPECT_FALSE(cond)
const std::string & name() const
void SetRepeatedUInt64(Message *message, const FieldDescriptor *field, int index, uint64 value) const
const FileDescriptor * file() const
uint64 GetRepeatedUInt64(const Message &message, const FieldDescriptor *field, int index) const
void AddInt64(Message *message, const FieldDescriptor *field, int64 value) const
int64 GetInt64(const Message &message, const FieldDescriptor *field) const
const FieldDescriptor * F(const std::string &name)
const EnumValueDescriptor * import_baz_
void ExpectAllFieldsSetViaReflection(const Message &message)
const EnumValueDescriptor * import_bar_
const FieldDescriptor * import_d_
void SetRepeatedBool(Message *message, const FieldDescriptor *field, int index, bool value) const
Message * AddMessage(Message *message, const FieldDescriptor *field, MessageFactory *factory=nullptr) const
Message * ReleaseMessage(Message *message, const FieldDescriptor *field, MessageFactory *factory=nullptr) const
const upb_json_parsermethod const upb_symtab upb_sink * output
void SetRepeatedEnum(Message *message, const FieldDescriptor *field, int index, const EnumValueDescriptor *value) const
bool GetRepeatedBool(const Message &message, const FieldDescriptor *field, int index) const
const EnumValueDescriptor * import_foo_
void ListFields(const Message &message, std::vector< const FieldDescriptor * > *output) const
void ExpectClearViaReflection(const Message &message)
void AddBool(Message *message, const FieldDescriptor *field, bool value) const
void SetFloat(Message *message, const FieldDescriptor *field, float value) const
GLenum GLuint GLenum GLsizei const GLchar * message
uint64 GetUInt64(const Message &message, const FieldDescriptor *field) const
const Message & GetRepeatedMessage(const Message &message, const FieldDescriptor *field, int index) const
void AddUInt64(Message *message, const FieldDescriptor *field, uint64 value) const
const EnumValueDescriptor * nested_baz_
void SetRepeatedFloat(Message *message, const FieldDescriptor *field, int index, float value) const
const Message & GetMessage(const Message &message, const FieldDescriptor *field, MessageFactory *factory=nullptr) const
double GetDouble(const Message &message, const FieldDescriptor *field) const
void SetUInt32(Message *message, const FieldDescriptor *field, uint32 value) const
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:59