[PATCH 03/22] covoar/TargetBase: Update branchInstructions variable name

2021-03-01 Thread Alex White
The TargetBase class contains a member variable named branchInstructions. The name omits the fact that it is only meant to contain conditional branch instructions. Its name has been changed to conditionalBranchInstructions to avoid confusion. --- tester/covoar/TargetBase.cc | 10 +++- tester/c

[PATCH 02/22] tester: Add coverage variants for a few BSPs

2021-03-01 Thread Alex White
-cov.ini @@ -0,0 +1,41 @@ +# +# RTEMS Tools Project (http://www.rtems.org/) +# Copyright 2021 Alex White(alex.wh...@oarcorp.com) +# All rights reserved. +# +# This file is part of the RTEMS Tools package in 'rtems-tools'. +# +# Redistribution and use in source and binary forms, with

[PATCH 01/22] tester: Update to support new build system

2021-03-01 Thread Alex White
The tester configurations had not been updated to match the paths and conventions used by the new build system. These have been updated, and a few more libraries have been enabled in symbol-sets.ini. --- tester/rtems/testing/bsps/griscv-sis-cov.ini | 4 +- tester/rtems/testing/bsps/leon3-qemu-co

[PATCH 04/22] covoar/Target_i386: Add NOP patterns

2021-03-01 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH 00/22] tester: Update covoar for new build system

2021-03-01 Thread Alex White
xilinx_zynq_a9_qemu. Here is a link to the final coverage reports that I got for the five configurations mentioned above: https://ftp.rtems.org/pub/rtems/people/joel/coverage/coverage-2021-02-28/ Alex White (22): tester: Update to support new build system tester: Add coverage variants for a few BSPs

[PATCH 05/22] covoar/Target_arm: Add THUMB branch instructions

2021-03-01 Thread Alex White
The ".n" and ".w" variants of the THUMB branch instructions were not included in the list of conditional branch instructions. They have been added. --- tester/covoar/Target_arm.cc | 34 ++ 1 file changed, 34 insertions(+) diff --git a/tester/covoar/Target_arm.cc b/

[PATCH 06/22] covoar: Add aarch64 target

2021-03-01 Thread Alex White
--- tester/covoar/TargetFactory.cc | 2 + tester/covoar/Target_aarch64.cc | 100 tester/covoar/Target_aarch64.h | 77 tester/covoar/wscript | 1 + 4 files changed, 180 insertions(+) create mode 100644 tester/covoar/Target_

[PATCH 07/22] covoar/CoverageReaderQEMU: Fix infinite loop

2021-03-01 Thread Alex White
There was a potential that the branch info loop never terminated. This has been fixed by adding a more reliable termination condition and logging an error if it cannot find the branch target. --- tester/covoar/CoverageReaderQEMU.cc | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-)

[PATCH 11/22] covoar: Account for build path change

2021-03-01 Thread Alex White
Covoar had not been updated to account for the paths used by the new build system. This has been fixed. --- tester/covoar/covoar.cc | 5 - 1 file changed, 5 deletions(-) diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc index 84d883a..bf95cb4 100644 --- a/tester/covoar/covoar.cc

[PATCH 12/22] covoar: Fix NOP execution marking

2021-03-01 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 -- tester/covoar/Desir

[PATCH 10/22] dwarf: Fix get_source

2021-03-01 Thread Alex White
The file::get_source method was giving "unknown:-1" for valid addresses. This has been fixed. --- rtemstoolkit/rld-dwarf.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rtemstoolkit/rld-dwarf.cpp b/rtemstoolkit/rld-dwarf.cpp index acb4fd4..2fce0e4 100644 --- a/rtemstoo

[PATCH 09/22] covoar: Fix DWARF reading

2021-03-01 Thread Alex White
There were a couple of issues with the way the DWARF info was being read. The first issue was that it inefficiently included all symbols, even symbols that were not desired. The second issue is that it did not handle inline functions correctly. These have been fixed. --- rtemstoolkit/rld-dwarf.cpp

[PATCH 13/22] covoar: Handle periods in symbols from objdump

2021-03-01 Thread Alex White
Occasionally the compiler will generate symbols that look similar to symbols defined in RTEMS code except that they contain some suffix. This looks to be related to compiler optimizations. Such symbols were being treated as unique. For our purposes, they should be mapped to the equivalent symbols i

