1# RUN: llvm-ifs -action write-ifs -o - %s %S/object.ifs | \
2# RUN: FileCheck %s --check-prefixes=CHECK-IFS
3
4# RUN: llvm-ifs -action write-bin -o - %s %S/object.ifs | \
5# RUN: llvm-readelf --all - | FileCheck %s --check-prefixes=CHECK-ELF
6
7# RUN: llvm-ifs -action write-bin -force-format TBD -o - %s %S/object.ifs | \
8# RUN: FileCheck %s --check-prefixes=CHECK-DARWIN-TBD3
9
10# RUN: llvm-ifs -action write-ifs -o - %s %s | \
11# RUN: FileCheck %s --check-prefixes=CHECK-MERGE-IFS
12
13# CHECK-IFS: --- !experimental-ifs-v2
14# CHECK-IFS-NEXT: IfsVersion: 2.0
15# CHECK-IFS-NEXT: Triple:          x86_64-unknown-linux-gnu
16# CHECK-IFS-NEXT: ObjectFileFormat: ELF
17# CHECK-IFS-NEXT: Symbols:
18# CHECK-IFS-DAG:   - { Name: a, Type: Func }
19# CHECK-IFS-DAG:   - { Name: b, Type: Object, Size: 4 }
20# CHECK-IFS: ...
21
22# CHECK-ELF: ELF Header:
23# CHECK-ELF:   Class:                             ELF64
24# CHECK-ELF:   Type:                              DYN (Shared object file)
25# CHECK-ELF:   FUNC    GLOBAL DEFAULT  1 a
26# CHECK-ELF:   OBJECT  GLOBAL DEFAULT  1 b
27
28# CHECK-DARWIN-TBD3: --- !tapi-tbd-v3
29# CHECK-DARWIN-TBD3-NEXT: archs:           [ x86_64 ]
30# CHECK-DARWIN-TBD3-NEXT: platform:        macosx
31# CHECK-DARWIN-TBD3-NEXT: flags:           [ flat_namespace, not_app_extension_safe ]
32# CHECK-DARWIN-TBD3-NEXT: install-name:    ''
33# CHECK-DARWIN-TBD3-NEXT: current-version: 0
34# CHECK-DARWIN-TBD3-NEXT: compatibility-version: 0
35# CHECK-DARWIN-TBD3-NEXT: objc-constraint: none
36# CHECK-DARWIN-TBD3-NEXT: exports:
37# CHECK-DARWIN-TBD3-NEXT:   - archs:           [ x86_64 ]
38# CHECK-DARWIN-TBD3-NEXT:     symbols:         [ a, b ]
39# CHECK-DARWIN-TBD3-NEXT: ...
40
41# Here we are testing to see if two identical symbols will merge.
42# CHECK-MERGE-IFS: --- !experimental-ifs-v2
43# CHECK-MERGE-IFS-NEXT: IfsVersion: 2.0
44# CHECK-MERGE-IFS-NEXT: Triple:          x86_64-unknown-linux-gnu
45# CHECK-MERGE-IFS-NEXT: ObjectFileFormat: ELF
46# CHECK-MERGE-IFS-NEXT: Symbols:
47# CHECK-MERGE-IFS-NEXT:   - { Name: a, Type: Func }
48# CHECK-MERGE-IFS-NEXT: ...
49
50--- !experimental-ifs-v2
51IfsVersion: 2.0
52Triple: x86_64-unknown-linux-gnu
53ObjectFileFormat: ELF
54Symbols:
55  - { Name: a, Type: Func }
56...
57