On 1/24/19 9:33 AM, Jiri Gaisler wrote:
>
> On 1/24/19 12:45 AM, Joel Sherrill wrote:
>>
>>
>> On Wed, Jan 23, 2019 at 4:45 PM Chris Johns <chr...@rtems.org 
>> <mailto:chr...@rtems.org>> wrote:
>>
>>     On 24/1/19 9:12 am, Jiri Gaisler wrote:
>>     > After some trial and error, I got covoar to run with:
>>
>>     Great.
>>
>>     > However, the coverage is always 0% in the summary report:
>>
>>     Does adding -v to the command line provide any more detail? Repeating -v
>>     increases the level but things can become rather verbose and if you trip 
>> full
>>     DWARF tracing there is a lot of output.
>>
>>
>> I would be suspicious of the code that is invoked around
>> CoverageReaderTSIM.cc:83 as a starting point. For some method you
>> know you should be analyzed, there should be aCoverageMap. Since you
>> are looking at only one executable, you could hard-code a test with
>> address range of a single method under test to see what happens.
>>
>
> Well, the problem is that covoar in rtems-tools is hard-coded to use the QEMU 
> format, and the -f switch to change format is not used. I have attached a 
> patch to fix that. After that, covoar works fine with the coverage data from 
> sis:
>
> cat coverage/summary.txt
> Bytes Analyzed           : 20034
> Bytes Not Executed       : 11734
> Percentage Executed      : 41.43
> Percentage Not Executed  : 58.57
> Uncovered ranges found   : 242
> Total branches found     : 443
> Uncovered branches found : 167
>    68 branches always taken
>    99 branches never taken
>
> If you approve to the patch, then I will check it in (now that I know how ... 
> :-))
>
Here is a better patch that maintains the old behavior of QEMU as default, 
while honoring the -f switch if provided.

Jiri.

diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc
index 36c24c3..cbb0e4f 100644
--- a/tester/covoar/covoar.cc
+++ b/tester/covoar/covoar.cc
@@ -163,7 +163,7 @@ int covoar(
   char                          gcdaFileName[FILE_NAME_LENGTH];
   char                          gcovBashCommand[256];
   std::string                   target;
-  const char*                   format = "html";
+  const char*                   format = "QEMU";
   FILE*                         gcnosFile = NULL;
   Gcov::GcovData*               gcovFile;
   const char*                   singleExecutable = NULL;
@@ -359,6 +359,7 @@ int covoar(
     AllExplanations->load( explanations );
 
   // Create coverage map reader.
+  coverageFormat = Coverage::CoverageFormatToEnum(format);
   coverageReader = Coverage::CreateCoverageReader(coverageFormat);
   if (!coverageReader)
     throw rld::error( "Unable to create coverage file reader", "covoar" );
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to