[PATCH 08/22] covoar/TargetBase: Fix QEMU branch info

2021-03-01 Thread Alex White
The taken/not taken bit was being interpreted incorrectly. This led to branches being marked "always taken" when they were never taken. This has been fixed. --- tester/covoar/TargetBase.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tester/covoar/TargetBase.cc b/tester/

[PATCH 17/22] covoar: Fix null pointer dereference

2021-03-01 Thread Alex White
--- tester/covoar/ExecutableInfo.cc | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc index 1396519..187bb77 100644 --- a/tester/covoar/ExecutableInfo.cc +++ b/tester/covoar/ExecutableInfo.cc @@ -82,13 +82

[PATCH 18/22] covoar: Add option to create named objdumps

2021-03-01 Thread Alex White
This adds a new macro USE_TEMPLFILE which allows the creation of named objdump outputs in the /tmp directory. This allows the outputs to be reused on subsequent runs of covoar rather than running objdump again. --- rtemstoolkit/rld-process.cpp | 12 rtemstoolkit/rld-process.h

[PATCH 20/22] covoar: Allow symbols from objdump to be skipped

2021-03-01 Thread Alex White
There is at least one symbol that is shown as having no machine code in the DWARF info but obviously contains machine code if inspected using objdump. This results in an exception being thrown when that symbol's coverage map is looked up. That exception is now caught and a message is printed to std

[PATCH 19/22] covoar: Catch exceptional case

2021-03-01 Thread Alex White
--- tester/covoar/ExecutableInfo.cc | 10 ++ 1 file changed, 10 insertions(+) diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc index 187bb77..5a730fd 100644 --- a/tester/covoar/ExecutableInfo.cc +++ b/tester/covoar/ExecutableInfo.cc @@ -201,6 +201,16 @@ names

[PATCH 21/22] covoar: Fix overflow of high PC address

2021-03-01 Thread Alex White
This fixes an integer overflow that would occur if a function's high PC address were zero in the DWARF info. --- tester/covoar/ExecutableInfo.cc | 5 + 1 file changed, 5 insertions(+) diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc index 30828a6..7f33f20 100644

[PATCH 22/22] covoar/Reports: Fix empty branch report

2021-03-01 Thread Alex White
This makes the branch report more consistent with the other reports when there is no branch information found. --- tester/covoar/ReportsBase.cc | 12 ++ tester/covoar/ReportsHtml.cc | 82 2 files changed, 39 insertions(+), 55 deletions(-) diff --git a/test

[PATCH 0/3] tester: Fix RLD classes for covoar

2021-03-03 Thread Alex White
This patch set contains changes to RLD classes necessary for covoar. Alex White (3): rld-dwarf: Add function::has_entry_pc rld-dwarf: Fix file::get_source rld-process: Add named tempfile constructor rtemstoolkit/rld-dwarf.cpp | 13 + rtemstoolkit/rld-dwarf.h | 5

[PATCH 1/3] rld-dwarf: Add function::has_entry_pc

2021-03-03 Thread Alex White
--- rtemstoolkit/rld-dwarf.cpp | 8 +++- rtemstoolkit/rld-dwarf.h | 5 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rtemstoolkit/rld-dwarf.cpp b/rtemstoolkit/rld-dwarf.cpp index d9ac6f3..acb4fd4 100644 --- a/rtemstoolkit/rld-dwarf.cpp +++ b/rtemstoolkit/rld-dwarf.cpp

[PATCH 2/3] rld-dwarf: Fix file::get_source

2021-03-03 Thread Alex White
The file::get_source method was giving "unknown:-1" for valid addresses. This has been fixed. --- rtemstoolkit/rld-dwarf.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rtemstoolkit/rld-dwarf.cpp b/rtemstoolkit/rld-dwarf.cpp index acb4fd4..2fce0e4 100644 --- a/rtemstoo

[PATCH 3/3] rld-process: Add named tempfile constructor

2021-03-03 Thread Alex White
This adds a new tempfile constructor for creating a named tempfile rather than generating the name. --- rtemstoolkit/rld-process.cpp | 11 +++ rtemstoolkit/rld-process.h | 7 +++ 2 files changed, 18 insertions(+) diff --git a/rtemstoolkit/rld-process.cpp b/rtemstoolkit/rld-process.

