Gcov
जी. सी. ओ. वी. एक स्रोत कोड कवरेज विश्लेषण और कथन-दर-कथन प्रोफाइलिंग उपकरण है। जी. सी. ओ. वी. एक प्रोग्राम में प्रत्येक कथन को निष्पादित करने की संख्या की सटीक गिनती उत्पन्न करता है और इंस्ट्रूमेंटेशन जोड़ने के लिए स्रोत कोड की व्याख्या करता है। जी. सी. ओ. वी. जी. एन. यू. कम्पाइलर कलेक्शन (जी. सी. सी.) सूट के साथ एक मानक उपयोगिता के रूप में आता है। जी. सी. ओ. वी. उपयोगिता इस बात की जानकारी देती है कि कोई प्रोग्राम कितनी बार कोड के खंडों को निष्पादित करता है। यह निष्पादन आवृत्तियों के साथ एनोटेटेड स्रोत फ़ाइल की एक प्रति का उत्पादन करता है। जी. सी. ओ. वी. उपयोगिता किसी भी समय-आधारित डेटा का उत्पादन नहीं करती है और केवल जी. सी. सी. सूट के साथ संकलित कोड पर काम करती है। मैनुअल का दावा है कि यह किसी अन्य प्रोफाइलिंग या परीक्षण कवरेज तंत्र के साथ संगत नहीं है, लेकिन यह एल. एल. वी. एम.-जनरेटेड फ़ाइलों के साथ भी काम करता है। विवरण जी. सी. ओ. वी. एक विशेष उपकरण कार्यक्रम का परीक्षण कवरेज विश्लेषण तैयार करता है। कवरेज विश्लेषण के लिए कार्यक्रम को संकलित करने के लिए विकल्पों-प्रोफाइल-आर्क्स-सबसे-कवरेज का उपयोग किया जाना चाहिए (पहला विकल्प शाखा सांख्यिकी को रिकॉर्ड करने के लिए और दूसरा लाइन निष्पादन गणना को बचाने के लिए);-प्रोफाइल-आर्क्स का उपयोग कार्यक्रम को जोड़ने के लिए भी किया जाना चाहिए। इस तरह के प्रोग्राम को चलाने के बाद ". bb". "bbg" और ". दा" एक्सटेंशन (प्रत्यय) के साथ कई फाइलें बनेंगी, जिनका gcov द्वारा विश्लेषण किया जा सकता है। यह स्रोत फ़ाइलों को कमांड-लाइन तर्क के रूप में लेता है और एक एनोटेटेड स्रोत सूची तैयार करता है। स्रोत कोड की प्रत्येक पंक्ति को कितनी बार निष्पादित किया गया है, उसके साथ जोड़ा जाता है; जिन पंक्तियों को निष्पादित नहीं किया गया है, उन्हें "####" के साथ जोड़ा जाता है। जी. सी. ओ. वी. sourcefile.gcov नामक एक लॉगफाइल बनाता है जो इंगित करता है कि स्रोत फ़ाइल sourcefile.c की प्रत्येक पंक्ति ने कितनी बार निष्पादित किया है। इस एनोटेटेड स्रोत फ़ाइल का उपयोग कार्यक्रम के बारे में समय की जानकारी निकालने के लिए एक अन्य प्रोफाइलिंग उपकरण जीप्रोफ़ के साथ किया जा सकता है। उदाहरण सी में लिखा गया निम्नलिखित प्रोग्राम, पूर्णांक 1 से 9 पर लूप करता है और मापांक (%) प्रचालक के साथ उनकी विभाज्यता का परीक्षण करता है। #include <stdio.h> इंट मेन (शून्य) {इंट i; के लिए (i = 1; i <10; i + +) {यदि (i% 3 = = 0) प्रिंटएफ ("% d 3\n से विभाज्य है", i); यदि (i% 11 = = 0) प्रिंटएफ ("% d 11\n से विभाज्य है", i);} रिटर्न 0;} कवरेज परीक्षण को सक्षम करने के लिए प्रोग्राम को निम्नलिखित विकल्पों के साथ संकलित किया जाना चाहिएः $जीसीसी-वॉल-प्रोफाइल-आर्क्स-सबसे-कवरेज cov.c जहां cov.c प्रोग्राम फ़ाइल का नाम है। यह एक उपकरण निष्पादन योग्य बनाता है जिसमें अतिरिक्त निर्देश होते हैं जो कार्यक्रम की प्रत्येक पंक्ति को निष्पादित करने की संख्या को रिकॉर्ड करते हैं। यह विकल्प अलग-अलग पंक्तियों को निष्पादित करने की संख्या की गिनती के लिए निर्देश जोड़ता है, जबकि कार्यक्रम की प्रत्येक शाखा के लिए उपकरण कोड को शामिल करता है। शाखा इंस्ट्रूमेंटेशन रिकॉर्ड करता है कि 'यदि' बयानों और अन्य शर्तों के माध्यम से कितनी बार अलग-अलग रास्ते लिए जाते हैं। निष्पादन योग्य को तब कोड का विश्लेषण करने और कवरेज डेटा बनाने के लिए चलाया जा सकता है। $./a. out रन से डेटा वर्तमान निर्देशिका में क्रमशः '. bb' '. bbg' और '. da' एक्सटेंशन के साथ कई कवरेज डेटा फ़ाइलों में लिखा जाता है। यदि कार्यक्रम निष्पादन इनपुट मापदंडों या डेटा के आधार पर भिन्न होता है, तो इसे कई बार चलाया जा सकता है और परिणाम समग्र विश्लेषण के लिए कवरेज डेटा फ़ाइलों में जमा हो जाएंगे। इस डेटा का विश्लेषण gcov कमांड और एक स्रोत फ़ाइल के नाम का उपयोग करके किया जा सकता हैः $gcov cov.c 88.89 फ़ाइल में निष्पादित 9 स्रोत लाइनों का% cov.c बनाना cov.c.gcov gcov कमांड मूल स्रोत फ़ाइल का एक एनोटेटेड संस्करण बनाता है, जिसमें फ़ाइल एक्सटेंशन '. gcov' होता है, जिसमें प्रत्येक पंक्ति को निष्पादित करने की संख्या की गिनती होती हैः #include <stdio.h> int मुख्य (शून्य) {1 int i; 10 के लिए (i = 1; i <10; i + +) {9 यदि (i% 3 = = 0) 3 प्रिंटएफ ("% d 3", i "से विभाज्य है); 9 जिन पंक्तियों को निष्पादित नहीं किया गया था, उन्हें हैश '#####' के साथ चिह्नित किया जाता है। कमांड-लाइन विकल्प Gcov कमांड लाइन उपयोगिता प्रोफ़ाइल डेटा से एनोटेटेड फ़ाइलों को उत्पन्न करते समय निम्नलिखित विकल्पों का समर्थन करती हैः-h (---हेल्प): gcov (मानक आउटपुट पर) का उपयोग करने के बारे में सहायता प्रदर्शित करें, और आगे कोई प्रक्रिया किए बिना बाहर निकलें। - v (-- संस्करण): जी. सी. ओ. वी. संस्करण संख्या (मानक आउटपुट पर) प्रदर्शित करें, और आगे कोई प्रक्रिया किए बिना बाहर निकलें। - a (-- सभी-ब्लॉक): प्रत्येक मूल ब्लॉक के लिए व्यक्तिगत निष्पादन गणनाएँ लिखें। आम तौर पर जी. सी. ओ. वी. आउटपुट निष्पादन केवल एक रेखा के मुख्य खंडों के लिए गणना करता है। इस विकल्प के साथ आप यह निर्धारित कर सकते हैं कि क्या एक पंक्ति के भीतर ब्लॉकों को निष्पादित नहीं किया जा रहा है। - b (-- शाखा-संभावनाएँ): आउटपुट फ़ाइल में शाखा आवृत्तियाँ लिखें, और मानक आउटपुट के लिए शाखा सारांश जानकारी लिखें। यह विकल्प आपको यह देखने की अनुमति देता है कि आपके कार्यक्रम की प्रत्येक शाखा को कितनी बार लिया गया था। बिना शर्त शाखाएँ तब तक नहीं दिखाई देंगी जब तक कि-u विकल्प नहीं दिया जाता है। - c (-- शाखा-गिनती): शाखा आवृत्तियों को ली गई शाखाओं की संख्या के रूप में लिखें, न कि ली गई शाखाओं के प्रतिशत के रूप में। - n (---आउटपुट नहीं): जी. सी. ओ. वी. आउटपुट फाइल न बनाएँ। - l (-- लंबी-फ़ाइल-नाम): शामिल स्रोत फ़ाइलों के लिए लंबे फ़ाइल नाम बनाएँ। उदाहरण के लिए, यदि हेडर फ़ाइल x. h में कोड है, और इसे फ़ाइल a. c. में शामिल किया गया था, तो फ़ाइल a. c. पर gcov चलाने से x.h.gcov के बजाय a.c##x.h.gcov नामक एक आउटपुट फ़ाइल उत्पन्न होगी। यह उपयोगी हो सकता है यदि x. h को कई स्रोत फ़ाइलों में शामिल किया गया है और आप व्यक्तिगत योगदान देखना चाहते हैं। यदि आप '-p' विकल्प का उपयोग करते हैं, तो शामिल और शामिल दोनों फ़ाइल नाम पूर्ण पथ नाम होंगे। - p (-- परिरक्षित-पथ): उत्पन्न. gcov फ़ाइलों के नामों में पूर्ण पथ जानकारी को संरक्षित करें। इस विकल्प के बिना, केवल फ़ाइल नाम घटक का उपयोग किया जाता है। इस विकल्प के साथ, सभी निर्देशिकाओं का उपयोग किया जाता है, जिसमें '/' वर्णों का अनुवाद '#' वर्णों में किया जाता है। निर्देशिका घटकों को हटा दिया गया और हटाने योग्य नहीं है. घटकों का नाम बदलकर '^' कर दिया गया है। यह उपयोगी है यदि स्रोत फ़ाइलें कई अलग-अलग निर्देशिकाओं में हैं। - r (-- सापेक्ष-केवल): केवल स्रोत फ़ाइलों के बारे में आउटपुट जानकारी एक सापेक्ष पथनाम के साथ (स्रोत उपसर्ग विलोपन के बाद)। एब्सोल्यूट पाथ आमतौर पर सिस्टम हेडर फाइल होते हैं और उनमें किसी भी इनलाइन फ़ंक्शन का कवरेज आम तौर पर दिलचस्प नहीं होता है। - f (---फ़ंक्शन-सारांश): फ़ाइल स्तर सारांश के अलावा प्रत्येक फ़ंक्शन के लिए आउटपुट सारांश। - o directory|file (-- ऑब्जेक्ट-डायरेक्टरी या-- ऑब्जेक्ट-फाइल फ़ाइल): या तो जी. सी. ओ. वी. डेटा फ़ाइलों वाली निर्देशिका, या ऑब्जेक्ट पथ का नाम निर्दिष्ट करें। . gcno, और. gcda डेटा फ़ाइलों को इस विकल्प का उपयोग करके खोजा जाता है। यदि एक निर्देशिका निर्दिष्ट की जाती है, तो डेटा फाइलें उस निर्देशिका में होती हैं और इसके विस्तार के बिना, इनपुट फ़ाइल नाम के नाम पर रखी जाती हैं। यदि कोई फ़ाइल यहाँ निर्दिष्ट की गई है, तो डेटा फ़ाइलों का नाम उस फ़ाइल के नाम पर रखा जाता है, बिना इसके विस्तार के। - s निर्देशिका (-- स्रोत-उपसर्ग निर्देशिका): आउटपुट कवरेज फ़ाइलों को उत्पन्न करते समय स्रोत फ़ाइल नामों को हटाने के लिए एक उपसर्ग। यह विकल्प एक अलग निर्देशिका में निर्माण करते समय उपयोगी होता है, और आउटपुट फ़ाइल नामों का निर्धारण करते समय स्रोत निर्देशिका के पथनाम की आवश्यकता नहीं होती है। ध्यान दें कि यह उपसर्ग पहचान यह निर्धारित करने से पहले लागू की जाती है कि स्रोत फ़ाइल निरपेक्ष है या नहीं। - u (-- बिना शर्त-शाखाएँ): जब शाखा संभावनाएँ दी जाती हैं, तो बिना शर्त शाखाओं को शामिल करें। बिना शर्त शाखाएँ आम तौर पर दिलचस्प नहीं होती हैं। - d (-- प्रदर्शन-प्रगति): मानक आउटपुट पर प्रगति प्रदर्शित करें। कवरेज सारांश एल. सी. ओ. वी. जी. सी. ओ. वी. के लिए एक ग्राफिकल फ्रंट-एंड है। यह कई स्रोत फ़ाइलों के लिए जी. सी. ओ. वी. डेटा एकत्र करता है और कवरेज जानकारी के साथ एनोटेटेड स्रोत कोड वाले एच. टी. एम. एल. पृष्ठ बनाता है। यह फ़ाइल संरचना के भीतर आसान नेविगेशन के लिए अवलोकन पृष्ठ भी जोड़ता है। Lcov कथन, कार्य और शाखा कवरेज माप का समर्थन करता है। एक विंडोज संस्करण भी है। जी. सी. ओ. वी. आर. जी. सी. ओ. वी. के उपयोग के प्रबंधन और संक्षिप्त कोड कवरेज परिणाम उत्पन्न करने के लिए एक उपयोगिता प्रदान करता है। यह कमांड पायथन coverage.py पैकेज से प्रेरित है, जो पायथन में एक समान उपयोगिता प्रदान करता है। जी. सी. ओ. वी. आर. या तो संक्षिप्त मानव-पठनीय सारांश रिपोर्ट, मशीन द्वारा पठनीय एक्स. एम. एल. रिपोर्ट या एक चित्रमय एच. टी. एम. एल. सारांश तैयार करता है। जी. सी. ओ. वी. आर. द्वारा उत्पन्न एक्स. एम. एल. रिपोर्ट का उपयोग जेनकिंस द्वारा ग्राफिकल कोड कवरेज सारांश प्रदान करने के लिए किया जा सकता है। जी. सी. ओ. वी. आर. कथन और शाखा कवरेज माप का समर्थन करता है एस. सी. ओ. वी. एक ऐसी उपयोगिता है जो कोड कवरेज पर रिपोर्ट उत्पन्न करने के लिए जी. सी. ओ. वी. (जी. सी. ओ. वी.-आई. का उपयोग करके) द्वारा उत्पन्न मध्यवर्ती पाठ प्रारूप को संसाधित करती है। ये रिपोर्ट एक साधारण पाठ रिपोर्ट, या अधिक विस्तृत रिपोर्ट वाले एच. टी. एम. एल. पृष्ठ हो सकते हैं। सन स्टूडियो सूट संदर्भ सॉफ्टवेयर मेट्रिक्स सॉफ्टवेयर परीक्षण उपकरणों में प्रदान किए गए सोलारिस के लिए टी. सी. ओ. वी.-कोड कवरेज उपकरण भी देखें।