1NAME=avrD msvc simple
2FILE=--
3CMDS=e anal.cpp.abi=msvc;"avrD .?AVClassName@@"
4EXPECT=<<EOF
5ClassName
6EOF
7RUN
8
9NAME=avrD msvc empty
10FILE=--
11CMDS=e anal.cpp.abi=msvc;"avrD .?AV@@"
12EXPECT=<<EOF
13EOF
14RUN
15
16NAME=avrD msvc namespaces
17FILE=--
18CMDS=e anal.cpp.abi=msvc;"avrD .?AVClassInInnerNamespace@InnerNamespace@OuterNamespace@@"
19EXPECT=<<EOF
20OuterNamespace::InnerNamespace::ClassInInnerNamespace
21EOF
22RUN
23
24NAME=avra and avrr msvc x86
25FILE=bins/pe/cpp-msvc-x86.exe
26CMDS=<<EOF
27aar
28avra
29?e --
30avrr
31acll
32EOF
33EXPECT=<<EOF
34Complete Object Locator at 0x00417860:
35	signature: 0
36	vftableOffset: 0
37	cdOffset: 0
38	typeDescriptorAddr: 0x004198b0
39	classDescriptorAddr: 0x00417874
40	objectBase: 0x00000000
41
42	Type Descriptor at 0x004198b0:
43		vtableAddr: 0x004121fc
44		spare: 0x00000000
45		name: .?AVAlbum@@
46
47	Class Hierarchy Descriptor at 0x00417874:
48		signature: 0
49		attributes: 0
50		numBaseClasses: 0x1
51		baseClassArrayAddr: 0x00417884
52
53		Base Class Descriptor:
54			typeDescriptorAddr: 0x004198b0
55			numContainedBases: 0
56			where:
57				mdisp: 0
58				pdisp: -1
59				vdisp: 0
60			attributes: 0x40
61
62			Type Descriptor at 0x004198b0:
63				vtableAddr: 0x004121fc
64				spare: 0x00000000
65				name: .?AVAlbum@@
66
67
68Complete Object Locator at 0x004178a8:
69	signature: 0
70	vftableOffset: 0
71	cdOffset: 0
72	typeDescriptorAddr: 0x004198c4
73	classDescriptorAddr: 0x004178bc
74	objectBase: 0x00000000
75
76	Type Descriptor at 0x004198c4:
77		vtableAddr: 0x004121fc
78		spare: 0x00000000
79		name: .?AVInAbsentia@@
80
81	Class Hierarchy Descriptor at 0x004178bc:
82		signature: 0
83		attributes: 0
84		numBaseClasses: 0x2
85		baseClassArrayAddr: 0x004178cc
86
87		Base Class Descriptor:
88			typeDescriptorAddr: 0x004198c4
89			numContainedBases: 0x1
90			where:
91				mdisp: 0
92				pdisp: -1
93				vdisp: 0
94			attributes: 0x40
95
96			Type Descriptor at 0x004198c4:
97				vtableAddr: 0x004121fc
98				spare: 0x00000000
99				name: .?AVInAbsentia@@
100
101		Base Class Descriptor:
102			typeDescriptorAddr: 0x004198b0
103			numContainedBases: 0
104			where:
105				mdisp: 0
106				pdisp: -1
107				vdisp: 0
108			attributes: 0x40
109
110			Type Descriptor at 0x004198b0:
111				vtableAddr: 0x004121fc
112				spare: 0x00000000
113				name: .?AVAlbum@@
114
115
116Complete Object Locator at 0x004178f4:
117	signature: 0
118	vftableOffset: 0
119	cdOffset: 0
120	typeDescriptorAddr: 0x004198e0
121	classDescriptorAddr: 0x00417908
122	objectBase: 0x00000000
123
124	Type Descriptor at 0x004198e0:
125		vtableAddr: 0x004121fc
126		spare: 0x00000000
127		name: .?AVtype_info@@
128
129	Class Hierarchy Descriptor at 0x00417908:
130		signature: 0
131		attributes: 0
132		numBaseClasses: 0x1
133		baseClassArrayAddr: 0x00417918
134
135		Base Class Descriptor:
136			typeDescriptorAddr: 0x004198e0
137			numContainedBases: 0
138			where:
139				mdisp: 0
140				pdisp: -1
141				vdisp: 0
142			attributes: 0x40
143
144			Type Descriptor at 0x004198e0:
145				vtableAddr: 0x004121fc
146				spare: 0x00000000
147				name: .?AVtype_info@@
148
149
150--
151Album
152  (vtable at 0x412164)
153  virtual_0 @ 0x40105d (vtable + 0x0)
154  virtual_4 @ 0x4010a7 (vtable + 0x4)
155InAbsentia: Album
156  (vtable at 0x4121a4)
157  virtual_0 @ 0x401088 (vtable + 0x0)
158  virtual_4 @ 0x4010b3 (vtable + 0x4)
159type_info
160  (vtable at 0x4121fc)
161  virtual_0 @ 0x401136 (vtable + 0x0)
162EOF
163RUN
164
165NAME=avraj msvc x86
166FILE=bins/pe/cpp-msvc-x86.exe
167CMDS=<<EOF
168aar
169avraj
170EOF
171EXPECT=<<EOF
172[{"complete_object_locator":{"signature":0,"vftable_offset":0,"cd_offset":0,"type_desc_addr":4298928,"class_desc_addr":4290676,"object_base":0},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVAlbum@@"},"class_hierarchy_desc":{"signature":0,"attributes":0,"num_base_classes":1,"base_class_array_addr":4290692},"base_classes":[{"desc":{"type_desc_addr":4298928,"num_contained_bases":0,"where":{"mdisp":0,"pdisp":-1,"vdisp":0},"attributes":64},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVAlbum@@"}}]},{"complete_object_locator":{"signature":0,"vftable_offset":0,"cd_offset":0,"type_desc_addr":4298948,"class_desc_addr":4290748,"object_base":0},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVInAbsentia@@"},"class_hierarchy_desc":{"signature":0,"attributes":0,"num_base_classes":2,"base_class_array_addr":4290764},"base_classes":[{"desc":{"type_desc_addr":4298948,"num_contained_bases":1,"where":{"mdisp":0,"pdisp":-1,"vdisp":0},"attributes":64},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVInAbsentia@@"}},{"desc":{"type_desc_addr":4298928,"num_contained_bases":0,"where":{"mdisp":0,"pdisp":-1,"vdisp":0},"attributes":64},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVAlbum@@"}}]},{"complete_object_locator":{"signature":0,"vftable_offset":0,"cd_offset":0,"type_desc_addr":4298976,"class_desc_addr":4290824,"object_base":0},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVtype_info@@"},"class_hierarchy_desc":{"signature":0,"attributes":0,"num_base_classes":1,"base_class_array_addr":4290840},"base_classes":[{"desc":{"type_desc_addr":4298976,"num_contained_bases":0,"where":{"mdisp":0,"pdisp":-1,"vdisp":0},"attributes":64},"type_desc":{"vtable_addr":4268540,"spare":0,"name":".?AVtype_info@@"}}]}]
173EOF
174RUN
175