[PATCH] spec/aarch64: Enable previously disabled tests

2021-03-08 Thread Alex White
This enables several testsuites that were initially disabled during development. --- spec/build/bsps/aarch64/a53/tsta53.yml| 10 +- spec/build/bsps/aarch64/xilinx-zynqmp/tstqemu.yml | 10 +- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/spec/build/bsps

[PATCH] covoar: Add aarch64 target

2021-03-09 Thread Alex White
--- tester/covoar/TargetFactory.cc | 2 + tester/covoar/Target_aarch64.cc | 100 tester/covoar/Target_aarch64.h | 77 tester/covoar/wscript | 1 + 4 files changed, 180 insertions(+) create mode 100644 tester/covoar/Target_

[PATCH 0/3] tester: Update coverage configs

2021-03-10 Thread Alex White
This patch set updates symbol-sets.ini to work with the paths used by the new build system, removes the need for "target" in the BSP configurations that include coverage, and adds a few new coverage-enabled BSP configurations. Alex White (3): tester: Update to support new build syste

[PATCH 2/3] tester: Remove target from BSP coverage configs

2021-03-10 Thread Alex White
--- tester/rt/coverage.py| 3 ++- tester/rtems/testing/bsps/griscv-sis-cov.ini | 1 - tester/rtems/testing/bsps/leon3-qemu-cov.ini | 1 - tester/rtems/testing/bsps/leon3-sis-cov.ini | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tester/rt/coverage.py

[PATCH 1/3] tester: Update to support new build system

2021-03-10 Thread Alex White
The tester configurations had not been updated to match the paths and conventions used by the new build system. These have been updated, and a few more libraries have been enabled in symbol-sets.ini. --- tester/rtems/testing/coverage/symbol-sets.ini | 91 ++- 1 file changed, 46 ins

[PATCH 3/3] tester: Add coverage variants for a few BSPs

2021-03-10 Thread Alex White
/rtems/testing/bsps/a53_lp64_qemu-cov.ini @@ -0,0 +1,40 @@ +# +# RTEMS Tools Project (http://www.rtems.org/) +# Copyright 2021 Alex White(alex.wh...@oarcorp.com) +# All rights reserved. +# +# This file is part of the RTEMS Tools package in 'rtems-tools'. +# +# Redistribution and use in source

[PATCH 0/2] covoar: Fix NOP recognition

2021-03-10 Thread Alex White
This patch set fixes a couple cases where NOP instructions were showing up as unexecuted in coverage reports. Alex White (2): covoar: Fix NOP execution marking covoar/Target_i386: Add NOP patterns tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4

[PATCH 2/2] covoar/Target_i386: Add NOP patterns

2021-03-10 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH 1/2] covoar: Fix NOP execution marking

2021-03-10 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 +-- tester/covoar/Desi

RE: [PATCH 1/2] covoar: Fix NOP execution marking

2021-03-11 Thread Alex White
al Message- From: Chris Johns Sent: Wednesday, March 10, 2021 7:18 PM To: Alex White ; devel@rtems.org Subject: Re: [PATCH 1/2] covoar: Fix NOP execution marking On 11/3/21 10:33 am, Alex White wrote: > Some NOP instructions were not being marked as executed because they > are located at the

[PATCH v2 2/2] covoar/Target_i386: Add NOP patterns

2021-03-11 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH v2 1/2] covoar: Fix NOP execution marking

2021-03-11 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 -- tester/covoar/Desir

[PATCH v2 0/2] Fix NOP recognition

2021-03-11 Thread Alex White
v2: - Fix leftover debugging code in Coverage::finalizeSymbol() This patch set fixes a couple cases where NOP instructions were showing up as unexecuted in coverage reports. Alex White (2): covoar: Fix NOP execution marking covoar/Target_i386: Add NOP patterns tester/covoar

[PATCH] covoar/TargetBase: Rename branchInstructions to conditionalBranchInstructions

2021-03-11 Thread Alex White
The TargetBase class contains a member variable named branchInstructions. The name omits the fact that it is only meant to contain conditional branch instructions. Its name has been changed to conditionalBranchInstructions to avoid confusion. --- tester/covoar/TargetBase.cc | 10 +++- tester/c

