باستثناء نتائج معينة من نتائج تغطية GCOV/LCOV
سؤال
هل من الممكن استبعاد وظائف أو خطوط رمز معينة من تحليل تغطية GCOV. يحتوي الكود الخاص بي على وظائف معينة تستخدم لتصحيح الأخطاء ، ولا تمارس كجزء من مجموعة الاختبار الخاصة بي. هذه الوظائف تقلل من نسبة التغطية التي أبلغ عنها GCOV. أود استبعاد هذه الوظائف من النتائج. إذا لم يكن ذلك ممكنًا عبر GCOV ، فربما يكون ذلك ممكنًا عبر LCOV ، لكنني لم أتمكن من معرفة ذلك. هو محل تقدير مساعدتكم.
المحلول
أقوم بتصفية ملفات مصدر معينة عن طريق تشغيل إخراج LCOV -capture من خلال برنامج نصي AWK بسيط. يحتوي إخراج LCOV -Capture على تنسيق بسيط للغاية ويقوم البرنامج النصي AWK أدناه بتصفية ملفات المصدر التي تتطابق مع 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"
}
لا تنتمي إلى StackOverflow