Hopefully final batch of return value checks before UPB_NODISCARD enforcement

PiperOrigin-RevId: 970967137
This commit is contained in:
Protobuf Team Bot 2026-08-25 20:10:00 -07:00 committed by Copybara-Service
parent b6ca8b9fb1
commit 6a21212800
12 changed files with 236 additions and 187 deletions

View file

@ -50,6 +50,6 @@ void SetAliasExtension(upb_Message* message, upb_Arena* message_arena,
ABSL_CHECK(upb_Arena_IsFused(message_arena, extension_arena) ||
upb_Arena_HasRef(message_arena, extension_arena));
#endif
upb_Message_SetExtension(message, ext, &extension, message_arena);
ABSL_CHECK(upb_Message_SetExtension(message, ext, &extension, message_arena));
}
} // namespace hpb::internal

View file

@ -114,7 +114,7 @@ TEST(ArenaTest, ShinkLastAfterReallocHwasanRegression) {
};
upb_Arena* arena = upb_Arena_Init(nullptr, 1000, &upb_alloc_global);
(void)upb_Arena_Malloc(arena, 1);
EXPECT_NE(upb_Arena_Malloc(arena, 1), nullptr);
// Will force a full-size block since the initial allocated block has tons of
// free space and the max block size is tiny
void* to_realloc = upb_Arena_Malloc(arena, 2000);
@ -225,7 +225,7 @@ class OverheadTest {
}
void Alloc(size_t size) {
upb_Arena_Malloc(arena_, size);
EXPECT_NE(upb_Arena_Malloc(arena_, size), nullptr);
arena_alloced_ += size;
arena_alloc_count_++;
}
@ -532,7 +532,7 @@ TEST(ArenaTest, MaxBlockSize) {
// Perform 600 1k allocations (600k total) and ensure that the amount of
// memory allocated does not exceed 700k.
for (int i = 0; i < 600; ++i) {
upb_Arena_Malloc(arena, 1024);
EXPECT_NE(upb_Arena_Malloc(arena, 1024), nullptr);
}
EXPECT_LE(upb_Arena_SpaceAllocated(arena, nullptr), 700 * 1024);
upb_Arena_Free(arena);

View file

@ -52,27 +52,30 @@ void UPB_PRIVATE(_upb_Arena_SwapIn)(struct upb_Arena* des,
void UPB_PRIVATE(_upb_Arena_SwapOut)(struct upb_Arena* des,
const struct upb_Arena* src);
UPB_INLINE size_t UPB_PRIVATE(_upb_ArenaHas)(const struct upb_Arena* a) {
UPB_NODISCARD UPB_INLINE size_t
UPB_PRIVATE(_upb_ArenaHas)(const struct upb_Arena* a) {
return (size_t)(a->UPB_ONLYBITS(end) - a->UPB_ONLYBITS(ptr));
}
UPB_INLINE size_t UPB_PRIVATE(_upb_Arena_AllocSpan)(size_t size) {
UPB_NODISCARD UPB_INLINE size_t UPB_PRIVATE(_upb_Arena_AllocSpan)(size_t size) {
return UPB_ALIGN_MALLOC(size) + UPB_PRIVATE(kUpb_Asan_GuardSize);
}
UPB_INLINE bool UPB_PRIVATE(_upb_Arena_WasLastAllocFromCurrentBlock)(
const struct upb_Arena* a, void* ptr, size_t size) {
UPB_NODISCARD UPB_INLINE bool UPB_PRIVATE(
_upb_Arena_WasLastAllocFromCurrentBlock)(const struct upb_Arena* a,
void* ptr, size_t size) {
return UPB_PRIVATE(upb_Xsan_PtrEq)(
(char*)ptr + UPB_PRIVATE(_upb_Arena_AllocSpan)(size),
a->UPB_ONLYBITS(ptr));
}
UPB_INLINE bool UPB_PRIVATE(_upb_Arena_IsAligned)(const void* ptr) {
UPB_NODISCARD UPB_INLINE bool UPB_PRIVATE(_upb_Arena_IsAligned)(
const void* ptr) {
return (uintptr_t)ptr % UPB_MALLOC_ALIGN == 0;
}
UPB_API_INLINE void* _upb_Arena_Malloc_Unchecked(struct upb_Arena* a,
size_t size) {
UPB_NODISCARD UPB_API_INLINE void* _upb_Arena_Malloc_Unchecked(
struct upb_Arena* a, size_t size) {
UPB_PRIVATE(upb_Xsan_AccessReadWrite)(UPB_XSAN(a));
size_t span = UPB_PRIVATE(_upb_Arena_AllocSpan)(size);
@ -91,7 +94,8 @@ UPB_API_INLINE void* _upb_Arena_Malloc_Unchecked(struct upb_Arena* a,
return UPB_PRIVATE(upb_Xsan_NewUnpoisonedRegion)(UPB_XSAN(a), ret, size);
}
UPB_API_INLINE void* upb_Arena_Malloc(struct upb_Arena* a, size_t size) {
UPB_NODISCARD UPB_API_INLINE void* upb_Arena_Malloc(struct upb_Arena* a,
size_t size) {
if (!upb_AllocationCount_IncrementAndCheck()) {
return NULL;
}
@ -120,8 +124,9 @@ UPB_API_INLINE void upb_Arena_ShrinkLast(struct upb_Arena* a, void* ptr,
}
}
UPB_API_INLINE bool upb_Arena_TryExtend(struct upb_Arena* a, void* ptr,
size_t oldsize, size_t size) {
UPB_NODISCARD UPB_API_INLINE bool upb_Arena_TryExtend(struct upb_Arena* a,
void* ptr, size_t oldsize,
size_t size) {
UPB_ASSERT(ptr);
UPB_ASSERT(size > oldsize);
@ -138,8 +143,9 @@ UPB_API_INLINE bool upb_Arena_TryExtend(struct upb_Arena* a, void* ptr,
return false;
}
UPB_API_INLINE void* upb_Arena_Realloc(struct upb_Arena* a, void* ptr,
size_t oldsize, size_t size) {
UPB_NODISCARD UPB_API_INLINE void* upb_Arena_Realloc(struct upb_Arena* a,
void* ptr, size_t oldsize,
size_t size) {
UPB_PRIVATE(upb_Xsan_AccessReadWrite)(UPB_XSAN(a));
void* ret;

View file

@ -2,6 +2,7 @@
#include <gtest/gtest.h>
#include "testing/fuzzing/fuzztest.h"
#include "absl/base/throw_delegate.h"
#include "google/protobuf/util/message_differencer.h"
#include "upb/mem/arena.h"
#include "upb/message/compare.h"
@ -17,18 +18,36 @@ namespace {
const upb_ExtensionRegistry* CreateTestExtensionRegistry(upb_Arena* arena) {
upb_ExtensionRegistry* ext_registry = upb_ExtensionRegistry_New(arena);
upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension1_model_ext_ext);
upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_ext);
upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_2_ext);
upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_3_ext);
upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_4_ext);
upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_5_ext);
if (upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension1_model_ext_ext) !=
kUpb_ExtensionRegistryStatus_Ok) {
absl::ThrowStdBadAlloc();
}
if (upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_ext) !=
kUpb_ExtensionRegistryStatus_Ok) {
absl::ThrowStdBadAlloc();
}
if (upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_2_ext) !=
kUpb_ExtensionRegistryStatus_Ok) {
absl::ThrowStdBadAlloc();
}
if (upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_3_ext) !=
kUpb_ExtensionRegistryStatus_Ok) {
absl::ThrowStdBadAlloc();
}
if (upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_4_ext) !=
kUpb_ExtensionRegistryStatus_Ok) {
absl::ThrowStdBadAlloc();
}
if (upb_ExtensionRegistry_Add(ext_registry,
upb_test_ModelExtension2_model_ext_5_ext) !=
kUpb_ExtensionRegistryStatus_Ok) {
absl::ThrowStdBadAlloc();
}
return ext_registry;
}

View file

@ -259,9 +259,9 @@ TEST(ConvertTest, ExtensionArrayShallowConversion) {
upb_Array_Set(ext_arr, 0, elem_val);
upb_MessageValue ext_val;
ext_val.array_val = ext_arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_repeated_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_field_repeated_msg_ext, &ext_val,
arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -302,9 +302,9 @@ TEST(ConvertTest, ExtensionArrayDeepConversion) {
upb_Array_Set(ext_arr, 0, elem_val);
upb_MessageValue ext_val;
ext_val.array_val = ext_arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_repeated_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_field_repeated_msg_ext, &ext_val,
arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -337,9 +337,9 @@ TEST(ConvertTest, MismatchedExtensionFails) {
// Set extension field 1000 to an int32
upb_MessageValue ext_val;
ext_val.int32_val = 12345;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -565,9 +565,9 @@ TEST(ConvertTest, ConvertExtensions_ScalarMatch) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -594,8 +594,9 @@ TEST(ConvertTest, ConvertExtensions_SingularMessageShallow) {
upb_MessageValue ext_val;
ext_val.msg_val = UPB_UPCAST(sub);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -629,8 +630,9 @@ TEST(ConvertTest, ConvertExtensions_SingularMessageDeep) {
upb_MessageValue ext_val;
ext_val.msg_val = UPB_UPCAST(sub);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -659,9 +661,9 @@ TEST(ConvertTest, ConvertExtensions_RemainsExtension) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* mt = &upb__test__convert__MessageWithExtension_msg_init;
@ -688,9 +690,9 @@ TEST(ConvertTest, ConvertExtensions_LookupExtensionInRegistry) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -725,9 +727,9 @@ TEST(ConvertTest, ConvertExtensionToNonExtendable) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -756,9 +758,9 @@ TEST(ConvertTest, ConvertExtensionToExtendableButUnknown) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -792,9 +794,9 @@ TEST(ConvertTest, NonCanonicalToNonCanonical) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -829,9 +831,9 @@ TEST(ConvertTest, NonCanonicalToCanonical) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -846,8 +848,9 @@ TEST(ConvertTest, NonCanonicalToCanonical) {
// Convert with registry. It should become a canonical extension.
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg,
upb_test_convert_another_ext_field_int32_ext);
EXPECT_EQ(upb_ExtensionRegistry_Add(
extreg, upb_test_convert_another_ext_field_int32_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, dst_mt, dst_mt, extreg, 0, 0, arena.ptr());
@ -873,9 +876,9 @@ TEST(ConvertTest, NonCanonicalToNormalField) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -911,9 +914,9 @@ TEST(ConvertTest, NonCanonicalToUnknownBytes) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1532,8 +1535,8 @@ TEST(ConvertTest, OpenToClosedExtensionEnum) {
upb_MessageValue ext_val;
ext_val.int32_val = upb_test_convert_Proto2EnumMessage_BAR;
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_enum_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_enum_ext, &ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1558,8 +1561,8 @@ TEST(ConvertTest, OpenToClosedExtensionEnum_InvalidValue) {
upb_MessageValue ext_val;
ext_val.int32_val = 12345; // Invalid value.
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_enum_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_enum_ext, &ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1607,9 +1610,9 @@ TEST(ConvertTest, OpenToClosedExtensionRepeatedEnum) {
upb_MessageValue ext_val;
ext_val.array_val = ext_arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_enum_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_enum_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1644,9 +1647,9 @@ TEST(ConvertTest, OpenToClosedExtensionRepeatedEnum_InvalidValue) {
upb_MessageValue ext_val;
ext_val.array_val = ext_arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_enum_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_enum_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1691,9 +1694,9 @@ TEST(ConvertTest, ExtensionToMapMismatch) {
upb_MessageValue ext_val;
ext_val.int32_val = 123;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1748,8 +1751,9 @@ TEST(ConvertTest, NonCanonicalMessageToCanonical_SameSchema) {
upb_MessageValue ext_val;
ext_val.msg_val = UPB_UPCAST(sub);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1763,7 +1767,9 @@ TEST(ConvertTest, NonCanonicalMessageToCanonical_SameSchema) {
// Convert back to MessageWithExtension with registry.
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_field_msg_ext);
EXPECT_EQ(
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_field_msg_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());
@ -1796,8 +1802,9 @@ TEST(ConvertTest, NonCanonicalMessageToCanonical_DiffSchema) {
upb_MessageValue ext_val;
ext_val.msg_val = UPB_UPCAST(sub);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1815,7 +1822,9 @@ TEST(ConvertTest, NonCanonicalMessageToCanonical_DiffSchema) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_another_ext_field_msg_ext);
EXPECT_EQ(upb_ExtensionRegistry_Add(
extreg, upb_test_convert_another_ext_field_msg_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, dst_mt, extreg, 0, 0, arena.ptr());
@ -1849,8 +1858,9 @@ TEST(ConvertTest, NonCanonicalMessageToNormalField_DiffSchema) {
upb_MessageValue ext_val;
ext_val.msg_val = UPB_UPCAST(sub);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1893,8 +1903,9 @@ TEST(ConvertTest, NonCanonicalMessageToNonCanonical) {
upb_MessageValue ext_val;
ext_val.msg_val = UPB_UPCAST(sub);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_msg_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1934,14 +1945,14 @@ TEST(ConvertTest, NonCanonicalRepeatedInt32ToCanonical) {
upb_MessageValue val1, val2;
val1.int32_val = 123;
val2.int32_val = 456;
upb_Array_Append(arr, val1, arena.ptr());
upb_Array_Append(arr, val2, arena.ptr());
ASSERT_TRUE(upb_Array_Append(arr, val1, arena.ptr()));
ASSERT_TRUE(upb_Array_Append(arr, val2, arena.ptr()));
upb_MessageValue ext_val;
ext_val.array_val = arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -1953,7 +1964,9 @@ TEST(ConvertTest, NonCanonicalRepeatedInt32ToCanonical) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_repeated_int32_ext);
EXPECT_EQ(upb_ExtensionRegistry_Add(extreg,
upb_test_convert_ext_repeated_int32_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());
@ -1976,14 +1989,14 @@ TEST(ConvertTest, NonCanonicalRepeatedInt32ToNormalField) {
upb_MessageValue val1, val2;
val1.int32_val = 123;
val2.int32_val = 456;
upb_Array_Append(arr, val1, arena.ptr());
upb_Array_Append(arr, val2, arena.ptr());
ASSERT_TRUE(upb_Array_Append(arr, val1, arena.ptr()));
ASSERT_TRUE(upb_Array_Append(arr, val2, arena.ptr()));
upb_MessageValue ext_val;
ext_val.array_val = arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2019,8 +2032,8 @@ TEST(ConvertTest, NonCanonicalStringToCanonical) {
upb_StringView str = upb_StringView_FromString("hello");
upb_MessageValue ext_val;
ext_val.str_val = str;
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_string_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_string_ext, &ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2032,7 +2045,8 @@ TEST(ConvertTest, NonCanonicalStringToCanonical) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_string_ext);
EXPECT_EQ(upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_string_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());
@ -2055,8 +2069,8 @@ TEST(ConvertTest, NonCanonicalStringToNormalField) {
upb_StringView str = upb_StringView_FromString("hello");
upb_MessageValue ext_val;
ext_val.str_val = str;
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_string_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_string_ext, &ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2088,8 +2102,8 @@ TEST(ConvertTest, NonCanonicalEnumToCanonical_Valid) {
upb_MessageValue ext_val;
ext_val.int32_val = 2; // BAZ
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_enum_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_enum_ext, &ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2101,7 +2115,8 @@ TEST(ConvertTest, NonCanonicalEnumToCanonical_Valid) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_enum_ext);
EXPECT_EQ(upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_enum_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());
@ -2122,8 +2137,8 @@ TEST(ConvertTest, NonCanonicalEnumToCanonical_InvalidClosed) {
upb_MessageValue ext_val;
ext_val.int32_val = 99; // Invalid for Proto2EnumMessage.NestedEnum
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_enum_ext,
&ext_val, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_enum_ext, &ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2135,7 +2150,8 @@ TEST(ConvertTest, NonCanonicalEnumToCanonical_InvalidClosed) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_enum_ext);
EXPECT_EQ(upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_enum_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());
@ -2162,15 +2178,15 @@ TEST(ConvertTest, NonCanonicalRepeatedEnumToCanonical_Mixed) {
val1.int32_val = 1; // BAR
val2.int32_val = 99; // Invalid
val3.int32_val = 2; // BAZ
upb_Array_Append(arr, val1, arena.ptr());
upb_Array_Append(arr, val2, arena.ptr());
upb_Array_Append(arr, val3, arena.ptr());
ASSERT_TRUE(upb_Array_Append(arr, val1, arena.ptr()));
ASSERT_TRUE(upb_Array_Append(arr, val2, arena.ptr()));
ASSERT_TRUE(upb_Array_Append(arr, val3, arena.ptr()));
upb_MessageValue ext_val;
ext_val.array_val = arr;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_enum_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_repeated_enum_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2182,7 +2198,9 @@ TEST(ConvertTest, NonCanonicalRepeatedEnumToCanonical_Mixed) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_repeated_enum_ext);
EXPECT_EQ(
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_repeated_enum_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());
@ -2210,9 +2228,9 @@ TEST(ConvertTest, NonCanonicalInt32ToMap_Incompatible) {
upb_MessageValue ext_val;
ext_val.int32_val = 42;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &ext_val,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&ext_val, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2239,15 +2257,15 @@ TEST(ConvertTest, NonCanonicalMixedToCanonical) {
// Set int32 extension (1000).
upb_MessageValue val_int32;
val_int32.int32_val = 42;
upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext, &val_int32,
arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(UPB_UPCAST(msg),
upb_test_convert_ext_field_int32_ext,
&val_int32, arena.ptr()));
// Set string extension (1004).
upb_MessageValue val_str;
val_str.str_val = upb_StringView_FromDataAndSize("hello", 5);
upb_Message_SetExtension(UPB_UPCAST(msg), upb_test_convert_ext_string_ext,
&val_str, arena.ptr());
EXPECT_TRUE(upb_Message_SetExtension(
UPB_UPCAST(msg), upb_test_convert_ext_string_ext, &val_str, arena.ptr()));
const upb_MiniTable* src_mt =
&upb__test__convert__MessageWithExtension_msg_init;
@ -2259,8 +2277,11 @@ TEST(ConvertTest, NonCanonicalMixedToCanonical) {
upb_ExtensionRegistry* extreg = upb_ExtensionRegistry_New(arena.ptr());
ASSERT_NE(extreg, nullptr);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_field_int32_ext);
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_string_ext);
EXPECT_EQ(
upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_field_int32_ext),
kUpb_ExtensionRegistryStatus_Ok);
EXPECT_EQ(upb_ExtensionRegistry_Add(extreg, upb_test_convert_ext_string_ext),
kUpb_ExtensionRegistryStatus_Ok);
const upb_Message* converted = upb_Message_Convert(
non_canonical_src, empty_mt, src_mt, extreg, 0, 0, arena.ptr());

View file

@ -629,9 +629,9 @@ TEST(GeneratedCode, DeepCloneMessageNonCanonicalExtensions) {
upb_StringView_FromString("LifecycleValue"));
// Attach as non-canonical extension
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_ModelExtension1_model_ext_ext, &ext1,
source_arena);
source_arena));
// Deep clone msg to clone
upb_Arena* arena = upb_Arena_New();

View file

@ -330,9 +330,9 @@ UPB_API_INLINE void upb_Message_SetBaseField(struct upb_Message* msg,
(f, UPB_PRIVATE(_upb_Message_MutableDataPtr)(msg, f), val);
}
UPB_API_INLINE bool upb_Message_SetExtension(struct upb_Message* msg,
const upb_MiniTableExtension* e,
const void* val, upb_Arena* a) {
UPB_NODISCARD UPB_API_INLINE bool upb_Message_SetExtension(
struct upb_Message* msg, const upb_MiniTableExtension* e, const void* val,
upb_Arena* a) {
UPB_ASSERT(!upb_Message_IsFrozen(msg));
UPB_ASSERT(a);
upb_Extension* ext =
@ -343,9 +343,10 @@ UPB_API_INLINE bool upb_Message_SetExtension(struct upb_Message* msg,
return true;
}
UPB_API_INLINE bool UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
struct upb_Message* msg, const upb_MiniTableExtension* e, const void* val,
upb_Arena* a) {
UPB_NODISCARD UPB_API_INLINE bool UPB_PRIVATE(
_upb_Message_SetNonCanonicalExtension)(struct upb_Message* msg,
const upb_MiniTableExtension* e,
const void* val, upb_Arena* a) {
UPB_ASSERT(!upb_Message_IsFrozen(msg));
UPB_ASSERT(a);
upb_Extension* ext =
@ -372,7 +373,7 @@ UPB_INLINE bool UPB_PRIVATE(_upb_Message_SetField)(struct upb_Message* msg,
}
}
UPB_API_INLINE const upb_Array* upb_Message_GetArray(
UPB_NODISCARD UPB_API_INLINE const upb_Array* upb_Message_GetArray(
const struct upb_Message* msg, const upb_MiniTableField* f) {
UPB_PRIVATE(_upb_MiniTableField_CheckIsArray)(f);
upb_Array* ret;

View file

@ -162,12 +162,12 @@ TEST(CompareTest, MessageIsEqualWithIdenticalNonCanonicalExtensions) {
upb_StringView_FromString("World"));
// 3. Attach identical non-canonical extensions to both messages
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg1), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
arena.ptr()));
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg2), upb_test_ModelExtension1_model_ext_ext, &extension2,
arena.ptr());
arena.ptr()));
// 4. Verify upb_Message_IsEqual yields true
bool is_equal = upb_Message_IsEqual(UPB_UPCAST(msg1), UPB_UPCAST(msg2),
@ -198,12 +198,12 @@ TEST(CompareTest, MessageIsEqualWithDifferentNonCanonicalExtensions) {
upb_StringView_FromString("Hello"));
// 4. Attach different non-canonical extensions to the two messages
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg1), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
arena.ptr()));
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg2), upb_test_ModelExtension1_model_ext_ext, &extension2,
arena.ptr());
arena.ptr()));
// Verify that NextUnknown2 successfully yields the non-canonical extension
upb_MessageUnknown udata;
@ -234,9 +234,9 @@ TEST(CompareTest, MessageIsEqualWithOnlyOneHavingNonCanonicalExtension) {
upb_StringView_FromString("World"));
// 3. Attach only to msg1
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg1), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
arena.ptr()));
// 4. Verify upb_Message_IsEqual yields false with IncludeUnknownFields
bool is_equal_with_unknowns =
@ -264,9 +264,9 @@ TEST(CompareTest, MessageIsEqualWithNonCanonicalExtensionMatchingRawUnknown) {
// 2. Obtain encoded raw wire bytes of Extension A by serializing tmp_msg
upb_test_ModelWithExtensions* tmp_msg =
upb_test_ModelWithExtensions_new(arena.ptr());
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(tmp_msg), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
arena.ptr()));
char* buf;
size_t size;
@ -279,9 +279,9 @@ TEST(CompareTest, MessageIsEqualWithNonCanonicalExtensionMatchingRawUnknown) {
// 3. Create msg1 with non-canonical extension A
upb_test_ModelWithExtensions* msg1 =
upb_test_ModelWithExtensions_new(arena.ptr());
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg1), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
arena.ptr()));
// 4. Create msg2 with raw unknown bytes representing A
upb_test_ModelWithExtensions* msg2 =
@ -306,9 +306,9 @@ TEST(CompareTest, MessageSetNonCanonicalExtMatchesUnknown) {
// 2. Obtain encoded raw wire bytes of Extension A by serializing tmp_msg
upb_test_TestMessageSet* tmp_msg = upb_test_TestMessageSet_new(arena.ptr());
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(tmp_msg), upb_test_MessageSetMember_message_set_extension_ext,
&extension1, arena.ptr());
&extension1, arena.ptr()));
char* buf;
size_t size;
@ -320,9 +320,9 @@ TEST(CompareTest, MessageSetNonCanonicalExtMatchesUnknown) {
// 3. Create msg1 with non-canonical extension A
upb_test_TestMessageSet* msg1 = upb_test_TestMessageSet_new(arena.ptr());
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg1), upb_test_MessageSetMember_message_set_extension_ext,
&extension1, arena.ptr());
&extension1, arena.ptr()));
// 4. Create msg2 with raw unknown bytes representing A
upb_test_TestMessageSet* msg2 = upb_test_TestMessageSet_new(arena.ptr());
@ -355,9 +355,9 @@ TEST(CompareTest, MessageIsEqualWithCanonicalAndNonCanonicalExtensions) {
upb_test_ModelExtension1_new(arena.ptr());
upb_test_ModelExtension1_set_str(ext_msg2,
upb_StringView_FromString("World"));
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg2), upb_test_ModelExtension1_model_ext_ext, &ext_msg2,
arena.ptr());
arena.ptr()));
// 3. Verify upb_Message_IsEqual registers them as NOT equal
bool is_equal = upb_Message_IsEqual(UPB_UPCAST(msg1), UPB_UPCAST(msg2),

View file

@ -540,8 +540,8 @@ TEST(GeneratedCode, PromoteNonCanonicalExtension) {
// 4. Attach custom parsed submessage "World" to msg as a non-canonical
// extension under the different custom mini-table layout.
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), &custom_ext, &extension1, arena.ptr());
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), &custom_ext, &extension1, arena.ptr()));
// 5. Promote the extension using standard compiled mini-table ModelExtension1
upb_MessageValue val;
@ -593,9 +593,9 @@ TEST(GeneratedCode, PromoteNonCanonicalExtensionWithSameMinitable) {
upb_test_ModelExtension1_set_str(extension1,
upb_StringView_FromString("World"));
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_ModelExtension1_model_ext_ext,
(upb_Message**)&extension1, arena.ptr());
(upb_Message**)&extension1, arena.ptr()));
upb_MessageValue val;
upb_GetExtension_Status promote_status = upb_Message_GetOrPromoteExtension(
@ -664,8 +664,8 @@ TEST(GeneratedCode, PromoteNonCanonicalExtensionWithDifferentMinitable) {
EXPECT_TRUE(upb_Message_SetInt32(extension1, custom_f, 42, arena.ptr()));
// 7. Attach it as a non-canonical extension to msg using field 1547
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), &custom_ext, &extension1, arena.ptr());
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), &custom_ext, &extension1, arena.ptr()));
// 8. Run extension promotion using targeting target_ext layout
upb_MessageValue val;

