Skip to content

Commit

Permalink
Close conformance test gaps for delimited encoding.
Browse files Browse the repository at this point in the history
This documents existing behavior before we attempt to fix the issues in editions.

PiperOrigin-RevId: 618979111
  • Loading branch information
mkruskal-google authored and copybara-github committed Mar 25, 2024
1 parent 1211435 commit c5fe6a5
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
24 changes: 24 additions & 0 deletions conformance/text_format_conformance_suite.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#include "absl/log/absl_log.h"
#include "absl/log/die_if_null.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "absl/strings/string_view.h"
#include "conformance_test.h"
#include "google/protobuf/editions/golden/test_messages_proto2_editions.pb.h"
#include "google/protobuf/editions/golden/test_messages_proto3_editions.pb.h"
Expand Down Expand Up @@ -242,6 +244,28 @@ void TextFormatConformanceTestSuiteImpl<MessageType>::RunGroupTests() {
RunValidTextFormatTest("GroupFieldWithColon", REQUIRED,
"Data: { group_int32: 1 }");
RunValidTextFormatTest("GroupFieldEmpty", REQUIRED, "Data {}");
RunValidTextFormatTest("GroupFieldMultiWord", REQUIRED,
"MultiWordGroupField { group_int32: 1 }");

// Lower-cased acceptance tests.
ExpectParseFailure("GroupFieldLowercased", REQUIRED,
"data { group_int32: 1 }");
ExpectParseFailure("GroupFieldLowercasedMultiWord", REQUIRED,
"multiwordgroupfield { group_int32: 1 }");

// Group extensions
RunValidTextFormatTest("GroupFieldExtension", REQUIRED,
absl::StrFormat("[%s] { group_int32: 1 }",
MessageType::GetDescriptor()
->file()
->FindExtensionByName("groupfield")
->PrintableNameForExtension()));
ExpectParseFailure("GroupFieldExtensionGroupName", REQUIRED,
absl::StrFormat("[%s] { group_int32: 1 }",
MessageType::GetDescriptor()
->file()
->FindMessageTypeByName("GroupField")
->full_name()));
}

template <typename MessageType>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,15 @@ message TestAllTypesProto2 {
features.message_encoding = DELIMITED
];

message MultiWordGroupField {
int32 group_int32 = 205;
uint32 group_uint32 = 206;
}

MultiWordGroupField multiwordgroupfield = 204 [
features.message_encoding = DELIMITED
];

// default values
int32 default_int32 = 241 [
default = -123456789
Expand Down Expand Up @@ -344,6 +353,17 @@ extend TestAllTypesProto2 {
int32 extension_int32 = 120;
}

extend TestAllTypesProto2 {
GroupField groupfield = 121 [
features.message_encoding = DELIMITED
];
}

message GroupField {
int32 group_int32 = 122;
uint32 group_uint32 = 123;
}

message UnknownToTestAllTypes {
int32 optional_int32 = 1001;
string optional_string = 1002;
Expand Down
12 changes: 12 additions & 0 deletions src/google/protobuf/test_messages_proto2.proto
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,11 @@ message TestAllTypesProto2 {
optional uint32 group_uint32 = 203;
}

optional group MultiWordGroupField = 204 {
optional int32 group_int32 = 205;
optional uint32 group_uint32 = 206;
}

// default values
optional int32 default_int32 = 241 [default = -123456789];
optional int64 default_int64 = 242 [default = -9123456789123456789];
Expand Down Expand Up @@ -250,6 +255,13 @@ extend TestAllTypesProto2 {
optional int32 extension_int32 = 120;
}

extend TestAllTypesProto2 {
optional group GroupField = 121 {
optional int32 group_int32 = 122;
optional uint32 group_uint32 = 123;
}
}

message UnknownToTestAllTypes {
optional int32 optional_int32 = 1001;
optional string optional_string = 1002;
Expand Down

0 comments on commit c5fe6a5

Please sign in to comment.