[PATCH] covoar/Target_arm: Add THUMB branch instructions

2021-03-11 Thread Alex White
The ".n" and ".w" variants of the THUMB branch instructions were not included in the list of conditional branch instructions. They have been added. --- tester/covoar/Target_arm.cc | 34 ++ 1 file changed, 34 insertions(+) diff --git a/tester/covoar/Target_arm.cc b/

[PATCH 0/2] Fix QEMU branch analysis

2021-03-11 Thread Alex White
This patch set contains a couple of fixes for issues that were found while using covoar to analyze branch coverage in QEMU. Alex White (2): covoar/CoverageReaderQEMU: Fix infinite loop covoar/TargetBase: Fix QEMU branch info tester/covoar/CoverageReaderQEMU.cc | 11 +-- tester

[PATCH 2/2] covoar/TargetBase: Fix QEMU branch info

2021-03-11 Thread Alex White
The taken/not taken bit was being interpreted incorrectly. This led to branches being marked "always taken" when they were never taken. This has been fixed. --- tester/covoar/TargetBase.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tester/covoar/TargetBase.cc b/tester/

[PATCH 1/2] covoar/CoverageReaderQEMU: Fix infinite loop

2021-03-11 Thread Alex White
There was a potential that the branch info loop never terminated. This has been fixed by adding a more reliable termination condition and logging an error if it cannot find the branch target. --- tester/covoar/CoverageReaderQEMU.cc | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-)

[PATCH] covoar: Fix DWARF reading

2021-03-11 Thread Alex White
There were a couple of issues with the way the DWARF info was being read. The first issue was that it inefficiently included all symbols, even symbols that were not desired. The second issue is that it did not handle inline functions correctly. These have been fixed. --- tester/covoar/ExecutableIn

[PATCH v3 2/2] covoar/Target_i386: Add NOP patterns

2021-03-12 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH v3 1/2] covoar: Fix NOP execution marking

2021-03-12 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 -- tester/covoar/Desir

[PATCH v3 0/2] Fix NOP recognition

2021-03-12 Thread Alex White
v3: - Fix double increment of rangeIndex in Coverage::finalizeSymbol() v2: - Fix leftover debugging code in Coverage::finalizeSymbol() This patch set fixes a couple cases where NOP instructions were showing up as unexecuted in coverage reports. Alex White (2): covoar: Fix NOP execution

[PATCH] covoar: Account for build path change

2021-03-12 Thread Alex White
Covoar had not been updated to account for the paths used by the new build system. This has been fixed. --- tester/covoar/covoar.cc | 5 - 1 file changed, 5 deletions(-) diff --git a/tester/covoar/covoar.cc b/tester/covoar/covoar.cc index 84d883a..bf95cb4 100644 --- a/tester/covoar/covoar.cc

[PATCH] covoar: Handle periods in symbols from objdump

2021-03-12 Thread Alex White
Occasionally the compiler will generate symbols that look similar to symbols defined in RTEMS code except that they contain some suffix. This looks to be related to compiler optimizations. Such symbols were being treated as unique. For our purposes, they should be mapped to the equivalent symbols i

[PATCH 0/4] coverage/reports: Improve coverage reports

2021-03-12 Thread Alex White
This patch set includes a few improvements to the coverage reports. Alex White (4): covoar/reports: Add new statistics to summary coverage/reports: Improve formatting and clarity coverage/reports: Share common JS and CSS in reports coverage: Give coverage bars red background tester

[PATCH 4/4] coverage: Give coverage bars red background

2021-03-12 Thread Alex White
--- tester/rt/coverage.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py index ec3957c..a561d26 100644 --- a/tester/rt/coverage.py +++ b/tester/rt/coverage.py @@ -129,6 +129,9 @@ class report_gen_html: head_section += 'width: 150px

[PATCH 3/4] coverage/reports: Share common JS and CSS in reports

2021-03-12 Thread Alex White
This moves all of the javascript and CSS files that are shared by the symbol set HTML reports to the shared parent directory. It also includes the javascript and CSS in the top-level index file. --- tester/covoar/ReportsHtml.cc | 4 ++-- tester/rt/coverage.py| 11 ++- 2 files chan

[PATCH] covoar: Fix null pointer dereference