View file

@ -937,8 +937,9 @@ TEST(MessageTest, FreezeNonCanonicalExtensions) {
ext_submsg, 456);
// Attach as non-canonical extension
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_optional_msg_ext_ext, &ext_submsg, arena.ptr());
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_optional_msg_ext_ext, &ext_submsg,
arena.ptr()));
EXPECT_FALSE(upb_Message_IsFrozen(UPB_UPCAST(msg)));
EXPECT_FALSE(upb_Message_IsFrozen(UPB_UPCAST(ext_submsg)));
@ -960,8 +961,9 @@ TEST(MessageTest, DiscardUnknownsNonCanonicalExtensions) {
protobuf_test_messages_proto3_TestAllTypesProto3_new(arena.ptr());
// Attach as non-canonical extension
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_optional_msg_ext_ext, &ext_submsg, arena.ptr());
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_optional_msg_ext_ext, &ext_submsg,
arena.ptr()));
// Add a canonical extension
upb_test_TestExtensions_set_optional_int32_ext(msg, 123, arena.ptr());

View file

@ -641,9 +641,9 @@ TEST(DecodeTest, DecodeNonCanonicalExtensionAsUnknown) {
upb_StringView_FromString("World"));
// 3. msg has a non-canonical extension A
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(msg), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
arena.ptr()));
// Verify extension count is 0 before encoding/decoding.
EXPECT_EQ((int)upb_Message_ExtensionCount(UPB_UPCAST(msg)), 0);
@ -704,9 +704,9 @@ TEST(DecodeTest, DecodeExtensionAsUnknownWithPreexistingUnknown) {
// 3. Attach to tmp_msg as a non-canonical extension so we can serialize it to
// get the bytes
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
UPB_UPCAST(tmp_msg), upb_test_ModelExtension1_model_ext_ext, &extension1,
arena.ptr());
arena.ptr()));
// 5. Obtain encoded extension A by serializing tmp_msg
char* buf;

