1## Test how we output JSON file summaries. 2 3# RUN: rm -rf %t.dir 4# RUN: mkdir -p %t.dir 5# RUN: yaml2obj %s -o %t.dir/obj 6 7## Test outputting file summary for a single file. 8# RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.dir/obj | \ 9# RUN: FileCheck %s --check-prefix=SINGLE \ 10# RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} 11 12# SINGLE:[ 13# SINGLE-NEXT: { 14# SINGLE-NEXT: "FileSummary": { 15# SINGLE-NEXT: "File": "{{.*}}/obj", 16# SINGLE-NEXT: "Format": "elf64-x86-64", 17# SINGLE-NEXT: "Arch": "x86_64", 18# SINGLE-NEXT: "AddressSize": "64bit", 19# SINGLE-NEXT: "LoadName": "<Not found>" 20# SINGLE-NEXT: } 21# SINGLE-NEXT: } 22# SINGLE-NEXT:] 23 24## Test outputting file summary for multiple files. 25# RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.dir/obj %t.dir/obj | \ 26# RUN: FileCheck %s --check-prefix=MULTI \ 27# RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} 28 29# MULTI:[ 30# MULTI-NEXT: { 31# MULTI-NEXT: "FileSummary": { 32# MULTI-NEXT: "File": "{{.*}}/obj", 33# MULTI-NEXT: "Format": "elf64-x86-64", 34# MULTI-NEXT: "Arch": "x86_64", 35# MULTI-NEXT: "AddressSize": "64bit", 36# MULTI-NEXT: "LoadName": "<Not found>" 37# MULTI-NEXT: } 38# MULTI-NEXT: }, 39# MULTI-NEXT: { 40# MULTI-NEXT: "FileSummary": { 41# MULTI-NEXT: "File": "{{.*}}/obj", 42# MULTI-NEXT: "Format": "elf64-x86-64", 43# MULTI-NEXT: "Arch": "x86_64", 44# MULTI-NEXT: "AddressSize": "64bit", 45# MULTI-NEXT: "LoadName": "<Not found>" 46# MULTI-NEXT: } 47# MULTI-NEXT: } 48# MULTI-NEXT:] 49 50## Test outputting file summary for an archive with a single file. 51# RUN: rm -f %t.archive-single 52# RUN: llvm-ar rc %t.archive-single %t.dir/obj 53# RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.archive-single | \ 54# RUN: FileCheck %s --check-prefix=ARCH-SINGLE \ 55# RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} 56 57# ARCH-SINGLE:[ 58# ARCH-SINGLE-NEXT: { 59# ARCH-SINGLE-NEXT: "FileSummary": { 60# ARCH-SINGLE-NEXT: "File": "{{.*}}.archive-single(obj)", 61# ARCH-SINGLE-NEXT: "Format": "elf64-x86-64", 62# ARCH-SINGLE-NEXT: "Arch": "x86_64", 63# ARCH-SINGLE-NEXT: "AddressSize": "64bit", 64# ARCH-SINGLE-NEXT: "LoadName": "<Not found>" 65# ARCH-SINGLE-NEXT: } 66# ARCH-SINGLE-NEXT: } 67# ARCH-SINGLE-NEXT:] 68 69## Test outputting file summary for an archive with multiple files. 70# RUN: rm -f %t.archive-multiple 71# RUN: llvm-ar rc %t.archive-multiple %t.dir/obj %t.dir/obj 72# RUN: llvm-readobj --elf-output-style=JSON --pretty-print %t.archive-multiple | \ 73# RUN: FileCheck %s --check-prefix=ARCH-MULTI \ 74# RUN: --match-full-lines --strict-whitespace --implicit-check-not={{.}} 75 76# ARCH-MULTI:[ 77# ARCH-MULTI-NEXT: { 78# ARCH-MULTI-NEXT: "FileSummary": { 79# ARCH-MULTI-NEXT: "File": "{{.*}}.archive-multiple(obj)", 80# ARCH-MULTI-NEXT: "Format": "elf64-x86-64", 81# ARCH-MULTI-NEXT: "Arch": "x86_64", 82# ARCH-MULTI-NEXT: "AddressSize": "64bit", 83# ARCH-MULTI-NEXT: "LoadName": "<Not found>" 84# ARCH-MULTI-NEXT: } 85# ARCH-MULTI-NEXT: }, 86# ARCH-MULTI-NEXT: { 87# ARCH-MULTI-NEXT: "FileSummary": { 88# ARCH-MULTI-NEXT: "File": "{{.*}}.archive-multiple(obj)", 89# ARCH-MULTI-NEXT: "Format": "elf64-x86-64", 90# ARCH-MULTI-NEXT: "Arch": "x86_64", 91# ARCH-MULTI-NEXT: "AddressSize": "64bit", 92# ARCH-MULTI-NEXT: "LoadName": "<Not found>" 93# ARCH-MULTI-NEXT: } 94# ARCH-MULTI-NEXT: } 95# ARCH-MULTI-NEXT:] 96 97--- !ELF 98FileHeader: 99 Class: ELFCLASS64 100 Data: ELFDATA2LSB 101 Type: ET_REL 102 Machine: EM_X86_64 103