2012-11-14 10 views
20

मैंने अपनी परियोजना में कवरेज जानकारी बनाने के लिए lcov का उपयोग किया। लेकिन मैं केवल लाइन कवरेज और फंक्शन कवरेज आंकड़े जानकारी प्राप्त कर सकता हूं।एलसीओवी: शाखा कवरेज आंकड़े एकत्र नहीं कर सकते

lcov version:1.10, gcov version:4.4.5 

आदेशों मैं प्रयोग किया जाता है:

lcov -d $OSPL_HOME/src -d $OSPL_OUTER_HOME/src -c -o /work/li/log/lcov-raw.info 

lcov -r /work/li/log/lcov-raw.info "*.ll" "*.yy" "*.yy.c" yaccpar "TAO161*" "/usr/include/*" "*/testsuite/*" -o /work/li/log/lcov.info 

इन दोनों आदेशों के बाद, मैं परिणाम मिल गया है:

Deleted 23 files 

Writing data to /work/li/log/lcov.info 

Summary coverage rate: 

    lines......: 45.4% (65087 of 143496 lines) 

    functions..: 46.1% (5575 of 12102 functions) 

    **branches...: no data found** 

तो वहाँ कोई शाखाओं कवरेज परिणाम थे। क्यूं कर? तो क्या हुआ? और यह कैसे हो सकता है? मैं यहाँ उलझन में हूँ।

geninfo: WARNING: cannot find an entry for ..#..#code#accum.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#at.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#autodef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#copyof.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#debug.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#define.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#dump.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#error.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expand.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expr.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#if.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#include.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#io.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#is.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#line.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#pragma.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#preprocess.c.gcov in .gcnofile, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#set.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#sharp.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#symtbl.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#undef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#while.c.gcov in .gcno file , skipping file! 
+2

कृपया उत्तर को अपने प्रश्न के उत्तर के रूप में जोड़ें। मैंने इसे बहुत उपयोगी पाया। – nwellnhof

+0

मैंने नीचे एक समुदाय विकी उत्तर जोड़ा है। यदि लेखक कभी भी इस प्रश्न पर वापस आ जाता है, तो वह पुरस्कार में अपना उत्तर और बेसक जोड़ सकता है। –

+0

[एलसीओवी के लिए शाखा कवरेज डेटा उत्पन्न करने का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/12360167/generating-branch-coverage-data-for-lcov) – Hcorg

उत्तर

25

मैं पीटर Oberparleiter, geninfo के लेखक की ओर से ईमेल प्राप्त हुआ है:

पहले आदेश के बाद, मैं इस तरह की चेतावनी के बहुत सारे मिल गया। मुझे जवाब के रूप में जवाब मिला।

एलसीओवी 1.10 में प्रति शाखा शाखा कवरेज अक्षम है। आप lcovrc फ़ाइल को संशोधित करके इसे सक्षम कर सकते हैं (man lcovrc देखें) या lcov/genhtml चलाते समय --rc lcov_branch_coverage=1 निर्दिष्ट करके।

यदि आप एलसीओवी 1.10 का उपयोग नहीं कर रहे हैं और अभी भी शाखा कवरेज नहीं प्राप्त करते हैं, तो हो सकता है कि आप जीसीसी का संस्करण इस जानकारी को प्रदान न करें।

(ऊपर जवाब ग़लती से the author द्वारा प्रश्न को जोड़ा गया है।)

11

समाधान ऊपर दिए गए:,

--rc lcov_branch_coverage=1 

lcov और genhtml के लिए दोनों का उपयोग किया मेरे लिए काम किया।

संबंधित मुद्दे