On Wed, Nov 2, 2011 at 5:39 PM, Fabien Chouteau <chout...@adacore.com> wrote: > On 29/10/2011 15:52, Alexander Graf wrote: >> The RTEMS guys use QEMU to do coverage testing of their kernel code. >> They run their test-cases and see if all of their code and branches >> have been hit. Adacore seems to have a patches version of QEMU to >> provide an easily parsable log file for that sort of thing. Might be a >> good idea to consolidate upstream. Patches welcome :) > > That's right we do have a coverage analysis solution based on Qemu. > Execution traces generated by Qemu are analyzed by the GNATcoverage > tool to provide object, statement, decision or Modified > Condition/Decision coverage analysis. > > The main interest of Qemu is to provide execution traces without > code instrumentation. > > Alex, it is of course in our plans to submit patches to the upstream Qemu ;) > > I give you some pointers if you want to find more on GNATcoverage (technical > stuff :) > > * GNATcoverage is hosted on forge.open-do.org. You can checkout the > repository with: > > $ svn checkout > svn://scm.forge.open-do.org/scmrepos/svn/couverture/trunk/couverture > > From there, you have > * the tool source tree in "tools" > * a synthesis article in "publications" : 201005-erts2.pdf > > * GNATcov's documentation attached to this email
Thanks for mentioning Couverture. Just yesterday I talked to neo_1987 on IRC who is trying to get QEMU /w couverture to work for him. We ran into a little bit of confusion because the -trace command-line option is also used in upstream QEMU but for a different purpose (http://wiki.qemu.org/Features/Tracing). I took a quick peak at the qemu-trace.[ch] from couverture and it looks along the lines of the instrumentation that others have been doing too. I hope you have time to propose the coverage instrumentation for upstream QEMU. Stefan