[dsymutil] Have the YAML deserialization rewrite the object address of symbols.
[oota-llvm.git] / test / tools / dsymutil / yaml-object-address-rewrite.test
1 # RUN: llvm-dsymutil -v -dump-debug-map -oso-prepend-path=%p -y %s | FileCheck %s
2 #
3 # The YAML debug map bellow is the one from basic-archive.macho.x86_64 with
4 # the object addresses set to zero. Check that the YAML import is able to
5 # rewrite these addresses to the right values.
6 #
7 # CHECK: ---
8 # CHECK-NEXT: triple:{{.*}}'x86_64-unknown-unknown-macho'
9 # CHECK-NEXT: objects:
10 # CHECK-NEXT: filename:{{.*}}/Inputs/basic1.macho.x86_64.o
11 # CHECK-NEXT: symbols:
12 # CHECK-NEXT: sym: _main, objAddr: 0x0000000000000000, binAddr: 0x0000000100000EA0, size: 0x00000024
13 # CHECK-NEXT: filename:{{.*}}/Inputs/./libbasic.a(basic2.macho.x86_64.o)'
14 # CHECK-NEXT: symbols:
15 # CHECK-DAG:   sym: _foo, objAddr: 0x0000000000000020, binAddr: 0x0000000100000ED0, size: 0x00000050
16 # CHECK-DAG:   sym: _private_int, objAddr: 0x0000000000000560, binAddr: 0x0000000100001004, size: 0x00000000
17 # CHECK-DAG:   sym: _inc, objAddr: 0x0000000000000070, binAddr: 0x0000000100000F20, size: 0x00000017
18 # CHECK-DAG:   sym: _baz, objAddr: 0x0000000000000310, binAddr: 0x0000000100001000, size: 0x00000000
19 # CHECK-NOT: { sym:
20 # CHECK-NEXT: filename:{{.*}}/Inputs/./libbasic.a(basic3.macho.x86_64.o)'
21 # CHECK-NEXT: symbols:
22 # CHECK-DAG:   sym: _val, objAddr: 0x0000000000000004, binAddr: 0x0000000100001008, size: 0x00000000
23 # CHECK-DAG:   sym: _bar, objAddr: 0x0000000000000020, binAddr: 0x0000000100000F40, size: 0x00000050
24 # CHECK-DAG:   sym: _inc, objAddr: 0x0000000000000070, binAddr: 0x0000000100000F90, size: 0x00000019
25 # CHECK-NOT: { sym:
26 # CHECK-NEXT: ...
27 ---
28 triple:          'x86_64-unknown-unknown-macho'
29 objects:
30   - filename: /Inputs/basic1.macho.x86_64.o
31     symbols:
32       - { sym: _main, objAddr: 0x0, binAddr: 0x0000000100000EA0, size: 0x00000024 }
33   - filename: /Inputs/./libbasic.a(basic2.macho.x86_64.o)
34     symbols:
35       - { sym: _foo, objAddr: 0x0, binAddr: 0x0000000100000ED0, size: 0x00000050 }
36       - { sym: _private_int, objAddr: 0x0, binAddr: 0x0000000100001004, size: 0x00000000 }
37       - { sym: _inc, objAddr: 0x0, binAddr: 0x0000000100000F20, size: 0x00000017 }
38       - { sym: _baz, objAddr: 0x0, binAddr: 0x0000000100001000, size: 0x00000000 }
39   - filename: /Inputs/./libbasic.a(basic3.macho.x86_64.o)
40     symbols:
41       - { sym: _val, objAddr: 0x0, binAddr: 0x0000000100001008, size: 0x00000000 }
42       - { sym: _bar, objAddr: 0x0, binAddr: 0x0000000100000F40, size: 0x00000050 }
43       - { sym: _inc, objAddr: 0x0, binAddr: 0x0000000100000F90, size: 0x00000019 }
44 ...