1 /**
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this File except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #ifndef ABCKIT_INSPECT_IMPL_MOCK
17 #define ABCKIT_INSPECT_IMPL_MOCK
18
19 #include "../../src/mock/abckit_mock.h"
20 #include "../../src/mock/mock_values.h"
21
22 #include "../../include/c/metadata_core.h"
23
24 #include <gtest/gtest.h>
25
26 namespace libabckit::mock::metadata_inspect {
27
28 // NOLINTBEGIN(readability-identifier-naming)
29
30 // ========================================
31 // File
32 // ========================================
33
FileGetVersion(AbckitFile * file)34 AbckitFileVersion FileGetVersion(AbckitFile *file)
35 {
36 g_calledFuncs.push(__func__);
37 EXPECT_TRUE(file == DEFAULT_FILE);
38 return DEFAULT_FILE_VERSION;
39 }
40
FileEnumerateModules(AbckitFile * file,void * data,bool (* cb)(AbckitCoreModule * module,void * data))41 bool FileEnumerateModules(AbckitFile *file, void *data, bool (*cb)(AbckitCoreModule *module, void *data))
42 {
43 g_calledFuncs.push(__func__);
44 EXPECT_TRUE(file == DEFAULT_FILE);
45 return cb(DEFAULT_CORE_MODULE, data);
46 }
47
FileEnumerateExternalModules(AbckitFile * file,void * data,bool (* cb)(AbckitCoreModule * module,void * data))48 bool FileEnumerateExternalModules(AbckitFile *file, void *data, bool (*cb)(AbckitCoreModule *module, void *data))
49 {
50 g_calledFuncs.push(__func__);
51 EXPECT_TRUE(file == DEFAULT_FILE);
52 return cb(DEFAULT_CORE_MODULE, data);
53 }
54
55 // ========================================
56 // Module
57 // ========================================
58
ModuleGetFile(AbckitCoreModule * m)59 AbckitFile *ModuleGetFile(AbckitCoreModule *m)
60 {
61 g_calledFuncs.push(__func__);
62 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
63 return DEFAULT_FILE;
64 }
65
ModuleGetTarget(AbckitCoreModule * m)66 AbckitTarget ModuleGetTarget(AbckitCoreModule *m)
67 {
68 g_calledFuncs.push(__func__);
69 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
70 return DEFAULT_TARGET;
71 }
72
ModuleGetName(AbckitCoreModule * m)73 AbckitString *ModuleGetName(AbckitCoreModule *m)
74 {
75 g_calledFuncs.push(__func__);
76 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
77 return DEFAULT_STRING;
78 }
79
ModuleIsExternal(AbckitCoreModule * m)80 bool ModuleIsExternal(AbckitCoreModule *m)
81 {
82 g_calledFuncs.push(__func__);
83 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
84 return true;
85 }
86
ModuleEnumerateImports(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreImportDescriptor * i,void * data))87 bool ModuleEnumerateImports(AbckitCoreModule *m, void *data, bool (*cb)(AbckitCoreImportDescriptor *i, void *data))
88 {
89 g_calledFuncs.push(__func__);
90 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
91 return cb(DEFAULT_CORE_IMPORT_DESCRIPTOR, data);
92 }
93
ModuleEnumerateExports(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreExportDescriptor * e,void * data))94 bool ModuleEnumerateExports(AbckitCoreModule *m, void *data, bool (*cb)(AbckitCoreExportDescriptor *e, void *data))
95 {
96 g_calledFuncs.push(__func__);
97 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
98 return cb(DEFAULT_CORE_EXPORT_DESCRIPTOR, data);
99 }
100
ModuleEnumerateNamespaces(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreNamespace * n,void * data))101 bool ModuleEnumerateNamespaces(AbckitCoreModule *m, void *data, bool (*cb)(AbckitCoreNamespace *n, void *data))
102 {
103 g_calledFuncs.push(__func__);
104 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
105 return cb(DEFAULT_CORE_NAMESPACE, data);
106 }
107
ModuleEnumerateClasses(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreClass * klass,void * data))108 bool ModuleEnumerateClasses(AbckitCoreModule *m, void *data, bool (*cb)(AbckitCoreClass *klass, void *data))
109 {
110 g_calledFuncs.push(__func__);
111 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
112 return cb(DEFAULT_CORE_CLASS, data);
113 }
114
ModuleEnumerateTopLevelFunctions(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreFunction * function,void * data))115 bool ModuleEnumerateTopLevelFunctions(AbckitCoreModule *m, void *data,
116 bool (*cb)(AbckitCoreFunction *function, void *data))
117 {
118 g_calledFuncs.push(__func__);
119 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
120 return cb(DEFAULT_CORE_FUNCTION, data);
121 }
122
ModuleEnumerateAnonymousFunctions(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreFunction * function,void * data))123 bool ModuleEnumerateAnonymousFunctions(AbckitCoreModule *m, void *data,
124 bool (*cb)(AbckitCoreFunction *function, void *data))
125 {
126 g_calledFuncs.push(__func__);
127 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
128 return cb(DEFAULT_CORE_FUNCTION, data);
129 }
130
ModuleEnumerateAnnotationInterfaces(AbckitCoreModule * m,void * data,bool (* cb)(AbckitCoreAnnotationInterface * ai,void * data))131 bool ModuleEnumerateAnnotationInterfaces(AbckitCoreModule *m, void *data,
132 bool (*cb)(AbckitCoreAnnotationInterface *ai, void *data))
133 {
134 g_calledFuncs.push(__func__);
135 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
136 return cb(DEFAULT_CORE_ANNOTATION_INTERFACE, data);
137 }
138
139 // ========================================
140 // Namespace
141 // ========================================
142
NamespaceGetName(AbckitCoreNamespace * n)143 AbckitString *NamespaceGetName(AbckitCoreNamespace *n)
144 {
145 g_calledFuncs.push(__func__);
146 EXPECT_TRUE(n == DEFAULT_CORE_NAMESPACE);
147 return DEFAULT_STRING;
148 }
149
NamespaceGetParentNamespace(AbckitCoreNamespace * n)150 AbckitCoreNamespace *NamespaceGetParentNamespace(AbckitCoreNamespace *n)
151 {
152 g_calledFuncs.push(__func__);
153 EXPECT_TRUE(n == DEFAULT_CORE_NAMESPACE);
154 return DEFAULT_CORE_NAMESPACE;
155 }
156
NamespaceEnumerateNamespaces(AbckitCoreNamespace * n,void * data,bool (* cb)(AbckitCoreNamespace * klass,void * data))157 bool NamespaceEnumerateNamespaces(AbckitCoreNamespace *n, void *data,
158 bool (*cb)(AbckitCoreNamespace *klass, void *data))
159 {
160 g_calledFuncs.push(__func__);
161 EXPECT_TRUE(n == DEFAULT_CORE_NAMESPACE);
162 return cb(DEFAULT_CORE_NAMESPACE, data);
163 }
164
NamespaceEnumerateClasses(AbckitCoreNamespace * n,void * data,bool (* cb)(AbckitCoreClass * klass,void * data))165 bool NamespaceEnumerateClasses(AbckitCoreNamespace *n, void *data, bool (*cb)(AbckitCoreClass *klass, void *data))
166 {
167 g_calledFuncs.push(__func__);
168 EXPECT_TRUE(n == DEFAULT_CORE_NAMESPACE);
169 return cb(DEFAULT_CORE_CLASS, data);
170 }
171
NamespaceEnumerateTopLevelFunctions(AbckitCoreNamespace * n,void * data,bool (* cb)(AbckitCoreFunction * func,void * data))172 bool NamespaceEnumerateTopLevelFunctions(AbckitCoreNamespace *n, void *data,
173 bool (*cb)(AbckitCoreFunction *func, void *data))
174 {
175 g_calledFuncs.push(__func__);
176 EXPECT_TRUE(n == DEFAULT_CORE_NAMESPACE);
177 return cb(DEFAULT_CORE_FUNCTION, data);
178 }
179
180 // ========================================
181 // ImportDescriptor
182 // ========================================
183
ImportDescriptorGetFile(AbckitCoreImportDescriptor * i)184 AbckitFile *ImportDescriptorGetFile(AbckitCoreImportDescriptor *i)
185 {
186 g_calledFuncs.push(__func__);
187 EXPECT_TRUE(i == DEFAULT_CORE_IMPORT_DESCRIPTOR);
188 return DEFAULT_FILE;
189 }
190
ImportDescriptorGetImportedModule(AbckitCoreImportDescriptor * i)191 AbckitCoreModule *ImportDescriptorGetImportedModule(AbckitCoreImportDescriptor *i)
192 {
193 g_calledFuncs.push(__func__);
194 EXPECT_TRUE(i == DEFAULT_CORE_IMPORT_DESCRIPTOR);
195 return DEFAULT_CORE_MODULE;
196 }
197
ImportDescriptorGetImportingModule(AbckitCoreImportDescriptor * i)198 AbckitCoreModule *ImportDescriptorGetImportingModule(AbckitCoreImportDescriptor *i)
199 {
200 g_calledFuncs.push(__func__);
201 EXPECT_TRUE(i == DEFAULT_CORE_IMPORT_DESCRIPTOR);
202 return DEFAULT_CORE_MODULE;
203 }
204
ImportDescriptorGetName(AbckitCoreImportDescriptor * i)205 AbckitString *ImportDescriptorGetName(AbckitCoreImportDescriptor *i)
206 {
207 g_calledFuncs.push(__func__);
208 EXPECT_TRUE(i == DEFAULT_CORE_IMPORT_DESCRIPTOR);
209 return DEFAULT_STRING;
210 }
211
ImportDescriptorGetAlias(AbckitCoreImportDescriptor * i)212 AbckitString *ImportDescriptorGetAlias(AbckitCoreImportDescriptor *i)
213 {
214 g_calledFuncs.push(__func__);
215 EXPECT_TRUE(i == DEFAULT_CORE_IMPORT_DESCRIPTOR);
216 return DEFAULT_STRING;
217 }
218
219 // ========================================
220 // ExportDescriptor
221 // ========================================
222
ExportDescriptorGetFile(AbckitCoreExportDescriptor * i)223 AbckitFile *ExportDescriptorGetFile(AbckitCoreExportDescriptor *i)
224 {
225 g_calledFuncs.push(__func__);
226 EXPECT_TRUE(i == DEFAULT_CORE_EXPORT_DESCRIPTOR);
227 return DEFAULT_FILE;
228 }
229
ExportDescriptorGetExportingModule(AbckitCoreExportDescriptor * i)230 AbckitCoreModule *ExportDescriptorGetExportingModule(AbckitCoreExportDescriptor *i)
231 {
232 g_calledFuncs.push(__func__);
233 EXPECT_TRUE(i == DEFAULT_CORE_EXPORT_DESCRIPTOR);
234 return DEFAULT_CORE_MODULE;
235 }
236
ExportDescriptorGetExportedModule(AbckitCoreExportDescriptor * i)237 AbckitCoreModule *ExportDescriptorGetExportedModule(AbckitCoreExportDescriptor *i)
238 {
239 g_calledFuncs.push(__func__);
240 EXPECT_TRUE(i == DEFAULT_CORE_EXPORT_DESCRIPTOR);
241 return DEFAULT_CORE_MODULE;
242 }
243
ExportDescriptorGetName(AbckitCoreExportDescriptor * i)244 AbckitString *ExportDescriptorGetName(AbckitCoreExportDescriptor *i)
245 {
246 g_calledFuncs.push(__func__);
247 EXPECT_TRUE(i == DEFAULT_CORE_EXPORT_DESCRIPTOR);
248 return DEFAULT_STRING;
249 }
250
ExportDescriptorGetAlias(AbckitCoreExportDescriptor * i)251 AbckitString *ExportDescriptorGetAlias(AbckitCoreExportDescriptor *i)
252 {
253 g_calledFuncs.push(__func__);
254 EXPECT_TRUE(i == DEFAULT_CORE_EXPORT_DESCRIPTOR);
255 return DEFAULT_STRING;
256 }
257
258 // ========================================
259 // Class
260 // ========================================
261
ClassGetFile(AbckitCoreClass * klass)262 AbckitFile *ClassGetFile(AbckitCoreClass *klass)
263 {
264 g_calledFuncs.push(__func__);
265 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
266 return DEFAULT_FILE;
267 }
268
ClassGetModule(AbckitCoreClass * klass)269 AbckitCoreModule *ClassGetModule(AbckitCoreClass *klass)
270 {
271 g_calledFuncs.push(__func__);
272 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
273 return DEFAULT_CORE_MODULE;
274 }
275
ClassGetName(AbckitCoreClass * klass)276 AbckitString *ClassGetName(AbckitCoreClass *klass)
277 {
278 g_calledFuncs.push(__func__);
279 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
280 return DEFAULT_STRING;
281 }
282
ClassGetParentFunction(AbckitCoreClass * klass)283 AbckitCoreFunction *ClassGetParentFunction(AbckitCoreClass *klass)
284 {
285 g_calledFuncs.push(__func__);
286 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
287 return DEFAULT_CORE_FUNCTION;
288 }
289
ClassGetParentNamespace(AbckitCoreClass * klass)290 AbckitCoreNamespace *ClassGetParentNamespace(AbckitCoreClass *klass)
291 {
292 g_calledFuncs.push(__func__);
293 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
294 return DEFAULT_CORE_NAMESPACE;
295 }
296
ClassEnumerateMethods(AbckitCoreClass * klass,void * data,bool (* cb)(AbckitCoreFunction * function,void * data))297 bool ClassEnumerateMethods(AbckitCoreClass *klass, void *data, bool (*cb)(AbckitCoreFunction *function, void *data))
298 {
299 g_calledFuncs.push(__func__);
300 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
301 return cb(DEFAULT_CORE_FUNCTION, data);
302 }
303
ClassEnumerateAnnotations(AbckitCoreClass * klass,void * data,bool (* cb)(AbckitCoreAnnotation * anno,void * data))304 bool ClassEnumerateAnnotations(AbckitCoreClass *klass, void *data, bool (*cb)(AbckitCoreAnnotation *anno, void *data))
305 {
306 g_calledFuncs.push(__func__);
307 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
308 return cb(DEFAULT_CORE_ANNOTATION, data);
309 }
310
311 // ========================================
312 // AnnotationInterface
313 // ========================================
314
AnnotationInterfaceGetFile(AbckitCoreAnnotationInterface * anno)315 AbckitFile *AnnotationInterfaceGetFile(AbckitCoreAnnotationInterface *anno)
316 {
317 g_calledFuncs.push(__func__);
318 EXPECT_TRUE(anno == DEFAULT_CORE_ANNOTATION_INTERFACE);
319 return DEFAULT_FILE;
320 }
321
AnnotationInterfaceGetModule(AbckitCoreAnnotationInterface * anno)322 AbckitCoreModule *AnnotationInterfaceGetModule(AbckitCoreAnnotationInterface *anno)
323 {
324 g_calledFuncs.push(__func__);
325 EXPECT_TRUE(anno == DEFAULT_CORE_ANNOTATION_INTERFACE);
326 return DEFAULT_CORE_MODULE;
327 }
328
AnnotationInterfaceGetName(AbckitCoreAnnotationInterface * ai)329 AbckitString *AnnotationInterfaceGetName(AbckitCoreAnnotationInterface *ai)
330 {
331 g_calledFuncs.push(__func__);
332 EXPECT_TRUE(ai == DEFAULT_CORE_ANNOTATION_INTERFACE);
333 return DEFAULT_STRING;
334 }
335
AnnotationInterfaceEnumerateFields(AbckitCoreAnnotationInterface * ai,void * data,bool (* cb)(AbckitCoreAnnotationInterfaceField * fld,void * data))336 bool AnnotationInterfaceEnumerateFields(AbckitCoreAnnotationInterface *ai, void *data,
337 bool (*cb)(AbckitCoreAnnotationInterfaceField *fld, void *data))
338 {
339 g_calledFuncs.push(__func__);
340 EXPECT_TRUE(ai == DEFAULT_CORE_ANNOTATION_INTERFACE);
341 return cb(DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD, data);
342 }
343
344 // ========================================
345 // AnnotationInterfaceField
346 // ========================================
347
AnnotationInterfaceFieldGetFile(AbckitCoreAnnotationInterfaceField * fld)348 AbckitFile *AnnotationInterfaceFieldGetFile(AbckitCoreAnnotationInterfaceField *fld)
349 {
350 g_calledFuncs.push(__func__);
351 EXPECT_TRUE(fld == DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD);
352 return DEFAULT_FILE;
353 }
354
AnnotationInterfaceFieldGetInterface(AbckitCoreAnnotationInterfaceField * fld)355 AbckitCoreAnnotationInterface *AnnotationInterfaceFieldGetInterface(AbckitCoreAnnotationInterfaceField *fld)
356 {
357 g_calledFuncs.push(__func__);
358 EXPECT_TRUE(fld == DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD);
359 return DEFAULT_CORE_ANNOTATION_INTERFACE;
360 }
361
AnnotationInterfaceFieldGetName(AbckitCoreAnnotationInterfaceField * fld)362 AbckitString *AnnotationInterfaceFieldGetName(AbckitCoreAnnotationInterfaceField *fld)
363 {
364 g_calledFuncs.push(__func__);
365 EXPECT_TRUE(fld == DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD);
366 return DEFAULT_STRING;
367 }
368
AnnotationInterfaceFieldGetType(AbckitCoreAnnotationInterfaceField * fld)369 AbckitType *AnnotationInterfaceFieldGetType(AbckitCoreAnnotationInterfaceField *fld)
370 {
371 g_calledFuncs.push(__func__);
372 EXPECT_TRUE(fld == DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD);
373 return DEFAULT_TYPE;
374 }
375
AnnotationInterfaceFieldGetDefaultValue(AbckitCoreAnnotationInterfaceField * fld)376 AbckitValue *AnnotationInterfaceFieldGetDefaultValue(AbckitCoreAnnotationInterfaceField *fld)
377 {
378 g_calledFuncs.push(__func__);
379 EXPECT_TRUE(fld == DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD);
380 return DEFAULT_VALUE;
381 }
382
383 // ========================================
384 // Function
385 // ========================================
386
FunctionGetFile(AbckitCoreFunction * function)387 AbckitFile *FunctionGetFile(AbckitCoreFunction *function)
388 {
389 g_calledFuncs.push(__func__);
390 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
391 return DEFAULT_FILE;
392 }
393
FunctionGetModule(AbckitCoreFunction * function)394 AbckitCoreModule *FunctionGetModule(AbckitCoreFunction *function)
395 {
396 g_calledFuncs.push(__func__);
397 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
398 return DEFAULT_CORE_MODULE;
399 }
400
FunctionGetName(AbckitCoreFunction * function)401 AbckitString *FunctionGetName(AbckitCoreFunction *function)
402 {
403 g_calledFuncs.push(__func__);
404 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
405 return DEFAULT_STRING;
406 }
407
FunctionGetParentFunction(AbckitCoreFunction * function)408 AbckitCoreFunction *FunctionGetParentFunction(AbckitCoreFunction *function)
409 {
410 g_calledFuncs.push(__func__);
411 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
412 return DEFAULT_CORE_FUNCTION;
413 }
414
FunctionGetParentClass(AbckitCoreFunction * function)415 AbckitCoreClass *FunctionGetParentClass(AbckitCoreFunction *function)
416 {
417 g_calledFuncs.push(__func__);
418 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
419 return DEFAULT_CORE_CLASS;
420 }
421
FunctionGetParentNamespace(AbckitCoreFunction * function)422 AbckitCoreNamespace *FunctionGetParentNamespace(AbckitCoreFunction *function)
423 {
424 g_calledFuncs.push(__func__);
425 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
426 return DEFAULT_CORE_NAMESPACE;
427 }
428
FunctionEnumerateNestedFunctions(AbckitCoreFunction * function,void * data,bool (* cb)(AbckitCoreFunction * nestedFunc,void * data))429 bool FunctionEnumerateNestedFunctions(AbckitCoreFunction *function, void *data,
430 bool (*cb)(AbckitCoreFunction *nestedFunc, void *data))
431 {
432 g_calledFuncs.push(__func__);
433 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
434 return cb(DEFAULT_CORE_FUNCTION, data);
435 }
436
FunctionEnumerateNestedClasses(AbckitCoreFunction * function,void * data,bool (* cb)(AbckitCoreClass * nestedClass,void * data))437 bool FunctionEnumerateNestedClasses(AbckitCoreFunction *function, void *data,
438 bool (*cb)(AbckitCoreClass *nestedClass, void *data))
439 {
440 g_calledFuncs.push(__func__);
441 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
442 return cb(DEFAULT_CORE_CLASS, data);
443 }
444
FunctionEnumerateAnnotations(AbckitCoreFunction * function,void * data,bool (* cb)(AbckitCoreAnnotation * anno,void * data))445 bool FunctionEnumerateAnnotations(AbckitCoreFunction *function, void *data,
446 bool (*cb)(AbckitCoreAnnotation *anno, void *data))
447 {
448 g_calledFuncs.push(__func__);
449 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
450 return cb(DEFAULT_CORE_ANNOTATION, data);
451 }
452
CreateGraphFromFunction(AbckitCoreFunction * function)453 AbckitGraph *CreateGraphFromFunction(AbckitCoreFunction *function)
454 {
455 g_calledFuncs.push(__func__);
456 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
457 return DEFAULT_GRAPH;
458 }
459
FunctionIsStatic(AbckitCoreFunction * function)460 bool FunctionIsStatic(AbckitCoreFunction *function)
461 {
462 g_calledFuncs.push(__func__);
463 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
464 return DEFAULT_BOOL;
465 }
466
FunctionIsCtor(AbckitCoreFunction * function)467 bool FunctionIsCtor(AbckitCoreFunction *function)
468 {
469 g_calledFuncs.push(__func__);
470 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
471 return DEFAULT_BOOL;
472 }
473
FunctionIsAnonymous(AbckitCoreFunction * function)474 bool FunctionIsAnonymous(AbckitCoreFunction *function)
475 {
476 g_calledFuncs.push(__func__);
477 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
478 return DEFAULT_BOOL;
479 }
480
481 // ========================================
482 // Annotation
483 // ========================================
484
AnnotationGetFile(AbckitCoreAnnotation * anno)485 AbckitFile *AnnotationGetFile(AbckitCoreAnnotation *anno)
486 {
487 g_calledFuncs.push(__func__);
488 EXPECT_TRUE(anno == DEFAULT_CORE_ANNOTATION);
489 return DEFAULT_FILE;
490 }
AnnotationGetInterface(AbckitCoreAnnotation * anno)491 AbckitCoreAnnotationInterface *AnnotationGetInterface(AbckitCoreAnnotation *anno)
492 {
493 g_calledFuncs.push(__func__);
494 EXPECT_TRUE(anno == DEFAULT_CORE_ANNOTATION);
495 return DEFAULT_CORE_ANNOTATION_INTERFACE;
496 }
497
AnnotationEnumerateElements(AbckitCoreAnnotation * anno,void * data,bool (* cb)(AbckitCoreAnnotationElement * ae,void * data))498 bool AnnotationEnumerateElements(AbckitCoreAnnotation *anno, void *data,
499 bool (*cb)(AbckitCoreAnnotationElement *ae, void *data))
500 {
501 g_calledFuncs.push(__func__);
502 EXPECT_TRUE(anno == DEFAULT_CORE_ANNOTATION);
503 return cb(DEFAULT_CORE_ANNOTATION_ELEMENT, data);
504 }
505
506 // ========================================
507 // AnnotationElement
508 // ========================================
509
AnnotationElementGetFile(AbckitCoreAnnotationElement * ae)510 AbckitFile *AnnotationElementGetFile(AbckitCoreAnnotationElement *ae)
511 {
512 g_calledFuncs.push(__func__);
513 EXPECT_TRUE(ae == DEFAULT_CORE_ANNOTATION_ELEMENT);
514 return DEFAULT_FILE;
515 }
516
AnnotationElementGetAnnotation(AbckitCoreAnnotationElement * ae)517 AbckitCoreAnnotation *AnnotationElementGetAnnotation(AbckitCoreAnnotationElement *ae)
518 {
519 g_calledFuncs.push(__func__);
520 EXPECT_TRUE(ae == DEFAULT_CORE_ANNOTATION_ELEMENT);
521 return DEFAULT_CORE_ANNOTATION;
522 }
523
AnnotationElementGetName(AbckitCoreAnnotationElement * ae)524 AbckitString *AnnotationElementGetName(AbckitCoreAnnotationElement *ae)
525 {
526 g_calledFuncs.push(__func__);
527 EXPECT_TRUE(ae == DEFAULT_CORE_ANNOTATION_ELEMENT);
528 return DEFAULT_STRING;
529 }
530
AnnotationElementGetValue(AbckitCoreAnnotationElement * ae)531 AbckitValue *AnnotationElementGetValue(AbckitCoreAnnotationElement *ae)
532 {
533 g_calledFuncs.push(__func__);
534 EXPECT_TRUE(ae == DEFAULT_CORE_ANNOTATION_ELEMENT);
535 return DEFAULT_VALUE;
536 }
537
538 // ========================================
539 // Type
540 // ========================================
541
TypeGetTypeId(AbckitType * type)542 AbckitTypeId TypeGetTypeId(AbckitType *type)
543 {
544 g_calledFuncs.push(__func__);
545 EXPECT_TRUE(type == DEFAULT_TYPE);
546 return DEFAULT_TYPE_ID;
547 }
548
TypeGetReferenceClass(AbckitType * type)549 AbckitCoreClass *TypeGetReferenceClass(AbckitType *type)
550 {
551 g_calledFuncs.push(__func__);
552 EXPECT_TRUE(type == DEFAULT_TYPE);
553 return DEFAULT_CORE_CLASS;
554 }
555
556 // ========================================
557 // Value
558 // ========================================
559
ValueGetFile(AbckitValue * value)560 AbckitFile *ValueGetFile(AbckitValue *value)
561 {
562 g_calledFuncs.push(__func__);
563 EXPECT_TRUE(value == DEFAULT_VALUE);
564 return DEFAULT_FILE;
565 }
566
ValueGetType(AbckitValue * value)567 AbckitType *ValueGetType(AbckitValue *value)
568 {
569 g_calledFuncs.push(__func__);
570 EXPECT_TRUE(value == DEFAULT_VALUE);
571 return DEFAULT_TYPE;
572 }
573
ValueGetU1(AbckitValue * value)574 bool ValueGetU1(AbckitValue *value)
575 {
576 g_calledFuncs.push(__func__);
577 EXPECT_TRUE(value == DEFAULT_VALUE);
578 return DEFAULT_BOOL;
579 }
580
ValueGetDouble(AbckitValue * value)581 double ValueGetDouble(AbckitValue *value)
582 {
583 g_calledFuncs.push(__func__);
584 EXPECT_TRUE(value == DEFAULT_VALUE);
585 return DEFAULT_DOUBLE;
586 }
587
ValueGetString(AbckitValue * value)588 AbckitString *ValueGetString(AbckitValue *value)
589 {
590 g_calledFuncs.push(__func__);
591 EXPECT_TRUE(value == DEFAULT_VALUE);
592 return DEFAULT_STRING;
593 }
594
ArrayValueGetLiteralArray(AbckitValue * value)595 AbckitLiteralArray *ArrayValueGetLiteralArray(AbckitValue *value)
596 {
597 g_calledFuncs.push(__func__);
598 EXPECT_TRUE(value == DEFAULT_VALUE);
599 return DEFAULT_LITERAL_ARRAY;
600 }
601
602 // ========================================
603 // String
604 // ========================================
605
AbckitStringToString(AbckitString * value)606 const char *AbckitStringToString(AbckitString *value)
607 {
608 g_calledFuncs.push(__func__);
609 EXPECT_TRUE(value == DEFAULT_STRING);
610 return DEFAULT_CONST_CHAR;
611 }
612
613 // ========================================
614 // LiteralArray
615 // ========================================
616
LiteralArrayEnumerateElements(AbckitLiteralArray * litArr,void * data,bool (* cb)(AbckitFile * file,AbckitLiteral * v,void * data))617 bool LiteralArrayEnumerateElements(AbckitLiteralArray *litArr, void *data,
618 bool (*cb)(AbckitFile *file, AbckitLiteral *v, void *data))
619 {
620 g_calledFuncs.push(__func__);
621 EXPECT_TRUE(litArr == DEFAULT_LITERAL_ARRAY);
622 return cb(DEFAULT_FILE, DEFAULT_LITERAL, data);
623 }
624
625 // ========================================
626 // Literal
627 // ========================================
628
LiteralGetFile(AbckitLiteral * lit)629 AbckitFile *LiteralGetFile(AbckitLiteral *lit)
630 {
631 g_calledFuncs.push(__func__);
632 EXPECT_TRUE(lit == DEFAULT_LITERAL);
633 return DEFAULT_FILE;
634 }
635
LiteralGetTag(AbckitLiteral * lit)636 AbckitLiteralTag LiteralGetTag(AbckitLiteral *lit)
637 {
638 g_calledFuncs.push(__func__);
639 EXPECT_TRUE(lit == DEFAULT_LITERAL);
640 return DEFAULT_LITERAL_TAG;
641 }
642
LiteralGetBool(AbckitLiteral * lit)643 bool LiteralGetBool(AbckitLiteral *lit)
644 {
645 g_calledFuncs.push(__func__);
646 EXPECT_TRUE(lit == DEFAULT_LITERAL);
647 return DEFAULT_BOOL;
648 }
649
LiteralGetU8(AbckitLiteral * lit)650 uint8_t LiteralGetU8(AbckitLiteral *lit)
651 {
652 g_calledFuncs.push(__func__);
653 EXPECT_TRUE(lit == DEFAULT_LITERAL);
654 return DEFAULT_U8;
655 }
656
LiteralGetU16(AbckitLiteral * lit)657 uint16_t LiteralGetU16(AbckitLiteral *lit)
658 {
659 g_calledFuncs.push(__func__);
660 EXPECT_TRUE(lit == DEFAULT_LITERAL);
661 return DEFAULT_U16;
662 }
663
LiteralGetMethodAffiliate(AbckitLiteral * lit)664 uint16_t LiteralGetMethodAffiliate(AbckitLiteral *lit)
665 {
666 g_calledFuncs.push(__func__);
667 EXPECT_TRUE(lit == DEFAULT_LITERAL);
668 return DEFAULT_U16;
669 }
670
LiteralGetU32(AbckitLiteral * lit)671 uint32_t LiteralGetU32(AbckitLiteral *lit)
672 {
673 g_calledFuncs.push(__func__);
674 EXPECT_TRUE(lit == DEFAULT_LITERAL);
675 return DEFAULT_U32;
676 }
677
LiteralGetU64(AbckitLiteral * lit)678 uint64_t LiteralGetU64(AbckitLiteral *lit)
679 {
680 g_calledFuncs.push(__func__);
681 EXPECT_TRUE(lit == DEFAULT_LITERAL);
682 return DEFAULT_U64;
683 }
684
LiteralGetFloat(AbckitLiteral * lit)685 float LiteralGetFloat(AbckitLiteral *lit)
686 {
687 g_calledFuncs.push(__func__);
688 EXPECT_TRUE(lit == DEFAULT_LITERAL);
689 return DEFAULT_FLOAT;
690 }
691
LiteralGetDouble(AbckitLiteral * lit)692 double LiteralGetDouble(AbckitLiteral *lit)
693 {
694 g_calledFuncs.push(__func__);
695 EXPECT_TRUE(lit == DEFAULT_LITERAL);
696 return DEFAULT_DOUBLE;
697 }
698
LiteralGetLiteralArray(AbckitLiteral * lit)699 AbckitLiteralArray *LiteralGetLiteralArray(AbckitLiteral *lit)
700 {
701 g_calledFuncs.push(__func__);
702 EXPECT_TRUE(lit == DEFAULT_LITERAL);
703 return DEFAULT_LITERAL_ARRAY;
704 }
705
LiteralGetString(AbckitLiteral * lit)706 AbckitString *LiteralGetString(AbckitLiteral *lit)
707 {
708 g_calledFuncs.push(__func__);
709 EXPECT_TRUE(lit == DEFAULT_LITERAL);
710 return DEFAULT_STRING;
711 }
712
LiteralGetMethod(AbckitLiteral * lit)713 AbckitString *LiteralGetMethod(AbckitLiteral *lit)
714 {
715 g_calledFuncs.push(__func__);
716 EXPECT_TRUE(lit == DEFAULT_LITERAL);
717 return DEFAULT_STRING;
718 }
719
720 static AbckitInspectApi g_inspectApiImpl = {
721 // ========================================
722 // File
723 // ========================================
724
725 FileGetVersion,
726 FileEnumerateModules,
727 FileEnumerateExternalModules,
728
729 // ========================================
730 // String
731 // ========================================
732
733 AbckitStringToString,
734
735 // ========================================
736 // Type
737 // ========================================
738
739 TypeGetTypeId,
740 TypeGetReferenceClass,
741
742 // ========================================
743 // Value
744 // ========================================
745
746 ValueGetFile,
747 ValueGetType,
748 ValueGetU1,
749 ValueGetDouble,
750 ValueGetString,
751 ArrayValueGetLiteralArray,
752
753 // ========================================
754 // Literal
755 // ========================================
756
757 LiteralGetFile,
758 LiteralGetTag,
759 LiteralGetBool,
760 LiteralGetU8,
761 LiteralGetU16,
762 LiteralGetMethodAffiliate,
763 LiteralGetU32,
764 LiteralGetU64,
765 LiteralGetFloat,
766 LiteralGetDouble,
767 LiteralGetLiteralArray,
768 LiteralGetString,
769 LiteralGetMethod,
770
771 // ========================================
772 // LiteralArray
773 // ========================================
774
775 LiteralArrayEnumerateElements,
776
777 // ========================================
778 // Module
779 // ========================================
780
781 ModuleGetFile,
782 ModuleGetTarget,
783 ModuleGetName,
784 ModuleIsExternal,
785 ModuleEnumerateImports,
786 ModuleEnumerateExports,
787 ModuleEnumerateNamespaces,
788 ModuleEnumerateClasses,
789 ModuleEnumerateTopLevelFunctions,
790 ModuleEnumerateAnonymousFunctions,
791 ModuleEnumerateAnnotationInterfaces,
792
793 // ========================================
794 // Namespace
795 // ========================================
796
797 NamespaceGetName,
798 NamespaceGetParentNamespace,
799 NamespaceEnumerateNamespaces,
800 NamespaceEnumerateClasses,
801 NamespaceEnumerateTopLevelFunctions,
802
803 // ========================================
804 // ImportDescriptor
805 // ========================================
806
807 ImportDescriptorGetFile,
808 ImportDescriptorGetImportingModule,
809 ImportDescriptorGetImportedModule,
810 ImportDescriptorGetName,
811 ImportDescriptorGetAlias,
812
813 // ========================================
814 // ExportDescriptor
815 // ========================================
816
817 ExportDescriptorGetFile,
818 ExportDescriptorGetExportingModule,
819 ExportDescriptorGetExportedModule,
820 ExportDescriptorGetName,
821 ExportDescriptorGetAlias,
822
823 // ========================================
824 // Class
825 // ========================================
826
827 ClassGetFile,
828 ClassGetModule,
829 ClassGetName,
830 ClassGetParentFunction,
831 ClassGetParentNamespace,
832 ClassEnumerateMethods,
833 ClassEnumerateAnnotations,
834
835 // ========================================
836 // Function
837 // ========================================
838
839 FunctionGetFile,
840 FunctionGetModule,
841 FunctionGetName,
842 FunctionGetParentFunction,
843 FunctionGetParentClass,
844 FunctionGetParentNamespace,
845 FunctionEnumerateNestedFunctions,
846 FunctionEnumerateNestedClasses,
847 FunctionEnumerateAnnotations,
848 CreateGraphFromFunction,
849 FunctionIsStatic,
850 FunctionIsCtor,
851 FunctionIsAnonymous,
852
853 // ========================================
854 // Annotation
855 // ========================================
856
857 AnnotationGetFile,
858 AnnotationGetInterface,
859 AnnotationEnumerateElements,
860 AnnotationElementGetFile,
861 AnnotationElementGetAnnotation,
862 AnnotationElementGetName,
863 AnnotationElementGetValue,
864
865 // ========================================
866 // AnnotationInterface
867 // ========================================
868
869 AnnotationInterfaceGetFile,
870 AnnotationInterfaceGetModule,
871 AnnotationInterfaceGetName,
872 AnnotationInterfaceEnumerateFields,
873
874 // ========================================
875 // AnnotationInterfaceField
876 // ========================================
877
878 AnnotationInterfaceFieldGetFile,
879 AnnotationInterfaceFieldGetInterface,
880 AnnotationInterfaceFieldGetName,
881 AnnotationInterfaceFieldGetType,
882 AnnotationInterfaceFieldGetDefaultValue,
883 };
884
885 // NOLINTEND(readability-identifier-naming)
886
887 } // namespace libabckit::mock::metadata_inspect
888
AbckitGetMockInspectApiImpl(AbckitApiVersion version)889 AbckitInspectApi const *AbckitGetMockInspectApiImpl([[maybe_unused]] AbckitApiVersion version)
890 {
891 return &libabckit::mock::metadata_inspect::g_inspectApiImpl;
892 }
893
894 #endif // ABCKIT_INSPECT_IMPL_MOCK
895