2010-07-02 9 views
11

क्या जीसीओवी कवरेज विश्लेषण से कोड के कुछ फ़ंक्शंस या लाइनों को बाहर करना संभव है। मेरे कोड में कुछ फ़ंक्शन हैं जिनका उपयोग डिबगिंग के लिए किया जाता है, और मेरे परीक्षण सूट के हिस्से के रूप में उपयोग नहीं किया जाता है। ऐसे कार्य gcov द्वारा कवर किए गए कवरेज प्रतिशत को कम करते हैं। मैं इन कार्यों को परिणामों से बाहर करना चाहता हूं। यदि यह gcov के माध्यम से संभव नहीं है, तो शायद यह lcov के माध्यम से संभव है, लेकिन मैं इसे समझने में सक्षम नहीं था। आपकी मदद की सराहना की है।gcov/lcov कवरेज परिणामों से कुछ फ़ंक्शंस को छोड़कर

+0

भी देखें http://stackoverflow.com/questions/3555083/how-do-i-tell-gcov-to-ignore-un-hittable-lines-of-c-code – jchl

उत्तर

5

मैं एक साधारण अजीब स्क्रिप्ट के माध्यम से lcov --capture के आउटपुट को चलाकर कुछ स्रोत फ़ाइलों को फ़िल्टर करता हूं। Lcov --capture के आउटपुट में एक बहुत ही सरल प्रारूप है और नीचे दी गई अजीब स्क्रिप्ट file_pattern से मेल खाने वाली स्रोत फ़ाइलों को फ़िल्टर करती है। मुझे लगता है कि फ़ाइल नामों के बजाय फ़िल्टर फ़ंक्शन बनाने के लिए स्क्रिप्ट को अनुकूलित करना संभव है।

BEGIN { 
     record="" 
} 

/^SF/ { 
     if (match ($0, "file_pattern")) { 
      doprint = 0 
     } else { 
      doprint = 1 
     } 
} 

/^end_of_record$/ { 
     if (doprint) { 
      print record $0 
     } 
     record = "" 
     next 
} 

{ 
    record=record $0 "\n" 
} 
संबंधित मुद्दे