mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 00:21:07 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/44568 By `lcov`, we can generate beautiful html. It's better than current file report and line report. Therefore in oss gcc, remove `export` code and `file/line level report` code, only use the html report. But in clang, since such tool is not available, we will still use file-report and line-report generated by ourself. Test Plan: Test in docker ubuntu machine. ## Mesurement 1. After running `atest`, it takes about 15 mins to collect code coverage and genrate the report. ``` # gcc code coverage python oss_coverage.py --run-only=atest ``` ## Presentation **The html result looks like:** *Top Level:* {F328330856} *File Level:* {F328336709} Reviewed By: malfet Differential Revision: D23550784 fbshipit-source-id: 1fff050e7f7d1cc8e86a6a200fd8db04b47f5f3e
24 lines
801 B
Python
24 lines
801 B
Python
from ..tool import clang_coverage
|
|
from ..util.setting import CompilerType, Option, TestList, TestPlatform
|
|
from ..util.utils import check_compiler_type
|
|
from .init import detect_compiler_type
|
|
from .run import clang_run, gcc_run
|
|
|
|
|
|
def get_json_report(test_list: TestList, options: Option):
|
|
cov_type = detect_compiler_type()
|
|
check_compiler_type(cov_type)
|
|
if cov_type == CompilerType.CLANG:
|
|
# run
|
|
if options.need_run:
|
|
clang_run(test_list)
|
|
# merge && export
|
|
if options.need_merge:
|
|
clang_coverage.merge(test_list, TestPlatform.OSS)
|
|
if options.need_export:
|
|
clang_coverage.export(test_list, TestPlatform.OSS)
|
|
elif cov_type == CompilerType.GCC:
|
|
# run
|
|
if options.need_run:
|
|
gcc_run(test_list)
|