कई साल पहले, मिशेल कैस ने lcov उपयोगिता के आधार पर PostgreSQL कोड बेस के लिए कोड कवरेज रिपोर्ट जेनरेट करने के लिए एक पैच सबमिट किया था। हालांकि मुझे मेलिंग सूची संग्रह में वास्तविक पैच का कोई रिकॉर्ड नहीं मिल रहा है, पीटर एसेंट्राउट ने इसे कुछ समय बाद प्रतिबद्ध किया, और बाद में और परिशोधन लागू किया।
आज मैं एक नई पोस्टग्रेएसक्यूएल सामुदायिक सेवा की घोषणा कर रहा हूं:कोड कवरेज रिपोर्ट स्वचालित रूप से उत्पन्न होती है और इस बुनियादी ढांचे का उपयोग करके दैनिक रूप से अपडेट की जाती है। यह सिस्टम मास्टर शाखा को संकलित करता है, मेक चेक-वर्ल्ड runs चलाता है , और फिर मेक कवरेज . के साथ HTML रिपोर्ट जेनरेट करता है , जो आप देखते हैं।

src/backend/access/brin
. में नमूना कोड कवरेज रिपोर्टकोड कवरेज से अपरिचित पाठकों के लिए, एक त्वरित सारांश:कोड "कवर" होता है जब कुछ परीक्षण सूट होता है जो इसका अभ्यास करता है। कोड जो कवर नहीं किया गया है वह बिना किसी को देखे आसानी से टूट सकता है, जो अच्छा नहीं है। कोड को चुपचाप टूटने से बचाने के लिए, यह महत्वपूर्ण है कि अधिकांश पंक्तियाँ परीक्षणों से आच्छादित हों। अधिक संपूर्ण स्पष्टीकरण के लिए, यहाँ इस विषय पर विकिपीडिया पृष्ठ है।
इस क्षेत्र में हमारे आँकड़े ऐतिहासिक रूप से काफी खराब रहे हैं; जबकि कई बैकएंड विशेषताएं अच्छी तरह से कवर की गई हैं, ऐसी कई विशेषताएं हैं जो केवल आंशिक रूप से कवर की गई हैं, और अन्य जो बिल्कुल भी कवर नहीं हैं। हम हाल के वर्षों में सुधार कर रहे हैं; पहले हमने आइसोलेशन टेस्टर जोड़ा, जिसने हमें उन विशेषताओं का परीक्षण करने में सक्षम बनाया जो केवल संगामिति के तहत काम करती हैं। दूसरा हमने टीएपी परीक्षण जोड़े, जो शुरू में क्लाइंट उपयोगिताओं को कवर करने के लिए थे, लेकिन बाद में अन्य चीजों जैसे कि वाल रीप्ले कोड और अन्य चीजों को भी कवर करने के लिए बढ़ा दिया गया था। लेकिन यह स्पष्ट है कि हमें अभी लंबा रास्ता तय करना है।
ध्यान में रखने के लिए कुछ चेतावनी हैं। एक यह है कि चेक-वर्ल्ड बनाएं लक्ष्य (यह कवरेज टूल किस बारे में रिपोर्ट करता है) वह नहीं है जो बिल्डफ़ार्म चलाता है, इसलिए यह अच्छी तरह से मामला हो सकता है कि कवरेज रिपोर्ट बिल्डफ़ार्म की तुलना में अधिक परीक्षण चला रही है - जिसका अर्थ है कि हम वास्तव में इसके बिना कवरेज का दावा कर रहे हैं। दूसरा यह है कि कवरेज एक ही प्लेटफॉर्म (AMD64 पर डेबियन) में चलाया जाता है, इसलिए अन्य आर्किटेक्चर के लिए कोड को कवर के रूप में रिपोर्ट नहीं किया जाता है।
तो बाहर जाओ और अन्वेषण करो! मेरा मतलब है, रिपोर्ट का पता लगाएं, पता करें कि हमारे कोड के कौन से हिस्से शामिल नहीं हैं, और इसे ठीक करने के लिए एक परीक्षण तैयार करने का प्रयास करें। हम रुचि के साथ pgsql-hackers में आपके पैच की प्रतीक्षा कर रहे हैं।
(इसके अलावा:क्या कोई परीक्षण है जो हमें मेक चेक-वर्ल्ड . के अलावा चलाना चाहिए? ? कृपया टिप्पणियों में प्रतिक्रिया दें)।