• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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