2021-03-12 Thread Alex White
A null pointer dereference happens later in the program execution if the files are cleaned up at the end of the ExecutableInfo constructor. This change fixes the null pointer dereference. --- tester/covoar/ExecutableInfo.cc | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git

[PATCH] covoar: Add option to create named objdumps

2021-03-12 Thread Alex White
This adds a new behavior to the -d option which allows the creation of named objdump outputs in the /tmp directory. This allows the outputs to be reused on subsequent runs of covoar rather than running objdump again. --- tester/covoar/ObjdumpProcessor.cc | 22 +- tester/covoar/

[PATCH 0/3] covoar: Improve error handling

2021-03-12 Thread Alex White
This patch set contains a few improvements to error handling in covoar that result in more meaningful error messages. Alex White (3): covoar: Catch exceptional case covoar: Improve findCoverageMap error message covoar: Fix overflow of high PC address tester/covoar/ExecutableInfo.cc | 23

[PATCH 3/3] covoar: Fix overflow of high PC address

2021-03-12 Thread Alex White
This fixes an integer overflow that would occur if a function's high PC address were zero in the DWARF info. --- tester/covoar/ExecutableInfo.cc | 5 + 1 file changed, 5 insertions(+) diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc index 30828a6..7f33f20 100644

[PATCH 2/3] covoar: Improve findCoverageMap error message

2021-03-12 Thread Alex White
--- tester/covoar/ExecutableInfo.cc | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc index 5a730fd..30828a6 100644 --- a/tester/covoar/ExecutableInfo.cc +++ b/tester/covoar/ExecutableInfo.cc @@ -177,7 +177

[PATCH] coverage/symbol-sets.ini : Add libtrace

2021-03-12 Thread Alex White
--- tester/rtems/testing/coverage/symbol-sets.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tester/rtems/testing/coverage/symbol-sets.ini b/tester/rtems/testing/coverage/symbol-sets.ini index 9617dd8..52e25ff 100644 --- a/tester/rtems/testing/coverage/symbol-sets.ini +

[PATCH v4 2/2] covoar/Target_i386: Add NOP patterns

2021-03-15 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH v4 0/2] Fix NOP recognition

2021-03-15 Thread Alex White
() This patch set fixes a couple cases where NOP instructions were showing up as unexecuted in coverage reports. Alex White (2): covoar: Fix NOP execution marking covoar/Target_i386: Add NOP patterns tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester

[PATCH v4 1/2] covoar: Fix NOP execution marking

2021-03-15 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 +-- tester/covoar/Desi

RE: [PATCH] covoar: Handle periods in symbols from objdump

2021-03-15 Thread Alex White
be sending out soon, this has been greatly simplified and a specific exception class has been defined. I'll get v2 of this patch out, and that should clear the exception handling up. Alex -Original Message- From: Chris Johns Sent: Sunday, March 14, 2021 8:01 PM To: Alex White ; dev

RE: [PATCH 1/2] covoar/CoverageReaderQEMU: Fix infinite loop

2021-03-15 Thread Alex White
t: Sunday, March 14, 2021 7:27 PM To: Alex White ; devel@rtems.org Subject: Re: [PATCH 1/2] covoar/CoverageReaderQEMU: Fix infinite loop On 12/3/21 5:30 am, Alex White wrote: > There was a potential that the branch info loop never terminated. > This has been fixed by adding a more reliable

[PATCH v2] covoar: Handle periods in symbols from objdump

2021-03-15 Thread Alex White
Occasionally the compiler will generate symbols that look similar to symbols defined in RTEMS code except that they contain some suffix. This looks to be related to compiler optimizations. Such symbols were being treated as unique. For our purposes, they should be mapped to the equivalent symbols i

[PATCH v2 0/4] coverage/reports: Improve coverage reports

2021-03-15 Thread Alex White
v2: - Replace tab expansion function in ReportsBase with std::string version This patch set includes a few improvements to the coverage reports. Alex White (4): covoar/reports: Add new statistics to summary coverage/reports: Improve formatting and clarity coverage/reports: Share common JS

[PATCH v2 1/4] covoar/reports: Add new statistics to summary

2021-03-15 Thread Alex White
The following new statistics have been added to the summary report: number of unreferenced symbols, total branch paths found, number of branch paths not executed, and percentage of branch paths covered. --- tester/covoar/DesiredSymbols.cc | 10 +++ tester/covoar/DesiredSymbols.h | 24

