Code Monkey home page Code Monkey logo

Comments (11)

marxin avatar marxin commented on July 20, 2024 1

Note that the format change has landed into GCC's trunk and will be part of next release (9.1).

from grcov.

Juniar-II avatar Juniar-II commented on July 20, 2024

Can you explain a little more about "GCOV support for an Intermediate format" and what this means?
How do you run this two codes gcc-mirror/gcc@a82502d, gcc-mirror/gcc@3cf7fdd?
And does these code require other dependencies files to execute?

from grcov.

marco-c avatar marco-c commented on July 20, 2024

Can you explain a little more about "GCOV support for an Intermediate format" and what this means?

This is a good first bug, but it requires a bit of research first. Have you tried looking it up online? Do you know what GCOV is?

How do you run this two codes gcc-mirror/gcc@a82502d, gcc-mirror/gcc@3cf7fdd?
And does these code require other dependencies files to execute?

We don't have to run that, they are just patches showing what changed.

from grcov.

Juniar-II avatar Juniar-II commented on July 20, 2024

Formatting .cpp .h files in order to Improve coverage and gcov result.
Given an Input File with this example code.

@smallexample
file:@var{source_file_name}

function:@var{line_number},@var{execution_count},@var{function_name
}
+lcount:@var{line
number},@var{execution_count},@var{has_unexecuted_block}
branch:@var{line_number},@var{branch_coverage_type}

Where the @var{branch_coverage_type} is

From: gcc-mirror/gcc@3cf7fdd

We can format unexecuted lines or unexecuted block, such as @var{has_unexecuted_block} as follows:
First, read in input stream of .cpp .h file
Process the file by editing each line and Eliminating unsupported variable, lines and blocks{ },
By dropping these lines or blocks into the next line while maintaining and preserving the function or the statement functionality.

By doing so, we can maintain the current executable capacity that is limited in length or by the number of blocks. Which will result in more coverage.

Thanks.

from grcov.

marco-c avatar marco-c commented on July 20, 2024

@Juniar-II what you are describing is unrelated to this issue. This issue is just about adding support for parsing the new GCOV intermediate format.

from grcov.

marxin avatar marxin commented on July 20, 2024

For GCC 9.1 I'm planning to come up with JSON format of the intermediate format.
Maybe you'll be interested more in the format:
https://gcc.gnu.org/ml/gcc-patches/2018-09/msg01628.html

from grcov.

marco-c avatar marco-c commented on July 20, 2024

Sounds great to me! Much less chance of breakages.

Looks like we were the only ones using the GCC intermediate format 😄

from grcov.

marco-c avatar marco-c commented on July 20, 2024

Will one JSON per source file be generated, or one JSON per compilation unit? The second is the current behavior of the intermediate format, and would be better for us.

from grcov.

marxin avatar marxin commented on July 20, 2024

Sounds great to me! Much less chance of breakages.

Yes, it's more standard format than a custom one.

Looks like we were the only ones using the GCC intermediate format

Looks so, lcov is missing the capability:
linux-test-project/lcov#43

Similarly for gcovr:
gcovr/gcovr#282

from grcov.

marxin avatar marxin commented on July 20, 2024

Will one JSON per source file be generated, or one JSON per compilation unit? The second is the current behavior of the intermediate format, and would be better for us.

Same as for current -i option: one intermediate file per compilation unit.
I'm also planning to make the JSON files gzipped as they can be quite big.
File example for tramp3d:
https://users.suse.com/~mliska/tmp/tramp.json

from grcov.

marco-c avatar marco-c commented on July 20, 2024

We support GCC 9+, we won't support GCC 8.

from grcov.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.