Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
Control: affects -1 + src:protobuf

Hi RMs,

Please unblock package protobuf. It's running build time tests with those fixes.

[ Reason ]
It was discovered late that build time tests are not run [1] and the
fix is easy. Reporter stated firmly that he is even going to NMU the
package in unstable and/or stable to fix this issue. My bad that I
thought this change was fully tested and I only checked it on amd64.
Then it turned out build time tests are broken on 32 bit platforms [2].

[ Impact ]
I took my time and fixed build tests. On hppa I had to extend the
ignorance of a static_assert() due to over alignment on this platform.
Now it has a working self-check on package changes including security
ones during Bookworm lifecycle.

[ Tests ]
Upstream test suite. Done build tests with the following rdeps:
clementine and grpc on both i386 and amd64 including tests of those
packages. Those worked without a hitch.
Package tests for migration also worked.

[ Risks ]
Low, the changes are pretty straightforward and only affects the
self-testing parts of the package.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
Uploaded four days ago, built on all previous architectures and no new
bug reports are filed.

unblock protobuf/3.21.12-3

Thanks for considering,
Laszlo/GCS
[1] https://bugs.debian.org/1033989
[2] https://bugs.debian.org/1033998
diff -Nru protobuf-3.21.12/debian/changelog protobuf-3.21.12/debian/changelog
--- protobuf-3.21.12/debian/changelog	2022-12-17 09:18:06.000000000 +0100
+++ protobuf-3.21.12/debian/changelog	2023-04-09 07:50:55.000000000 +0200
@@ -1,3 +1,16 @@
+protobuf (3.21.12-3) unstable; urgency=medium
+
+  * Fix build-time tests on 32 bit architectures (closes: #1033998).
+
+ -- Laszlo Boszormenyi (GCS) <g...@debian.org>  Sun, 09 Apr 2023 05:50:55 +0000
+
+protobuf (3.21.12-2) unstable; urgency=medium
+
+  [ Helmut Grohne <hel...@subdivi.de> ]
+  * Reenable build-time testing (closes: #1033989).
+
+ -- Laszlo Boszormenyi (GCS) <g...@debian.org>  Wed, 05 Apr 2023 21:57:20 +0200
+
 protobuf (3.21.12-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru protobuf-3.21.12/debian/elpa-test protobuf-3.21.12/debian/elpa-test
--- protobuf-3.21.12/debian/elpa-test	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/elpa-test	2023-04-05 21:57:20.000000000 +0200
@@ -0,0 +1 @@
+disable=please_do_run_dh_auto_test
diff -Nru protobuf-3.21.12/debian/patches/build_32_bit_tests.patch protobuf-3.21.12/debian/patches/build_32_bit_tests.patch
--- protobuf-3.21.12/debian/patches/build_32_bit_tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/patches/build_32_bit_tests.patch	2023-04-05 21:57:20.000000000 +0200
@@ -0,0 +1,140 @@
+From 01c340d0bb9abb2654554afc732df2c89774ce81 Mon Sep 17 00:00:00 2001
+From: Mike Kruskal <62662355+mkruskal-goo...@users.noreply.github.com>
+Date: Mon, 19 Sep 2022 09:50:19 -0700
+Subject: [PATCH] Adding full build to 32 bit tests (#10589)
+
+* Adding full build to 32 bit tests
+
+* Running C++ tests in 32 bit builds
+
+* Patching static assert test failure
+
+* Test fixes for 32-bit architectures
+
+* Cleanup after CMake build
+
+* Save protoc before cleanup
+
+* Route protoc better
+---
+ .../compiler/cpp/message_size_unittest.cc     |  2 +-
+ src/google/protobuf/extension_set_unittest.cc |  6 ++--
+ .../protobuf/io/zero_copy_stream_unittest.cc  |  3 ++
+ .../protobuf/repeated_field_unittest.cc       |  4 +--
+ src/google/protobuf/util/time_util_test.cc    | 28 +++++++++++--------
+ 8 files changed, 42 insertions(+), 20 deletions(-)
+
+diff --git a/src/google/protobuf/compiler/cpp/message_size_unittest.cc b/src/google/protobuf/compiler/cpp/message_size_unittest.cc
+index a75d77a70cb..ed4a90e223f 100644
+--- a/src/google/protobuf/compiler/cpp/message_size_unittest.cc
++++ b/src/google/protobuf/compiler/cpp/message_size_unittest.cc
+@@ -139,9 +139,9 @@ TEST(GeneratedMessageTest, OneStringSize) {
+ 
+ TEST(GeneratedMessageTest, MoreStringSize) {
+   struct MockGenerated : public MockMessageBase {  // 16 bytes
+-    int has_bits[1];                               // 4 bytes
+     int cached_size;                               // 4 bytes
+     MockRepeatedPtrField data;                     // 24 bytes
++    // + 4 bytes padding
+   };
+   GOOGLE_CHECK_MESSAGE_SIZE(MockGenerated, 48);
+   EXPECT_EQ(sizeof(protobuf_unittest::MoreString), sizeof(MockGenerated));
+diff --git a/src/google/protobuf/extension_set_unittest.cc b/src/google/protobuf/extension_set_unittest.cc
+index 8b436bc20c9..84da3c5465a 100644
+--- a/src/google/protobuf/extension_set_unittest.cc
++++ b/src/google/protobuf/extension_set_unittest.cc
+@@ -852,8 +852,10 @@ TEST(ExtensionSetTest, SpaceUsedExcludingSelf) {
+     const size_t old_capacity =                                                \
+         message->GetRepeatedExtension(unittest::repeated_##type##_extension)   \
+             .Capacity();                                                       \
+-    EXPECT_GE(old_capacity,                                                    \
+-              (RepeatedFieldLowerClampLimit<cpptype, sizeof(void*)>()));       \
++    EXPECT_GE(                                                                 \
++        old_capacity,                                                          \
++        (RepeatedFieldLowerClampLimit<cpptype, std::max(sizeof(cpptype),       \
++                                                        sizeof(void*))>()));   \
+     for (int i = 0; i < 16; ++i) {                                             \
+       message->AddExtension(unittest::repeated_##type##_extension, value);     \
+     }                                                                          \
+diff --git a/src/google/protobuf/io/zero_copy_stream_unittest.cc b/src/google/protobuf/io/zero_copy_stream_unittest.cc
+index d82354e571b..d656da5f13b 100644
+--- a/src/google/protobuf/io/zero_copy_stream_unittest.cc
++++ b/src/google/protobuf/io/zero_copy_stream_unittest.cc
+@@ -719,6 +719,9 @@ TEST_F(IoTest, StringIo) {
+ 
+ // Verifies that outputs up to kint32max can be created.
+ TEST_F(IoTest, LargeOutput) {
++  // Filter out this test on 32-bit architectures.
++  if(sizeof(void*) < 8) return;
++
+   std::string str;
+   StringOutputStream output(&str);
+   void* unused_data;
+diff --git a/src/google/protobuf/repeated_field_unittest.cc b/src/google/protobuf/repeated_field_unittest.cc
+index eb0b9091cf8..3baf6f25bb2 100644
+--- a/src/google/protobuf/repeated_field_unittest.cc
++++ b/src/google/protobuf/repeated_field_unittest.cc
+@@ -374,14 +374,14 @@ TEST(RepeatedField, ReserveNothing) {
+ 
+ TEST(RepeatedField, ReserveLowerClamp) {
+   int clamped_value = internal::CalculateReserveSize<bool, sizeof(void*)>(0, 1);
+-  EXPECT_GE(clamped_value, 8 / sizeof(bool));
++  EXPECT_GE(clamped_value, sizeof(void*) / sizeof(bool));
+   EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<bool, sizeof(void*)>()),
+             clamped_value);
+   // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<bool,
+   // sizeof(void*)>( clamped_value, 2)));
+ 
+   clamped_value = internal::CalculateReserveSize<int, sizeof(void*)>(0, 1);
+-  EXPECT_GE(clamped_value, 8 / sizeof(int));
++  EXPECT_GE(clamped_value, sizeof(void*) / sizeof(int));
+   EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<int, sizeof(void*)>()),
+             clamped_value);
+   // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<int,
+diff --git a/src/google/protobuf/util/time_util_test.cc b/src/google/protobuf/util/time_util_test.cc
+index 464e57b4ee5..dceb6dbe2bf 100644
+--- a/src/google/protobuf/util/time_util_test.cc
++++ b/src/google/protobuf/util/time_util_test.cc
+@@ -48,15 +48,18 @@ using google::protobuf::Timestamp;
+ namespace {
+ 
+ TEST(TimeUtilTest, TimestampStringFormat) {
+-  Timestamp begin, end;
+-  EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
+-  EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds());
+-  EXPECT_EQ(0, begin.nanos());
+-  EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
+-  EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds());
+-  EXPECT_EQ(999999999, end.nanos());
+-  EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin));
+-  EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end));
++  // These these are out of bounds for 32-bit architectures.
++  if(sizeof(time_t) >= sizeof(uint64_t)) {
++    Timestamp begin, end;
++    EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
++    EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds());
++    EXPECT_EQ(0, begin.nanos());
++    EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
++    EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds());
++    EXPECT_EQ(999999999, end.nanos());
++    EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin));
++    EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end));
++  }
+ 
+   // Test negative timestamps.
+   Timestamp time = TimeUtil::NanosecondsToTimestamp(-1);
+@@ -94,9 +97,12 @@ TEST(TimeUtilTest, DurationStringFormat) {
+   EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin));
+   EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end));
+ 
+-  EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin));
++  // These these are out of bounds for 32-bit architectures.
++  if(sizeof(time_t) >= sizeof(uint64_t)) {
++    EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin));
++    EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end));
++  }
+   EXPECT_EQ(999999999, (end - begin).nanos());
+-  EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end));
+   EXPECT_EQ(-999999999, (begin - end).nanos());
+ 
+   // Generated output should contain 3, 6, or 9 fractional digits.
diff -Nru protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch
--- protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/patches/fix_C++_32bit_tests.patch	2023-04-07 20:17:12.000000000 +0200
@@ -0,0 +1,58 @@
+Description: fix C++ build tests
+ Add bits to expect 32 bit systems.
+Author: Laszlo Boszormenyi (GCS) <g...@debian.org>
+Bug-Debian: https://bugs.debian.org/1033998
+Forwarded: no
+Last-Update: 2023-04-07
+
+---
+
+--- protobuf-3.21.12.orig/src/google/protobuf/any_test.cc
++++ protobuf-3.21.12/src/google/protobuf/any_test.cc
+@@ -62,9 +62,14 @@ TEST(AnyTest, TestPackAndUnpack) {
+ 
+ TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {
+   protobuf_unittest::TestAny submessage;
+-  submessage.mutable_text()->resize(INT_MAX, 'a');
+   protobuf_unittest::TestAny message;
+-  EXPECT_FALSE(message.mutable_any_value()->PackFrom(submessage));
++  try {
++    submessage.mutable_text()->resize(INT_MAX, 'a');
++    EXPECT_FALSE(message.mutable_any_value()->PackFrom(submessage));
++  }
++  catch (...) {
++    EXPECT_TRUE(message.mutable_any_value()->PackFrom(submessage));
++  }
+ }
+ 
+ TEST(AnyTest, TestUnpackWithTypeMismatch) {
+--- protobuf-3.21.12.orig/src/google/protobuf/arena_unittest.cc
++++ protobuf-3.21.12/src/google/protobuf/arena_unittest.cc
+@@ -1375,11 +1375,11 @@ TEST(ArenaTest, SpaceAllocated_and_Used)
+   options.initial_block_size = arena_block.size();
+   Arena arena_2(options);
+   EXPECT_EQ(1024, arena_2.SpaceAllocated());
+-  EXPECT_EQ(0, arena_2.SpaceUsed());
++  EXPECT_EQ(8 - sizeof(void*), arena_2.SpaceUsed());
+   EXPECT_EQ(1024, arena_2.Reset());
+   Arena::CreateArray<char>(&arena_2, 55);
+   EXPECT_EQ(1024, arena_2.SpaceAllocated());
+-  EXPECT_EQ(Align8(55), arena_2.SpaceUsed());
++  EXPECT_EQ(Align8(55) + 8 - sizeof(void*), arena_2.SpaceUsed());
+   EXPECT_EQ(1024, arena_2.Reset());
+ }
+ 
+@@ -1418,11 +1418,11 @@ TEST(ArenaTest, BlockSizeSmallerThanAllo
+ 
+     *Arena::Create<int64_t>(&arena) = 42;
+     EXPECT_GE(arena.SpaceAllocated(), 8);
+-    EXPECT_EQ(8, arena.SpaceUsed());
++    EXPECT_EQ(16 - sizeof(void*), arena.SpaceUsed());
+ 
+     *Arena::Create<int64_t>(&arena) = 42;
+     EXPECT_GE(arena.SpaceAllocated(), 16);
+-    EXPECT_EQ(16, arena.SpaceUsed());
++    EXPECT_EQ(24 - sizeof(void*), arena.SpaceUsed());
+   }
+ }
+ 
diff -Nru protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch
--- protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch	2022-11-22 19:00:45.000000000 +0100
+++ protobuf-3.21.12/debian/patches/fix_hppa_alignof_assert.patch	2023-04-09 07:40:31.000000000 +0200
@@ -1,13 +1,13 @@
-Description: on hppa this is over aligned and fails
- Filter out hppa machines on the static_assert line.
+Description: hppa is over aligned and fails
+ Filter out hppa machines on the static_assert lines.
 Author: Laszlo Boszormenyi (GCS) <g...@debian.org>
 Forwarded: no
