| ## Test how we output JSON file summaries. |
| |
| # RUN: rm -rf %t.dir |
| # RUN: mkdir -p %t.dir |
| # RUN: yaml2obj %s -o %t.dir/obj |
| |
| ## Test outputting file summary for a single file. |
| # RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.dir/obj | \ |
| # RUN: FileCheck %s --check-prefix=SINGLE \ |
| # RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} |
| |
| # SINGLE:[ |
| # SINGLE-NEXT: { |
| # SINGLE-NEXT: "FileSummary": { |
| # SINGLE-NEXT: "File": "{{.*}}/obj", |
| # SINGLE-NEXT: "Format": "elf64-x86-64", |
| # SINGLE-NEXT: "Arch": "x86_64", |
| # SINGLE-NEXT: "AddressSize": "64bit", |
| # SINGLE-NEXT: "LoadName": "<Not found>" |
| # SINGLE-NEXT: } |
| # SINGLE-NEXT: } |
| # SINGLE-NEXT:] |
| |
| ## Test outputting file summary for multiple files. |
| # RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.dir/obj %t.dir/obj | \ |
| # RUN: FileCheck %s --check-prefix=MULTI \ |
| # RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} |
| |
| # MULTI:[ |
| # MULTI-NEXT: { |
| # MULTI-NEXT: "FileSummary": { |
| # MULTI-NEXT: "File": "{{.*}}/obj", |
| # MULTI-NEXT: "Format": "elf64-x86-64", |
| # MULTI-NEXT: "Arch": "x86_64", |
| # MULTI-NEXT: "AddressSize": "64bit", |
| # MULTI-NEXT: "LoadName": "<Not found>" |
| # MULTI-NEXT: } |
| # MULTI-NEXT: }, |
| # MULTI-NEXT: { |
| # MULTI-NEXT: "FileSummary": { |
| # MULTI-NEXT: "File": "{{.*}}/obj", |
| # MULTI-NEXT: "Format": "elf64-x86-64", |
| # MULTI-NEXT: "Arch": "x86_64", |
| # MULTI-NEXT: "AddressSize": "64bit", |
| # MULTI-NEXT: "LoadName": "<Not found>" |
| # MULTI-NEXT: } |
| # MULTI-NEXT: } |
| # MULTI-NEXT:] |
| |
| ## Test outputting file summary for an archive with a single file. |
| # RUN: rm -f %t.archive-single |
| # RUN: llvm-ar rc %t.archive-single %t.dir/obj |
| # RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.archive-single | \ |
| # RUN: FileCheck %s --check-prefix=ARCH-SINGLE \ |
| # RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} |
| |
| # ARCH-SINGLE:[ |
| # ARCH-SINGLE-NEXT: { |
| # ARCH-SINGLE-NEXT: "FileSummary": { |
| # ARCH-SINGLE-NEXT: "File": "{{.*}}.archive-single(obj)", |
| # ARCH-SINGLE-NEXT: "Format": "elf64-x86-64", |
| # ARCH-SINGLE-NEXT: "Arch": "x86_64", |
| # ARCH-SINGLE-NEXT: "AddressSize": "64bit", |
| # ARCH-SINGLE-NEXT: "LoadName": "<Not found>" |
| # ARCH-SINGLE-NEXT: } |
| # ARCH-SINGLE-NEXT: } |
| # ARCH-SINGLE-NEXT:] |
| |
| ## Test outputting file summary for an archive with multiple files. |
| # RUN: rm -f %t.archive-multiple |
| # RUN: llvm-ar rc %t.archive-multiple %t.dir/obj %t.dir/obj |
| # RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.archive-multiple | \ |
| # RUN: FileCheck %s --check-prefix=ARCH-MULTI \ |
| # RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} |
| |
| # ARCH-MULTI:[ |
| # ARCH-MULTI-NEXT: { |
| # ARCH-MULTI-NEXT: "FileSummary": { |
| # ARCH-MULTI-NEXT: "File": "{{.*}}.archive-multiple(obj)", |
| # ARCH-MULTI-NEXT: "Format": "elf64-x86-64", |
| # ARCH-MULTI-NEXT: "Arch": "x86_64", |
| # ARCH-MULTI-NEXT: "AddressSize": "64bit", |
| # ARCH-MULTI-NEXT: "LoadName": "<Not found>" |
| # ARCH-MULTI-NEXT: } |
| # ARCH-MULTI-NEXT: }, |
| # ARCH-MULTI-NEXT: { |
| # ARCH-MULTI-NEXT: "FileSummary": { |
| # ARCH-MULTI-NEXT: "File": "{{.*}}.archive-multiple(obj)", |
| # ARCH-MULTI-NEXT: "Format": "elf64-x86-64", |
| # ARCH-MULTI-NEXT: "Arch": "x86_64", |
| # ARCH-MULTI-NEXT: "AddressSize": "64bit", |
| # ARCH-MULTI-NEXT: "LoadName": "<Not found>" |
| # ARCH-MULTI-NEXT: } |
| # ARCH-MULTI-NEXT: } |
| # ARCH-MULTI-NEXT:] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |