From 9d07f62b627cdc94cc7c472343cda291b155c137 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Wed, 13 Nov 2024 00:23:24 +0900 Subject: [PATCH 1/3] Use yaml2obj for llvm-cov tests to see covmap --- .../llvm-cov/Inputs/branch-c-general.o32l | Bin 16272 -> 0 bytes .../llvm-cov/Inputs/branch-c-general.yaml | 160 +++++++++ .../{ => Inputs}/branch-logical-mixed.cpp | 13 +- .../llvm-cov/Inputs/branch-logical-mixed.o32l | Bin 4884 -> 0 bytes .../llvm-cov/Inputs/branch-logical-mixed.yaml | 50 +++ .../llvm-cov/{ => Inputs}/branch-macros.cpp | 14 +- .../tools/llvm-cov/Inputs/branch-macros.o32l | Bin 4456 -> 0 bytes .../tools/llvm-cov/Inputs/branch-macros.yaml | 61 ++++ .../Inputs/branch-showBranchPercentage.c | 58 +++ .../Inputs/branch-showBranchPercentage.o32l | Bin 3284 -> 0 bytes .../Inputs/branch-showBranchPercentage.yaml | 39 ++ .../llvm-cov/Inputs/branch-templates.cpp | 38 ++ .../llvm-cov/Inputs/branch-templates.o32l | Bin 5408 -> 0 bytes .../llvm-cov/Inputs/branch-templates.yaml | 72 ++++ .../llvm-cov/Inputs/mcdc-const-folding.o | Bin 34528 -> 0 bytes .../llvm-cov/Inputs/mcdc-const-folding.yaml | 333 ++++++++++++++++++ llvm/test/tools/llvm-cov/Inputs/mcdc-const.o | Bin 5208 -> 0 bytes .../tools/llvm-cov/Inputs/mcdc-const.yaml | 57 +++ .../tools/llvm-cov/Inputs/mcdc-general-18.o | Bin 6456 -> 0 bytes .../llvm-cov/Inputs/mcdc-general-18.yaml | 57 +++ .../test/tools/llvm-cov/Inputs/mcdc-general.o | Bin 6544 -> 0 bytes .../tools/llvm-cov/Inputs/mcdc-general.yaml | 57 +++ llvm/test/tools/llvm-cov/Inputs/mcdc-macro.o | Bin 6408 -> 0 bytes .../tools/llvm-cov/Inputs/mcdc-macro.yaml | 69 ++++ llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o | Bin 4112 -> 0 bytes .../tools/llvm-cov/Inputs/mcdc-maxbs.yaml | 57 +++ llvm/test/tools/llvm-cov/Inputs/yaml.makefile | 16 + .../test/tools/llvm-cov/branch-c-general.test | 11 +- .../tools/llvm-cov/branch-export-json.test | 6 +- .../tools/llvm-cov/branch-export-lcov.test | 10 +- .../tools/llvm-cov/branch-logical-mixed.test | 12 + llvm/test/tools/llvm-cov/branch-macros.test | 12 + .../tools/llvm-cov/branch-noShowBranch.test | 5 +- .../llvm-cov/branch-showBranchPercentage.c | 77 ---- .../llvm-cov/branch-showBranchPercentage.test | 25 ++ ...ch-templates.cpp => branch-templates.test} | 41 +-- llvm/test/tools/llvm-cov/mcdc-const.test | 8 +- .../test/tools/llvm-cov/mcdc-export-json.test | 3 +- llvm/test/tools/llvm-cov/mcdc-general-18.test | 13 +- .../tools/llvm-cov/mcdc-general-none.test | 13 +- llvm/test/tools/llvm-cov/mcdc-general.test | 13 +- llvm/test/tools/llvm-cov/mcdc-macro.test | 3 +- llvm/test/tools/llvm-cov/mcdc-maxbs.test | 4 +- 43 files changed, 1235 insertions(+), 172 deletions(-) delete mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-c-general.o32l create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-c-general.yaml rename llvm/test/tools/llvm-cov/{ => Inputs}/branch-logical-mixed.cpp (80%) delete mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.o32l create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml rename llvm/test/tools/llvm-cov/{ => Inputs}/branch-macros.cpp (70%) delete mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-macros.o32l create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c delete mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.o32l create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.yaml create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-templates.cpp delete mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-templates.o32l create mode 100644 llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml delete mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o create mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml delete mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-const.o create mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml delete mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.o create mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.yaml delete mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-general.o create mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-general.yaml delete mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-macro.o create mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-macro.yaml delete mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.o create mode 100644 llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.yaml create mode 100644 llvm/test/tools/llvm-cov/Inputs/yaml.makefile create mode 100644 llvm/test/tools/llvm-cov/branch-logical-mixed.test create mode 100644 llvm/test/tools/llvm-cov/branch-macros.test delete mode 100644 llvm/test/tools/llvm-cov/branch-showBranchPercentage.c create mode 100644 llvm/test/tools/llvm-cov/branch-showBranchPercentage.test rename llvm/test/tools/llvm-cov/{branch-templates.cpp => branch-templates.test} (54%) diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.o32l b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.o32l deleted file mode 100644 index 7b3151184817805fefe16e9023f69501e552f067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16272 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 #include @@ -81,10 +81,3 @@ int main(int argc, char *argv[]) __llvm_profile_write_file(); return 0; } - -// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover -// REPORT-NEXT: --- -// REPORT-NEXT: _Z4funcii 77 9 88.31% 68 3 95.59% 80 32 60.00% -// REPORT-NEXT: main 1 0 100.00% 5 0 100.00% 0 0 0.00% -// REPORT-NEXT: --- -// REPORT-NEXT: TOTAL 78 9 88.46% 73 3 95.89% 80 32 60.00% diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.o32l b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.o32l deleted file mode 100644 index a50099716bce95767b945b968ffa7fcb5d034c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4884 zcma)9eN0r@6~E^(;J^wZ3W}>_bVSk0V`dmeAgftWrqzlYO*M^G$N6}`DD#nFU|kax zw~Jky(#EEw*-cFJ4>#REY|J($+do)MgQX{?li;V3eLuPL{q7%Znizev)kVTbjg6butgWrDTv}RAy}kQ-c5Ulw z>uC1V>C@+Ec#OvA0;R@joGy|vK@;>I9l1o8=n5UUN>}MaqI-Bgr@Qn3&sTJt9^om{ zBt6D6OE+i^&%fvzJ;ifQqcQclppp3**U0=_)JT3#le>P0M()L;io{~#M&qW08&{R5 zQ4?@A5*p8@GM3j!d2I#DwNkFHV!2YvOKVszm2!C<%cODhqS&i?+21R%4f|N`k@C7- zEN_$YhAx)dq`bL<h{{>Hm<9vi3h_6uT#9cF*k7_qo*W5(m9&&iVKQ$sd@A^jA{5EfKd( zMDCH~k4(f!QEHPCF=--BJ(m2ji8wPWwHp#~!$iD|jmGKDnUM3?b*x^Km}@5HhuDN{ zd}?BTj2&staFK9(#JL_#=!s@Rtx=!MDr>C_r3AIgc1{9mP1}? z9(yr=z6H@6?^<=(Z&nNYGCe;$pB#f59 z!I4yRHkUbW#Pd3!o=`9p^cii@L|=QGFX0Pz#M@(A+gi8!TZ1tpmhkljjChAX8r&qh zzJ+N-jc6<>a2AEw5zu`dqBNe#<&Bfgsh}vUT-56p=Lujd}`68y+kZ~PG2Nea3D|<>?EqiFHKdr z!AUF=gO*+<^%Y_xa6G=!E1=gnbb`)nr~FS4zrmr;Kxd!wpS8y4-+?5Spq-}@!8>f8 zN^q>4RDyh+R3er-RrFrAKwrKXEK;urudl6Jyrg<* z%`*Hus3oeyy(%J+cxEJL#3MVqJK93Q)=rY|1hdq+8Wgm^kXq(A4>bH<=d$vBxzoRkUcvX^vl z{+61~x42#Z2TMf1@Z_**FlkED!zRB$?uMMy;1#%rK=Slr*L zgn$zKVtpPzgY;a6@f_dJs_f?XvD3%2o!=cRKXn_c{JsFr z8E?jsAKO*D9AxKB{arZKJZdc*V=v?7dC1EMY#QV8y{w4)FfELC%n`2+evb8`c-Jw3 zMh;++iuY6Ka$L*)8F0?Mpm5&+h-H;hH5C3HRitnaf#Z0imP6to^WDg#aQ6Xn*6#`G z#~5A@t{2aNv6B{8=7V!&m~3&&+#6a4C1QT16kF8(svY#c|`kL&bb#|oAO diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml new file mode 100644 index 0000000000000..00135f2e8b987 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml @@ -0,0 +1,50 @@ +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_ARM + Flags: [ EF_ARM_EABI_VER5 ] + SectionHeaderStringTable: .strtab +Sections: + - Name: __llvm_covfun + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: F0A0ED2C305C0BB3C0030000F834CF5F518FC8834287299580773304010030012525291D2115190D110509014D4D5145493D4135392D31017D7D8101758501850189016D8D018D019101659501950199015D9D019D01A10155A501A501A90101D501D501D901CD01DD01DD01E101C501E501E501E901BD01ED01ED01F101B501F501F501F901AD01FD01FD018102018502018502018502018902018902018902018D02018D02018D020191020191020191027D010819430201080C000E01000C010E01000C020E01000C030E01000C040E202502000C000E25010C000E202906000C000E1D010C000E20210A000C000E15010C000E20190E000C000E0D010C000E201112000C000E05010C000E200916000C000E01020C000E01000C010E01000C020E01000C030E01000C040E201A4D000C000E4D010C000E201E51000C000E45010C000E202249000C000E3D010C000E202641000C000E35010C000E202A39000C000E2D010C000E202E31000C000E01020C011001000C031001000C051001000C071001000C091001000D000F207D32000D000F7D010D000F20810136000D000F75010C011075000D000F2085013A000D000F8501010D000F2089013E000D000F6D010C01106D000D000F208D0142000D000F8D01010D000F20910146000D000F65010C011065000D000F2095014A000D000F9501010D000F2099014E000D000F5D010C01105D000D000F209D0152000D000F9D01010D000F20A10156000D000F55010C011055000D000F20A5015A000D000FA501010D000F20A9015E000D000F01020C011001000C031001000C051001000C071001000C091001000D000F2062D501000D000FD501010D000F2066D901000D000FCD01010C0110CD01000D000F206ADD01000D000FDD01010D000F206EE101000D000FC501010C0110C501000D000F2072E501000D000FE501010D000F2076E901000D000FBD01010C0110BD01000D000F207AED01000D000FED01010D000F207EF101000D000FB501010C0110B501000D000F208201F501000D000FF501010D000F208601F901000D000FAD01010C0110AD01000D000F208A01FD01000D000FFD01010D000F208E018102000D000F01020700082085029A0100070008850200090185808080088502010500169A0100170285808080089A01020500160102070008208902A6010007000889020009018580808008890201050016A6010017028580808008A601020500160102070008208D02B201000700088D0200090185808080088D0201050016B2010017028580808008B201020500160102070008209102BE010007000891020009018580808008910201050016BE010017028580808008BE0102050016 + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: FAD58DE7366495DB090000001800000000000000428729958077330401000001014F010402 + - Name: __llvm_covmap + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: 00000000210000000000000003000000011E001D2F746D702F6272616E63682D6C6F676963616C2D6D697865642E637070000000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + AddressAlign: 0x1 + Content: 0E005F5A3466756E636969016D61696E + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_B30B5C302CEDA0F0u + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0x3DC + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x25 + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/branch-macros.cpp b/llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp similarity index 70% rename from llvm/test/tools/llvm-cov/branch-macros.cpp rename to llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp index 73042ac397d40..712b2790f774a 100644 --- a/llvm/test/tools/llvm-cov/branch-macros.cpp +++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp @@ -1,6 +1,6 @@ -// RUN: llvm-profdata merge %S/Inputs/branch-macros.proftext -o %t.profdata -// RUN: llvm-cov show --show-expansions --show-branches=count %S/Inputs/branch-macros.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S %s | FileCheck %s -// RUN: llvm-cov report --show-branch-summary %S/Inputs/branch-macros.o32l -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S %s | FileCheck %s -check-prefix=REPORT + + + #define COND1 (a == b) #define COND2 (a != b) @@ -50,11 +50,3 @@ int main(int argc, char *argv[]) __llvm_profile_write_file(); return 0; } - -// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover -// REPORT-NEXT: --- -// REPORT-NEXT: _Z4funcii 28 4 85.71% 18 0 100.00% 30 14 53.33% -// REPORT-NEXT: _Z5func2ii 13 1 92.31% 8 0 100.00% 10 2 80.00% -// REPORT-NEXT: main 1 0 100.00% 6 0 100.00% 0 0 0.00% -// REPORT-NEXT: --- -// REPORT-NEXT: TOTAL 42 5 88.10% 32 0 100.00% 40 16 60.00% diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros.o32l b/llvm/test/tools/llvm-cov/Inputs/branch-macros.o32l deleted file mode 100644 index bb4c85adeb4dbc25cc29d8aac06748a6dac3343d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4456 zcma)9Z)jWB6+ibqOSWWNmKDp696MGL+c+kEezN6%#ogq;UBDS_NrwpmRhFJ@wbq}> z&zTEjGoy?QwtZSh)^=rscC6nFV{BgvNjloV@?p*x6c$(^g;pO1(HI+)(d>7w-j$w} zX6&H%&N=s-^E>C<`|f>D-(6W-6+)0AK_gVxi1u5h#S@oogoa@~_-*1Jq}{}IuT1kN zDk88}A^rN|?J_+$dvvd?iF;-5yf7CkByK}n?}HtZ7vuh*h$SjSw;|mt2WnaXTBxRl zf)qV?k5h6j$kv8zZTHJGAto0qq+MUU3)y#czwA9HCYF%>E~K`Ksf&->DnUKbd%vuO z4nIG5C}Qk?7uui86iWE2`umWJ&nWyN_e01)e=5_tw$Q_n823lT1b2N4(os23(*n>! zH7yi52JXmHB+g=haj$NEMUB$D$G>)ZtWy8qT4gP_<+3hC85Wu{N*V|HEJW z{epS5^*6u9M8Df@m45YMcHrtC6S2e>-pw#OJVqU2W#!`23sZArG2!v}M0<0z!1b&uoe!@R7=S5RHYH>B7@NJp%4MQBOBB&EsXo*UO47nmcGdYfGq*O%>eGu@URRG%h1SZJ@i$< zu|E_t_$Pv+-EsYfjO&+iXC~@#Z_2p0Wt=-;Xj%pg$$;}uvBFDq*ni`zAMB=Iy8}5f zbN-ia{VZ@vtz-MKHS~IXp0Fnp>F1Tx#b9qURx3bVU38NAMIXN1sk-Ui+&L@=2#J)h8ZdA;yJAbH;leu7isn>K?aq#qo_& zDxcmS%cat#!mg1n7OPHbAE-Uxgi3b8rKovUbL=uvi%U^;sv2FUW9Msxl2_uJd--%W zE0R~HSek&COJ(zP`C>G^lge*JuUVztY#|?w#SGIhqa(Y!+fR*;Z)NSoM%LcgOTTQ{ zM%Lak?5vS4Di5$smYnx zWPHQg$e5cGR(dX$il3*2uc6wMmDlM6iPuO_AN|v@Uy%ColTIgoV(O$*b6tU?Q}v~&26g0f zlV07DwILnPwwrWPPiA#gM?G%Rso$+4-vE6F^>WGExI&svWk+9^dNa*95ubpc(Ly!E zKfv#d7L>8L?)a#l*UY}D8?hxx<2mc}Dkk(4l9f&_FV0O($0w&( zW@eX{r&bsC>ZZj>b8%{E(wtaYSza(#O_vEVlQWY`)03-nv$5qxm<;R_n|LqgtUQE; z=Pwy4+b(4{_H1hxpu9Pg#nNUnpUPpt*eVtFiuCx=ecr5dNV~STT-B`dexm_z7EbKPc-a0myax^Sy$u_maf(!Ze`~-?08G`# zr?sk&&p-TX_5BAn&Z|yzRo~49yk}kY@jNIz2E(s5&rMJsLRX~f<2>&9TL&KZ!Ts{v zL*ac284$Jl_`SsSsW*(O?*Yc#c!#d~`1?-b@j7(kQuHDgn(;UE#zB)mfyxCccF?+pyN%BGLt$M1AS z$}jHBt9mY5@X*~*PTDFR*Mn<8Q$46-Q>qHoovT@fcngo)iUiCX*(`WF*=fz`w^YFv3M*GNn2oT2M L{|!7ZJWu}xjeK)v diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml new file mode 100644 index 0000000000000..1b4e6bbfcbce5 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml @@ -0,0 +1,61 @@ +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_ARM + Flags: [ EF_ARM_EABI_VER5 ] + SectionHeaderStringTable: .strtab +Sections: + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: F0A0ED2C305C0BB3A8010000A9166572A6C7691F5CCB403140FE0666150000000000000000000000000000000000000000000F014545493D4135392D3101050509010D0D1101151519011D1D21012525291401101911020C010C0011140015001A1C020C001124020C00122C020C001234020C001201020A000B01000A001001000A001501000A001A204502000A000B45000F0010204906000F00103D0014001520410A00140015350019001A20390E0019001A2D001E001F203112001E001F0301050F001701000F0017200516000F00170205060F001720091A000F00170301070F001F3C00100015440019001E014C0910001501540A100016015C0B1000160301050F001701000F0017200D1E000F0017020D060F0017201122000F00170301070F001F64001000156C0019001E017409100015017C0A1000160301050F001701000F0017201526000F00170215060F001720192A000F00170301070F001F8401001000158C010019001E019401091000150301050F001701000F0017201D2E000F0017021D060F0017202132000F00170301070F001F9C0100100015A4010019001E0301050F001701000F0017202536000F00170225060F001720293A000F0017 + - Name: __llvm_covfun + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: B01D983FC6736395C8000000403729A19E990E4D5CCB403140FE06660D0000000000000000000000000006050905150519191D010D0D110301241A07020C010E0014140018001D011C0B1000160505080F0026200209000F002624001000152C0018001D3400200025013C0A1000160305070F001F44001000154C0019001E0115060F00170106050F00170154091000150305050F001705000F001720190A000F00170219060F0017201D0E000F00170401070F001F01000F001F5C00100015640019001E0301050F001701000F0017200D12000F0017020D060F0017201116000F0017 + - Name: '__llvm_covfun (2)' + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: FAD58DE7366495DB0900000018000000000000005CCB403140FE066601000001012F010502 + - Name: __llvm_covmap + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: 000000001A0000000000000003000000011700162F746D702F6272616E63682D6D6163726F732E6370700000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + AddressAlign: 0x1 + Content: 19005F5A3466756E636969015F5A3566756E63326969016D61696E + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: '__llvm_covfun (1)' + - Name: __llvm_covfun + - Name: '__llvm_covfun (2)' + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_956373C63F981DB0u + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0xE4 + Other: [ STV_HIDDEN ] + - Name: __covrec_B30B5C302CEDA0F0u + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x1C4 + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (2)' + Binding: STB_WEAK + Size: 0x25 + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c new file mode 100644 index 0000000000000..c41739ff0b22f --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c @@ -0,0 +1,58 @@ + + + + + +#include +#include + +extern void __llvm_profile_write_file(void); + +int main(int argc, char *argv[]) +{ + int i = 0; + if (argc < 3) // CHECK: Branch ([[@LINE]]:7): [True: 16.67%, False: 83.33%] + { + __llvm_profile_write_file(); + return 0; + } + + int a = atoi(argv[1]); + int b = atoi(argv[2]); + + // CHECK: Branch ([[@LINE+4]]:8): [True: 20.00%, False: 80.00%] + // CHECK: Branch ([[@LINE+3]]:18): [True: 0.00%, False: 100.00%] + // CHECK: Branch ([[@LINE+2]]:29): [True: 0.00%, False: 100.00%] + // CHECK: Branch ([[@LINE+1]]:40): [True: 40.00%, False: 60.00%] + if ((a == 0 && b == 2) || b == 34 || a == b) + printf("case1\n"); + + b = (a != 0 || a == 2) ? b : b+2; // CHECK: Branch ([[@LINE]]:8): [True: 80.00%, False: 20.00%] + // CHECK: Branch ([[@LINE-1]]:18): [True: 0.00%, False: 100.00%] + b = (a != 0 && a == 1); // CHECK: Branch ([[@LINE]]:8): [True: 80.00%, False: 20.00%] + // CHECK: Branch ([[@LINE-1]]:18): [True: 25.00%, False: 75.00%] + for (i = 0; i < b; i++) { a = 2 + b + b; } + // CHECK: Branch ([[@LINE-1]]:15): [True: 16.67%, False: 83.33%] + + b = a; + + switch (a) + { + case 0: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] + printf("case0\n"); + case 2: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] + printf("case2\n"); + case 3: // CHECK: Branch ([[@LINE]]:5): [True: 0.00%, False: 100.00%] + printf("case3\n"); + default: break; // CHECK: Branch ([[@LINE]]:5): [True: 60.00%, False: 40.00%] + } + + i = 0; + do { + printf("loop\n"); + } while (i++ < 10); // CHECK: Branch ([[@LINE]]:12): [True: 90.91%, False: 9.09%] + + __llvm_profile_write_file(); + + return b; +} diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.o32l b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.o32l deleted file mode 100644 index 5f8b9fa10582777140f099297ecccc2374a4c0d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3284 zcmdT`Z)jxI6+idBnaL!ZOp=LNlQmi1X0su&$(xx>GLsat-N`2D1~!^V#rBKio0qqf zshN4h%*$?+LWA8xl`V)Oi1mv_WRYT_A}AsXLQqy^{m?;ZD?$-F-!I5nb!_dct!aOwu5FtFN8=7e(H|*S*$g zQe32#k4VbNL+Ho;+Gt8a<06?mB5?@))>mKO($}hQJ+#Bx3p=5;=o)KR-)J;rf!J8Q zwc~q%QA2x@?*_(2D<))a9eH=O3(Ry#7?QSu}?7jaC zg}~IV{iBx}&58C16XGmtjJEBlpy?Zk-}K@)+wr$!^*)h0cSLm9)cb5@5S~eIg&WPuc81CCu}_^KK7#6O{^!rX{UWpd%wMW- zTzP2o_tW~<^B?}P^yc5Pq5A}lh_D`#X+Zq`PQ_B3j4O zY~@5aGN9+u6sBWE84eBTt3P7hl3_WZuiwl112Rkl`i2F)dx-`#Z`Mni7L|^O$dDtu zG1S%)0lcRH&4jOLyiccTEa8@`i9*e+SUWTI9p}ojr*7Ic%dWU)(Kak1wU25KRW8QC zfDxjyS*loO-A>c4<5Y>&S+7lcZHnk8>${5aw=LHIRlj7V=L%^vmCR<+>1;Nc z*|yS!MKf&`thr1kGiPPz)7jaD%oOD=pit8`3nda~p`M>Ll8Y3!oSJLz&y?pV($ldK zrB2xuiBZ3Zhwc!Abf-2XhQ$eSmlzQz<(L>36MVM$i{ksXoaPQ+LUeTNg@8?@(W8Ff zb)cXw+Vbs)XUFIX@L3Q0_G7S*L0A2c!tM{)HQ09s?7u^2S->Z#^+&;TpwaLX6b<7C zMe|0w?a`>GeUGnUoKraYoj@ghP(D=#knQ*JF=by8#id3+fUbo5;id%2;Q1th2C%EQ zRc{vv%WMN*W*!#!73Kl|#Qr$Z1td>&5M2Z&ftx_~yX;5Oef9%?;rkERA0oQSe&BC> z|C8*;B0tA|;ETThbssqLcD@%eh>$t^CUJ;(TTj>xDk+0S+#L}o$f~$?;~Sku&EEA!w)ach`(9m!7v*(unZ8+ZT-*5ZJ@?PlUDJA)OxG!?%qYUH z;c3Be)oQ6yB*UxR+}_5EP*g0gsI+V6uhdGeooAK)|1)J^x~^Fuqy9)afcdiRn#AP= zR%qK~A1{!x;A7UujF0n(ahS(>Q$~u$T_fpj<#%dwI5WW;_c_k%OYkXC>IfXH^POO6 z{SVjDxy7;dkel^x`c?b$yEY;@6um`xNiL(6tutfc>9<#Pj8KVNtwwDE`)Z{%0|6 M5 +template +void unused(T x) { + return; +} + +template +int func(T x) { + if(x) // CHECK: | Branch ([[@LINE]]:6): [True: 0, False: 1] + return 0; // CHECK: | Branch ([[@LINE-1]]:6): [True: 1, False: 0] + else // CHECK: | Branch ([[@LINE-2]]:6): [True: 0, False: 1] + return 1; + int j = 1; +} + + // CHECK-LABEL: _Z4funcIiEiT_: + // CHECK: | | Branch ([[@LINE-8]]:6): [True: 0, False: 1] + // CHECK-LABEL: _Z4funcIbEiT_: + // CHECK: | | Branch ([[@LINE-10]]:6): [True: 1, False: 0] + // CHECK-LABEL: _Z4funcIfEiT_: + // CHECK: | | Branch ([[@LINE-12]]:6): [True: 0, False: 1] + +extern "C" { extern void __llvm_profile_write_file(void); } +int main() { + if (func(0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] + printf("case1\n"); + if (func(true)) // CHECK: | Branch ([[@LINE]]:7): [True: 0, False: 1] + printf("case2\n"); + if (func(0.0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] + printf("case3\n"); + __llvm_profile_write_file(); + return 0; +} diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-templates.o32l b/llvm/test/tools/llvm-cov/Inputs/branch-templates.o32l deleted file mode 100644 index d611727170d9b6bc452efdb8a6c725061e3e0419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5408 zcmcInYit}>6+U;?>)6KYIJQ$iVmq5Bj*Dj>UcV}}@;Y{!fQy zyNQH)q_gMs%{lknx%bZ9r{?C*DWyb{k|Ei(L?&CENHF1uA(=w7{pR#Pq+t{M!kq&G zy;Vh%TcY4;y;T+UPE|T@FR9qsEeZS<`o;d~Esy(y@Iavvkz;pRp}x|^lPjWq8@LM@DhbR@(Gi-RtG z{EL;(-hS_)PeMO5p1xr~?$%c-*rGxQ8&Mm{SsNlKO}n*2hJ@rfj>M2Q!x@rc1mTmA z`YPR`0t!h#_2uJDk>JH2f7Eq;(lz~y2Y>ip-$z}Cb2q>rPynp@q&H$0%8^VZUCb_x z*jAyuoVKkMGg~eruHUnM$9zsxgH|B*`_S*g7ZSc3O?p1>hST$LH=HSjbiSxkpGz#P z7PA-fbNNfD9V=5~EzruQSFBOtZw!OJ5Y8^Ai;Ll_R%In$Du!b*GipY|Ln|vw4@4r1 zd3!pOw==8RE0%5M?M2hho7qw!k}c(|$nx^l!brJNdcw-uCZOT*#CRfVjiqx7lVj0b zG%=N(%uI}pPQ*qN87q^EF2t?uR4ko1Bgylaji~CxyTFIR^mTi(*ONy)$u+|G2~VDaJniX2o*ag}-_u7t8G(#~>*=RHM}ur_ zKgh+mLjgHcV>ijk8apIMYwQlW?L8ZYRB}{a_UuN-j$^h2d){RwahYW^AdXGRprh-b zfU^^{#eKmU-KBstn|_-!xk~}m_ftT^eiQj((v0zN2&{kH2+6mxDQJ&7c83gjwj0Ok z13zg2e9Rb-#~e%Bz0zM}ACU>qzUJV&@*Hi*8<2eNyOc~08s^3Tu^!JX)*}sb zvw)c2@k5e^-MfTS$MK_%~WasaSF@ksKYJojIF` z#uCZ1tGl6Oax4}di=T^5#^V!ni5XvLc4lg9JTW>xH!(RoJ9aMV3ysdrCFY`IQxoxt zSbSnEu_`7`9$R?26|AByKwWROsJ)up1L1UA>#wiseCqC6 z)kS?+RUe|Js?N_D+wIl)+}^dSi~6vtK15Ab&(B3?Cgh}Tj`AnYpBP?7i7$XJECv(4 zsJmGAHUb4k^k{d*kE%g5x8GL>%ee zx_nCj5yw7wH`Dnxp!@rn_Vt0!hJz#aS+}k81DiTc(h->oG%~$Tke-{?H=Zt&-nV_HBi_6Ir1>K?&I})?Blwx58l;vzWP3xkA09ytVOEtV*>%*$1vji_3?dQ zAH25ey2-je{(g^ryyEMF{|R-z`aYPCJ&b@!`}OgvuMhrL)O|b;o$FLn4+2qbK^yMZb=~nWMqcrx&T$Di|M{YE2`JPx{f-0jk&b-@K9nx&5OEi@0jY5>Kxvxa yF6q#p&@a~$*E31u9)}WeaqINI4jj+idfc~w^OiDU@-w^-o^8y-eaPW*UHlL0cE2A0 diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml new file mode 100644 index 0000000000000..671c530e939e8 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml @@ -0,0 +1,72 @@ +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_ARM + Flags: [ EF_ARM_EABI_VER5 ] + SectionHeaderStringTable: .strtab +Sections: + - Name: '__llvm_covfun (3)' + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: FAD58DE7366495DB5D00000058242991A4449202DDC07F26680C05B801000301050109010D0D011D0C0902010107001320050200070013050014018580808008050105001601010700172009060007001709001801858080800809010500160101070017200D0A000700170D00180185808080080D01050016 + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: 5427717259E0E43E4A0000001136619202000000DDC07F26680C05B801000101050A010D0F0602010106000720050200060007050008018580808008050105000D02000D008E8080800802000E028580808008020205000D00000D0183808080080001030102 + - Name: '__llvm_covfun (2)' + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: 4B7E22082F0551AA4A0000001136619202000000DDC07F26680C05B801000101050A010D0F0602010106000720050200060007050008018580808008050105000D02000D008E8080800802000E028580808008020205000D00000D0183808080080001030102 + - Name: __llvm_covfun + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: AC1440BC3DA3E41A4A0000001136619202000000DDC07F26680C05B801000101050A010D0F0602010106000720050200060007050008018580808008050105000D02000D008E8080800802000E028580808008020205000D00000D0183808080080001030102 + - Name: __llvm_covmap + Type: SHT_PROGBITS + AddressAlign: 0x8 + Content: 000000001D0000000000000003000000011A00192F746D702F6272616E63682D74656D706C617465732E637070000000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + AddressAlign: 0x1 + Content: 2E006D61696E015F5A3466756E6349694569545F015F5A3466756E6349624569545F015F5A3466756E6349664569545F + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: '__llvm_covfun (3)' + - Name: '__llvm_covfun (1)' + - Name: '__llvm_covfun (2)' + - Name: __llvm_covfun + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_1AE4A33DBC4014ACu + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0x66 + Other: [ STV_HIDDEN ] + - Name: __covrec_3EE4E05972712754u + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x66 + Other: [ STV_HIDDEN ] + - Name: __covrec_AA51052F08227E4Bu + Type: STT_OBJECT + Section: '__llvm_covfun (2)' + Binding: STB_WEAK + Size: 0x66 + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (3)' + Binding: STB_WEAK + Size: 0x79 + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o deleted file mode 100644 index 7a16162f29c00777d9a05f5fed1cc4cbf333c56c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34528 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 T5Sx$nt9#3RiT!SbLy!Oe6Jcr| diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml new file mode 100644 index 0000000000000..18dc57488acb3 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml @@ -0,0 +1,333 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU + Type: ET_REL + Machine: EM_X86_64 + SectionHeaderStringTable: .strtab +Sections: + - Name: __llvm_covfun + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: AA19D25F7410F1EA300000000E06000000000000B975BFDE464C3C13010101050906010314020201010C000D280302000C0012300000010200000C000D050011001230090202000000110012 + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 92691AC8D7253F8B300000000E06000000000000B975BFDE464C3C13010101010506010614020201010C000D280302000C0012300502010200000C000D050011001230000002000000110012 + - Name: '__llvm_covfun (2)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 9A7D6FA40D389A5B300000000E06000000000000B975BFDE464C3C13010101050906010914020201010C000D280302000C0012300000010200000C000D050011001230090202000000110012 + - Name: '__llvm_covfun (3)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 3CC016E1B5A95933300000000E06000000000000B975BFDE464C3C13010101010506010C14020201010C000D280302000C0012300502010200000C000D050011001230000002000000110012 + - Name: '__llvm_covfun (4)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 98207F8F78271E50300000000F06000000000000B975BFDE464C3C13010101050906010F14020201010C000D280302000C0012300000010002000C000D050011001230020902000000110012 + - Name: '__llvm_covfun (5)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 0969FC47730492F1300000000F06000000000000B975BFDE464C3C13010101010506011214020201010C000D280302000C0012300205010002000C000D050011001230000002000000110012 + - Name: '__llvm_covfun (6)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 0ECB0EF7963F6F79300000000F06000000000000B975BFDE464C3C13010101050906011514020201010C000D280302000C0012300000010002000C000D050011001230020902000000110012 + - Name: '__llvm_covfun (7)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 123E012CB073B24A300000000F06000000000000B975BFDE464C3C13010101010506011814020201010C000D280302000C0012300205010002000C000D050011001230000002000000110012 + - Name: '__llvm_covfun (8)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: C2EA1D70E059B55D460000008E83010000000000B975BFDE464C3C130101020D11050909011C1C020201010C000D01000C0012280403000C0017300000010300000C000D0D0011001230110203020000110012050016001730090602000000160017 + - Name: '__llvm_covfun (9)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 24244E16CFFB9F53460000008E83010000000000B975BFDE464C3C13010102010D050909011F1C020201010C000D01000C0012280403000C0017300D02010300000C000D0D0011001230000003020000110012050016001730090602000000160017 + - Name: '__llvm_covfun (10)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: CC9CCD1D2ED1627D460000008E83010000000000B975BFDE464C3C130101020D1105090901221C020201010C000D01000C0012280403000C0017300000010300000C000D0D0011001230110203020000110012050016001730090602000000160017 + - Name: '__llvm_covfun (11)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 69198FBDA5C488EE460000008E83010000000000B975BFDE464C3C13010102010D05090901251C020201010C000D01000C0012280403000C0017300D02010300000C000D0D0011001230000003020000110012050016001730090602000000160017 + - Name: '__llvm_covfun (12)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: A753680B241373ED46000000CF83010000000000B975BFDE464C3C130101020D1105090901281C020201010C000D01000C0012280403000C0017300000010003000C000D0D0011001230021103000200110012050016001730060902000000160017 + - Name: '__llvm_covfun (13)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 54BD46601EA033AC46000000CF83010000000000B975BFDE464C3C13010102010D050909012B1C020201010C000D01000C0012280403000C001730020D010003000C000D0D0011001230000003000200110012050016001730060902000000160017 + - Name: '__llvm_covfun (14)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 39953E03B6ADA13B46000000CF83010000000000B975BFDE464C3C130101020D11050909012E1C020201010C000D01000C0012280403000C0017300000010003000C000D0D0011001230021103000200110012050016001730060902000000160017 + - Name: '__llvm_covfun (15)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 9BCFA8D8AA6B9E2046000000CF83010000000000B975BFDE464C3C13010102010D05090901311C020201010C000D01000C0012280403000C001730020D010003000C000D0D0011001230000003000200110012050016001730060902000000160017 + - Name: '__llvm_covfun (16)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 4F2882F8142D1DD9460000008E83010000000000B975BFDE464C3C13010102010D0D110901351C020201010C000D01000C0012280403000C0017300D02010300000C000D0D0011001230110603020000110012050016001730000002000000160017 + - Name: '__llvm_covfun (17)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 98DB88AFB7497C76460000008E83010000000000B975BFDE464C3C13010102010D05090901381C020201010C000D01000C0012280403000C0017300D02010300000C000D0D0011001230000003020000110012050016001730090602000000160017 + - Name: '__llvm_covfun (18)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 596357935D55EEBA460000008E83010000000000B975BFDE464C3C13010102010D0D1109013B1C020201010C000D01000C0012280403000C0017300D02010300000C000D0D0011001230110603020000110012050016001730000002000000160017 + - Name: '__llvm_covfun (19)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 3237FBD998D0D824460000008E83010000000000B975BFDE464C3C13010102010D050909013E1C020201010C000D01000C0012280403000C0017300D02010300000C000D0D0011001230000003020000110012050016001730090602000000160017 + - Name: '__llvm_covfun (20)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: D656F1340A0C4ED846000000CF83010000000000B975BFDE464C3C13010102010D0D110901411C020201010C000D01000C0012280403000C001730020D010003000C000D0D0011001230061103000200110012050016001730000002000000160017 + - Name: '__llvm_covfun (21)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 5E66CCF22EE6A4AC46000000CF83010000000000B975BFDE464C3C13010102010D05090901441C020201010C000D01000C0012280403000C001730020D010003000C000D0D0011001230000003000200110012050016001730060902000000160017 + - Name: '__llvm_covfun (22)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 7C4DEA109976A2E846000000CF83010000000000B975BFDE464C3C13010102010D0D110901471C020201010C000D01000C0012280403000C001730020D010003000C000D0D0011001230061103000200110012050016001730000002000000160017 + - Name: '__llvm_covfun (23)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: E25997DF8D6D856B46000000CF83010000000000B975BFDE464C3C13010102010D050909014A1C020201010C000D01000C0012280403000C001730020D010003000C000D0D0011001230000003000200110012050016001730060902000000160017 + - Name: '__llvm_covfun (24)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: FAD58DE7366495DB1D0000001800000000000000B975BFDE464C3C1301010005014F0121021004010001100901000110090100011009010001 + - Name: __llvm_covmap + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 000000001B000000000000000600000002180000166D6364632D636F6E73742D666F6C64696E672E63707000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] + AddressAlign: 0x1 + Content: 8402005F5A35636173653062015F5A35636173653162015F5A35636173653262015F5A35636173653362015F5A35636173653462015F5A35636173653562015F5A35636173653662015F5A35636173653762015F5A3563617365386262015F5A3563617365396262015F5A3563617365616262015F5A3563617365626262015F5A3563617365636262015F5A3563617365646262015F5A3563617365656262015F5A3563617365666262015F5A3563617365676262015F5A3563617365686262015F5A3563617365696262015F5A35636173656A6262015F5A35636173656B6262015F5A35636173656C6262015F5A35636173656D6262015F5A35636173656E6262016D61696E + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' + - Name: '__llvm_covfun (2)' + - Name: '__llvm_covfun (3)' + - Name: '__llvm_covfun (4)' + - Name: '__llvm_covfun (5)' + - Name: '__llvm_covfun (6)' + - Name: '__llvm_covfun (7)' + - Name: '__llvm_covfun (8)' + - Name: '__llvm_covfun (9)' + - Name: '__llvm_covfun (10)' + - Name: '__llvm_covfun (11)' + - Name: '__llvm_covfun (12)' + - Name: '__llvm_covfun (13)' + - Name: '__llvm_covfun (14)' + - Name: '__llvm_covfun (15)' + - Name: '__llvm_covfun (16)' + - Name: '__llvm_covfun (17)' + - Name: '__llvm_covfun (18)' + - Name: '__llvm_covfun (19)' + - Name: '__llvm_covfun (20)' + - Name: '__llvm_covfun (21)' + - Name: '__llvm_covfun (22)' + - Name: '__llvm_covfun (23)' + - Name: '__llvm_covfun (24)' + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_EAF110745FD219AAu + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_8B3F25D7C81A6992u + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_5B9A380DA46F7D9Au + Type: STT_OBJECT + Section: '__llvm_covfun (2)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_3359A9B5E116C03Cu + Type: STT_OBJECT + Section: '__llvm_covfun (3)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_501E27788F7F2098u + Type: STT_OBJECT + Section: '__llvm_covfun (4)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_F192047347FC6909u + Type: STT_OBJECT + Section: '__llvm_covfun (5)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_796F3F96F70ECB0Eu + Type: STT_OBJECT + Section: '__llvm_covfun (6)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_4AB273B02C013E12u + Type: STT_OBJECT + Section: '__llvm_covfun (7)' + Binding: STB_WEAK + Size: 0x4C + Other: [ STV_HIDDEN ] + - Name: __covrec_5DB559E0701DEAC2u + Type: STT_OBJECT + Section: '__llvm_covfun (8)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_539FFBCF164E2424u + Type: STT_OBJECT + Section: '__llvm_covfun (9)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_7D62D12E1DCD9CCCu + Type: STT_OBJECT + Section: '__llvm_covfun (10)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_EE88C4A5BD8F1969u + Type: STT_OBJECT + Section: '__llvm_covfun (11)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_ED7313240B6853A7u + Type: STT_OBJECT + Section: '__llvm_covfun (12)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_AC33A01E6046BD54u + Type: STT_OBJECT + Section: '__llvm_covfun (13)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_3BA1ADB6033E9539u + Type: STT_OBJECT + Section: '__llvm_covfun (14)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_209E6BAAD8A8CF9Bu + Type: STT_OBJECT + Section: '__llvm_covfun (15)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_D91D2D14F882284Fu + Type: STT_OBJECT + Section: '__llvm_covfun (16)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_767C49B7AF88DB98u + Type: STT_OBJECT + Section: '__llvm_covfun (17)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_BAEE555D93576359u + Type: STT_OBJECT + Section: '__llvm_covfun (18)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_24D8D098D9FB3732u + Type: STT_OBJECT + Section: '__llvm_covfun (19)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_D84E0C0A34F156D6u + Type: STT_OBJECT + Section: '__llvm_covfun (20)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_ACA4E62EF2CC665Eu + Type: STT_OBJECT + Section: '__llvm_covfun (21)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_E8A2769910EA4D7Cu + Type: STT_OBJECT + Section: '__llvm_covfun (22)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_6B856D8DDF9759E2u + Type: STT_OBJECT + Section: '__llvm_covfun (23)' + Binding: STB_WEAK + Size: 0x62 + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (24)' + Binding: STB_WEAK + Size: 0x39 + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.o deleted file mode 100644 index bc38b71b5de072cedeb2172d160d6705d4855c47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5208 zcmb_fU1(fY5T0{yHb4EzZW>eVuNx>*)ZA`jn+#Kd7kCHwCFa2)+m+D1x;1L8=c$sG=y?hl14?s|5us#+h?x?mao~Qm_u}ojKpk zoS8Fc&bfDwj7^L?O1Z$K;7(97F!(oXqCr}VY1oREndKObjxPHHm*W*JPsbO}OvkUB zT3Sn*mdo)Y8fMGPu{#Ld`VTx=NXicYGD@3lBd zdYrvfLlz}!s*qs3zAzc7<2jvUXvJCepM2yrElHEZT=s0)qLm<3L(&%502@=itub&&>VO*|iCRh)r5N<8qf1Lm?J*UD zZNUQm{OZ_`gN5VYb>r}c05b9fS9PflClSLO6AnJK1=$j{;?GF{be8gkd|$p&uKQlT zTGhJ$>mhZN8eVPQ4mObe5qnvutWof0T=rG;3CJGU=@;w%6p||C=E^kaPZo;#x%ynC zob+o8MS%Q#t~`@mEY>vEKkTKv)Xba@xH$o-C+`P!IH5MJX={H4gJAh!GwTY>DM#Ej zP2H5p-p<6cj@zX=+w~4m-3e~j767Z6)4A`&U!2EX%xS+Ueh-fuv6m5SfnS#!>0I4F zD>YB!P{H*fDC=9G#Be5?9%Y=?Ym*DIYmo*|1=6YrFeEozaRjc{_Qquysq}F%hN0-{ zYK22Be59X^vcy9MQqjogGcB%*07G)|gf=2K?1q(E7uK%?aI_WIwa%!&^vJ!aYn0_# z#K~UlbpIemJ=W_`=LB?uIhC!~kxl~G!MMDb=p4~5{Kfa1^p@b;*j``yC=*VziTzEi zx9$5ZTsmf_fm04L&oJX;M^zO(&A7}jXDMUh(ismo!5=el%Kr+lchszh`HTJW01k1f&+7(m*5_@;$WPZ_wG z|K|oy^UFM6S~%rJ^liZO4PoYao^h#z#JyqNtMD>?E zI~k|3nP+g%ME25Gn~ixWuJlizfm40NewT$y-|lUKXDs|yUgv%TH`n`+ft&lDHE>#+ z)Op6hP5TPtb{*vIp?4M8n`26iaLR``k*TM1WR6KscJ%%d`y|Rlv|scSGVce%3#{l_ z-`c)v_1bu%3$odKWwBPwXGcedcMa~mZE$S&(CFx{@x2R?YItCLY-DVFd~kH%$iCqr zRC%@He9rTWhkfw!l~So#_My7q*U@KwezBCT)~2)h^2+hl+{$q|S1Q)Qo2dIW@Mdb2 zg(_H|Mm!lNSjtspY8*{3lyOw8Ri>v(S^B!*Q9c-W<%(bQ?%w}kU)|5;9|upTlq(eQ zJ7b1ZFV1GCYnVVZkMYG4PG@2s=IQ6Az^gw|(ws_QEVq#Jb2xd0xR=MTok3jNzR7#~ zv;85AQ}lZ{4Dgg}(|_hSW53C}$DHHXlRB*#sXu|aYUgg=kEe}82F3~^kENAc-< zPVyH{_q`6~BvFd!JjXu~L0Xde1a1~T-5@@Ftw>zq&Emg6#X{N#rX zgb&$&+X^(QzrfA%&os!t4V@%!;Rg|;_%6poQPcN4wqVXxtN@zDpX30t&$NH^)hls@ zPa@VR{&^0Zi9%_~uHRkg+{k}BAFA|K{P&=<&c#~jNxI~bQUL?XpZ;q|eChvY>p#c~ z6npZgccH9X_(8-PAa1j&I*fWNXqi0)!2iAj+Szzx>Y=wfGAkK?TXuCt~+C`)?3{ zx%de`hq%b5=`ZYWVkFzPe*{?7YG1g-{uyfmsh_~Vp+LQm7Jzw@-#@Z0>fep{6Mw1y r1;pHmW%_%tgujp`*`K#jpC3}%`41pq=T3Hqxk0zHlKf~d?fCxyAk0HP diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml new file mode 100644 index 0000000000000..5e57a7e7739d6 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml @@ -0,0 +1,57 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU + Type: ET_REL + Machine: EM_X86_64 + SectionHeaderStringTable: .strtab +Sections: + - Name: __llvm_covfun + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 8AC9CB6DFFBEFE928600000091E438CFA3000000A8826E3AB548EA6F01010201151D2113010A2B04021001010001010107000F010007001B0100070020280B050007002001000800093015020104030008000915000D000E300000040003000D000E110013001B1100140015300000030502001400151D0019001A3021060500020019001A09001F0020300000020000001F00200500210185808080080501050024 + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: FAD58DE7366495DB130000001800000000000000A8826E3AB548EA6F01010003011101090210050100011002010001 + - Name: __llvm_covmap + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 00000000130000000000000006000000021000000E6D6364632D636F6E73742E63707000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] + AddressAlign: 0x1 + Content: 10005F5A347465737462626262016D61696E + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_92FEBEFF6DCBC98Au + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0xA2 + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x2F + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.o deleted file mode 100644 index e802f51132c068f0f4e2921c952710cb5c5665e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6456 zcmd5=eQaA-6~FJjWU*VvcC)5U(xq}rH?p!k>?X~c(jYsHvs7eLwzAQ|z;zubjTV2% zd5H!L7F4%e5a~8hCH_Df|1qHN&o~k&z2nn6Lm{Z zC|`2!B`h8~_tr|&n}B?okPBBWG95Qwd)~P8d!JeLIE)^z;#c{y(@$`+Tyb`+r=+UP zu6#LEehzeKf2kD>%(d^rx4SlCt6&s5^&LRgc0w<_nDKK){L+=UZy=0b{s0Ob+^yVo z;H!qd?i`^tRPs}3!C1Wfmr(fy&(O<@J*{|U5VU?nySdHy7yV z>nnjI)|@O~caG97wB~MFHi|ud@+ZE}CBBeIeSQs$xhw0NHt5UH3R<YH`(dXikSd zxIn%+Fo~WU&3~*SolBJb$Id@^5hev&0)(NFzP|diT;!cyZicL#_(`rD49GQH8y>0vl%uFVHie>2pOV9?C2Fu z$PD2V{%EUdSSGGoMXLx#x7=hwY*_il&0>dNY!&U%_DyD!z*W2G6kXBIAV|1s7PlCu zmX?-$%|^4>T@B*HAg#Toi7eXFW{6fR=0~TH|Xs(L9sF;)Y}A=8L-C6hIip{1FKiVEjH@AR z#E?`;?!n4HB`H-7+gKT>>=R)($UY1LnE2;gD}NfCI(zwMnFS(ns#N(?-mnM>zqB8%CQ zw2ckfQ9C*_>)@2TWPIs9VLTExb_7~{PeC%{0N+A;a)cAX@JO&@Bp68qdlSLv$>uXn zPgsJQK5xEym1bxY1G*^qj6bo^JeEk+V_%h!P`f!PLWABhl0QhG3AmL9)5I!Lk zfcU2pdyaYYyy2csc%V0l_bNJ$GQROTeGLFZY_G!Hml;S5ah92<2=65e#=nY%K;(L4 z3I7JzlKPuA;0RdNPI%iLQa|7U%F2=*Qvh08vWvC&52YBc1*`hpX>WT~F5#uFLlzuc z^~kDrt#;QE+iC%jB2ZVG@?7N10sblY)XVZsz)_#|r(Uc(!mNaPIz9aj6G4ff(oK+wa0voZpcH3XV^i{Uj9}{qvK1P{ZY+3)sUNeh0}5 z3aucVLxXy{88yuh_f0#NBDCZ zUMBoS4d*$#py1da62%(|j`>WHpI<6CURk+6zaw1l&mR?ib*|piaDFcDE4bQ+7HlLC z_tTYx=u&VzZ#bVG1xG(0P=Gxe9w0}16&z0?_H#hN(GTk?;_}5l|htu6!ee#Na{YWRT=kD5APKo*(7TTXm;mHe~9gj|+SLi#f@$2};3JX(tWN3&`yZ+?NO4>g)mH{ncIY z6tiOhADTQIOGW81{m<+UICt>(R;N8QK#$Y8#QT~ke@7AXZZNK9oDBY|4i{iJ|0>-H z0%CC$g!QvH+(1|5{|AKVhBdn48xha(y$~GZ>o>h96~*rXs7PX&`Qw0Yygdrh+v4hT zJdBUGK+c~z-Zx}V%m}PJic@^P&+!iXW4TfMXr1_Y+vm8<8^u3Q3Vd(mczXP2U_<6F zBCI0$yJX*6gL?gExKaN5>*SBIIdA620K@qBx4%jq^xXBia&z@G8^w=Pe16XO{P3?9 zj>~)!uzK+$6#v^^D7n)6mjL5>_Ailr{6p*yg0aj+tN$sw=ts#O^T+d>HRAJfY@HoRIctLd;U9xx7nWg2yEb*=Y;jn zkbNfu#MzGd+ko?0RsEj+;%WA*`w!Q?sEx09mh6{UkvR8{;lIHGXCcl2@ptR=zYF%* vp8J0VFl(Yx0Ja35Dn-KXlK)eI?+=n*>i__H?x=Ty<~L58XovSsJ^p_HjJhJT diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.yaml new file mode 100644 index 0000000000000..13a9bce74ab1a --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-general-18.yaml @@ -0,0 +1,57 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU + Type: ET_REL + Machine: EM_X86_64 + SectionHeaderStringTable: .strtab +Sections: + - Name: __llvm_covfun + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 8AC9CB6DFFBEFE9260010000F7C63A91EAF34488EB382E2763226D9301010C010D0D1109151519012121251D2D2D31013D3D413945454930010A2B0B021001010001010107000F010007001B2800040007001B0100080009300D02010302000800090D000D000E301106030002000D000E090013001B090014001530150A02040000140015150019001A30190E0400000019001A05001C018580808008050105002410010100010101070008010007000D2802020007000D3021120102000007000821000C000D302516020000000C000D1D000E008F808080081D000F01241D001300141D0013001928030200130019302D1A010200001300142D0018001930311E0200000018001929001A01858080800829010500241001010001010107000F010007010F2804040007010F0100080009303D22010300000800093D000D000E304126030200000D000E390107000F390008000930452A0204000008000945000D000E30492E040000000D000E3500100185808080083501050024 + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: FAD58DE7366495DB130000001800000000000000EB382E2763226D93010100030118010C0210050100011004010001 + - Name: __llvm_covmap + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 0000000015000000000000000600000002120000106D6364632D67656E6572616C2E637070000000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] + AddressAlign: 0x1 + Content: 10005F5A347465737462626262016D61696E + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_92FEBEFF6DCBC98Au + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0x17C + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x2F + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-general.o b/llvm/test/tools/llvm-cov/Inputs/mcdc-general.o deleted file mode 100644 index 8bed601221a1459b613300a7386e5251a3fdce1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6544 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 aM>6xr-y>%3s5e0U_cTqS9sVvf zv=Cn=7Q8SNd~lC_P;d{9wV+Hk+!zRDA`I`oI4>^>3SI{BoPW+~{`veug?S)7=lss~ zfBu(#FN_`=GY!K6CIgOuA&SPE{ADGo#3<}V&+(#%v_jEdet1hBJo7ZmD-C3=VeK+y zzFNYJu3PI=b$nGN7%#%P&2u+D`pH`P&KtdCL~ngRzN&(wzTP^HF$=|^>~&7ILCFfm ziCp74^~QOAzQpFPE9*7NA)Z}hXuVbeXV1K`?$aV(WOJctE(cit5$(`*dPaq zop|TZi>QD6{N4WPeSPC!Z}h~5KWODeY;W%{{QicZVKrH1!0PunG0h@km__vO^{WV22&5H7q5CU^j&A);bGJl7jFc916li z5V6}EON z(?50oi+v~`FO+s#)?*-fYK?ls#Ff=UQ`kd|HhG{KUN5br1zJtq_I3sk6(q@5lTE-1^ zl4mM2V?ID>1b)-G4;G$zRU$2@NNI>2ubBOWj2cr#zjkzwE#tWBt4Xm%3{X zyqEP49r$6^uWLBXO#1xPfy*3jGfq0qT>RzE?M96H*L76!4KK}^IFW9ry1Gtw@}pZL z{$Z4fXus$uB3p6xBESAVDW|N87$naoae{WC!=)r-Jk-o8^g|caE zaOh~?=wNrx=*ZFjfdMo{vdOu4B%fT$LnM(&rIP79y3frmregEi=~yD2&*}Q)Y^9!# zr;<5{%w#hQ^WukXq~f|Zy^u!Rd^R&ZnTn}5w4^0UN+g}hCnHZh_3Zv!KAt!Y5mh}t zHH9zi3^$lO6`RgtEvWdPvy~JdXReTlksQh8v-vpj=TeH(Dz#-z#q)6)?LF}Zyufl- z^+cc3;Xvx93$Bqv1v;OE(f?GPqO5$QgDA`S6!;)xQ305*@l*3A7o_)r&W^n3a^98^ zb9*H(@S?<@;>l0y3x5?cRl*FTRHiW3m3K}ol27z%_19eL)BicCE4*6$U%0-!r&7;Z zzkr64Ygk+qAK=T^S%H@4Cvdg?-*f4odX~P0PasD1@k_3PjAA@`z*F$j&Bu!xx@?KKwM4|T;@kJlX#imO~kBY#SF3){B6-D$IJZa{1Z9*4} So&3J#{%>#qG5U^i*8c~u_-R%E diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.yaml new file mode 100644 index 0000000000000..617ad17fa1008 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-maxbs.yaml @@ -0,0 +1,57 @@ +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU + Type: ET_REL + Machine: EM_X86_64 + SectionHeaderStringTable: .strtab +Sections: + - Name: __llvm_covfun + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 8A68DC3E925EACF9B1000000C67EFC36662A3548DEBA335F42BD13F502010107010502151519111D1D210109090D1101031003020C0107000C05001A009B8080800805001B0023020024018380808008020103003C02000B0021280A04000B003B02000C0014301506010302000C0014150018002030190A03000200180020110025003B110026002E301D0E0204000026002E1D0032003A3021120400000032003A06010116003001001700212803020017002F30091601020000170021090025002F300D1A0200000025002F + - Name: '__llvm_covfun (1)' + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: FAD58DE7366495DB2A0000005C83010000000000DEBA335F42BD13F5010101010506010B01020201010B0010200502000B0010050012009380808008050013001902001C001D + - Name: __llvm_covmap + Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] + AddressAlign: 0x8 + Content: 00000000110000000000000006000000020E00000C6D6364632D6D617862732E63000000 + - Name: __llvm_prf_names + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] + AddressAlign: 0x1 + Content: 0800737562016D61696E + - Type: SectionHeaderTable + Sections: + - Name: .strtab + - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' + - Name: __llvm_covmap + - Name: __llvm_prf_names + - Name: .symtab +Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap + - Name: __llvm_prf_names + Type: STT_SECTION + Section: __llvm_prf_names + - Name: __covrec_F9AC5E923EDC688Au + Type: STT_OBJECT + Section: __llvm_covfun + Binding: STB_WEAK + Size: 0xCD + Other: [ STV_HIDDEN ] + - Name: __covrec_DB956436E78DD5FAu + Type: STT_OBJECT + Section: '__llvm_covfun (1)' + Binding: STB_WEAK + Size: 0x46 + Other: [ STV_HIDDEN ] +... diff --git a/llvm/test/tools/llvm-cov/Inputs/yaml.makefile b/llvm/test/tools/llvm-cov/Inputs/yaml.makefile new file mode 100644 index 0000000000000..c5b55d28eb3b5 --- /dev/null +++ b/llvm/test/tools/llvm-cov/Inputs/yaml.makefile @@ -0,0 +1,16 @@ +# This is for developers' convenience and not expected to be in build steps. +# +# Usage: +# cd /path/to/llvm-project/llvm/test/tools/llvm-cov/Inputs +# PATH=/path/to/build/bin:$PATH make *.yaml + +%.covmap.o: %.o + llvm-objcopy \ + --only-section=__llvm_covfun \ + --only-section=__llvm_covmap \ + --only-section=__llvm_prf_names \ + --strip-unneeded \ + $< $@ + +%.yaml: %.covmap.o + obj2yaml $< > $@ diff --git a/llvm/test/tools/llvm-cov/branch-c-general.test b/llvm/test/tools/llvm-cov/branch-c-general.test index 2fa99dfe61532..93aac3e6ba468 100644 --- a/llvm/test/tools/llvm-cov/branch-c-general.test +++ b/llvm/test/tools/llvm-cov/branch-c-general.test @@ -1,8 +1,9 @@ // Test visualization of general branch constructs in C. +// RUN: yaml2obj %S/Inputs/branch-c-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-c-general.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=count %S/Inputs/branch-c-general.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -// RUN: llvm-cov report --show-branch-summary %S/Inputs/branch-c-general.o32l -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT // CHECK: simple_loops() // CHECK: Branch (9:15): [True: 100, False: 1] @@ -133,15 +134,15 @@ // Test file-level report. // RUN: llvm-profdata merge %S/Inputs/branch-c-general.proftext -o %t.profdata -// RUN: llvm-cov report %S/Inputs/branch-c-general.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=FILEREPORT +// RUN: llvm-cov report %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=FILEREPORT // FILEREPORT: TOTAL{{.*}}172 36 79.07% // Test color True/False output. -// RUN: llvm-cov show --use-color --show-branches=count %S/Inputs/branch-c-general.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=USECOLOR +// RUN: llvm-cov show --use-color --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=USECOLOR // USECOLOR: Branch ({{[0-9]+}}:7): {{.*}}: 0, {{.*}}0] // Test html output. -// RUN: llvm-cov show --show-branch-summary --show-branches=count %S/Inputs/branch-c-general.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c -format html -o %t.html.dir +// RUN: llvm-cov show --show-branch-summary --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c -format html -o %t.html.dir // RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/tmp/branch-c-general.c.html %s // HTML-COUNT-89: Branch ( // HTML-NOT: Branch ( diff --git a/llvm/test/tools/llvm-cov/branch-export-json.test b/llvm/test/tools/llvm-cov/branch-export-json.test index 7cf4286087982..edeb23c9161d2 100644 --- a/llvm/test/tools/llvm-cov/branch-export-json.test +++ b/llvm/test/tools/llvm-cov/branch-export-json.test @@ -1,6 +1,7 @@ +// RUN: yaml2obj %S/Inputs/branch-showBranchPercentage.yaml -o %t-branch-showBranchPercentage.o // RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata -// RUN: llvm-cov export --format=text %S/Inputs/branch-showBranchPercentage.o32l -instr-profile %t.profdata | FileCheck %s +// RUN: llvm-cov export --format=text %t-branch-showBranchPercentage.o -instr-profile %t.profdata | FileCheck %s // CHECK: "branches": // CHECK: 14,7,14,15,1,5,0,0,4 @@ -21,8 +22,9 @@ // CHECK: {"count":30,"covered":26,"notcovered":4,"percent":86.666666666666671} // Check recursive macro-expansions. +// RUN: yaml2obj %S/Inputs/branch-macros.yaml -o %t-branch-macros.o // RUN: llvm-profdata merge %S/Inputs/branch-macros.proftext -o %t.profdata -// RUN: llvm-cov export --format=text %S/Inputs/branch-macros.o32l -instr-profile %t.profdata | FileCheck %s -check-prefix=MACROS +// RUN: llvm-cov export --format=text %t-branch-macros.o -instr-profile %t.profdata | FileCheck %s -check-prefix=MACROS // MACROS: "branches": // MACROS: 27,10,27,11,0,3,0,0,4 diff --git a/llvm/test/tools/llvm-cov/branch-export-lcov.test b/llvm/test/tools/llvm-cov/branch-export-lcov.test index fe43dd66de8d0..60b2fed2f3d2c 100644 --- a/llvm/test/tools/llvm-cov/branch-export-lcov.test +++ b/llvm/test/tools/llvm-cov/branch-export-lcov.test @@ -1,7 +1,8 @@ +// RUN: yaml2obj %S/Inputs/branch-showBranchPercentage.yaml -o %t-branch-showBranchPercentage.o // RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata -// RUN: llvm-cov export --format=lcov %S/Inputs/branch-showBranchPercentage.o32l -instr-profile %t.profdata | FileCheck %s -// RUN: llvm-cov export --format=lcov --skip-branches %S/Inputs/branch-showBranchPercentage.o32l -instr-profile %t.profdata | FileCheck %s --check-prefix=NOBRANCH +// RUN: llvm-cov export --format=lcov %t-branch-showBranchPercentage.o -instr-profile %t.profdata | FileCheck %s +// RUN: llvm-cov export --format=lcov --skip-branches %t-branch-showBranchPercentage.o -instr-profile %t.profdata | FileCheck %s --check-prefix=NOBRANCH // CHECK-DAG: BRDA:14,0,0,1 // CHECK-DAG: BRDA:14,0,1,5 @@ -38,9 +39,10 @@ // CHECK: BRH:26 // Check recursive macro-expansions. +// RUN: yaml2obj %S/Inputs/branch-macros.yaml -o %t-branch-macros.o // RUN: llvm-profdata merge %S/Inputs/branch-macros.proftext -o %t.profdata -// RUN: llvm-cov export --format=lcov %S/Inputs/branch-macros.o32l -instr-profile %t.profdata | FileCheck %s -check-prefix=MACROS -// RUN: llvm-cov export --format=lcov --skip-branches %S/Inputs/branch-macros.o32l -instr-profile %t.profdata | FileCheck %s -check-prefix=NOBRANCH +// RUN: llvm-cov export --format=lcov %t-branch-macros.o -instr-profile %t.profdata | FileCheck %s -check-prefix=MACROS +// RUN: llvm-cov export --format=lcov --skip-branches %t-branch-macros.o -instr-profile %t.profdata | FileCheck %s -check-prefix=NOBRANCH // MACROS-COUNT-4: BRDA:17 // MACROS-NOT: BRDA:17 diff --git a/llvm/test/tools/llvm-cov/branch-logical-mixed.test b/llvm/test/tools/llvm-cov/branch-logical-mixed.test new file mode 100644 index 0000000000000..f570aa999fa4a --- /dev/null +++ b/llvm/test/tools/llvm-cov/branch-logical-mixed.test @@ -0,0 +1,12 @@ +// RUN: yaml2obj %S/Inputs/branch-logical-mixed.yaml -o %t.o +// RUN: llvm-profdata merge %S/Inputs/branch-logical-mixed.proftext -o %t.profdata +// RUN: llvm-cov show --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-logical-mixed.cpp +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-logical-mixed.cpp +| FileCheck %s -check-prefix=REPORT + +// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover +// REPORT-NEXT: --- +// REPORT-NEXT: _Z4funcii 77 15 80.52% 60 2 96.67% 80 30 62.50% +// REPORT-NEXT: main 1 0 100.00% 5 0 100.00% 0 0 0.00% +// REPORT-NEXT: --- +// REPORT-NEXT: TOTAL 78 15 80.77% 65 2 96.92% 80 30 62.50% diff --git a/llvm/test/tools/llvm-cov/branch-macros.test b/llvm/test/tools/llvm-cov/branch-macros.test new file mode 100644 index 0000000000000..5d012bb0ec039 --- /dev/null +++ b/llvm/test/tools/llvm-cov/branch-macros.test @@ -0,0 +1,12 @@ +// RUN: yaml2obj %S/Inputs/branch-macros.yaml -o %t.o +// RUN: llvm-profdata merge %S/Inputs/branch-macros.proftext -o %t.profdata +// RUN: llvm-cov show --show-expansions --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-macros.cpp +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-macros.cpp | FileCheck %s -check-prefix=REPORT + +// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover +// REPORT-NEXT: --- +// REPORT-NEXT: _Z4funcii 28 4 85.71% 18 0 100.00% 30 14 53.33% +// REPORT-NEXT: _Z5func2ii 13 1 92.31% 8 0 100.00% 10 2 80.00% +// REPORT-NEXT: main 1 0 100.00% 6 0 100.00% 0 0 0.00% +// REPORT-NEXT: --- +// REPORT-NEXT: TOTAL 42 5 88.10% 32 0 100.00% 40 16 60.00% diff --git a/llvm/test/tools/llvm-cov/branch-noShowBranch.test b/llvm/test/tools/llvm-cov/branch-noShowBranch.test index 25a98d59481aa..42763d48e9b5d 100644 --- a/llvm/test/tools/llvm-cov/branch-noShowBranch.test +++ b/llvm/test/tools/llvm-cov/branch-noShowBranch.test @@ -1,7 +1,8 @@ +// RUN: yaml2obj %S/Inputs/branch-c-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-c-general.proftext -o %t.profdata -// RUN: llvm-cov show %S/Inputs/branch-c-general.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %s -// RUN: llvm-cov report %S/Inputs/branch-c-general.o32l --show-branch-summary=false -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %s +// RUN: llvm-cov report %t.o --show-branch-summary=false -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT // CHECK-NOT: | Branch diff --git a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.c b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.c deleted file mode 100644 index a649462116a08..0000000000000 --- a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.c +++ /dev/null @@ -1,77 +0,0 @@ -// Test visualization of branch taken percentages - -// RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=percent %S/Inputs/branch-showBranchPercentage.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S %s | FileCheck %s - -#include -#include - -extern void __llvm_profile_write_file(void); - -int main(int argc, char *argv[]) -{ - int i = 0; - if (argc < 3) // CHECK: Branch ([[@LINE]]:7): [True: 16.67%, False: 83.33%] - { - __llvm_profile_write_file(); - return 0; - } - - int a = atoi(argv[1]); - int b = atoi(argv[2]); - - // CHECK: Branch ([[@LINE+4]]:8): [True: 20.00%, False: 80.00%] - // CHECK: Branch ([[@LINE+3]]:18): [True: 0.00%, False: 100.00%] - // CHECK: Branch ([[@LINE+2]]:29): [True: 0.00%, False: 100.00%] - // CHECK: Branch ([[@LINE+1]]:40): [True: 40.00%, False: 60.00%] - if ((a == 0 && b == 2) || b == 34 || a == b) - printf("case1\n"); - - b = (a != 0 || a == 2) ? b : b+2; // CHECK: Branch ([[@LINE]]:8): [True: 80.00%, False: 20.00%] - // CHECK: Branch ([[@LINE-1]]:18): [True: 0.00%, False: 100.00%] - b = (a != 0 && a == 1); // CHECK: Branch ([[@LINE]]:8): [True: 80.00%, False: 20.00%] - // CHECK: Branch ([[@LINE-1]]:18): [True: 25.00%, False: 75.00%] - for (i = 0; i < b; i++) { a = 2 + b + b; } - // CHECK: Branch ([[@LINE-1]]:15): [True: 16.67%, False: 83.33%] - - b = a; - - switch (a) - { - case 0: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] - printf("case0\n"); - case 2: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] - printf("case2\n"); - case 3: // CHECK: Branch ([[@LINE]]:5): [True: 0.00%, False: 100.00%] - printf("case3\n"); - default: break; // CHECK: Branch ([[@LINE]]:5): [True: 60.00%, False: 40.00%] - } - - i = 0; - do { - printf("loop\n"); - } while (i++ < 10); // CHECK: Branch ([[@LINE]]:12): [True: 90.91%, False: 9.09%] - - __llvm_profile_write_file(); - - return b; -} -// RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=percent %S/Inputs/branch-showBranchPercentage.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S %s -format html -o %t.html.dir - -// Test html output. -// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/tmp/branch-showBranchPercentage.c.html %s -// HTML: Branch ({{.*}}16.67%,{{.*}}83.33%] -// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] -// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] -// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] -// HTML: Branch ({{.*}}40.00%,{{.*}}60.00%] -// HTML: Branch ({{.*}}80.00%,{{.*}}20.00%] -// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] -// HTML: Branch ({{.*}}80.00%,{{.*}}20.00%] -// HTML: Branch ({{.*}}25.00%,{{.*}}75.00%] -// HTML: Branch ({{.*}}16.67%,{{.*}}83.33%] -// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] -// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] -// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] -// HTML: Branch ({{.*}}60.00%,{{.*}}40.00%] diff --git a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test new file mode 100644 index 0000000000000..fe0bc2c7eec37 --- /dev/null +++ b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test @@ -0,0 +1,25 @@ +// Test visualization of branch taken percentages + +// RUN: yaml2obj %S/Inputs/branch-showBranchPercentage.yaml -o %t.o +// RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata +// RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-showBranchPercentage.c + +// RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata +// RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -format html -o %t.html.dir + +// Test html output. +// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/tmp/branch-showBranchPercentage.c.html %s +// HTML: Branch ({{.*}}16.67%,{{.*}}83.33%] +// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] +// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] +// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] +// HTML: Branch ({{.*}}40.00%,{{.*}}60.00%] +// HTML: Branch ({{.*}}80.00%,{{.*}}20.00%] +// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] +// HTML: Branch ({{.*}}80.00%,{{.*}}20.00%] +// HTML: Branch ({{.*}}25.00%,{{.*}}75.00%] +// HTML: Branch ({{.*}}16.67%,{{.*}}83.33%] +// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] +// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] +// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] +// HTML: Branch ({{.*}}60.00%,{{.*}}40.00%] diff --git a/llvm/test/tools/llvm-cov/branch-templates.cpp b/llvm/test/tools/llvm-cov/branch-templates.test similarity index 54% rename from llvm/test/tools/llvm-cov/branch-templates.cpp rename to llvm/test/tools/llvm-cov/branch-templates.test index 4797428f8835a..1c18356043f66 100644 --- a/llvm/test/tools/llvm-cov/branch-templates.cpp +++ b/llvm/test/tools/llvm-cov/branch-templates.test @@ -1,41 +1,8 @@ +// RUN: yaml2obj %S/Inputs/branch-templates.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-templates.proftext -o %t.profdata -// RUN: llvm-cov show --show-expansions --show-branches=count %S/Inputs/branch-templates.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S %s | FileCheck %s -// RUN: llvm-cov report --show-branch-summary %S/Inputs/branch-templates.o32l -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S %s | FileCheck %s -check-prefix=REPORT -// RUN: llvm-cov report --show-branch-summary %S/Inputs/branch-templates.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S %s | FileCheck %s -check-prefix=REPORTFILE - -#include -template -void unused(T x) { - return; -} - -template -int func(T x) { - if(x) // CHECK: | Branch ([[@LINE]]:6): [True: 0, False: 1] - return 0; // CHECK: | Branch ([[@LINE-1]]:6): [True: 1, False: 0] - else // CHECK: | Branch ([[@LINE-2]]:6): [True: 0, False: 1] - return 1; - int j = 1; -} - - // CHECK-LABEL: _Z4funcIiEiT_: - // CHECK: | | Branch ([[@LINE-8]]:6): [True: 0, False: 1] - // CHECK-LABEL: _Z4funcIbEiT_: - // CHECK: | | Branch ([[@LINE-10]]:6): [True: 1, False: 0] - // CHECK-LABEL: _Z4funcIfEiT_: - // CHECK: | | Branch ([[@LINE-12]]:6): [True: 0, False: 1] - -extern "C" { extern void __llvm_profile_write_file(void); } -int main() { - if (func(0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] - printf("case1\n"); - if (func(true)) // CHECK: | Branch ([[@LINE]]:7): [True: 0, False: 1] - printf("case2\n"); - if (func(0.0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] - printf("case3\n"); - __llvm_profile_write_file(); - return 0; -} +// RUN: llvm-cov show --show-expansions --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-templates.cpp +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-templates.cpp | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %s -check-prefix=REPORTFILE // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover // REPORT-NEXT: --- diff --git a/llvm/test/tools/llvm-cov/mcdc-const.test b/llvm/test/tools/llvm-cov/mcdc-const.test index 5424625cf6a6b..e6abaa1fa6da8 100644 --- a/llvm/test/tools/llvm-cov/mcdc-const.test +++ b/llvm/test/tools/llvm-cov/mcdc-const.test @@ -1,7 +1,8 @@ // Test visualization of MC/DC constructs for constant-folded condition masking. +// RUN: yaml2obj %S/Inputs/mcdc-const.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/mcdc-const.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=count --show-mcdc %S/Inputs/mcdc-const.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=CHECKGENERALCASE +// RUN: llvm-cov show --show-branches=count --show-mcdc %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=CHECKGENERALCASE // CHECKGENERALCASE: ------------------ // CHECKGENERALCASE-NEXT: | Branch (12:8): [True: 4, False: 1] @@ -34,9 +35,10 @@ // CHECKGENERALCASE-NEXT: | // CHECKGENERALCASE-NEXT: ------------------ +// RUN: yaml2obj %S/Inputs/mcdc-const-folding.yaml -o %t-folding.o // RUN: llvm-profdata merge %S/Inputs/mcdc-const-folding.proftext -o %t.profdata -// RUN: llvm-cov show --show-mcdc %S/Inputs/mcdc-const-folding.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=CHECKFULLCASE -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-const-folding.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-const-folding.cpp | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show --show-mcdc %t-folding.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=CHECKFULLCASE +// RUN: llvm-cov report --show-mcdc-summary %t-folding.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-const-folding.cpp | FileCheck %s -check-prefix=REPORT // CHECKFULLCASE: | 1 { C, - = F } // CHECKFULLCASE: | C1-Pair: constant folded diff --git a/llvm/test/tools/llvm-cov/mcdc-export-json.test b/llvm/test/tools/llvm-cov/mcdc-export-json.test index c2cebf52db8cc..e4e349a0fe900 100644 --- a/llvm/test/tools/llvm-cov/mcdc-export-json.test +++ b/llvm/test/tools/llvm-cov/mcdc-export-json.test @@ -1,5 +1,6 @@ +// RUN: yaml2obj %S/Inputs/mcdc-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/mcdc-general.proftext -o %t.profdata -// RUN: llvm-cov export --format=text %S/Inputs/mcdc-general.o -instr-profile %t.profdata | FileCheck %s +// RUN: llvm-cov export --format=text %t.o -instr-profile %t.profdata | FileCheck %s // CHECK: 12,7,12,27,0,5,[true,true,true,true] // CHECK: 15,7,15,13,0,5,[true,true] diff --git a/llvm/test/tools/llvm-cov/mcdc-general-18.test b/llvm/test/tools/llvm-cov/mcdc-general-18.test index 8707238c4cdcb..1adeae4cc6fd6 100644 --- a/llvm/test/tools/llvm-cov/mcdc-general-18.test +++ b/llvm/test/tools/llvm-cov/mcdc-general-18.test @@ -1,20 +1,21 @@ // Test Version11 (clang-18) files. // mcdc-general.test is used as test patterns. -// RUN: llvm-cov show --show-mcdc %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/mcdc-general.test -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=REPORT +// RUN: yaml2obj %S/Inputs/mcdc-general-18.yaml -o %t.o +// RUN: llvm-cov show --show-mcdc %t.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/mcdc-general.test +// RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %S/Inputs/mcdc-general-18.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=REPORT // Turn off MC/DC visualization. -// RUN: llvm-cov show %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/mcdc-general.test -check-prefix=NOMCDC +// RUN: llvm-cov show %t.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/mcdc-general.test -check-prefix=NOMCDC // Turn off MC/DC summary. -// RUN: llvm-cov report %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=REPORT_NOMCDC +// RUN: llvm-cov report %t.o -instr-profile %S/Inputs/mcdc-general-18.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=REPORT_NOMCDC // Test file-level report. -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=FILEREPORT +// RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %S/mcdc-general.test -check-prefix=FILEREPORT // Test html output. // RUN: rm -rf %t.html.dir -// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %S/Inputs/mcdc-general-18.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir +// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %t.o -instr-profile %S/Inputs/mcdc-general-18.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir // RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/mcdc-general.cpp.html %S/mcdc-general.test // RUN: FileCheck -check-prefix HTML-INDEX -input-file %t.html.dir/index.html %S/mcdc-general.test diff --git a/llvm/test/tools/llvm-cov/mcdc-general-none.test b/llvm/test/tools/llvm-cov/mcdc-general-none.test index b57b35d49c8c1..a30ebf4b83b3b 100644 --- a/llvm/test/tools/llvm-cov/mcdc-general-none.test +++ b/llvm/test/tools/llvm-cov/mcdc-general-none.test @@ -1,8 +1,9 @@ // Test visualization of general MC/DC constructs with 0 executed test vectors. +// RUN: yaml2obj %S/Inputs/mcdc-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/mcdc-general-none.proftext -o %t.profdata -// RUN: llvm-cov show --show-mcdc %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show --show-mcdc %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s +// RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT // CHECK: test(bool @@ -29,7 +30,7 @@ // Turn off MC/DC visualization. -// RUN: llvm-cov show %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=NOMCDC +// RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=NOMCDC // NOMCDC-NOT: MC/DC Decision Region // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover MC/DC Conditions Miss Cover @@ -40,18 +41,18 @@ // REPORT-NEXT: TOTAL 26 0 100.00% 20 0 100.00% 24 2 91.67% 12 12 0.00% // Turn off MC/DC summary. -// RUN: llvm-cov report %S/Inputs/mcdc-general.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT_NOMCDC +// RUN: llvm-cov report %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT_NOMCDC // REPORT_NOMCDC-NOT: TOTAL{{.*}}12 12 0.00% // Test file-level report. -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=FILEREPORT +// RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=FILEREPORT // FILEREPORT: TOTAL{{.*}}12 12 0.00% // Test html output. // RUN: rm -rf %t.html.dir -// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir +// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir // RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/mcdc-general.cpp.html %s // HTML-COUNT-4: MC/DC Decision Region ( diff --git a/llvm/test/tools/llvm-cov/mcdc-general.test b/llvm/test/tools/llvm-cov/mcdc-general.test index c1e95cb2bd92a..7cbd2838eddab 100644 --- a/llvm/test/tools/llvm-cov/mcdc-general.test +++ b/llvm/test/tools/llvm-cov/mcdc-general.test @@ -1,8 +1,9 @@ // Test visualization of general MC/DC constructs. +// RUN: yaml2obj %S/Inputs/mcdc-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/mcdc-general.proftext -o %t.profdata -// RUN: llvm-cov show --show-mcdc %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show --show-mcdc %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s +// RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT // CHECK: test(bool @@ -95,7 +96,7 @@ // CHECK-NEXT: ------------------ // Turn off MC/DC visualization. -// RUN: llvm-cov show %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=NOMCDC +// RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=NOMCDC // NOMCDC-NOT: MC/DC Decision Region // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover MC/DC Conditions Miss Cover @@ -106,18 +107,18 @@ // REPORT-NEXT: TOTAL 26 0 100.00% 20 0 100.00% 24 2 91.67% 12 2 83.33% // Turn off MC/DC summary. -// RUN: llvm-cov report %S/Inputs/mcdc-general.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT_NOMCDC +// RUN: llvm-cov report %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=REPORT_NOMCDC // REPORT_NOMCDC-NOT: TOTAL{{.*}}12 2 83.33% // Test file-level report. -// RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=FILEREPORT +// RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/mcdc-general.cpp | FileCheck %s -check-prefix=FILEREPORT // FILEREPORT: TOTAL{{.*}}12 2 83.33% // Test html output. // RUN: rm -rf %t.html.dir -// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %S/Inputs/mcdc-general.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir +// RUN: llvm-cov show --show-mcdc-summary --show-mcdc %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir // RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/mcdc-general.cpp.html %s // HTML-COUNT-4: MC/DC Decision Region ( diff --git a/llvm/test/tools/llvm-cov/mcdc-macro.test b/llvm/test/tools/llvm-cov/mcdc-macro.test index 14dd5ebd68eb1..989c7d2fe3039 100644 --- a/llvm/test/tools/llvm-cov/mcdc-macro.test +++ b/llvm/test/tools/llvm-cov/mcdc-macro.test @@ -1,7 +1,8 @@ // Test visualization of MC/DC constructs for branches in macro expansions. +// RUN: yaml2obj %S/Inputs/mcdc-macro.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/mcdc-macro.proftext -o %t.profdata -// RUN: llvm-cov show --show-expansions --show-branches=count --show-mcdc %S/Inputs/mcdc-macro.o -instr-profile %t.profdata --compilation-dir=%S/Inputs | FileCheck %s +// RUN: llvm-cov show --show-expansions --show-branches=count --show-mcdc %t.o -instr-profile %t.profdata --compilation-dir=%S/Inputs | FileCheck %s // CHECK: | | | Branch (2:11): [Folded - Ignored] // CHECK: | | | Branch (3:11): [True: 1, False: 0] diff --git a/llvm/test/tools/llvm-cov/mcdc-maxbs.test b/llvm/test/tools/llvm-cov/mcdc-maxbs.test index c6bd18048fb95..78046b6493b39 100644 --- a/llvm/test/tools/llvm-cov/mcdc-maxbs.test +++ b/llvm/test/tools/llvm-cov/mcdc-maxbs.test @@ -1,6 +1,8 @@ # Test not to trigger the assertion failure in llvm-cov with empty bitmap. # REQUIRES: asserts +// RUN: yaml2obj %S/Inputs/mcdc-maxbs.yaml -o %t.o + # mcdc-maxbs.o contains the record: # # sub: @@ -26,7 +28,7 @@ # by trailing uninitialized garbage. # RUN: llvm-profdata merge %S/Inputs/mcdc-maxbs.proftext -o %t.profdata -# RUN: llvm-cov report --show-mcdc-summary %S/Inputs/mcdc-maxbs.o -instr-profile %t.profdata +# RUN: llvm-cov report --show-mcdc-summary %t.o -instr-profile %t.profdata # Instructions for regenerating the test object: From 9f83734c570e554af44293cf517a86265c0ec191 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Wed, 13 Nov 2024 01:13:26 +0900 Subject: [PATCH 2/3] Update usage comment in yaml.makefile I was using `GNUmakefile` just before creating this request. --- llvm/test/tools/llvm-cov/Inputs/yaml.makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/test/tools/llvm-cov/Inputs/yaml.makefile b/llvm/test/tools/llvm-cov/Inputs/yaml.makefile index c5b55d28eb3b5..fd29aa26baed1 100644 --- a/llvm/test/tools/llvm-cov/Inputs/yaml.makefile +++ b/llvm/test/tools/llvm-cov/Inputs/yaml.makefile @@ -2,7 +2,7 @@ # # Usage: # cd /path/to/llvm-project/llvm/test/tools/llvm-cov/Inputs -# PATH=/path/to/build/bin:$PATH make *.yaml +# PATH=/path/to/build/bin:$PATH make -f yaml.makefile *.yaml %.covmap.o: %.o llvm-objcopy \ From 7d62e4d970cbfde0de0eb3cf906cd2504de5a012 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Wed, 13 Nov 2024 23:13:44 +0900 Subject: [PATCH 3/3] Reformat tests --- llvm/test/tools/llvm-cov/branch-c-general.test | 2 +- llvm/test/tools/llvm-cov/branch-noShowBranch.test | 8 ++++---- llvm/test/tools/llvm-cov/branch-showBranchPercentage.test | 2 ++ llvm/test/tools/llvm-cov/branch-templates.test | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/llvm/test/tools/llvm-cov/branch-c-general.test b/llvm/test/tools/llvm-cov/branch-c-general.test index 93aac3e6ba468..8c58c1536f158 100644 --- a/llvm/test/tools/llvm-cov/branch-c-general.test +++ b/llvm/test/tools/llvm-cov/branch-c-general.test @@ -115,7 +115,7 @@ -// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover +// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover // REPORT-NEXT: --- // REPORT-NEXT: simple_loops 8 0 100.00% 9 0 100.00% 6 0 100.00% // REPORT-NEXT: conditionals 24 0 100.00% 15 0 100.00% 16 2 87.50% diff --git a/llvm/test/tools/llvm-cov/branch-noShowBranch.test b/llvm/test/tools/llvm-cov/branch-noShowBranch.test index 42763d48e9b5d..4f16d6629bf12 100644 --- a/llvm/test/tools/llvm-cov/branch-noShowBranch.test +++ b/llvm/test/tools/llvm-cov/branch-noShowBranch.test @@ -6,9 +6,9 @@ // CHECK-NOT: | Branch -// REPORT: Name Regions Miss Cover Lines Miss Cover +// REPORT: Name Regions Miss Cover Lines Miss Cover // REPORT-NOT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover -// REPORT: --- +// REPORT: --- // REPORT-NOT: simple_loops 8 0 100.00% 9 0 100.00% 6 0 100.00% // REPORT-NOT: conditionals 24 0 100.00% 15 0 100.00% 16 2 87.50% // REPORT-NOT: early_exits 20 4 80.00% 25 2 92.00% 16 6 62.50% @@ -21,6 +21,6 @@ // REPORT-NOT: do_fallthrough 9 0 100.00% 12 0 100.00% 6 0 100.00% // REPORT-NOT: main 1 0 100.00% 16 0 100.00% 0 0 0.00% // REPORT-NOT: c-general.c:static_func 4 0 100.00% 4 0 100.00% 2 0 100.00% -// REPORT: TOTAL 197 24 87.82% 234 8 96.58% -// REPORT-NOT: TOTAL 197 24 87.82% 234 13 94.44% 174 38 78.16% +// REPORT: TOTAL 197 24 87.82% 234 8 96.58% +// REPORT-NOT: TOTAL 197 24 87.82% 234 13 94.44% 174 38 78.16% diff --git a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test index fe0bc2c7eec37..5365d4419c2e9 100644 --- a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test +++ b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test @@ -1,5 +1,6 @@ // Test visualization of branch taken percentages +// RUN: rm -rf %t.html.dir // RUN: yaml2obj %S/Inputs/branch-showBranchPercentage.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata // RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-showBranchPercentage.c @@ -23,3 +24,4 @@ // HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] // HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] // HTML: Branch ({{.*}}60.00%,{{.*}}40.00%] +// HTML: Branch ({{.*}}90.91%,{{.*}}9.09%] diff --git a/llvm/test/tools/llvm-cov/branch-templates.test b/llvm/test/tools/llvm-cov/branch-templates.test index 1c18356043f66..b29e2a9d033c2 100644 --- a/llvm/test/tools/llvm-cov/branch-templates.test +++ b/llvm/test/tools/llvm-cov/branch-templates.test @@ -4,7 +4,7 @@ // RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-templates.cpp | FileCheck %s -check-prefix=REPORT // RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %s -check-prefix=REPORTFILE -// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover +// REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover // REPORT-NEXT: --- // REPORT-NEXT: main 7 1 85.71% 10 1 90.00% 6 3 50.00% // REPORT-NEXT: _Z4funcIiEiT_ 5 2 60.00% 7 3 57.14% 2 1 50.00% @@ -21,8 +21,8 @@ // respectively). This is returned by: FunctionCoverageSummary::get(const // InstantiationGroup &Group, ...) -// REPORTFILE: Filename Regions Missed Regions Cover Functions Missed Functions Executed Lines Missed Lines Cover Branches Missed Branches Cover +// REPORTFILE: Filename Regions Missed Regions Cover Functions Missed Functions Executed Lines Missed Lines Cover Branches Missed Branches Cover // REPORTFILE-NEXT: --- // REPORTFILE-NEXT: branch-templates.cpp 12 3 75.00% 2 0 100.00% 17 4 76.47% 8 4 50.00% // REPORTFILE-NEXT: --- -// REPORTFILE-NEXT: TOTAL 12 3 75.00% 2 0 100.00% 17 4 76.47% 8 4 50.00% +// REPORTFILE-NEXT: TOTAL 12 3 75.00% 2 0 100.00% 17 4 76.47% 8 4 50.00%