-Last-Update: 2022-11-22
+Last-Update: 2023-04-09
 
 ---
 
---- protobuf-3.21.9.orig/src/google/protobuf/descriptor.cc
-+++ protobuf-3.21.9/src/google/protobuf/descriptor.cc
+--- a/src/google/protobuf/descriptor.cc
++++ b/src/google/protobuf/descriptor.cc
 @@ -370,7 +370,9 @@ class FlatAllocatorImpl {
      GOOGLE_CHECK(!has_allocated());
      if (std::is_trivially_destructible<U>::value) {
@@ -18,3 +18,15 @@
        total_.template Get<char>() += RoundUpTo<8>(array_size * sizeof(U));
      } else {
        // Since we can't use `if constexpr`, just make the expression compile
+--- a/src/google/protobuf/map.h
++++ b/src/google/protobuf/map.h
+@@ -121,7 +121,9 @@ class MapAllocator {
+   // MapAllocator does not support alignments beyond 8. Technically we should
+   // support up to std::max_align_t, but this fails with ubsan and tcmalloc
+   // debug allocation logic which assume 8 as default alignment.
++#if !defined(__hppa__)
+   static_assert(alignof(value_type) <= 8, "");
++#endif
+ 
+   pointer allocate(size_type n, const void* /* hint */ = nullptr) {
+     // If arena is not given, malloc needs to be called which doesn't
diff -Nru protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch
--- protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch	1970-01-01 01:00:00.000000000 +0100
+++ protobuf-3.21.12/debian/patches/fix_Python_32bit_tests.patch	2023-04-07 20:17:02.000000000 +0200
@@ -0,0 +1,178 @@
+Description: fix Python build tests
+ Add bits to expect 32 bit systems.
+Author: Laszlo Boszormenyi (GCS) <g...@debian.org>
+Bug-Debian: https://bugs.debian.org/1033998
+Forwarded: no
+Last-Update: 2023-04-07
+
+---
+
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/descriptor_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/descriptor_test.py
+@@ -32,6 +32,7 @@
+ 
+ __author__ = 'robin...@google.com (Will Robinson)'
+ 
++import platform
+ import unittest
+ import warnings
+ 
+@@ -269,16 +270,18 @@ class DescriptorTest(unittest.TestCase):
+         unittest_custom_options_pb2.int32_opt])
+     self.assertEqual(kint64max, message_options.Extensions[
+         unittest_custom_options_pb2.int64_opt])
+-    self.assertEqual(kuint32max, message_options.Extensions[
+-        unittest_custom_options_pb2.uint32_opt])
++    if platform.architecture()[0] != '32bit':
++        self.assertEqual(kuint32max, message_options.Extensions[
++            unittest_custom_options_pb2.uint32_opt])
+     self.assertEqual(kuint64max, message_options.Extensions[
+         unittest_custom_options_pb2.uint64_opt])
+     self.assertEqual(kint32max, message_options.Extensions[
+         unittest_custom_options_pb2.sint32_opt])
+     self.assertEqual(kint64max, message_options.Extensions[
+         unittest_custom_options_pb2.sint64_opt])
+-    self.assertEqual(kuint32max, message_options.Extensions[
+-        unittest_custom_options_pb2.fixed32_opt])
++    if platform.architecture()[0] != '32bit':
++        self.assertEqual(kuint32max, message_options.Extensions[
++            unittest_custom_options_pb2.fixed32_opt])
+     self.assertEqual(kuint64max, message_options.Extensions[
+         unittest_custom_options_pb2.fixed64_opt])
+     self.assertEqual(kint32max, message_options.Extensions[
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/json_format_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/json_format_test.py
+@@ -59,7 +59,7 @@ class JsonFormatBase(unittest.TestCase):
+   def FillAllFields(self, message):
+     message.int32_value = 20
+     message.int64_value = -20
+-    message.uint32_value = 3120987654
++    message.uint32_value = 2147483647
+     message.uint64_value = 12345678900
+     message.float_value = float('-inf')
+     message.double_value = 3.1415
+@@ -127,7 +127,7 @@ class JsonFormatTest(JsonFormatBase):
+     message = json_format_proto3_pb2.TestMessage()
+     text = ('{"int32Value": 20, '
+             '"int64Value": "-20", '
+-            '"uint32Value": 3120987654,'
++            '"uint32Value": 2147483647,'
+             '"uint64Value": "12345678900",'
+             '"floatValue": "-Infinity",'
+             '"doubleValue": 3.1415,'
+@@ -140,7 +140,7 @@ class JsonFormatTest(JsonFormatBase):
+             '"repeatedInt64Value": ["9007199254740992", "-9007199254740992"],'
+             '"repeatedUint32Value": [268435455, 134217727],'
+             '"repeatedUint64Value": ["9007199254740992", "9007199254740991"],'
+-            '"repeatedFloatValue": [0],'
++            '"repeatedFloatValue": [0.0],'
+             '"repeatedDoubleValue": [1e-15, "Infinity"],'
+             '"repeatedBoolValue": [true, false],'
+             '"repeatedStringValue": ["Few symbols!#$,;", "bar"],'
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/reflection_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/reflection_test.py
+@@ -36,6 +36,7 @@ pure-Python protocol compiler.
+ import copy
+ import gc
+ import operator
++import platform
+ import struct
+ import sys
+ import warnings
+@@ -453,7 +454,8 @@ class ReflectionTest(unittest.TestCase):
+                         expected_max + 1)
+ 
+     TestMinAndMaxIntegers('optional_int32', -(1 << 31), (1 << 31) - 1)
+-    TestMinAndMaxIntegers('optional_uint32', 0, 0xffffffff)
++    if platform.architecture()[0] != '32bit':
++      TestMinAndMaxIntegers('optional_uint32', 0, 0xffffffff)
+     TestMinAndMaxIntegers('optional_int64', -(1 << 63), (1 << 63) - 1)
+     TestMinAndMaxIntegers('optional_uint64', 0, 0xffffffffffffffff)
+     # A bit of white-box testing since -1 is an int and not a long in C++ and
+--- protobuf-3.21.12.orig/python/google/protobuf/internal/text_format_test.py
++++ protobuf-3.21.12/python/google/protobuf/internal/text_format_test.py
+@@ -39,8 +39,6 @@ import textwrap
+ 
+ import unittest
+ 
+-import platform
+-
+ from google.protobuf import any_pb2
+ from google.protobuf import struct_pb2
+ from google.protobuf import any_test_pb2
+@@ -1052,52 +1050,29 @@ class OnlyWorksWithProto2RightNowTests(T
+     all_data = message.SerializeToString()
+     empty_message = unittest_pb2.TestEmptyMessage()
+     empty_message.ParseFromString(all_data)
+-    if platform.architecture()[0] != '32bit':
+-      self.assertEqual('  1: 101\n'
+-                       '  12: 4636878028842991616\n'
+-                       '  14: "hello"\n'
+-                       '  15: "103"\n'
+-                       '  16 {\n'
+-                       '    17: 104\n'
+-                       '  }\n'
+-                       '  18 {\n'
+-                       '    1: 105\n'
+-                       '  }\n',
+-                       text_format.MessageToString(empty_message,
+-                                                   indent=2,
+-                                                   print_unknown_fields=True))
+-      self.assertEqual('1: 101 '
+-                       '12: 4636878028842991616 '
+-                       '14: "hello" '
+-                       '15: "103" '
+-                       '16 { 17: 104 } '
+-                       '18 { 1: 105 }',
+-                       text_format.MessageToString(empty_message,
+-                                                   print_unknown_fields=True,
+-                                                   as_one_line=True))
+-    else:
+-      self.assertEqual('  1: 101\n'
+-                       '  12: 0\n'
+-                       '  14: "hello"\n'
+-                       '  15: "103"\n'
+-                       '  16 {\n'
+-                       '    17: 104\n'
+-                       '  }\n'
+-                       '  18 {\n'
+-                       '    1: 105\n'
+-                       '  }\n',
+-                       text_format.MessageToString(empty_message,
+-                                                   indent=2,
+-                                                   print_unknown_fields=True))
+-      self.assertEqual('1: 101 '
+-                       '12: 0 '
+-                       '14: "hello" '
+-                       '15: "103" '
+-                       '16 { 17: 104 } '
+-                       '18 { 1: 105 }',
+-                       text_format.MessageToString(empty_message,
+-                                                   print_unknown_fields=True,
+-                                                   as_one_line=True))
++    self.assertEqual('  1: 101\n'
++                     '  12: 4636878028842991616\n'
++                     '  14: "hello"\n'
++                     '  15: "103"\n'
++                     '  16 {\n'
++                     '    17: 104\n'
++                     '  }\n'
++                     '  18 {\n'
++                     '    1: 105\n'
++                     '  }\n',
++                     text_format.MessageToString(empty_message,
++                                                 indent=2,
++                                                 print_unknown_fields=True))
++    self.assertEqual('1: 101 '
++                     '12: 4636878028842991616 '
++                     '14: "hello" '
++                     '15: "103" '
++                     '16 { 17: 104 } '
++                     '18 { 1: 105 }',
++                     text_format.MessageToString(empty_message,
++                                                 print_unknown_fields=True,
++                                                 as_one_line=True))
++
+   def testPrintInIndexOrder(self):
+     message = unittest_pb2.TestFieldOrderings()
+     # Fields are listed in index order instead of field number.
diff -Nru protobuf-3.21.12/debian/patches/series protobuf-3.21.12/debian/patches/series
--- protobuf-3.21.12/debian/patches/series	2022-11-25 01:58:23.000000000 +0100
+++ protobuf-3.21.12/debian/patches/series	2023-04-07 20:12:46.000000000 +0200
@@ -13,3 +13,6 @@
 Fix_build_with_Python_3.11.patch
 fix_hppa_alignof_assert.patch
 Fix_rule_for_java_target.patch
+build_32_bit_tests.patch
+fix_C++_32bit_tests.patch
+fix_Python_32bit_tests.patch

Reply via email to