[PATCH v2 3/4] coverage/reports: Share common JS and CSS in reports

2021-03-15 Thread Alex White
This moves all of the javascript and CSS files that are shared by the symbol set HTML reports to the shared parent directory. It also includes the javascript and CSS in the top-level index file. --- tester/covoar/ReportsHtml.cc | 4 ++-- tester/rt/coverage.py| 11 ++- 2 files chan

[PATCH v2 4/4] coverage: Give coverage bars red background

2021-03-15 Thread Alex White
--- tester/rt/coverage.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py index ec3957c..a561d26 100644 --- a/tester/rt/coverage.py +++ b/tester/rt/coverage.py @@ -129,6 +129,9 @@ class report_gen_html: head_section += 'width: 150px

[PATCH v2 2/4] coverage/reports: Improve formatting and clarity

2021-03-15 Thread Alex White
The coverage reports contain places where they display incorrect or vague information particularly when some statistic is unavailable. This has been fixed. The formatting and wording of various things has been improved as well. --- tester/covoar/ObjdumpProcessor.cc | 5 + tester/covoar/ReportsBa

RE: [PATCH 2/3] covoar: Improve findCoverageMap error message

2021-03-16 Thread Alex White
This patch no longer applies assuming that the latest revision of my earlier patch, "covoar: Handle periods in symbols from objdump", is accepted. -Original Message----- From: Alex White Sent: Friday, March 12, 2021 11:14 AM To: devel@rtems.org Cc: Alex White Subject: [PATCH 2

[PATCH v3] covoar: Handle periods in symbols from objdump

2021-03-16 Thread Alex White
Occasionally the compiler will generate symbols that look similar to symbols defined in RTEMS code except that they contain some suffix. These symbol suffixes are only found in the ELF symbol table; the symbols appear to be normal in the DWARF info. This appears to be happening on all architectures

RE: [PATCH v3] covoar: Handle periods in symbols from objdump

2021-03-16 Thread Alex White
. I found a good explanation of this directly in the GCC source here: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ipa-split.c;h=5e918ee3fbf6a86bd7fbfab6293f90c146b74977;hb=HEAD Alex From: Joel Sherrill Sent: Tuesday, March 16, 2021 9:53 AM To: Alex White Cc: rtems-de...@rtems.org Subject: Re

RE: [PATCH v3] covoar: Handle periods in symbols from objdump

2021-03-16 Thread Alex White
> I have lost of the context of why covoar would like to strip the suffixes and > use only the base symbol name. Could you please explain why this is being > done? Sure. The symbol names in the DWARF info never contain these suffixes. Covoar strips the suffixes while reading the objdump output so

RE: [PATCH v3] covoar: Handle periods in symbols from objdump

2021-03-16 Thread Alex White
Assuming I'm sending a v4 of this patch out, should I add the explanation of the compiler-generated suffixes to the commit message or perhaps as a comment in the code? Alex > -Original Message- > From: devel On Behalf Of Alex White > Sent: Tuesday, March 16, 2021 3:32

RE: [PATCH v3] covoar: Handle periods in symbols from objdump

2021-03-16 Thread Alex White
> Do any non-compiler-generated symbols include "."? Yes, according to the output of nm: $ i386-rtems6-nm build/i386/pc686/testsuites/libtests/block08.exe | grep " \." 0011bdd2 t .check_stack_switch I don't think there are any function symbols that include ".", though. > > Are there symbols th

RE: [PATCH v3] covoar: Handle periods in symbols from objdump

2021-03-18 Thread Alex White
> -Original Message- > From: Chris Johns > Sent: Tuesday, March 16, 2021 7:18 PM > To: j...@rtems.org; Alex White > Cc: rtems-de...@rtems.org > Subject: Re: [PATCH v3] covoar: Handle periods in symbols from objdump > > On 17/3/21 9:56 am, Joel Sherrill wrote:

[PATCH v5 0/2] Fix NOP recognition

2021-03-18 Thread Alex White
in Coverage::finalizeSymbol() v2: - Fix leftover debugging code in Coverage::finalizeSymbol() This patch set fixes a couple cases where NOP instructions were showing up as unexecuted in coverage reports. Alex White (2): covoar: Fix NOP execution marking covoar/Target_i386: Add NOP patterns

[PATCH v5 2/2] covoar/Target_i386: Add NOP patterns

2021-03-18 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH v5 1/2] covoar: Fix NOP execution marking