View file

@ -218,8 +218,8 @@ TEST(EncodeTest, EncodeNonCanonicalExtensionSuccess) {
// Attach scalar extension as non-canonical
int32_t val = 42;
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_i32_ext, &val, arena);
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_i32_ext, &val, arena));
// Encode the message.
char* buf;
@ -257,8 +257,8 @@ TEST(EncodeTest, SkipUnknownNonCanonicalExtensionSuccess) {
// 2. Attach a non-canonical extension (ext_recursive, tag 101) to msg
upb_wire_test_TestRecursive* sub_msg = upb_wire_test_TestRecursive_new(arena);
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_recursive_ext, &sub_msg, arena);
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_recursive_ext, &sub_msg, arena));
// 3. Also add some standard raw unknown bytes (tag 150)
char raw_unknown[] = "\x08\x96\x01"; // tag 1 = 150
@ -312,13 +312,13 @@ TEST(EncodeTest, EncodeNonCanonicalExtensionDeterministicSuccess) {
// 1. Attach scalar extension as non-canonical (tag 100)
int32_t val = 42;
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_i32_ext, &val, arena);
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_i32_ext, &val, arena));
// 2. Attach recursive extension as non-canonical (tag 101)
upb_wire_test_TestRecursive* sub_msg = upb_wire_test_TestRecursive_new(arena);
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_recursive_ext, &sub_msg, arena);
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_recursive_ext, &sub_msg, arena));
// Encode the message with deterministic option!
char* buf;
@ -385,8 +385,8 @@ TEST(EncodeTest, SkipUnknownNonCanonicalExtensionDeterministicSuccess) {
// 2. Attach a non-canonical extension (ext_recursive, tag 101) to msg
upb_wire_test_TestRecursive* sub_msg = upb_wire_test_TestRecursive_new(arena);
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_recursive_ext, &sub_msg, arena);
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_recursive_ext, &sub_msg, arena));
// 3. Also add some standard raw unknown bytes (tag 150)
char raw_unknown[] = "\x08\x96\x01"; // tag 1 = 150
@ -447,8 +447,8 @@ TEST(EncodeTest, MixedExtensionAndUnknownOrderSuccess) {
// 2. Add Non-Canonical Extension 1 (Tag 100, ext_i32)
int32_t val1 = 42;
UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_i32_ext, &val1, arena);
EXPECT_TRUE(UPB_PRIVATE(_upb_Message_SetNonCanonicalExtension)(
(upb_Message*)msg, upb_wire_test_ext_i32_ext, &val1, arena));
// 3. Add Unknown 2 (Tag 12, Varint)
char unknown2[] = "\x60\x64";