Gcov
Gcov એ સોર્સ કોડ કવરેજ વિશ્લેષણ અને સ્ટેટમેન્ટ-બાય-સ્ટેટમેન્ટ પ્રોફાઇલિંગ ટૂલ છે. Gcov પ્રોગ્રામમાં દરેક સ્ટેટમેન્ટ કેટલી વાર ચલાવવામાં આવે છે તેની ચોક્કસ ગણતરી કરે છે અને ઇન્સ્ટ્રુમેન્ટેશન ઉમેરવા માટે સોર્સ કોડની ટિપ્પણી કરે છે. જીસીઓવી જીએનયુ કમ્પાઇલર કલેક્શન (જીસીસી) સ્યુટ સાથે પ્રમાણભૂત ઉપયોગિતા તરીકે આવે છે. જી. સી. ઓ. વી. ઉપયોગિતા પ્રોગ્રામ કોડના વિભાગોને કેટલી વાર ચલાવે છે તેની માહિતી આપે છે. તે સ્રોત ફાઇલની નકલ ઉત્પન્ન કરે છે, જે એક્ઝેક્યુશન ફ્રીક્વન્સીઝ સાથે એનોટેટેડ હોય છે. જી. સી. ઓ. વી. ઉપયોગિતા કોઈપણ સમય-આધારિત માહિતી ઉત્પન્ન કરતી નથી અને માત્ર જી. સી. સી. સ્યુટ સાથે સંકલિત કોડ પર કામ કરે છે. મેન્યુઅલ દાવો કરે છે કે તે અન્ય કોઈપણ પ્રોફાઇલિંગ અથવા ટેસ્ટ કવરેજ મિકેનિઝમ સાથે સુસંગત નથી, પરંતુ તે એલ. એલ. વી. એમ.-જનરેટેડ ફાઇલો સાથે પણ કામ કરે છે. વર્ણન જી. સી. ઓ. વી. ખાસ ઇન્સ્ટ્રુમેન્ટેડ પ્રોગ્રામનું પરીક્ષણ કવરેજ વિશ્લેષણ કરે છે. વિકલ્પો-પ્રોફાઇલ-આર્ક્સ-સૌથી વધુ-કવરેજનો ઉપયોગ કવરેજ વિશ્લેષણ માટે પ્રોગ્રામને સંકલિત કરવા માટે થવો જોઈએ (પ્રથમ વિકલ્પ શાખા આંકડાઓ રેકોર્ડ કરવા માટે અને બીજો વિકલ્પ લાઇન એક્ઝેક્યુશન કાઉન્ટ સેવ કરવા માટે);-પ્રોફાઇલ-આર્ક્સનો ઉપયોગ પ્રોગ્રામને લિંક કરવા માટે પણ થવો જોઈએ. આવા પ્રોગ્રામને ચલાવ્યા પછી ". bb". "bbg" અને ". દા" એક્સ્ટેન્શન્સ (પ્રત્યય) સાથે ઘણી ફાઇલો બનાવશે, જેનું gcov દ્વારા વિશ્લેષણ કરી શકાય છે. તે સ્રોત ફાઇલોને આદેશ-વાક્ય દલીલો તરીકે લે છે અને ટિપ્પણીકૃત સ્રોત સૂચિ બનાવે છે. સ્રોત કોડની દરેક પંક્તિને કેટલી વાર ચલાવવામાં આવી છે તેની સાથે ઉપસર્ગ કરવામાં આવે છે; જે રેખાઓ ચલાવવામાં આવી નથી તેને "#####" સાથે ઉપસર્ગ કરવામાં આવે છે. 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 \n" દ્વારા વિભાજીત છે, i); 9 જે રેખાઓ ચલાવવામાં આવી ન હતી તેને હેશ '#####' સાથે ચિહ્નિત કરવામાં આવે છે. કમાન્ડ-લાઇન વિકલ્પો Gcov કમાન્ડ લાઇન યુટિલિટી પ્રોફાઇલ ડેટામાંથી એનોટેટેડ ફાઇલો જનરેટ કરતી વખતે નીચેના વિકલ્પોને સપોર્ટ કરે છેઃ-h (---હેલ્પ): gcov (પ્રમાણભૂત આઉટપુટ પર) નો ઉપયોગ કરવા વિશે ડિસ્પ્લે મદદ, અને આગળ કોઈ પ્રક્રિયા કર્યા વિના બહાર નીકળો. - v (-- આવૃત્તિ): gcov આવૃત્તિ નંબર દર્શાવો (પ્રમાણભૂત આઉટપુટ પર), અને આગળ કોઈ પ્રક્રિયા કર્યા વિના બહાર નીકળો. - a (-- બધા-બ્લોક): દરેક મૂળભૂત બ્લોક માટે વ્યક્તિગત એક્ઝેક્યુશન ગણતરીઓ લખો. સામાન્ય રીતે જી. સી. ઓ. વી. આઉટપુટ એક્ઝેક્યુશન માત્ર લાઇનના મુખ્ય બ્લોક માટે ગણવામાં આવે છે. આ વિકલ્પ સાથે તમે નક્કી કરી શકો છો કે એક જ લીટીમાં બ્લોક ચલાવવામાં આવી રહ્યા નથી. - b (-- શાખા-સંભાવનાઓ): આઉટપુટ ફાઇલમાં શાખા આવૃત્તિઓ લખો અને પ્રમાણભૂત આઉટપુટમાં શાખા સારાંશ માહિતી લખો. આ વિકલ્પ તમને એ જોવાની મંજૂરી આપે છે કે તમારા કાર્યક્રમની દરેક શાખા કેટલી વાર લેવામાં આવી હતી. જ્યાં સુધી-u વિકલ્પ આપવામાં ન આવે ત્યાં સુધી બિનશરતી શાખાઓ બતાવવામાં આવશે નહીં. - c (-- શાખા-ગણતરીઓ): લેવામાં આવેલી શાખાઓની ટકાવારીને બદલે લેવામાં આવેલી શાખાઓની સંખ્યા તરીકે શાખા આવર્તન લખો. - n (-- no-આઉટપુટ): gcov આઉટપુટ ફાઇલ ન બનાવો. - 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 (-- ઓબ્જેક્ટ-ડિરેક્ટરી અથવા-- ઓબ્જેક્ટ-ફાઇલ ફાઇલ): કાં તો gcov ડેટા ફાઇલો ધરાવતી ડિરેક્ટરી અથવા ઓબ્જેક્ટ પાથનું નામ સ્પષ્ટ કરો. આ વિકલ્પનો ઉપયોગ કરીને. gcno અને. gcda ડેટા ફાઇલોને શોધવામાં આવે છે. જો ડિરેક્ટરી નિર્દિષ્ટ હોય, તો ડેટા ફાઇલો તે ડિરેક્ટરીમાં હોય છે અને તેના વિસ્તરણ વિના, ઇનપુટ ફાઇલના નામ પરથી નામ આપવામાં આવે છે. જો ફાઇલ અહીં નિર્દિષ્ટ કરવામાં આવી હોય, તો ડેટા ફાઇલોને તેના એક્સ્ટેંશન વિના, તે ફાઇલના નામ પરથી નામ આપવામાં આવે છે. - s ડિરેક્ટરી (-- સ્ત્રોત-ઉપસર્ગ ડિરેક્ટરી): આઉટપુટ કવરેજ ફાઇલો બનાવતી વખતે દૂર કરવા માટે સ્રોત ફાઇલ નામો માટેનું ઉપસર્ગ. આ વિકલ્પ અલગ ડિરેક્ટરીમાં નિર્માણ કરતી વખતે ઉપયોગી છે, અને આઉટપુટ ફાઇલ નામો નક્કી કરતી વખતે સ્રોત ડિરેક્ટરીનું પાથનામ જરૂરી નથી. નોંધ લો કે સ્રોત ફાઇલ નિરપેક્ષ છે કે નહીં તે નક્કી કરતા પહેલા આ ઉપસર્ગ શોધ લાગુ કરવામાં આવે છે. - યુ (-- બિનશરતી-શાખાઓ): જ્યારે શાખાઓની સંભાવનાઓ આપવામાં આવે છે, ત્યારે તેમાં બિનશરતી શાખાઓનો સમાવેશ થાય છે. બિનશરતી શાખાઓ સામાન્ય રીતે રસપ્રદ હોતી નથી. - d (-- ડિસ્પ્લે-પ્રોગ્રેસ): પ્રમાણભૂત આઉટપુટ પર પ્રગતિ દર્શાવો. કવરેજ સારાંશ Lcov એ gcov માટે ગ્રાફિકલ ફ્રન્ટ-એન્ડ છે. તે બહુવિધ સ્રોત ફાઇલો માટે જીસીઓવી ડેટા એકત્રિત કરે છે અને કવરેજ માહિતી સાથે એનોટેટેડ સ્રોત કોડ ધરાવતા એચટીએમએલ પૃષ્ઠો બનાવે છે. તે ફાઇલ માળખામાં સરળ નેવિગેશન માટે ઝાંખી પૃષ્ઠો પણ ઉમેરે છે. Lcov નિવેદન, કાર્ય અને શાખા કવરેજ માપનને ટેકો આપે છે. વિન્ડોઝ વર્ઝન પણ છે. જી. સી. ઓ. વી. આર. જી. સી. ઓ. વી. ના ઉપયોગનું સંચાલન કરવા અને સંક્ષિપ્ત કોડ કવરેજ પરિણામો પેદા કરવા માટે ઉપયોગિતા પ્રદાન કરે છે. આ આદેશ પાયથોન coverage.py પેકેજથી પ્રેરિત છે, જે પાયથોનમાં સમાન ઉપયોગિતા પ્રદાન કરે છે. Gcovr કોમ્પેક્ટ માનવ-વાંચી શકાય તેવા સારાંશ અહેવાલો, મશીન વાંચી શકાય તેવા XML અહેવાલો અથવા ગ્રાફિકલ એચટીએમએલ સારાંશ બનાવે છે. જી. સી. ઓ. વી. આર. દ્વારા પેદા થયેલા એક્સ. એમ. એલ. અહેવાલોનો ઉપયોગ જેનકિન્સ દ્વારા ગ્રાફિકલ કોડ કવરેજ સારાંશ પ્રદાન કરવા માટે કરી શકાય છે. Gcovr નિવેદન અને શાખા કવરેજ માપનને ટેકો આપે છે SCov એ એક ઉપયોગિતા છે જે કોડ કવરેજ પર અહેવાલો બનાવવા માટે gcov (gcov-i નો ઉપયોગ કરીને) દ્વારા પેદા થયેલ મધ્યવર્તી લખાણ બંધારણની પ્રક્રિયા કરે છે. આ અહેવાલો સરળ લખાણ અહેવાલ અથવા વધુ વિગતવાર અહેવાલો સાથે એચ. ટી. એમ. એલ. પૃષ્ઠો હોઈ શકે છે. સન સ્ટુડિયો સ્યુટ સંદર્ભો સોફ્ટવેર મેટ્રિક્સ સોફ્ટવેર પરીક્ષણ સાધનોમાં પૂરા પાડવામાં આવેલ સોલારિસ માટે Tcov-કોડ કવરેજ ટૂલ પણ જુઓ.