@@ -231,7 +231,7 @@ TEST_F(OverridableDefaultsTest, Proto3) {
231231TEST_F (OverridableDefaultsTest, Edition2023) {
232232 auto feature_defaults = ReadDefaults (" protobuf_defaults" );
233233 ASSERT_OK (feature_defaults);
234- ASSERT_GE (feature_defaults->defaults ().size (), 3 );
234+ ASSERT_GE (feature_defaults->defaults ().size (), 4 );
235235 auto defaults = feature_defaults->defaults (2 );
236236 ASSERT_EQ (defaults.edition (), EDITION_2023);
237237
@@ -248,6 +248,39 @@ TEST_F(OverridableDefaultsTest, Edition2023) {
248248 )pb" ));
249249}
250250
251+ // Lock down that 2024 overridable defaults never change. Once Edition 2024 has
252+ // been released this test should never need to be touched.
253+ TEST_F (OverridableDefaultsTest, Edition2024) {
254+ auto feature_defaults = ReadDefaults (" protobuf_defaults" );
255+ ASSERT_OK (feature_defaults);
256+ ASSERT_GE (feature_defaults->defaults ().size (), 4 );
257+ auto defaults = feature_defaults->defaults (3 );
258+ ASSERT_EQ (defaults.edition (), EDITION_2024);
259+
260+
261+ EXPECT_THAT (defaults.overridable_features (), EqualsProto (R"pb(
262+ field_presence: EXPLICIT
263+ enum_type: OPEN
264+ repeated_field_encoding: PACKED
265+ utf8_validation: VERIFY
266+ message_encoding: LENGTH_PREFIXED
267+ json_format: ALLOW
268+ enforce_naming_style: STYLE2024
269+ default_symbol_visibility: EXPORT_TOP_LEVEL
270+ [pb.cpp] {
271+ legacy_closed_enum: false
272+ string_type: VIEW
273+ enum_name_uses_string_view: true
274+ }
275+ [pb.java] {
276+ legacy_closed_enum: false
277+ utf8_validation: DEFAULT
278+ large_enum: false
279+ nest_in_file_class: NO
280+ }
281+ )pb" ));
282+ }
283+
251284} // namespace
252285} // namespace protobuf
253286} // namespace google
0 commit comments