aboutsummaryrefslogtreecommitdiff
path: root/test_cases/abigail_reader/member
diff options
context:
space:
mode:
authorAleksei Vetrov <vvvvvv@google.com>2023-11-09 17:25:03 +0000
committerGiuliano Procida <gprocida@google.com>2023-11-15 09:11:58 +0000
commitd658ec3aba69f82f730a0bc41620586c4d05d019 (patch)
tree5b86101b8248884c30e098a188d9b29ec183322c /test_cases/abigail_reader/member
parent73a177dda5588acb7f89c0dd53922c946226a19b (diff)
downloadstg-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')
-rw-r--r--test_cases/abigail_reader/member/expected/member_types_cc.abi_stg108
-rw-r--r--test_cases/abigail_reader/member/expected/pointer_to_member_cc.abi_stg150
-rw-r--r--test_cases/abigail_reader/member/member_types.cc.xml50
-rw-r--r--test_cases/abigail_reader/member/pointer_to_member.cc.xml38
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>