codecov-python icon indicating copy to clipboard operation
codecov-python copied to clipboard

Add support for clang and llvm-cov

Open nijel opened this issue 9 years ago • 6 comments

It would be great if coverage would work for llvm as well out of the box. It provides quite similar interface to gcov, it just has to be executed as llvm-cov gcov, see http://llvm.org/docs/CommandGuide/llvm-cov.html

It's usage could be specified by parameter or autodected based on CC environment (use llvm-cov if CC is clang).

nijel avatar Jan 04 '16 12:01 nijel

@nijel would love to. Do you have any open source projects showing off how llvm is used so I can review its process. Thanks!

stevepeak avatar Jan 07 '16 19:01 stevepeak

I use it to build some projects on Travis CI, but meanwhile I've realized that the LLVM version there is quite old and the llvm-cov is probably not flexible enough to do what is needed.

But with recent version, all what should be needed is to run llvm-cov gcov instead of gcov. It seems to support all needed options...

nijel avatar Jan 08 '16 07:01 nijel

@nijel perhaps other customers are having related issues, even though I have not heard of any to my knowledge. Do you have any suggestions on how to "automatically" detect when we should use llvm-cov gcov instead of gcov?

https://github.com/codecov/codecov-bash/blob/346e91cb2918fd1d84fde46c0814ae2005fee363/codecov#L484

You can already specify a custom "gcov" via -x "llvm-cov gcov"

stevepeak avatar Feb 05 '16 01:02 stevepeak

The only idea is to base this on CC environment variable. That should work quite reliable for Travis CI, but not sure about other environments...

nijel avatar Feb 08 '16 09:02 nijel

@nijel I'm not familiar with the working of llvm-cov, but would invite a pull request to review your suggestions on how to implement this. Thanks!

stevepeak avatar Feb 23 '16 18:02 stevepeak

I will look into this once Travis has upgraded LLVM to more recent version which behaves better in regards to coverage.

nijel avatar Mar 04 '16 11:03 nijel