diff options
author | Aleksei Vetrov <vvvvvv@google.com> | 2023-11-09 17:25:03 +0000 |
---|---|---|
committer | Giuliano Procida <gprocida@google.com> | 2023-11-15 09:11:58 +0000 |
commit | d658ec3aba69f82f730a0bc41620586c4d05d019 (patch) | |
tree | 5b86101b8248884c30e098a188d9b29ec183322c /test_cases/abigail_reader/member | |
parent | 73a177dda5588acb7f89c0dd53922c946226a19b (diff) | |
download | stg-d658ec3aba69f82f730a0bc41620586c4d05d019.tar.gz |
test cases: add abigail_reader tests converted from info_tests
Create XML files from all "info" test cases to test abigail reader.
XML files were generated using `abidw` (version `2.1.0`) on compiled source
files from `info_tests`. For example, commands would look like:
```
clang-17 -std=c17 -g -fstandalone-debug --target=riscv64-linux-gnu \
-c simple_array.c -o simple_array.c.o
abidw --no-architecture --no-corpus-path --type-id-style hash \
--no-comp-dir-path --no-show-locs simple_array.c.o \
> simple_array.c.raw_xml
```
STG expectation files were generated by running command like:
`stg --abi simple_array.c.xml --output expected/simple_array_c.abi_stg`
PiperOrigin-RevId: 580932823
Change-Id: I2fc00a76c164f61fa779750ed84975af0cfa298e
Diffstat (limited to 'test_cases/abigail_reader/member')
4 files changed, 346 insertions, 0 deletions
diff --git a/test_cases/abigail_reader/member/expected/member_types_cc.abi_stg b/test_cases/abigail_reader/member/expected/member_types_cc.abi_stg new file mode 100644 index 0000000..1d5392c --- /dev/null +++ b/test_cases/abigail_reader/member/expected/member_types_cc.abi_stg @@ -0,0 +1,108 @@ +version: 0x00000002 +root_id: 0x84ea5130 +typedef { + id: 0x4cf6e5b0 + name: "Scope::TypedefDecl" + referred_type_id: 0xfc0e1dbd +} +primitive { + id: 0x398ea63b + name: "unnamed-enum-underlying-type-32" + bytesize: 0x00000004 +} +primitive { + id: 0xfc0e1dbd + name: "long" + bytesize: 0x00000008 +} +member { + id: 0xa04e65cb + name: "x" + type_id: 0xfc0e1dbd +} +struct_union { + id: 0xcaaeb4e7 + kind: STRUCT + name: "Scope::ClassDecl" + definition { + bytesize: 8 + member_id: 0xa04e65cb + } +} +struct_union { + id: 0x7c169231 + kind: STRUCT + name: "Scope::StructDecl" + definition { + bytesize: 8 + member_id: 0xa04e65cb + } +} +struct_union { + id: 0xb493105f + kind: UNION + name: "Scope::UnionDecl" + definition { + bytesize: 8 + member_id: 0xa04e65cb + } +} +enumeration { + id: 0x83c8a573 + name: "Scope::EnumDecl" + definition { + underlying_type_id: 0x398ea63b + enumerator { + name: "X" + value: 2 + } + } +} +elf_symbol { + id: 0x477e22e9 + name: "class_decl" + is_defined: true + symbol_type: OBJECT + type_id: 0xcaaeb4e7 + full_name: "class_decl" +} +elf_symbol { + id: 0xd58568f2 + name: "enum_decl" + is_defined: true + symbol_type: OBJECT + type_id: 0x83c8a573 + full_name: "enum_decl" +} +elf_symbol { + id: 0x2e5e5d2a + name: "struct_decl" + is_defined: true + symbol_type: OBJECT + type_id: 0x7c169231 + full_name: "struct_decl" +} +elf_symbol { + id: 0xb9b8f74f + name: "typedef_decl" + is_defined: true + symbol_type: OBJECT + type_id: 0x4cf6e5b0 + full_name: "typedef_decl" +} +elf_symbol { + id: 0xc1804b63 + name: "union_decl" + is_defined: true + symbol_type: OBJECT + type_id: 0xb493105f + full_name: "union_decl" +} +interface { + id: 0x84ea5130 + symbol_id: 0x477e22e9 + symbol_id: 0xd58568f2 + symbol_id: 0x2e5e5d2a + symbol_id: 0xb9b8f74f + symbol_id: 0xc1804b63 +} diff --git a/test_cases/abigail_reader/member/expected/pointer_to_member_cc.abi_stg b/test_cases/abigail_reader/member/expected/pointer_to_member_cc.abi_stg new file mode 100644 index 0000000..37bf79e --- /dev/null +++ b/test_cases/abigail_reader/member/expected/pointer_to_member_cc.abi_stg @@ -0,0 +1,150 @@ +version: 0x00000002 +root_id: 0x84ea5130 +special { + id: 0x48b5725f + kind: VOID +} +pointer_reference { + id: 0x0eb62dc3 + kind: POINTER + pointee_type_id: 0x10985193 +} +function { + id: 0x10985193 + return_type_id: 0x48b5725f +} +elf_symbol { + id: 0xba0e5cd0 + name: "_Z2s2v" + is_defined: true + symbol_type: FUNCTION + type_id: 0x10985193 + full_name: "s2" +} +elf_symbol { + id: 0x13e4cc52 + name: "_Z7pmz_funv" + is_defined: true + symbol_type: FUNCTION + type_id: 0x10985193 + full_name: "pmz_fun" +} +elf_symbol { + id: 0x648621f2 + name: "pmc" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xff819903 + name: "pmcu" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x2ec71519 + name: "pmd" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xa0583676 + name: "pmf" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xfd020c80 + name: "pmi" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xf60097d9 + name: "pmu" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xc90bc4a4 + name: "pmy" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xdaa14405 + name: "s0" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x1660e091 + name: "s1" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x9be13bad + name: "s3" + is_defined: true + symbol_type: OBJECT + type_id: 0x0eb62dc3 + full_name: "s3" +} +elf_symbol { + id: 0xd5a33a44 + name: "s4" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x136353fe + name: "s5" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x57200721 + name: "s6" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x94e3994e + name: "s7" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0xd0a5df97 + name: "s8" + is_defined: true + symbol_type: OBJECT +} +elf_symbol { + id: 0x3065441f + name: "s9" + is_defined: true + symbol_type: OBJECT +} +interface { + id: 0x84ea5130 + symbol_id: 0xba0e5cd0 + symbol_id: 0x13e4cc52 + symbol_id: 0x648621f2 + symbol_id: 0xff819903 + symbol_id: 0x2ec71519 + symbol_id: 0xa0583676 + symbol_id: 0xfd020c80 + symbol_id: 0xf60097d9 + symbol_id: 0xc90bc4a4 + symbol_id: 0xdaa14405 + symbol_id: 0x1660e091 + symbol_id: 0x9be13bad + symbol_id: 0xd5a33a44 + symbol_id: 0x136353fe + symbol_id: 0x57200721 + symbol_id: 0x94e3994e + symbol_id: 0xd0a5df97 + symbol_id: 0x3065441f +} diff --git a/test_cases/abigail_reader/member/member_types.cc.xml b/test_cases/abigail_reader/member/member_types.cc.xml new file mode 100644 index 0000000..e2578df --- /dev/null +++ b/test_cases/abigail_reader/member/member_types.cc.xml @@ -0,0 +1,50 @@ +<abi-corpus version='2.1'> + <elf-variable-symbols> + <elf-symbol name='class_decl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='enum_decl' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='struct_decl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='typedef_decl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='union_decl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + </elf-variable-symbols> + <abi-instr address-size='64' path='member_types.cc' language='LANG_C_plus_plus_14'> + <type-decl name='long' size-in-bits='64' id='c2ecdf53'/> + <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='9cac1fee'/> + <class-decl name='Scope' size-in-bits='8' is-struct='yes' visibility='default' id='036608f3'> + <member-type access='public'> + <class-decl name='StructDecl' size-in-bits='64' is-struct='yes' visibility='default' id='937deee2'> + <data-member access='public' layout-offset-in-bits='0'> + <var-decl name='x' type-id='c2ecdf53' visibility='default'/> + </data-member> + </class-decl> + </member-type> + <member-type access='public'> + <class-decl name='ClassDecl' size-in-bits='64' visibility='default' id='7a00293d'> + <data-member access='private' layout-offset-in-bits='0'> + <var-decl name='x' type-id='c2ecdf53' visibility='default'/> + </data-member> + </class-decl> + </member-type> + <member-type access='public'> + <union-decl name='UnionDecl' size-in-bits='64' visibility='default' id='949739cf'> + <data-member access='public'> + <var-decl name='x' type-id='c2ecdf53' visibility='default'/> + </data-member> + </union-decl> + </member-type> + <member-type access='public'> + <enum-decl name='EnumDecl' id='510ca2f5'> + <underlying-type type-id='9cac1fee'/> + <enumerator name='X' value='2'/> + </enum-decl> + </member-type> + <member-type access='public'> + <typedef-decl name='TypedefDecl' type-id='c2ecdf53' id='a0a6c51f'/> + </member-type> + </class-decl> + <var-decl name='struct_decl' type-id='937deee2' mangled-name='struct_decl' visibility='default' elf-symbol-id='struct_decl'/> + <var-decl name='class_decl' type-id='7a00293d' mangled-name='class_decl' visibility='default' elf-symbol-id='class_decl'/> + <var-decl name='union_decl' type-id='949739cf' mangled-name='union_decl' visibility='default' elf-symbol-id='union_decl'/> + <var-decl name='enum_decl' type-id='510ca2f5' mangled-name='enum_decl' visibility='default' elf-symbol-id='enum_decl'/> + <var-decl name='typedef_decl' type-id='a0a6c51f' mangled-name='typedef_decl' visibility='default' elf-symbol-id='typedef_decl'/> + </abi-instr> +</abi-corpus> diff --git a/test_cases/abigail_reader/member/pointer_to_member.cc.xml b/test_cases/abigail_reader/member/pointer_to_member.cc.xml new file mode 100644 index 0000000..bd821a3 --- /dev/null +++ b/test_cases/abigail_reader/member/pointer_to_member.cc.xml @@ -0,0 +1,38 @@ +<abi-corpus version='2.1'> + <elf-function-symbols> + <elf-symbol name='_Z2s2v' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='_Z7pmz_funv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + </elf-function-symbols> + <elf-variable-symbols> + <elf-symbol name='pmc' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='pmcu' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='pmd' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='pmf' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='pmi' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='pmu' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='pmy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s0' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s1' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s3' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s4' size='56' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s5' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s6' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s7' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s8' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + <elf-symbol name='s9' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/> + </elf-variable-symbols> + <abi-instr address-size='64' path='pointer_to_member.cc' language='LANG_C_plus_plus_14'> + <pointer-type-def type-id='ee076206' size-in-bits='64' id='953b12f8'/> + <function-decl name='s2' mangled-name='_Z2s2v' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z2s2v'> + <return type-id='48b5725f'/> + </function-decl> + <var-decl name='s3' type-id='953b12f8' mangled-name='s3' visibility='default' elf-symbol-id='s3'/> + <function-decl name='pmz_fun' mangled-name='_Z7pmz_funv' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z7pmz_funv'> + <return type-id='48b5725f'/> + </function-decl> + <function-type size-in-bits='64' id='ee076206'> + <return type-id='48b5725f'/> + </function-type> + <type-decl name='void' id='48b5725f'/> + </abi-instr> +</abi-corpus> |