| LLVM2LCOV(1) | LCOV | LLVM2LCOV(1) |
نام (NAME)
llvm2lcov - مستندات llvm2lcov
- بخش راهنما
- 1
- گروه راهنما
- ابزارهای LCOV
نام (NAME)
- llvm2lcov
- تبدیل دادههای پوشش کد LLVM از profdata در llvm-cov به قالب LCOV
خلاصه دستور (SYNOPSIS)
llvm2lcov [--output filename] [--testname name] [options] json_file [json_file ...]
توضیحات (DESCRIPTION)
دستور llvm2lcov دادههای پوشش کد C/C++ در قالب JSON (تولیدشده توسط llvm-cov export -format=text ...) را پیمایش کرده و آنها را به قالب .info در LCOV تبدیل میکند.
توجه داشته باشید که LLVM از دو مسیر برای جمعآوری دادههای پوشش کد پشتیبانی میکند: مسیری که در این صفحه شرح داده شده است - بر اساس دادههای پروفایل - و یک مسیر gcov - مشابه آنچه توسط gcc پشتیبانی میشود. برای جزئیات بیشتر درباره پشتیبانی از gcov در LLVM، مستندات LLVM را ببینید.
پوشش MC/DC (MC/DC COVERAGE)
برای تولید دادههای MC/DC:
- از LLVM نسخه ۱۸ یا جدیدتر استفاده کنید (نسخه ۲۱ به بالا برای دادههای تمیزتر MC/DC پیشنهاد میشود)
- ابزاردقیقسازی MC/DC را در مراحل کامپایل/پیوند با -fcoverage-mcdc فعال کنید
- پرچم --mcdc-coverage را به llvm2lcov ارسال کنید
توجه داشته باشید که LLVM هنگام استفاده از مسیر جمعآوری دادههای gcov از معیارهای MC/DC پشتیبانی نمیکند.
گزینهها (OPTIONS)
افزون بر گزینههای عمومی که توسط ابزارهای دیگر در مجموعه LCOV پشتیبانی میشوند (مانند --comment، --version-script، --ignore-error، --substitute، --exclude و غیره)، این ابزار گزینههای زیر را فراهم میکند:
- --output filename, -o filename
- دادههای LCOV در فایل مشخصشده نوشته خواهند شد. اگر از این گزینه استفاده نشود، دادهها در فایل llvm2lcov.info در دایرکتوری جاری نوشته میشوند.
- --testname name, -t name
- اطلاعات پوشش کد با نام موردآزمون ارائهشده مرتبط خواهند شد. ارائه نام الزامی نیست.
- --branch-coverage
- گنجاندن دادههای پوشش شاخه در خروجی.
- --mcdc-coverage
- گنجاندن دادههای MC/DC در خروجی. نیازمند LLVM نسخه ۱۸ یا بالاتر به همراه فعال بودن ابزاردقیقسازی MC/DC در حین کامپایل است.
برای جزئیات سایر گزینهها و تنظیمات پیکربندی، lcov(1) <file://../man/lcov.1.html> و lcovrc(5) <file://../man/lcovrc.5.html> را ببینید.
مثالها (EXAMPLES)
گردش کار پایه:
# کامپایل به همراه ابزاردقیقسازی پوشش کد (شامل MC/DC)
$ clang++ -o myExe -fprofile-inst-generate -fcoverage-mapping \
-fcoverage-mcdc myCode.cpp
# اجرای موردآزمونها
$ ./myExe ...
# تبدیل دادههای پروفایل
$ llvm-profdata merge -o myExe.profdata --sparse *.profraw
# برونبری دادههای پوشش در قالب JSON
$ llvm-cov export -format=text -instr-profile=myExe.profdata \
./myExe > myExe.json
# تبدیل به قالب LCOV
$ llvm2lcov --output myExe.info --test-name myTestcase \
--mcdc-coverage --branch-coverage myExe.json ...
# تولید گزارش پوشش کد در قالب HTML
$ genhtml -o html_report myExe.info ...
(... نشاندهنده سایر گزینههای ابزار است که ممکن است استفاده کنید - برای مثال، برای پالایش و مستثنیسازی.)
اجرای همین مثال از طریق gcov به این صورت است:
# کامپایل با ابزاردقیقسازی gcov $ clang++ -o myExe --coverage myCode.cpp # اجرای موردآزمونها $ ./myExe ... # تبدیل به قالب LCOV # توجه داشته باشید که گزینه '--gcov-tool' دو بار ذکر شده است: یک بار برای تعیین # ابزار و یک بار برای ارسال گزینه ابزار. برای اطلاعات بیشتر # به صفحه راهنمای lcov مراجعه کنید. $ lcov --capture -d . --branch-coverage -o myExe.info --gcov-tool llvm-cov --gcov-tool gcov ... # تولید گزارش پوشش کد در قالب HTML $ genhtml -o html_report myExe.info ...
نویسندگان (AUTHORS)
Henry Cox <<henry.cox@mediatek.com>>
همچنین ببینید (SEE ALSO)
lcov(1) <file://../man/lcov.1.html>, genhtml(1) <file://../man/genhtml.1.html>, geninfo(1) <file://../man/geninfo.1.html>, lcovrc(5) <file://../man/lcovrc.5.html>,
- مستندات LLVM: https://llvm.org/docs/CoverageMappingFormat.html
- مستندات llvm-cov: https://llvm.org/docs/CommandGuide/llvm-cov.html
کپیرایت و تکثیر (COPYRIGHT)
2024-2026, LCOV Project
| 2026-07-07 | 2.5 |