10
10
#include < string>
11
11
12
12
#include < gtest/gtest.h>
13
- #include " absl/log/absl_log.h"
14
13
#include " upb/base/string_view.h"
15
14
#include " upb/base/upcast.h"
16
15
#include " upb/mem/arena.h"
20
19
#include " upb/test/test.upb_minitable.h"
21
20
#include " upb/text/debug_string.h"
22
21
23
- TEST (TextNoReflection, Extensions) {
22
+ std::string GetDebugString (const upb_Message* input,
23
+ const upb_MiniTable* mt_main) {
24
+ // Resizing/reallocation of the buffer is not necessary since we're only
25
+ // testing that we get the expected debug string.
26
+ char buf[100 ];
27
+ int options =
28
+ UPB_TXTENC_NOSORT; // Does not matter, but maps will not be sorted.
29
+ size_t real_size = upb_DebugString (input, mt_main, options, buf, 100 );
30
+ EXPECT_EQ (buf[real_size], ' \0 ' );
31
+ return std::string (buf);
32
+ }
33
+
34
+ TEST (TextNoReflection, ExtensionsString) {
24
35
const upb_MiniTable* mt_main = upb_0test__ModelWithExtensions_msg_init_ptr;
25
36
upb_Arena* arena = upb_Arena_New ();
26
37
27
38
upb_test_ModelExtension1* extension1 = upb_test_ModelExtension1_new (arena);
28
39
upb_test_ModelExtension1_set_str (extension1,
29
40
upb_StringView_FromString (" Hello" ));
30
41
42
+ upb_test_ModelWithExtensions* msg = upb_test_ModelWithExtensions_new (arena);
43
+
44
+ upb_test_ModelExtension1_set_model_ext (msg, extension1, arena);
45
+
46
+ std::string buf = GetDebugString (UPB_UPCAST (msg), mt_main);
47
+ upb_Arena_Free (arena);
48
+ std::string golden = R"( [1547] {
49
+ 25: "Hello"
50
+ }
51
+ )" ;
52
+ ASSERT_EQ (buf, golden);
53
+ }
54
+
55
+ TEST (TextNoReflection, ExtensionsInt) {
56
+ const upb_MiniTable* mt_main = upb_0test__ModelWithExtensions_msg_init_ptr;
57
+ upb_Arena* arena = upb_Arena_New ();
58
+
31
59
upb_test_ModelExtension2* extension2 = upb_test_ModelExtension2_new (arena);
32
60
upb_test_ModelExtension2_set_i (extension2, 5 );
33
61
34
62
upb_test_ModelWithExtensions* msg = upb_test_ModelWithExtensions_new (arena);
35
63
36
- upb_test_ModelExtension1_set_model_ext (msg, extension1, arena);
37
64
upb_test_ModelExtension2_set_model_ext (msg, extension2, arena);
38
65
39
- // Convert to a type of upb_Message*
40
- upb_Message* input = UPB_UPCAST (msg);
41
- // Resizing/reallocation of the buffer is not necessary since we're only
42
- // testing that we get the expected debug string.
43
- char * buf = new char [100 ];
44
- int options =
45
- UPB_TXTENC_NOSORT; // Does not matter, but maps will not be sorted.
46
- size_t size = 100 ;
47
- size_t real_size = upb_DebugString (input, mt_main, options, buf, size);
48
- ABSL_LOG (INFO) << " Buffer: \n "
49
- << buf << " \n "
50
- << " Size:" << real_size << " \n " ;
66
+ std::string buf = GetDebugString (UPB_UPCAST (msg), mt_main);
67
+ upb_Arena_Free (arena);
51
68
std::string golden = R"( [4135] {
52
69
9: 5
53
70
}
54
- [1547] {
55
- 25: "Hello"
56
- }
57
71
)" ;
58
- ASSERT_EQ (buf[real_size], ' \0 ' );
59
- std::string str (buf);
60
72
ASSERT_EQ (buf, golden);
61
- delete[] buf;
62
- upb_Arena_Free (arena);
63
- }
73
+ }
0 commit comments