wiki:GSoC/2017/coveragetools

Version 12 (modified by Cillian O'Donnell, on 06/22/17 at 17:11:03) (diff)

--

Improve Coverage Analysis Tools

Student: Cillian O'Donnell.

Mentors: Joel Sherrill, Kuan Hsun Chen.

Introduction: This project will switch the RTEMS Source Builder from QEMU to Couverture-QEMU. It will integrate Couverture-QEMU and the scripts driving it into RTEMS Tester framework, converting the BASH scripts to Python. The coverage report tool Covoar written in C++ will then be modified to generate XML output.

Related Open Project Tickets: Ticket-#3037: QEMU fails to exit after test, 4 BSPS Ticket-#3038: QEMU cannot initialize audio driver bsp: lm32/milkymist Ticket-#3039: ppc/qemuprep: Qemu fails to boot, no boot partition found

Development Blog

Introduction

Reviving-RTEMS-Tester-Work

Testing-Couverture-Qemu

Switching-RSB-to-Couverture-Qemu

Building Couverture-Qemu with the RSB

The build set for Couverture-Qemu can be found in rsb/bare/config/devel and the command to build it from the top level of the RSB source is:

cd rtems
../source-builder/sb-set-builder \
--log=couverture_qemu_log.txt \
--prefix=$HOME/development/4.12 \
devel/couverture-qemu

This will build the qemu tools for the currently supported architectures a list of which can be found in rsb/source-builder/config/couverture-qemu-2-1.cfg. The current list at the time of writing is:

22 %define qemu_archs arm-softmmu,i386-softmmu,lm32-softmmu,mips-softmmu           
23 %define qemu_archs %{qemu_archs},ppc-softmmu,sparc-softmmu 

There is also a feature to override this list and build the architectures of your choice, if needed for a new bsp maybe. The option is --with-qemu-archs=<arch-you-want-to-build> which is passed in the command line argument to invoke the RSB

../source-builder/sb-set-builder \
--log=couverture_qemu_log.txt \
--prefix=$HOME/development/4.12 \
--with-qemu-archs=ppc-softmmu \
devel/couverture-qemu

This would build ppc-softmmu only and place it in your prefix location.

Reviving Couverture-QEMU in RTEMS Tester

Previous work: There had been 2 previous student work for SOCIS in 2014[1] and 2015[2]. The series of patches detailed in their blogs are the starting point of this project. As years of development has taken place since their work, not all the patches still applied. When I pieced them back together, there were build errors in Covoar (the RTEMS coverage reporting tool) and its associated files.

References

[1] http://kmiesowicz.blogspot.ie/2014/08/new-approach-to-coverage-analysis-in.html

[2] http://socis2015rtems.blogspot.ie/