2021-03-18 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 +-- tester/covoar/Desi

[PATCH v4] covoar: Handle periods in symbols from objdump

2021-03-19 Thread Alex White
Occasionally the compiler will generate symbols that look similar to symbols defined in RTEMS code except that they contain some suffix. These symbol suffixes are only found in the ELF symbol table; the symbols appear to be normal in the DWARF info. This appears to be happening on all architectures

[PATCH] rsb: Add aarch64 target to qemu-couverture

2021-03-19 Thread Alex White
--- bare/config/devel/qemu-couverture-git-1.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bare/config/devel/qemu-couverture-git-1.cfg b/bare/config/devel/qemu-couverture-git-1.cfg index 0f5629e..bb9b7a6 100644 --- a/bare/config/devel/qemu-couverture-git-1.cfg +++ b/bare/

[PATCH v3] cpukit/aarch64: Add ESR register decoding

2021-03-22 Thread Alex White
--- .../aarch64/aarch64-exception-frame-print.c | 106 +- 1 file changed, 102 insertions(+), 4 deletions(-) diff --git a/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c b/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c index 59b5d06032..b22d99a0ca 100644 --- a

RE: [PATCH v3] cpukit/aarch64: Add ESR register decoding

2021-03-22 Thread Alex White
On Mon, Mar 22, 2021 at 2:33 PM Joel Sherrill wrote: >> +static const char* _exception_class_to_string( uint16_t exception_class ) >> +{ >> +  switch (exception_class) >> +  { >> +  case 0b01: return "Trapped WFI or WFE instruction"; >> +  case 0b11: return "Trapped MCR or MRC access with

[PATCH v4] cpukit/aarch64: Add ESR register decoding

2021-03-22 Thread Alex White
--- .../aarch64/aarch64-exception-frame-print.c | 105 +- 1 file changed, 101 insertions(+), 4 deletions(-) diff --git a/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c b/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c index 59b5d06032..348151a468 100644 --- a

[PATCH v5] cpukit/aarch64: Add ESR register decoding

2021-03-23 Thread Alex White
--- .../aarch64/aarch64-exception-frame-print.c | 133 -- 1 file changed, 123 insertions(+), 10 deletions(-) diff --git a/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c b/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c index 59b5d06032..a8c492b1da 100644 ---

RE: [PATCH v5] cpukit/aarch64: Add ESR register decoding

2021-03-23 Thread Alex White
On Tue, Mar 23, 2021 at 11:46 AM Gedare Bloom wrote: > > On Tue, Mar 23, 2021 at 10:31 AM Alex White wrote: > > > > --- > >  .../aarch64/aarch64-exception-frame-print.c   | 133 -- > >  1 file changed, 123 insertions(+), 10 deletions(-) > &g

[PATCH v6] cpukit/aarch64: Add ESR register decoding

2021-03-23 Thread Alex White
--- .../aarch64/aarch64-exception-frame-print.c | 135 -- 1 file changed, 125 insertions(+), 10 deletions(-) diff --git a/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c b/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c index 59b5d06032..e207a5a81d 100644 ---

[PATCH v2 0/2] Fix QEMU branch analysis

2021-03-24 Thread Alex White
v2: - Revert change to ENTRIES macro in CoverageReaderQEMU.cc This patch set contains a couple of fixes for issues that were found while using covoar to analyze branch coverage in QEMU. Alex White (2): covoar/CoverageReaderQEMU: Fix infinite loop covoar/TargetBase: Fix QEMU branch info

[PATCH v2 2/2] covoar/TargetBase: Fix QEMU branch info

2021-03-24 Thread Alex White
The taken/not taken bit was being interpreted incorrectly. This led to branches being marked "always taken" when they were never taken. This has been fixed. --- tester/covoar/TargetBase.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tester/covoar/TargetBase.cc b/tester/

[PATCH v2 1/2] covoar/CoverageReaderQEMU: Fix infinite loop

2021-03-24 Thread Alex White
There was a potential that the branch info loop never terminated. This has been fixed by adding a more reliable termination condition and logging an error if it cannot find the branch target. --- tester/covoar/CoverageReaderQEMU.cc | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) dif

Recent rtems-tools patches status

2021-03-24 Thread Alex White
Hi, Here is the status of the rtems-tools patches I have sent out over the past few weeks (an X means the latest patch revision has been reviewed): [ ] tester: Limit branch coverage percentage precision [ ] coverage: Fix option processing on FreeBSD [ ] coverage/symbol-sets.ini : Add libtrace [

RE: Recent rtems-tools patches status

2021-03-24 Thread Alex White
On Wed, Mar 24, 2021 at 11:04 AM Joel Sherrill wrote: > > > > On Wed, Mar 24, 2021 at 10:52 AM Gedare Bloom wrote: >> >> On Wed, Mar 24, 2021 at 7:56 AM Alex White wrote: >> > My plan is to resend the patches that have not been reviewed and meter >> &

[PATCH] covoar: Add aarch64 target

2021-03-24 Thread Alex White
--- tester/covoar/TargetFactory.cc | 2 + tester/covoar/Target_aarch64.cc | 100 tester/covoar/Target_aarch64.h | 77 tester/covoar/wscript | 1 + 4 files changed, 180 insertions(+) create mode 100644 tester/covoar/Target_

RE: [PATCH] covoar: Add aarch64 target

2021-03-24 Thread Alex White
On Wed, Mar 24, 2021 at 12:25 PM Gedare Bloom wrote: > > On Wed, Mar 24, 2021 at 10:46 AM Alex White wrote: > > diff --git a/tester/covoar/Target_aarch64.cc > > b/tester/covoar/Target_aarch64.cc > > new file mode 100644 > > index 000..64472d6 > > -

RE: [PATCH v5 0/2] Fix NOP recognition

2021-03-25 Thread Alex White
ping > -Original Message- > From: Alex White > Sent: Thursday, March 18, 2021 1:05 PM > To: devel@rtems.org > Cc: Alex White > Subject: [PATCH v5 0/2] Fix NOP recognition > > v5: > - Fix missing std::dec at the end of error message printing in > Cove

RE: [PATCH v5 1/2] covoar: Fix NOP execution marking

2021-03-25 Thread Alex White
On Thu, Mar 25, 2021 at 2:38 PM Gedare Bloom wrote: > > On Thu, Mar 25, 2021 at 10:05 AM Joel Sherrill wrote: > > > > > > > > On Thu, Mar 25, 2021 at 10:42 AM Gedare Bloom wrote: > >> > >> On Thu, Mar 18, 2021 at 12:05 PM Alex White wrote: >

[PATCH v6 0/2] Fix NOP recognition

2021-03-25 Thread Alex White
Coverage::finalizeSymbol() v3: - Fix double increment of rangeIndex in Coverage::finalizeSymbol() v2: - Fix leftover debugging code in Coverage::finalizeSymbol() This patch set fixes a couple cases where NOP instructions were showing up as unexecuted in coverage reports. Alex White (2): covoar

[PATCH v6 2/2] covoar/Target_i386: Add NOP patterns

2021-03-25 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

[PATCH v6 1/2] covoar: Fix NOP execution marking

2021-03-25 Thread Alex White
Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed. --- tester/covoar/CoverageMapBase.cc | 10 +++ tester/covoar/CoverageMapBase.h | 4 ++ tester/covoar/DesiredSymbols.cc | 38 +-- tester/covoar/Desi

RE: [PATCH v6 1/2] covoar: Fix NOP execution marking

2021-03-25 Thread Alex White
On Thu, Mar 25, 2021 at 6:10 PM Chris Johns wrote: > > On 26/3/21 8:49 am, Alex White wrote: > > Some NOP instructions were not being marked as executed because they > > are located at the end of uncovered ranges. This has been fixed. > > --- > >  tester/co

[PATCH v7 2/2] covoar/Target_i386: Add NOP patterns

2021-03-26 Thread Alex White
A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed. --- tester/covoar/Target_i386.cc | 9 + 1 file changed, 9 insertions(+) diff --git a/tester/covoar/Target_i386.cc b/tester/covoar/Target_i386.cc index e0c9c0f..4567c1e 100644 --- a/tester/covoar/Targ

  1   2   3   >