1a8eef4e5SJames Henderson## Show that llvm-sizes works correctly on a typical ELF input for Berkeley 2a8eef4e5SJames Henderson## format. It also shows that the formatting is correct (including using tabs as 3a8eef4e5SJames Henderson## field separators). 4a8eef4e5SJames Henderson 5*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t.o 6a8eef4e5SJames Henderson 7a8eef4e5SJames Henderson# RUN: llvm-size -B %t.o \ 8a8eef4e5SJames Henderson# RUN: | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}} 9a8eef4e5SJames Henderson# RUN: llvm-size --format=berkeley %t.o \ 10a8eef4e5SJames Henderson# RUN: | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}} 11a8eef4e5SJames Henderson 12a8eef4e5SJames Henderson## Also show that the default output format is Berkeley. 13a8eef4e5SJames Henderson# RUN: llvm-size %t.o \ 14a8eef4e5SJames Henderson# RUN: | FileCheck %s --match-full-lines --strict-whitespace -DFILE=%t.o --implicit-check-not={{.}} 15a8eef4e5SJames Henderson 16a8eef4e5SJames Henderson## text is .text, .eh_frame, .unusual_name_for_code: 2 + 4 + 64 = 70 17a8eef4e5SJames Henderson## data is .data, .init_array, .moar_stuff: 8 + 32 + 128 = 168 18a8eef4e5SJames Henderson## bss is .bss: 1 19a8eef4e5SJames Henderson## total: 239 20a8eef4e5SJames Henderson## unaccounted for (not affecting total) is .debug_info, .text.but_not_really 21a8eef4e5SJames Henderson# CHECK: text data bss dec hex filename 22a8eef4e5SJames Henderson# CHECK-NEXT: 70 168 1 239 ef [[FILE]] 23a8eef4e5SJames Henderson 24a8eef4e5SJames Henderson!ELF 25a8eef4e5SJames HendersonFileHeader: 26a8eef4e5SJames Henderson Class: ELFCLASS64 27a8eef4e5SJames Henderson Data: ELFDATA2LSB 28a8eef4e5SJames Henderson Type: ET_EXEC 29a8eef4e5SJames Henderson Machine: EM_X86_64 30a8eef4e5SJames HendersonSections: 31a8eef4e5SJames Henderson - Name: .bss 32a8eef4e5SJames Henderson Type: SHT_NOBITS 33a8eef4e5SJames Henderson Flags: [ SHF_ALLOC, SHF_WRITE ] 34a8eef4e5SJames Henderson Size: 1 35a8eef4e5SJames Henderson - Name: .text 36a8eef4e5SJames Henderson Type: SHT_PROGBITS 37a8eef4e5SJames Henderson Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 38a8eef4e5SJames Henderson Size: 2 39a8eef4e5SJames Henderson - Name: .unusual_name_for_code 40a8eef4e5SJames Henderson Type: SHT_PROGBITS 41a8eef4e5SJames Henderson Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 42a8eef4e5SJames Henderson Size: 64 43a8eef4e5SJames Henderson - Name: .eh_frame 44a8eef4e5SJames Henderson Type: SHT_PROGBITS 45a8eef4e5SJames Henderson Flags: [ SHF_ALLOC ] 46a8eef4e5SJames Henderson Size: 4 47a8eef4e5SJames Henderson - Name: .data 48a8eef4e5SJames Henderson Type: SHT_PROGBITS 49a8eef4e5SJames Henderson Flags: [ SHF_ALLOC, SHF_WRITE ] 50a8eef4e5SJames Henderson Size: 8 51a8eef4e5SJames Henderson - Name: .moar_stuff 52a8eef4e5SJames Henderson Type: SHT_PROGBITS 53a8eef4e5SJames Henderson Flags: [ SHF_ALLOC, SHF_WRITE ] 54a8eef4e5SJames Henderson Size: 128 55a8eef4e5SJames Henderson - Name: .text.but_not_really 56a8eef4e5SJames Henderson Type: SHT_PROGBITS 57a8eef4e5SJames Henderson Flags: [ ] 58a8eef4e5SJames Henderson Size: 256 59a8eef4e5SJames Henderson - Name: .debug_info 60a8eef4e5SJames Henderson Type: SHT_PROGBITS 61a8eef4e5SJames Henderson Flags: [ ] 62a8eef4e5SJames Henderson Size: 16 63a8eef4e5SJames Henderson - Name: .init_array 64a8eef4e5SJames Henderson Type: SHT_INIT_ARRAY 65a8eef4e5SJames Henderson Flags: [ SHF_ALLOC, SHF_WRITE ] 66a8eef4e5SJames Henderson Size: 32 67