[PATCH][RFC] llvm-cov HTML generation

Harlan Haskins via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 10 14:41:11 PST 2016


> On Mar 10, 2016, at 1:30 PM, Ying Yi <maggieyi666 at gmail.com> wrote:
> 
> Thanks for your reply and the updated patch.
> 
> 1) When I use the release build of llvm-cov to generate HTML files, all the HTML files are named “html”. This issue also exists on UNIX.
> 
I haven’t seen this happen. Can you provide some steps to reproduce? Thanks!
> 2) The following warning is given when building llvm-cov using Visual Studio 2013.
> 
> “sourcecoverageview.cpp (108): warning C4715: 'llvm::SourceCoverageView::create' : not all control paths return a value”
> 
That warning is incorrect. It’s a switch statement over both cases of an enum — I want this because if we add another format, say, OFJSON or something, I want a compiler warning telling me the switch case isn’t exhaustive.

Here’s an updated patch with some small sanity tests added:



Best,
Harlan

> 
> On Wed, Mar 9, 2016 at 12:50 AM, Harlan Haskins <hhaskins at apple.com <mailto:hhaskins at apple.com>> wrote:
> Updated patch with unistd removed, utf-8, and `console` replaced with `text`.
> 
> Thanks!
> Harlan
> 
> 
>> On Mar 8, 2016, at 10:55 AM, Justin Bogner <mail at justinbogner.com <mailto:mail at justinbogner.com>> wrote:
>> 
>> Harlan Haskins <hhaskins at apple.com <mailto:hhaskins at apple.com>> writes:
>>> Thanks again! Responses inline.
>>>> On Mar 8, 2016, at 5:08 AM, Ying Yi <maggieyi666 at gmail.com <mailto:maggieyi666 at gmail.com>> wrote:
>>>> 
>>>> Thanks for adding the index page. I have some comments:
>>>> 
>>>> 1) The ‘unistd.h’ header won’t build on windows.
>>>> 
>>> Thanks for catching that — I was using it to debug, but don’t need
>>> it. I also don’t have a Windows machine to debug, so thank you for
>>> investigating portability!
>>> 
>>>> 2) The help text for ‘-format’ is different from llvm-profdata.exe
>>>> tool, which uses the following style:
>>>>    -format=<html|console>                 - Format to output comparison ….
>>>>    Is there a standard way to do this?
>>>> 
>>> LLVM’s CommandLine library renders the help text. Also, I noticed I
>>> used ‘comparison’ instead of ‘coverage’. Thanks!
>>> 
>>>> 3) Should ‘console’ be changed to ‘text’, because it doesn’t show in
>>>> the console when you give an output directory?
>>>> 
>>> Yeah, I think it could. I’ve cc’d Justin for his input — he originally
>>> suggested Console.
>> 
>> My only problem with "text" is that this includes ANSI escape sequences
>> when it uses colour, so text seems a bit misleading. That said, it
>> doesn't matter much - I'm fine with either.
>> 
>>>> 4) Could you please use an html charset that supports UTF-8?
>>>> 
>>> Yep. Thanks for catching that!
>>> 
>>>> 5) The HTML report can look quite different to the source file if it
>>>> includes tabs. Could you specify a smaller tab-size in the CSS file?
>>>> 
>>> That’s a good question, and I don’t quite know the correct answer to
>>> it. GitHub has a complicated set of rules for tab sizing that makes a
>>> ‘best guess’ based on the source file type. I wonder if it’s a good
>>> candidate for a command line switch?
>>> 
>>>> In the future (not for this patch): 
>>>> 
>>>> 6) Could we support a user CSS file? 
>>>> Currently, the CSS rules are embedded into the html page. Could
>>>> llvm-cov provide an option to use an external CSS file? This would
>>>> give the user more flexibility.
>>>> 
>>> I agree that it’d give the user more flexibility, but it’d be
>>> difficult to do given the nature of the directory structure. Maybe, if
>>> you know you’re gonna be running it on a server where the ‘root’ is
>>> well-defined, we could just dump the css file to disk and put a
>>> relative <link> tag in. But if it’s gonna be ten directories down,
>>> we’ll need to have some logic in that replaces all the parent paths in
>>> the link with /../..’s to make the file resolve. I think it can be
>>> done, just with more input from the user about their intention with
>>> hosting.
>>> 
>>>> 7) Could we put the functions/lines summary information into the
>>>> HTML files? As a rough example:
>>>> 
>>>> Lines: 9/10 (90%)
>>>> Functions: 1/1 (100%)
>>>> 
>>> I think this totally can be done — it’s out of scope for this patch
>>> (it’s already a pretty big patch as it is.)
>>> Some kind of merging of ‘show’ and ‘report’ would be ideal. Maybe the
>>> index page has at-a-glance information about each file?
>> 
>> Yep, this sounds like a great idea, but it's probably more suited to a
>> follow up patch.
> 
> 
> 
> 
> 
> -- 
> Ying Yi
> SN Systems Ltd - Sony Computer Entertainment Group.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160310/ef5437f1/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm-cov-html.diff
Type: application/octet-stream
Size: 55519 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160310/ef5437f1/attachment-0001.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160310/ef5437f1/attachment-0003.html>


More information about the llvm-commits mailing list