2010-07-02 7 views
8

मेरे पास एक ही स्रोत फाइलें (सी और ओब्जे-सी) दो लक्ष्यों में संकलित की जा रही हैं: इकाई परीक्षण निष्पादन योग्य और वास्तविक उत्पाद (जिसे तब एकीकरण परीक्षण किया जाता है)। दो लक्ष्य विभिन्न स्थानों में बनाते हैं, इसलिए ऑब्जेक्ट फ़ाइलें, .gcno और .gcda फ़ाइलें अलग हैं। सभी स्रोत फ़ाइलों को इकाई परीक्षण में संकलित नहीं किया जाता है, इसलिए सभी ऑब्जेक्ट्स मौजूद नहीं होंगे। सभी स्रोत फ़ाइलों को उत्पाद निर्माण में संकलित किया जाता है।gcov के साथ, क्या .gcda फ़ाइलों में विलय करना संभव है?

क्या यूनिट परीक्षणों और एकीकरण परीक्षणों के लिए कुल कवरेज प्राप्त करने के लिए .gcda फ़ाइलों के दो सेटों को गठबंधन करने का कोई तरीका है (क्योंकि वे उत्पाद निर्माण पर चल रहे हैं)?

मैं एलसीओवी का उपयोग कर रहा हूं।

मैक ओएस एक्स 10.6, जीसीसी 4.0

धन्यवाद!

उत्तर

4

चूंकि आप एलसीओवी का उपयोग कर रहे हैं, तो आप gcov .gcda फ़ाइलों को lcov फ़ाइलों में परिवर्तित करने और lcov --add-tracefile के साथ विलय करने में सक्षम होना चाहिए।

मैनपेज से: tracefile की सामग्री जोड़ें। परीक्षण और फ़ाइल नाम संयोजनों के लिए निष्पादन गणना जोड़कर इन फ़ाइलों में निहित कवरेज डेटा को गठबंधन करने के लिए -ए स्विच का उपयोग करके कई ट्रेसफाइल निर्दिष्ट करें।

5

अंततः मैं lcov के माध्यम से अपनी समस्या को हल करने में कामयाब रहा।

  • झंडे -fprofile-arcs -ftest-coverage --coverage
  • साथ आवेदन संकलित प्रत्येक नोड के लिए आवेदन की प्रति वितरित करें:

    मैं मूल रूप से क्या किया पीछा कर रहा है।

  • प्रत्येक नोड में समानांतर में एप्लिकेशन निष्पादित करें। (यह कदम एक्सेस होस्ट में एप्लिकेशन निर्देशिका में उत्पन्न करता है कवरेज जानकारी)
  • Let lcov अपने काम करते हैं:
    • genhtml -o coverage_reports/ coverage_reports/app.info
  • :
    • lcov --directory src/ --capture --output-file coverage_reports/app.info
  • एचटीएमएल उत्पादन उत्पन्न

मुझे आशा है कि यह किसी के लिए मदद की जा सकती है।

+0

वाह, उत्तर देने के लिए धन्यवाद। उस प्रश्न और अब पूछने के बीच मेरे पास 2 बहुत ही अलग नौकरियां हैं। मुझे उम्मीद है कि यह किसी की मदद करेगा। – Joe

0

मैं इसे नीचे lcov बहु-डी पैरामीटर द्वारा विलय करता हूं। यह काम करता हैं।

lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info 
संबंधित मुद्दे