1# RUN: llvm-ifs --input-format=IFS --output-format=IFS -o - %s %S/object.ifs | \
2# RUN: FileCheck %s --check-prefixes=CHECK-IFS
3
4# RUN: llvm-ifs --input-format=IFS --output-format=ELF -o - %s %S/object.ifs | \
5# RUN: llvm-readelf --all - | FileCheck %s --check-prefixes=CHECK-ELF
6
7# RUN: llvm-ifs --input-format=IFS --output-format=IFS --strip-ifs-target -o %t.tbd %s %S/object.ifs
8# RUN: llvm-ifs --input-format=IFS --output-format=TBD --target=x86_64-apple-darwin -o - %t.tbd | \
9# RUN: FileCheck %s --check-prefixes=CHECK-DARWIN-TBD3
10
11# RUN: llvm-ifs --input-format=IFS --output-format=IFS -o - %s %s | \
12# RUN: FileCheck %s --check-prefixes=CHECK-MERGE-IFS
13
14# CHECK-IFS: --- !ifs-v1
15# CHECK-IFS-NEXT: IfsVersion: 3.0
16# CHECK-IFS-NEXT: Target:          x86_64-unknown-linux-gnu
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: --- !ifs-v1
43# CHECK-MERGE-IFS-NEXT: IfsVersion: 3.0
44# CHECK-MERGE-IFS-NEXT: Target:          x86_64-unknown-linux-gnu
45# CHECK-MERGE-IFS-NEXT: Symbols:
46# CHECK-MERGE-IFS-NEXT:   - { Name: a, Type: Func }
47# CHECK-MERGE-IFS-NEXT: ...
48
49--- !ifs-v1
50IfsVersion: 3.0
51Target: x86_64-unknown-linux-gnu
52Symbols:
53  - { Name: a, Type: Func }
54...
55