4
4
#include < library/cpp/testing/unittest/registar.h>
5
5
#include < yql/essentials/public/issue/protos/issue_message.pb.h>
6
6
#include < yql/essentials/public/issue/yql_issue_message.h>
7
- #include < contrib/ydb/public/api/protos/ydb_issue_message.pb.h>
8
7
9
8
#include < library/cpp/unicode/normalization/normalization.h>
10
9
18
17
using namespace google ::protobuf;
19
18
using namespace NYql ;
20
19
21
- void ensureMessageTypesSame (const Descriptor* a, const Descriptor* b, THashSet<TString>* visitedTypes);
22
- void ensureFieldDescriptorsSame (const FieldDescriptor* a, const FieldDescriptor* b, THashSet<TString>* visitedTypes) {
23
- UNIT_ASSERT (a);
24
- UNIT_ASSERT (b);
25
-
26
- UNIT_ASSERT_VALUES_EQUAL (FieldDescriptor::TypeName (a->type ()), FieldDescriptor::TypeName (b->type ()));
27
- UNIT_ASSERT_VALUES_EQUAL ((int )a->label (), (int )b->label ());
28
- UNIT_ASSERT_VALUES_EQUAL (a->name (), b->name ());
29
- UNIT_ASSERT_VALUES_EQUAL (a->number (), b->number ());
30
- UNIT_ASSERT_VALUES_EQUAL (a->is_repeated (), b->is_repeated ());
31
- UNIT_ASSERT_VALUES_EQUAL (a->is_packed (), b->is_packed ());
32
- UNIT_ASSERT_VALUES_EQUAL (a->index (), b->index ());
33
- if (a->type () == FieldDescriptor::TYPE_MESSAGE || a->type () == FieldDescriptor::TYPE_GROUP) {
34
- ensureMessageTypesSame (a->message_type (), b->message_type (), visitedTypes);
35
- }
36
- }
37
-
38
- void ensureMessageTypesSame (const Descriptor* a, const Descriptor* b, THashSet<TString>* visitedTypes) {
39
- UNIT_ASSERT (a);
40
- UNIT_ASSERT (b);
41
- if (!visitedTypes->insert (a->name ()).second ) {
42
- return ;
43
- }
44
-
45
- UNIT_ASSERT_VALUES_EQUAL (a->name (), b->name ());
46
- UNIT_ASSERT_VALUES_EQUAL (a->field_count (), b->field_count ());
47
-
48
- for (int i = 0 ; i < a->field_count (); i++) {
49
- ensureFieldDescriptorsSame (a->field (i), b->field (i), visitedTypes);
50
- }
51
- }
52
-
53
20
Y_UNIT_TEST_SUITE (IssueTest) {
54
21
Y_UNIT_TEST (Ascii) {
55
22
TIssue issue1 (" тест abc" );
@@ -63,27 +30,6 @@ Y_UNIT_TEST_SUITE(IssueTest) {
63
30
}
64
31
}
65
32
66
- Y_UNIT_TEST_SUITE (IssueProtoTest) {
67
- Y_UNIT_TEST (KikimrYqlSameLayout) {
68
- Ydb::Issue::IssueMessage yqlIssue;
69
- NYql::NIssue::NProto::IssueMessage kikimrIssue;
70
- THashSet<TString> visitedTypes;
71
- ensureMessageTypesSame (yqlIssue.GetDescriptor (), kikimrIssue.GetDescriptor (), &visitedTypes);
72
- }
73
-
74
- Y_UNIT_TEST (BinarySerialization) {
75
- TIssue issueTo (" root_issue" );
76
- TString bin = IssueToBinaryMessage (issueTo);
77
- TIssue issueFrom = IssueFromBinaryMessage (bin);
78
- UNIT_ASSERT_EQUAL (issueTo, issueFrom);
79
- }
80
-
81
- Y_UNIT_TEST (WrongBinStringException) {
82
- UNIT_ASSERT_EXCEPTION (IssueFromBinaryMessage (" qqq" ), yexception);
83
- }
84
- }
85
-
86
-
87
33
Y_UNIT_TEST_SUITE (TextWalkerTest) {
88
34
Y_UNIT_TEST (BasicTest) {
89
35
TPosition pos;
@@ -167,61 +113,6 @@ Y_UNIT_TEST_SUITE(ToOneLineStringTest) {
167
113
}
168
114
}
169
115
170
- Y_UNIT_TEST_SUITE (ToStreamTest) {
171
- template <typename TIssueMessage>
172
- void CheckSerializationToStream (const TIssues& issues, const TString& expected) {
173
- google::protobuf::RepeatedPtrField<TIssueMessage> protoIssues;
174
- IssuesToMessage (issues, &protoIssues);
175
- TStringBuilder stream;
176
- stream << protoIssues;
177
- UNIT_ASSERT_STRINGS_EQUAL (stream, expected);
178
- };
179
-
180
- Y_UNIT_TEST (OneMessageTest) {
181
- TIssues issues;
182
- issues.AddIssue (" error" );
183
- CheckSerializationToStream<Ydb::Issue::IssueMessage>(issues, " { message: \" error\" severity: 1 }" );
184
- CheckSerializationToStream<NYql::NIssue::NProto::IssueMessage>(issues, " { message: \" error\" issue_code: 0 severity: 1 }" );
185
- }
186
-
187
- Y_UNIT_TEST (SubIssuesTest) {
188
- TIssue issue (TPosition (12 , 34 , " file.abc" ), " error" );
189
- TIssue subissue (" suberror" );
190
- subissue.AddSubIssue (MakeIntrusive<TIssue>(" subsuberror" ));
191
- issue.AddSubIssue (MakeIntrusive<TIssue>(subissue));
192
- TIssues issues;
193
- issues.AddIssue (issue);
194
- CheckSerializationToStream<Ydb::Issue::IssueMessage>(issues, " { position { row: 34 column: 12 file: \" file.abc\" } message: \" error\" end_position { row: 34 column: 12 } severity: 1 issues { message: \" suberror\" severity: 1 issues { message: \" subsuberror\" severity: 1 } } }" );
195
- CheckSerializationToStream<NYql::NIssue::NProto::IssueMessage>(issues, " { position { row: 34 column: 12 file: \" file.abc\" } message: \" error\" end_position { row: 34 column: 12 } issue_code: 0 severity: 1 issues { message: \" suberror\" issue_code: 0 severity: 1 issues { message: \" subsuberror\" issue_code: 0 severity: 1 } } }" );
196
- }
197
-
198
- Y_UNIT_TEST (ManyIssuesTest) {
199
- TIssue issue (TPosition (12 , 34 , " file.abc" ), " error" );
200
- issue.AddSubIssue (MakeIntrusive<TIssue>(" suberror" ));
201
- TIssues issues;
202
- issues.AddIssue (issue);
203
- issues.AddIssue (TPosition (100 , 2 , " abc.file" ), " my message" );
204
- CheckSerializationToStream<Ydb::Issue::IssueMessage>(issues, " { position { row: 34 column: 12 file: \" file.abc\" } message: \" error\" end_position { row: 34 column: 12 } severity: 1 issues { message: \" suberror\" severity: 1 } }{ position { row: 2 column: 100 file: \" abc.file\" } message: \" my message\" end_position { row: 2 column: 100 } severity: 1 }" );
205
- CheckSerializationToStream<NYql::NIssue::NProto::IssueMessage>(issues, " { position { row: 34 column: 12 file: \" file.abc\" } message: \" error\" end_position { row: 34 column: 12 } issue_code: 0 severity: 1 issues { message: \" suberror\" issue_code: 0 severity: 1 } }{ position { row: 2 column: 100 file: \" abc.file\" } message: \" my message\" end_position { row: 2 column: 100 } issue_code: 0 severity: 1 }" );
206
- }
207
- }
208
-
209
- Y_UNIT_TEST_SUITE (ToMessage) {
210
- Y_UNIT_TEST (NonUtf8) {
211
- const TString nonUtf8String = " \x7f\xf8\xf7\xff\xf8\x1f\xff\xf2\xaf\xbf\xfe\xfa\xf5\x7f\xfe\xfa\x27\x20\x7d\x20\x5d\x2e " ;
212
- UNIT_ASSERT (!IsUtf (nonUtf8String));
213
- TIssue issue;
214
- issue.SetMessage (nonUtf8String);
215
-
216
- Ydb::Issue::IssueMessage msg;
217
- IssueToMessage (issue, &msg);
218
- TString serialized;
219
- UNIT_ASSERT (msg.SerializeToString (&serialized));
220
- Ydb::Issue::IssueMessage msg2;
221
- UNIT_ASSERT (msg2.ParseFromString (serialized));
222
- }
223
- }
224
-
225
116
Y_UNIT_TEST_SUITE (EscapeNonUtf8) {
226
117
Y_UNIT_TEST (Escape) {
227
118
const TString nonUtf8String = " \xfe\xfa\xf5\xc2 " ;
0 commit comments