Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
## Here we test the --elf-hash-histogram command line option. | ## Here we test the --elf-hash-histogram command line option. | |||||||||
## This test case checks how we built histograms for hash sections. | ## This test case checks how we built histograms for hash sections. | |||||||||
# RUN: yaml2obj --docnum=1 -D BITS=32 %s -o %t1-32.o | # RUN: yaml2obj --docnum=1 -D BITS=32 %s -o %t1-32.o | |||||||||
# RUN: llvm-readelf --elf-hash-histogram %t1-32.o | FileCheck %s --check-prefix=HIST | # RUN: llvm-readelf --elf-hash-histogram %t1-32.o | FileCheck %s --check-prefix=HIST | |||||||||
## Test --histogram and -I aliases. | ## Test --histogram and -I aliases. | |||||||||
# RUN: llvm-readelf --histogram %t1-32.o | FileCheck %s --check-prefix=HIST | # RUN: llvm-readelf --histogram %t1-32.o | FileCheck %s --check-prefix=HIST | |||||||||
# RUN: llvm-readelf -I %t1-32.o | FileCheck %s --check-prefix=HIST | # RUN: llvm-readelf -I %t1-32.o | FileCheck %s --check-prefix=HIST | |||||||||
# RUN: yaml2obj --docnum=1 -D BITS=64 %s -o %t1-64.o | # RUN: yaml2obj --docnum=1 -D BITS=64 %s -o %t1-64.o | |||||||||
# RUN: llvm-readelf --elf-hash-histogram %t1-64.o | FileCheck %s --check-prefix=HIST | # RUN: llvm-readelf --elf-hash-histogram %t1-64.o | FileCheck %s --check-prefix=HIST | |||||||||
## Check that LLVM output has the expected format. | ||||||||||
jhendersonUnsubmitted Done ReplyInline Actions
jhenderson: | ||||||||||
# RUN: llvm-readobj --elf-hash-histogram %t1-32.o | FileCheck %s --check-prefix=LLVM-HIST | ||||||||||
# RUN: llvm-readobj --elf-hash-histogram %t1-64.o | FileCheck %s --check-prefix=LLVM-HIST | ||||||||||
There's no need for these two extra cases: they are there for the earlier llvm-readelf check to ensure the --histogram and -I aliases are equivalent to --elf-hash-histogram. jhenderson: There's no need for these two extra cases: they are there for the earlier llvm-readelf check to… | ||||||||||
# HIST: Histogram for bucket list length (total of 3 buckets) | # HIST: Histogram for bucket list length (total of 3 buckets) | |||||||||
# HIST-NEXT: Length Number % of total Coverage | # HIST-NEXT: Length Number % of total Coverage | |||||||||
# HIST-NEXT: 0 2 ( 66.7%) 0.0% | # HIST-NEXT: 0 2 ( 66.7%) 0.0% | |||||||||
# HIST-NEXT: 1 0 ( 0.0%) 0.0% | # HIST-NEXT: 1 0 ( 0.0%) 0.0% | |||||||||
# HIST-NEXT: 2 0 ( 0.0%) 0.0% | # HIST-NEXT: 2 0 ( 0.0%) 0.0% | |||||||||
# HIST-NEXT: 3 1 ( 33.3%) 100.0% | # HIST-NEXT: 3 1 ( 33.3%) 100.0% | |||||||||
# HIST-NEXT: Histogram for `.gnu.hash' bucket list length (total of 3 buckets) | # HIST-NEXT: Histogram for `.gnu.hash' bucket list length (total of 3 buckets) | |||||||||
# HIST-NEXT: Length Number % of total Coverage | # HIST-NEXT: Length Number % of total Coverage | |||||||||
# HIST-NEXT: 0 1 ( 33.3%) 0.0% | # HIST-NEXT: 0 1 ( 33.3%) 0.0% | |||||||||
# HIST-NEXT: 1 1 ( 33.3%) 25.0% | # HIST-NEXT: 1 1 ( 33.3%) 25.0% | |||||||||
# HIST-NEXT: 2 0 ( 0.0%) 25.0% | # HIST-NEXT: 2 0 ( 0.0%) 25.0% | |||||||||
# HIST-NEXT: 3 1 ( 33.3%) 100.0% | # HIST-NEXT: 3 1 ( 33.3%) 100.0% | |||||||||
# HIST-NOT: {{.}} | # HIST-NOT: {{.}} | |||||||||
# LLVM-HIST: HashHistogram { | ||||||||||
# LLVM-HIST-NEXT: TotalBuckets: 3 | ||||||||||
# LLVM-HIST-NEXT: Chains [ | ||||||||||
# LLVM-HIST-NEXT: Chain { | ||||||||||
# LLVM-HIST-NEXT: Length: 0 | ||||||||||
# LLVM-HIST-NEXT: Count: 2 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 66.7 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: Chain { | ||||||||||
# LLVM-HIST-NEXT: Length: 1 | ||||||||||
# LLVM-HIST-NEXT: Count: 0 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: Chain { | ||||||||||
# LLVM-HIST-NEXT: Length: 2 | ||||||||||
# LLVM-HIST-NEXT: Count: 0 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: Chain { | ||||||||||
# LLVM-HIST-NEXT: Length: 3 | ||||||||||
# LLVM-HIST-NEXT: Count: 1 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 33.3 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 100.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: ] | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: GnuHashHistogram { | ||||||||||
# LLVM-HIST-NEXT: TotalBuckets: 3 | ||||||||||
# LLVM-HIST-NEXT: Buckets [ | ||||||||||
# LLVM-HIST-NEXT: Bucket { | ||||||||||
# LLVM-HIST-NEXT: Length: 0 | ||||||||||
# LLVM-HIST-NEXT: Count: 1 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 33.3 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: Bucket { | ||||||||||
# LLVM-HIST-NEXT: Length: 1 | ||||||||||
# LLVM-HIST-NEXT: Count: 1 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 33.3 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 25.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: Bucket { | ||||||||||
# LLVM-HIST-NEXT: Length: 2 | ||||||||||
# LLVM-HIST-NEXT: Count: 0 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 0.0 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 25.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: Bucket { | ||||||||||
# LLVM-HIST-NEXT: Length: 3 | ||||||||||
# LLVM-HIST-NEXT: Count: 1 | ||||||||||
# LLVM-HIST-NEXT: Percentage: 33.3 | ||||||||||
# LLVM-HIST-NEXT: Coverage: 100.0 | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
# LLVM-HIST-NEXT: ] | ||||||||||
# LLVM-HIST-NEXT: } | ||||||||||
--- !ELF | --- !ELF | |||||||||
FileHeader: | FileHeader: | |||||||||
Class: ELFCLASS[[BITS]] | Class: ELFCLASS[[BITS]] | |||||||||
Data: ELFDATA2LSB | Data: ELFDATA2LSB | |||||||||
Type: ET_DYN | Type: ET_DYN | |||||||||
Sections: | Sections: | |||||||||
- Name: .hash | - Name: .hash | |||||||||
Type: SHT_HASH | Type: SHT_HASH | |||||||||
▲ Show 20 Lines • Show All 377 Lines • Show Last 20 Lines |