codecov / codecov-python

Python report uploader for Codecov
https://codecov.io
Apache License 2.0
185 stars 139 forks source link

Add support for clang and llvm-cov #52

Open nijel opened 8 years ago

nijel commented 8 years ago

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).

stevepeak commented 8 years ago

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

nijel commented 8 years ago

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...

stevepeak commented 8 years ago

@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"

nijel commented 8 years ago

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...

stevepeak commented 8 years ago

@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!

nijel commented 8 years ago

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