Merge "Use filegroup for notice files."
diff --git a/vndk/tools/header-checker/tests/gen_all.py b/vndk/tools/header-checker/tests/gen_all.py
index 78ba2b3..9bb62e9 100755
--- a/vndk/tools/header-checker/tests/gen_all.py
+++ b/vndk/tools/header-checker/tests/gen_all.py
@@ -20,10 +20,9 @@
def make_and_copy_reference_dumps(module, default_cflags=[],
reference_dump_dir=REFERENCE_DUMP_DIR):
- lsdump_content = module.make_lsdump(default_cflags)
- return copy_reference_dump_content(module.get_name(), lsdump_content,
- reference_dump_dir, '',
- module.get_arch())
+ lsdump_content = module.make_dump(default_cflags)
+ return copy_reference_dump_content(module.get_dump_name(), lsdump_content,
+ reference_dump_dir, '', module.arch)
def main():
patt = re.compile(
diff --git a/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h b/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h
new file mode 100644
index 0000000..6aaec0f
--- /dev/null
+++ b/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h
@@ -0,0 +1,22 @@
+#ifndef KNOWN_ISSUES_H_
+#define KNOWN_ISSUES_H_
+
+// header-abi-dumper is unable to output the following types correctly.
+
+// template<int I> struct NonTypeTemplate;
+extern NonTypeTemplate<1> non_type_template;
+
+// namespace namespace1{
+// template<typename T> class UsingTemplate;
+// }
+using namespace1::UsingTemplate;
+extern UsingTemplate<float> *using_template;
+
+// #define STDCALL __stdcall
+STDCALL return_type function_with_calling_convention();
+
+// class ClassInNameSpace;
+template <typename T> class ClassTemplate;
+extern ClassTemplate<::ClassInNameSpace> template_arg_in_namespace;
+
+#endif // KNOWN_ISSUES_H_
diff --git a/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h b/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h
new file mode 100644
index 0000000..30a11bd
--- /dev/null
+++ b/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h
@@ -0,0 +1,27 @@
+#ifndef UNDECLARED_TYPES_H_
+#define UNDECLARED_TYPES_H_
+
+using ::namespace_a::A;
+typedef const namespace_b::B *B;
+using C = namespace_c::C[];
+
+extern A a;
+extern namespace_b::template_b<B> b;
+extern const decltype(b) c;
+
+inline A &inline_function(template_c<template_d<C>> d) {
+ LocalVar e;
+ return FunctionCall(d, e);
+}
+
+class InvalidClass {
+ A member;
+
+ D member_function(E);
+ virtual void virtual_function(float);
+};
+
+#define DECLARE_VARIABLE extern TemplateInMacro<F> *template_in_macro
+DECLARE_VARIABLE;
+
+#endif // UNDECLARED_TYPES_H_
diff --git a/vndk/tools/header-checker/tests/module.py b/vndk/tools/header-checker/tests/module.py
index df2cb1f..e25aa5c 100755
--- a/vndk/tools/header-checker/tests/module.py
+++ b/vndk/tools/header-checker/tests/module.py
@@ -8,6 +8,7 @@
import_path = os.path.abspath(os.path.join(import_path, 'utils'))
sys.path.insert(1, import_path)
+from utils import run_header_abi_dumper
from utils import run_header_abi_dumper_on_file
from utils import run_header_abi_linker
from utils import TARGET_ARCHS
@@ -36,55 +37,91 @@
abs_paths.append(relative_to_abs_path(relative_path))
return abs_paths
+
class Module(object):
- def __init__(self, name, arch, srcs, version_script, cflags,
- export_include_dirs, api, dumper_flags=[], linker_flags=[]):
+ def __init__(self, name, arch, cflags, export_include_dirs):
self.name = name
self.arch = arch
- self.srcs = relative_to_abs_path_list(srcs)
- self.version_script = relative_to_abs_path(version_script)
self.cflags = cflags
self.arch_cflags = ['']
if self.arch != '':
self.arch_cflags = ARCH_TARGET_CFLAGS.get(self.arch)
self.export_include_dirs = relative_to_abs_path_list(export_include_dirs)
+
+ def get_dump_name(self):
+ """Returns the module name followed by file extension."""
+ raise NotImplementedError()
+
+ def make_dump(self, default_cflags):
+ """Returns the dump content as a string."""
+ raise NotImplementedError()
+
+ def mutate_for_arch(self, target_arch):
+ """Returns a clone of this instance with arch=target_arch."""
+ raise NotImplementedError()
+
+ def mutate_for_all_arches(self):
+ modules = []
+ for target_arch in TARGET_ARCHS:
+ modules.append(self.mutate_for_arch(target_arch))
+ return modules
+
+ @staticmethod
+ def get_test_modules():
+ modules = []
+ for module in TEST_MODULES.values():
+ if module.arch == '':
+ modules += module.mutate_for_all_arches()
+ return modules
+
+ @staticmethod
+ def get_test_module_by_name(name):
+ return TEST_MODULES.get(name)
+
+
+class SdumpModule(Module):
+ def __init__(self, name, src, export_include_dirs=tuple(), cflags=tuple(),
+ arch='', dumper_flags=tuple()):
+ super(SdumpModule, self).__init__(name, arch, cflags,
+ export_include_dirs)
+ self.src = relative_to_abs_path(src)
+ self.dumper_flags = dumper_flags
+
+ def get_dump_name(self):
+ return self.name + '.sdump'
+
+ def make_dump(self, default_cflags):
+ return run_header_abi_dumper(
+ self.src, remove_absolute_paths=True, cflags=self.cflags,
+ export_include_dirs=self.export_include_dirs,
+ flags=self.dumper_flags)
+
+ def mutate_for_arch(self, target_arch):
+ return SdumpModule(self.name, self.src, self.export_include_dirs,
+ self.cflags, target_arch, self.dumper_flags)
+
+
+class LsdumpModule(Module):
+ def __init__(self, name, arch, srcs, version_script, cflags,
+ export_include_dirs, api, dumper_flags=tuple(),
+ linker_flags=tuple()):
+ super(LsdumpModule, self).__init__(name, arch, cflags,
+ export_include_dirs)
+ self.srcs = relative_to_abs_path_list(srcs)
+ self.version_script = relative_to_abs_path(version_script)
self.api = api
self.dumper_flags = dumper_flags
self.linker_flags = linker_flags
- def get_name(self):
- return self.name
+ def get_dump_name(self):
+ return self.name + SOURCE_ABI_DUMP_EXT
- def get_arch(self):
- return self.arch
-
- def get_srcs(self):
- return self.srcs
-
- def get_export_include_dirs(self):
- return self.export_include_dirs
-
- def get_cflags(self):
- return self.cflags
-
- def get_version_script(self):
- return self.version_script
-
- def get_api(self):
- return self.api
-
- def get_dumper_flags(self):
- return self.dumper_flags
-
- def get_linker_flags(self):
- return self.linker_flags
-
- def make_lsdump(self, default_cflags):
+ def make_dump(self, default_cflags):
""" For each source file, produce a .sdump file, and link them to form
an lsump file"""
dumps_to_link = []
with tempfile.TemporaryDirectory() as tmp:
- output_lsdump = os.path.join(tmp, self.name) + SOURCE_ABI_DUMP_EXT
+ output_lsdump = os.path.join(tmp, self.get_dump_name())
for src in self.srcs:
output_path = os.path.join(tmp, os.path.basename(src)) + '.sdump'
dumps_to_link.append(output_path)
@@ -96,40 +133,25 @@
self.version_script, self.api,
self.arch, self.linker_flags)
- @staticmethod
- def mutate_module_for_arch(module, target_arch):
- name = module.get_name()
- srcs = module.get_srcs()
- version_script = module.get_version_script()
- cflags = module.get_cflags()
- export_include_dirs = module.get_export_include_dirs()
- api = module.get_api()
- dumper_flags = module.get_dumper_flags()
- linker_flags = module.get_linker_flags()
- return Module(name, target_arch, srcs, version_script, cflags,
- export_include_dirs, api, dumper_flags, linker_flags)
+ def mutate_for_arch(self, target_arch):
+ return LsdumpModule(self.name, target_arch, self.srcs,
+ self.version_script, self.cflags,
+ self.export_include_dirs, self.api,
+ self.dumper_flags, self.linker_flags)
- @staticmethod
- def mutate_module_for_all_arches(module):
- modules = []
- for target_arch in TARGET_ARCHS:
- modules.append(Module.mutate_module_for_arch(module, target_arch))
- return modules
-
- @staticmethod
- def get_test_modules():
- modules = []
- for module in TEST_MODULES.values():
- if module.get_arch() == '':
- modules += Module.mutate_module_for_all_arches(module)
- return modules
-
- @staticmethod
- def get_test_module_by_name(name):
- return TEST_MODULES[name]
TEST_MODULES = [
- Module(
+ SdumpModule(
+ name='undeclared_types.h',
+ src='integration/cpp/header/undeclared_types.h',
+ arch='',
+ dumper_flags=['-suppress-errors', '-output-format', 'Json']),
+ SdumpModule(
+ name='known_issues.h',
+ src='integration/cpp/header/known_issues.h',
+ arch='',
+ dumper_flags=['-suppress-errors', '-output-format', 'Json']),
+ LsdumpModule(
name='libc_and_cpp',
srcs=[
'integration/c_and_cpp/source1.cpp',
@@ -141,7 +163,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libc_and_cpp_with_opaque_ptr_a',
srcs=[
'integration/c_and_cpp/source1.cpp',
@@ -153,7 +175,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libc_and_cpp_with_opaque_ptr_b',
srcs=[
'integration/c_and_cpp/source1.cpp',
@@ -165,7 +187,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libc_and_cpp_with_unused_struct',
srcs=[
'integration/c_and_cpp/source1.cpp',
@@ -177,7 +199,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libc_and_cpp_with_unused_cstruct',
srcs=[
'integration/c_and_cpp/source1.cpp',
@@ -189,7 +211,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -202,7 +224,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_odr',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -215,7 +237,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_add_function',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -228,7 +250,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_add_function_and_unexported_elf',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -241,7 +263,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_change_function_access',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -254,7 +276,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_add_global_variable',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -267,7 +289,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_add_global_variable_private',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -280,7 +302,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_return_type_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -293,7 +315,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_parameter_type_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -306,7 +328,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_vtable_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -319,7 +341,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_member_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -332,7 +354,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_member_fake_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -345,7 +367,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_member_cv_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -358,7 +380,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_change_member_access',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -371,7 +393,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_member_integral_type_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -384,7 +406,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_enum_diff',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -397,7 +419,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_enum_extended',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -410,7 +432,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_unreferenced_elf_symbol_removed',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -423,7 +445,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libreproducability',
srcs=['integration/c_and_cpp/reproducability.c'],
version_script='integration/c_and_cpp/repro_map.txt',
@@ -432,7 +454,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_member_name_changed',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -445,7 +467,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_function_pointer',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -458,7 +480,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_function_pointer_parameter_added',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -472,7 +494,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_internal_public_struct',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -486,7 +508,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_internal_private_struct',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -499,7 +521,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_inheritance_type_changed',
srcs=[
'integration/cpp/gold/golden_1.cpp',
@@ -512,7 +534,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libpure_virtual_function',
srcs=['integration/cpp/pure_virtual/pure_virtual_function.cpp'],
export_include_dirs=['integration/cpp/pure_virtual/include'],
@@ -521,7 +543,7 @@
arch='',
api='current',
),
- Module(
+ LsdumpModule(
name='libgolden_cpp_json',
srcs=[
'integration/cpp/gold/golden_1.cpp',
diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm/known_issues.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/arm/known_issues.h.sdump
new file mode 100644
index 0000000..482c1b2
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/arm/known_issues.h.sdump
@@ -0,0 +1,46 @@
+{
+ "array_types" : [],
+ "builtin_types" :
+ [
+ {
+ "alignment" : 4,
+ "is_integral" : true,
+ "linker_set_key" : "int",
+ "name" : "int",
+ "referenced_type" : "type-1",
+ "self_type" : "type-1",
+ "size" : 4
+ }
+ ],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" : [],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "non_type_template",
+ "name" : "non_type_template",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "return_type",
+ "name" : "return_type",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "template_arg_in_namespace",
+ "name" : "template_arg_in_namespace",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ }
+ ],
+ "lvalue_reference_types" : [],
+ "pointer_types" : [],
+ "qualified_types" : [],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm/undeclared_types.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/arm/undeclared_types.h.sdump
new file mode 100644
index 0000000..ff0ffb7
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/arm/undeclared_types.h.sdump
@@ -0,0 +1,113 @@
+{
+ "array_types" : [],
+ "builtin_types" : [],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" :
+ [
+ {
+ "function_name" : "inline_function",
+ "linker_set_key" : "_Z15inline_function10template_cIJ10template_dIJA_N11namespace_c1CEEEEE",
+ "parameters" :
+ [
+ {
+ "referenced_type" : "type-5"
+ }
+ ],
+ "return_type" : "type-4",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "access" : "private",
+ "function_name" : "InvalidClass::member_function",
+ "linker_set_key" : "_ZN12InvalidClass15member_functionE1E",
+ "parameters" :
+ [
+ {
+ "is_this_ptr" : true,
+ "referenced_type" : "type-8"
+ },
+ {
+ "referenced_type" : "type-9"
+ }
+ ],
+ "return_type" : "type-6",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "a",
+ "name" : "a",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "b",
+ "name" : "b",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "c",
+ "name" : "c",
+ "referenced_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "template_in_macro",
+ "name" : "template_in_macro",
+ "referenced_type" : "type-11",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "lvalue_reference_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "namespace_a::A &",
+ "name" : "namespace_a::A &",
+ "referenced_type" : "type-1",
+ "self_type" : "type-4",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "pointer_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "InvalidClass *",
+ "name" : "InvalidClass *",
+ "referenced_type" : "type-7",
+ "self_type" : "type-8",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "alignment" : 8,
+ "linker_set_key" : "TemplateInMacro<F> *",
+ "name" : "TemplateInMacro<F> *",
+ "referenced_type" : "type-10",
+ "self_type" : "type-11",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "qualified_types" :
+ [
+ {
+ "is_const" : true,
+ "linker_set_key" : "const namespace_b::template_b<const B *>",
+ "name" : "const namespace_b::template_b<const B *>",
+ "referenced_type" : "type-2",
+ "self_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm64/known_issues.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/arm64/known_issues.h.sdump
new file mode 100644
index 0000000..482c1b2
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/arm64/known_issues.h.sdump
@@ -0,0 +1,46 @@
+{
+ "array_types" : [],
+ "builtin_types" :
+ [
+ {
+ "alignment" : 4,
+ "is_integral" : true,
+ "linker_set_key" : "int",
+ "name" : "int",
+ "referenced_type" : "type-1",
+ "self_type" : "type-1",
+ "size" : 4
+ }
+ ],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" : [],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "non_type_template",
+ "name" : "non_type_template",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "return_type",
+ "name" : "return_type",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "template_arg_in_namespace",
+ "name" : "template_arg_in_namespace",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ }
+ ],
+ "lvalue_reference_types" : [],
+ "pointer_types" : [],
+ "qualified_types" : [],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm64/undeclared_types.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/arm64/undeclared_types.h.sdump
new file mode 100644
index 0000000..ff0ffb7
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/arm64/undeclared_types.h.sdump
@@ -0,0 +1,113 @@
+{
+ "array_types" : [],
+ "builtin_types" : [],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" :
+ [
+ {
+ "function_name" : "inline_function",
+ "linker_set_key" : "_Z15inline_function10template_cIJ10template_dIJA_N11namespace_c1CEEEEE",
+ "parameters" :
+ [
+ {
+ "referenced_type" : "type-5"
+ }
+ ],
+ "return_type" : "type-4",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "access" : "private",
+ "function_name" : "InvalidClass::member_function",
+ "linker_set_key" : "_ZN12InvalidClass15member_functionE1E",
+ "parameters" :
+ [
+ {
+ "is_this_ptr" : true,
+ "referenced_type" : "type-8"
+ },
+ {
+ "referenced_type" : "type-9"
+ }
+ ],
+ "return_type" : "type-6",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "a",
+ "name" : "a",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "b",
+ "name" : "b",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "c",
+ "name" : "c",
+ "referenced_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "template_in_macro",
+ "name" : "template_in_macro",
+ "referenced_type" : "type-11",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "lvalue_reference_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "namespace_a::A &",
+ "name" : "namespace_a::A &",
+ "referenced_type" : "type-1",
+ "self_type" : "type-4",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "pointer_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "InvalidClass *",
+ "name" : "InvalidClass *",
+ "referenced_type" : "type-7",
+ "self_type" : "type-8",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "alignment" : 8,
+ "linker_set_key" : "TemplateInMacro<F> *",
+ "name" : "TemplateInMacro<F> *",
+ "referenced_type" : "type-10",
+ "self_type" : "type-11",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "qualified_types" :
+ [
+ {
+ "is_const" : true,
+ "linker_set_key" : "const namespace_b::template_b<const B *>",
+ "name" : "const namespace_b::template_b<const B *>",
+ "referenced_type" : "type-2",
+ "self_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/mips/known_issues.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/mips/known_issues.h.sdump
new file mode 100644
index 0000000..482c1b2
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/mips/known_issues.h.sdump
@@ -0,0 +1,46 @@
+{
+ "array_types" : [],
+ "builtin_types" :
+ [
+ {
+ "alignment" : 4,
+ "is_integral" : true,
+ "linker_set_key" : "int",
+ "name" : "int",
+ "referenced_type" : "type-1",
+ "self_type" : "type-1",
+ "size" : 4
+ }
+ ],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" : [],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "non_type_template",
+ "name" : "non_type_template",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "return_type",
+ "name" : "return_type",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "template_arg_in_namespace",
+ "name" : "template_arg_in_namespace",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ }
+ ],
+ "lvalue_reference_types" : [],
+ "pointer_types" : [],
+ "qualified_types" : [],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/mips/undeclared_types.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/mips/undeclared_types.h.sdump
new file mode 100644
index 0000000..ff0ffb7
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/mips/undeclared_types.h.sdump
@@ -0,0 +1,113 @@
+{
+ "array_types" : [],
+ "builtin_types" : [],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" :
+ [
+ {
+ "function_name" : "inline_function",
+ "linker_set_key" : "_Z15inline_function10template_cIJ10template_dIJA_N11namespace_c1CEEEEE",
+ "parameters" :
+ [
+ {
+ "referenced_type" : "type-5"
+ }
+ ],
+ "return_type" : "type-4",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "access" : "private",
+ "function_name" : "InvalidClass::member_function",
+ "linker_set_key" : "_ZN12InvalidClass15member_functionE1E",
+ "parameters" :
+ [
+ {
+ "is_this_ptr" : true,
+ "referenced_type" : "type-8"
+ },
+ {
+ "referenced_type" : "type-9"
+ }
+ ],
+ "return_type" : "type-6",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "a",
+ "name" : "a",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "b",
+ "name" : "b",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "c",
+ "name" : "c",
+ "referenced_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "template_in_macro",
+ "name" : "template_in_macro",
+ "referenced_type" : "type-11",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "lvalue_reference_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "namespace_a::A &",
+ "name" : "namespace_a::A &",
+ "referenced_type" : "type-1",
+ "self_type" : "type-4",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "pointer_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "InvalidClass *",
+ "name" : "InvalidClass *",
+ "referenced_type" : "type-7",
+ "self_type" : "type-8",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "alignment" : 8,
+ "linker_set_key" : "TemplateInMacro<F> *",
+ "name" : "TemplateInMacro<F> *",
+ "referenced_type" : "type-10",
+ "self_type" : "type-11",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "qualified_types" :
+ [
+ {
+ "is_const" : true,
+ "linker_set_key" : "const namespace_b::template_b<const B *>",
+ "name" : "const namespace_b::template_b<const B *>",
+ "referenced_type" : "type-2",
+ "self_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/mips64/known_issues.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/mips64/known_issues.h.sdump
new file mode 100644
index 0000000..482c1b2
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/mips64/known_issues.h.sdump
@@ -0,0 +1,46 @@
+{
+ "array_types" : [],
+ "builtin_types" :
+ [
+ {
+ "alignment" : 4,
+ "is_integral" : true,
+ "linker_set_key" : "int",
+ "name" : "int",
+ "referenced_type" : "type-1",
+ "self_type" : "type-1",
+ "size" : 4
+ }
+ ],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" : [],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "non_type_template",
+ "name" : "non_type_template",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "return_type",
+ "name" : "return_type",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "template_arg_in_namespace",
+ "name" : "template_arg_in_namespace",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ }
+ ],
+ "lvalue_reference_types" : [],
+ "pointer_types" : [],
+ "qualified_types" : [],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/mips64/undeclared_types.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/mips64/undeclared_types.h.sdump
new file mode 100644
index 0000000..ff0ffb7
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/mips64/undeclared_types.h.sdump
@@ -0,0 +1,113 @@
+{
+ "array_types" : [],
+ "builtin_types" : [],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" :
+ [
+ {
+ "function_name" : "inline_function",
+ "linker_set_key" : "_Z15inline_function10template_cIJ10template_dIJA_N11namespace_c1CEEEEE",
+ "parameters" :
+ [
+ {
+ "referenced_type" : "type-5"
+ }
+ ],
+ "return_type" : "type-4",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "access" : "private",
+ "function_name" : "InvalidClass::member_function",
+ "linker_set_key" : "_ZN12InvalidClass15member_functionE1E",
+ "parameters" :
+ [
+ {
+ "is_this_ptr" : true,
+ "referenced_type" : "type-8"
+ },
+ {
+ "referenced_type" : "type-9"
+ }
+ ],
+ "return_type" : "type-6",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "a",
+ "name" : "a",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "b",
+ "name" : "b",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "c",
+ "name" : "c",
+ "referenced_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "template_in_macro",
+ "name" : "template_in_macro",
+ "referenced_type" : "type-11",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "lvalue_reference_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "namespace_a::A &",
+ "name" : "namespace_a::A &",
+ "referenced_type" : "type-1",
+ "self_type" : "type-4",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "pointer_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "InvalidClass *",
+ "name" : "InvalidClass *",
+ "referenced_type" : "type-7",
+ "self_type" : "type-8",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "alignment" : 8,
+ "linker_set_key" : "TemplateInMacro<F> *",
+ "name" : "TemplateInMacro<F> *",
+ "referenced_type" : "type-10",
+ "self_type" : "type-11",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "qualified_types" :
+ [
+ {
+ "is_const" : true,
+ "linker_set_key" : "const namespace_b::template_b<const B *>",
+ "name" : "const namespace_b::template_b<const B *>",
+ "referenced_type" : "type-2",
+ "self_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/x86/known_issues.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/x86/known_issues.h.sdump
new file mode 100644
index 0000000..482c1b2
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/x86/known_issues.h.sdump
@@ -0,0 +1,46 @@
+{
+ "array_types" : [],
+ "builtin_types" :
+ [
+ {
+ "alignment" : 4,
+ "is_integral" : true,
+ "linker_set_key" : "int",
+ "name" : "int",
+ "referenced_type" : "type-1",
+ "self_type" : "type-1",
+ "size" : 4
+ }
+ ],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" : [],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "non_type_template",
+ "name" : "non_type_template",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "return_type",
+ "name" : "return_type",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "template_arg_in_namespace",
+ "name" : "template_arg_in_namespace",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ }
+ ],
+ "lvalue_reference_types" : [],
+ "pointer_types" : [],
+ "qualified_types" : [],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/x86/undeclared_types.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/x86/undeclared_types.h.sdump
new file mode 100644
index 0000000..ff0ffb7
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/x86/undeclared_types.h.sdump
@@ -0,0 +1,113 @@
+{
+ "array_types" : [],
+ "builtin_types" : [],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" :
+ [
+ {
+ "function_name" : "inline_function",
+ "linker_set_key" : "_Z15inline_function10template_cIJ10template_dIJA_N11namespace_c1CEEEEE",
+ "parameters" :
+ [
+ {
+ "referenced_type" : "type-5"
+ }
+ ],
+ "return_type" : "type-4",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "access" : "private",
+ "function_name" : "InvalidClass::member_function",
+ "linker_set_key" : "_ZN12InvalidClass15member_functionE1E",
+ "parameters" :
+ [
+ {
+ "is_this_ptr" : true,
+ "referenced_type" : "type-8"
+ },
+ {
+ "referenced_type" : "type-9"
+ }
+ ],
+ "return_type" : "type-6",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "a",
+ "name" : "a",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "b",
+ "name" : "b",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "c",
+ "name" : "c",
+ "referenced_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "template_in_macro",
+ "name" : "template_in_macro",
+ "referenced_type" : "type-11",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "lvalue_reference_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "namespace_a::A &",
+ "name" : "namespace_a::A &",
+ "referenced_type" : "type-1",
+ "self_type" : "type-4",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "pointer_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "InvalidClass *",
+ "name" : "InvalidClass *",
+ "referenced_type" : "type-7",
+ "self_type" : "type-8",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "alignment" : 8,
+ "linker_set_key" : "TemplateInMacro<F> *",
+ "name" : "TemplateInMacro<F> *",
+ "referenced_type" : "type-10",
+ "self_type" : "type-11",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "qualified_types" :
+ [
+ {
+ "is_const" : true,
+ "linker_set_key" : "const namespace_b::template_b<const B *>",
+ "name" : "const namespace_b::template_b<const B *>",
+ "referenced_type" : "type-2",
+ "self_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/x86_64/known_issues.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/x86_64/known_issues.h.sdump
new file mode 100644
index 0000000..482c1b2
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/x86_64/known_issues.h.sdump
@@ -0,0 +1,46 @@
+{
+ "array_types" : [],
+ "builtin_types" :
+ [
+ {
+ "alignment" : 4,
+ "is_integral" : true,
+ "linker_set_key" : "int",
+ "name" : "int",
+ "referenced_type" : "type-1",
+ "self_type" : "type-1",
+ "size" : 4
+ }
+ ],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" : [],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "non_type_template",
+ "name" : "non_type_template",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "return_type",
+ "name" : "return_type",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ },
+ {
+ "linker_set_key" : "template_arg_in_namespace",
+ "name" : "template_arg_in_namespace",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/known_issues.h"
+ }
+ ],
+ "lvalue_reference_types" : [],
+ "pointer_types" : [],
+ "qualified_types" : [],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/reference_dumps/x86_64/undeclared_types.h.sdump b/vndk/tools/header-checker/tests/reference_dumps/x86_64/undeclared_types.h.sdump
new file mode 100644
index 0000000..ff0ffb7
--- /dev/null
+++ b/vndk/tools/header-checker/tests/reference_dumps/x86_64/undeclared_types.h.sdump
@@ -0,0 +1,113 @@
+{
+ "array_types" : [],
+ "builtin_types" : [],
+ "elf_functions" : [],
+ "elf_objects" : [],
+ "enum_types" : [],
+ "function_types" : [],
+ "functions" :
+ [
+ {
+ "function_name" : "inline_function",
+ "linker_set_key" : "_Z15inline_function10template_cIJ10template_dIJA_N11namespace_c1CEEEEE",
+ "parameters" :
+ [
+ {
+ "referenced_type" : "type-5"
+ }
+ ],
+ "return_type" : "type-4",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "access" : "private",
+ "function_name" : "InvalidClass::member_function",
+ "linker_set_key" : "_ZN12InvalidClass15member_functionE1E",
+ "parameters" :
+ [
+ {
+ "is_this_ptr" : true,
+ "referenced_type" : "type-8"
+ },
+ {
+ "referenced_type" : "type-9"
+ }
+ ],
+ "return_type" : "type-6",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "global_vars" :
+ [
+ {
+ "linker_set_key" : "a",
+ "name" : "a",
+ "referenced_type" : "type-1",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "b",
+ "name" : "b",
+ "referenced_type" : "type-2",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "c",
+ "name" : "c",
+ "referenced_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "linker_set_key" : "template_in_macro",
+ "name" : "template_in_macro",
+ "referenced_type" : "type-11",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "lvalue_reference_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "namespace_a::A &",
+ "name" : "namespace_a::A &",
+ "referenced_type" : "type-1",
+ "self_type" : "type-4",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "pointer_types" :
+ [
+ {
+ "alignment" : 8,
+ "linker_set_key" : "InvalidClass *",
+ "name" : "InvalidClass *",
+ "referenced_type" : "type-7",
+ "self_type" : "type-8",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ },
+ {
+ "alignment" : 8,
+ "linker_set_key" : "TemplateInMacro<F> *",
+ "name" : "TemplateInMacro<F> *",
+ "referenced_type" : "type-10",
+ "self_type" : "type-11",
+ "size" : 8,
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "qualified_types" :
+ [
+ {
+ "is_const" : true,
+ "linker_set_key" : "const namespace_b::template_b<const B *>",
+ "name" : "const namespace_b::template_b<const B *>",
+ "referenced_type" : "type-2",
+ "self_type" : "type-3",
+ "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/header/undeclared_types.h"
+ }
+ ],
+ "record_types" : [],
+ "rvalue_reference_types" : []
+}
diff --git a/vndk/tools/header-checker/tests/test.py b/vndk/tools/header-checker/tests/test.py
index ad2db84..7540bc8 100755
--- a/vndk/tools/header-checker/tests/test.py
+++ b/vndk/tools/header-checker/tests/test.py
@@ -27,12 +27,6 @@
def setUpClass(cls):
cls.maxDiff = None
- def get_reference_dump_path(self, name, target_arch):
- ref_dump_dir = os.path.join(REF_DUMP_DIR, target_arch)
- ref_dump_path = os.path.join(ref_dump_dir,
- name + SOURCE_ABI_DUMP_EXT)
- return ref_dump_path
-
def run_and_compare(self, input_path, expected_path, cflags=[]):
with open(expected_path, 'r') as f:
expected_output = f.read()
@@ -62,15 +56,16 @@
'test', target_arch, expected_return_code,
flags)
- def create_ref_dump(self, name, dir_name, target_arch):
- module_bare = Module.get_test_module_by_name(name)
- module = Module.mutate_module_for_arch(module_bare, target_arch)
+ def create_ref_dump(self, module_bare, dir_name, target_arch):
+ module = module_bare.mutate_for_arch(target_arch)
return make_and_copy_reference_dumps(module, [], dir_name)
def get_or_create_ref_dump(self, name, target_arch, dir_name, create):
+ module = Module.get_test_module_by_name(name)
if create == True:
- return self.create_ref_dump(name, dir_name, target_arch)
- return self.get_reference_dump_path(name, target_arch)
+ return self.create_ref_dump(module, dir_name, target_arch)
+ return os.path.join(REF_DUMP_DIR, target_arch,
+ module.get_dump_name() if module else name)
def prepare_and_run_abi_diff_all_archs(self, old_lib, new_lib,
expected_return_code, flags=[],
@@ -109,6 +104,14 @@
def test_example3_h(self):
self.run_and_compare_name_cpp('example3.h')
+ def test_undeclared_types_h(self):
+ self.prepare_and_absolute_diff_all_archs(
+ 'undeclared_types.h', 'undeclared_types.h')
+
+ def test_known_issues_h(self):
+ self.prepare_and_absolute_diff_all_archs(
+ 'known_issues.h', 'known_issues.h')
+
def test_libc_and_cpp(self):
self.prepare_and_run_abi_diff_all_archs(
"libc_and_cpp", "libc_and_cpp", 0)
@@ -211,8 +214,8 @@
def test_libgolden_cpp_fabricated_function_ast_removed_diff(self):
self.prepare_and_run_abi_diff_all_archs(
- "libgolden_cpp_fabricated_function_ast_removed", "libgolden_cpp", 0,
- [], False)
+ "libgolden_cpp_fabricated_function_ast_removed.so.lsdump",
+ "libgolden_cpp", 0, [], False)
def test_libgolden_cpp_member_fake_diff(self):
self.prepare_and_run_abi_diff_all_archs(
diff --git a/vndk/tools/header-checker/utils/utils.py b/vndk/tools/header-checker/utils/utils.py
index fbccbeb..74b2aec 100644
--- a/vndk/tools/header-checker/utils/utils.py
+++ b/vndk/tools/header-checker/utils/utils.py
@@ -78,14 +78,13 @@
return reference_dump_path
-def copy_reference_dump_content(lib_name, output_content,
+def copy_reference_dump_content(file_name, output_content,
reference_dump_dir_stem,
reference_dump_dir_insertion, lib_arch):
reference_dump_dir = get_reference_dump_dir(reference_dump_dir_stem,
reference_dump_dir_insertion,
lib_arch)
- reference_dump_path = os.path.join(reference_dump_dir,
- lib_name + SOURCE_ABI_DUMP_EXT)
+ reference_dump_path = os.path.join(reference_dump_dir, file_name)
os.makedirs(os.path.dirname(reference_dump_path), exist_ok=True)
with open(reference_dump_path, 'w') as f:
f.write(output_content)
@@ -100,11 +99,12 @@
def run_header_abi_dumper(input_path, remove_absolute_paths, cflags=tuple(),
- export_include_dirs=EXPORTED_HEADERS_DIR):
+ export_include_dirs=EXPORTED_HEADERS_DIR,
+ flags=tuple()):
with tempfile.TemporaryDirectory() as tmp:
output_path = os.path.join(tmp, os.path.basename(input_path)) + '.dump'
run_header_abi_dumper_on_file(input_path, output_path,
- export_include_dirs, cflags)
+ export_include_dirs, cflags, flags)
if remove_absolute_paths:
return read_output_content(output_path, AOSP_DIR)
with open(output_path, 'r') as f: