[clang] 01f13f4 - Explain code coverage with Lit in docs/SourceBasedCodeCoverage.rst

Galina Kistanova via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 27 17:52:32 PST 2023


Author: Flash Sheridan
Date: 2023-01-27T17:51:18-08:00
New Revision: 01f13f4877751e6d5aa6f07984ebd76f67047839

URL: https://github.com/llvm/llvm-project/commit/01f13f4877751e6d5aa6f07984ebd76f67047839
DIFF: https://github.com/llvm/llvm-project/commit/01f13f4877751e6d5aa6f07984ebd76f67047839.diff

LOG: Explain code coverage with Lit in docs/SourceBasedCodeCoverage.rst

The documentation for code coverage in clang/docs/SourceBasedCodeCoverage.rst omits a couple of crucial steps when using it with Lit.
This patch should fix that.

Differential revision: https://reviews.llvm.org/D140730

Added: 
    

Modified: 
    clang/docs/SourceBasedCodeCoverage.rst

Removed: 
    


################################################################################
diff  --git a/clang/docs/SourceBasedCodeCoverage.rst b/clang/docs/SourceBasedCodeCoverage.rst
index 5f4bcf8e0ff09..f92e8d8fc4d65 100644
--- a/clang/docs/SourceBasedCodeCoverage.rst
+++ b/clang/docs/SourceBasedCodeCoverage.rst
@@ -127,6 +127,11 @@ copy that's mapped into memory). This implementation can be also enabled for
 other platforms by passing the ``-runtime-counter-relocation`` option to the
 backend during compilation.
 
+For a program such as the :doc:`Lit <CommandGuide/lit>` testing tool which
+invokes other programs, it may be necessary to set ``LLVM_PROFILE_FILE`` for
+each invocation. The pattern strings "%p" or "%Nm" may help to avoid
+corruption due to concurrency.
+
 .. code-block:: console
 
     % clang++ -fprofile-instr-generate -fcoverage-mapping -mllvm -runtime-counter-relocation foo.cc -o foo
@@ -143,6 +148,9 @@ coverage reports. This is done using the "merge" tool in ``llvm-profdata``
     # Step 3(a): Index the raw profile.
     % llvm-profdata merge -sparse foo.profraw -o foo.profdata
 
+For an example of merging multiple profiles created by testing,
+see the LLVM `coverage build script <https://github.com/llvm/llvm-zorg/blob/main/zorg/jenkins/jobs/jobs/llvm-coverage>`_.
+
 There are multiple 
diff erent ways to render coverage reports. The simplest
 option is to generate a line-oriented report:
 


        


More information about the cfe-commits mailing list