summaryrefslogtreecommitdiffstats
path: root/tester/covoar (follow)
Commit message (Collapse)AuthorAgeFilesLines
* covoar: Split symbols by symbol setAlex White2021-04-069-402/+542
| | | | | | | | | | | | | This changes the way covoar organizes the symbols. Instead of treating all symbols as one set, covoar is now aware of multiple symbol sets and tracks statistics for each set. It now also generates reports for each symbol set. This change relieves the caller of covoar of the reponsibility of managing the symbol sets. As a result, covoar can minimize the work done for each symbol set, yielding a significant speedup. Updates #4374
* covoar: Fix off-by-one in Coverage::finalizeSymbol()Alex White2021-04-021-5/+4
| | | | | | The `rangeIndex` variable is 1 higher than the index at which the first instruction address was found. This fixes the loop to set `rangeIndex` correctly.
* covoar/Reports: Fix empty branch reportAlex White2021-03-302-55/+39
| | | | | This makes the branch report more consistent with the other reports when there is no branch information found.
* covoar: Fix overflow of high PC addressAlex White2021-03-301-0/+5
| | | | | This fixes an integer overflow that would occur if a function's high PC address were zero in the DWARF info.
* covoar: Catch exceptional caseAlex White2021-03-301-0/+10
|
* covoar: Fix null pointer dereferenceAlex White2021-03-301-3/+6
| | | | | | 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.
* coverage/reports: Share common JS and CSS in reportsAlex White2021-03-301-2/+2
| | | | | | 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.
* coverage/reports: Improve formatting and clarityAlex White2021-03-304-103/+158
| | | | | | | 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.
* covoar/reports: Add new statistics to summaryAlex White2021-03-303-9/+71
| | | | | | 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.
* covoar: Handle periods in symbols from objdumpAlex White2021-03-303-5/+25
| | | | | | | | | | | | | | | | | 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. For example, the function _Message_queue_Create from rtems appears as "_Message_queue_Create.part.0". Other suffixes include ".isra.0", ".constprop.0", and ".0". This looks to be related to compiler optimizations. Symbols with suffixes were being treated as unique. For our purposes, they should be mapped to the equivalent symbols in the DWARF info. This has been fixed.
* covoar: Fix DWARF readingAlex White2021-03-302-58/+82
| | | | | | | 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.
* covoar/TargetBase: Fix QEMU branch infoAlex White2021-03-301-2/+2
| | | | | | 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.
* covoar/CoverageReaderQEMU: Fix infinite loopAlex White2021-03-301-1/+8
| | | | | | 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.
* covoar/Target_arm: Add THUMB branch instructionsAlex White2021-03-301-0/+34
| | | | | | The ".n" and ".w" variants of the THUMB branch instructions were not included in the list of conditional branch instructions. They have been added.
* covoar/Target_i386: Add NOP patternsAlex White2021-03-301-0/+9
| | | | | A couple of NOP patterns found with the pc686 BSP were not detected. This has been fixed.
* covoar: Fix NOP execution markingAlex White2021-03-307-36/+139
| | | | | Some NOP instructions were not being marked as executed because they are located at the end of uncovered ranges. This has been fixed.
* covoar: Add aarch64 targetAlex White2021-03-304-0/+180
|
* covoar/TargetBase: Rename branchInstructions to conditionalBranchInstructionsAlex White2021-03-309-181/+185
| | | | | | | 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.
* covoar/wscript: Install covoar.css and table.jsVijay Kumar Banerjee2020-01-281-0/+1
|
* waf: Update the check_cc tests to a newer method supported by waf.Chris Johns2019-05-272-3/+11
| | | | - Fix a minor issue in covoar's use of 64bit calls.
* Coverage : Add coverage support for RISCVVijay Kumar Banerjee2019-02-124-1/+182
|
* covoar: wrong symbol length in coverage mapJiri Gaisler2019-01-252-2/+2
|
* covoar: enable -f switch to select other coverage formatsJiri Gaisler2019-01-251-1/+2
|
* covoar: debug print-out of addresses should be in hexJiri Gaisler2019-01-251-0/+1
|
* tester/coverage: Remove warnings in covoar on Windows.Chris Johns2018-11-293-76/+65
|
* Coverage : install covoar in tester/binVijay Kumar Banerjee2018-11-271-0/+1
|
* covoar: Close the ELF and DWARF handles once the data is loaded.Chris Johns2018-08-211-8/+17
| | | | | This avoids the processing being killed with to many file handles open.
* tester/covoar: Integrate DWARF function data.Chris Johns2018-08-078-428/+381
| | | | | | | | | | | | | | | | Use DAWRF function data to create the executable coverage maps. Integrate the existing objdump processing with this data. - Refactor CoverageMapBase to have the address ranges and address info as separate objects. Move the to address info into a vector. Add support for multiple address ranges. - DesiredSymbols is only interested in function symbols. - ExecutableInfo creates coverage maps from DWARF function data. - Add warning flags to the covoar build. - Varous C++11 refactoring.
* covoar: Address kill() on CygwinJoel Sherrill2018-06-222-2/+2
|
* covoar: Covert CoverageMapBase C to C++Chris Johns2018-06-213-77/+69
| | | | Updates #3462
* tester: Correct usage for covoar.Chris Johns2018-06-181-1/+1
|
* tester/covoar: ExecutableInfo C to C++ change.Chris Johns2018-06-181-3/+3
|
* tester/covoar: Remove all exit() calls and throw an rld::error exception.Chris Johns2018-06-1823-649/+608
| | | | Add a suitable catch to covoar's main.
* covoar: Add libdwarf to the include path.Chris Johns2018-06-151-0/+1
|
* covoar: Control the RLD verbose level from the -v option.Chris Johns2018-06-151-1/+2
|
* covoar: Refactor DesiredSymbols.cc to C++11.Chris Johns2018-06-151-289/+210
|
* covoar: Use DWARF to map addresses to source files and lines.Chris Johns2018-06-157-191/+127
|
* tester/covoar: Do not load an executable's local symbols.Chris Johns2018-05-251-4/+0
|
* covoar: Fix build path checks for multiple executables.Cillian O'Donnell2018-05-141-7/+3
|
* tester/covoar: Remove the C part of main and convert to C++Chris Johns2018-05-011-145/+98
| | | | This is a clean up.
* covoar: Add symbol set reader and ELF data parser to covoar.Cillian O'Donnell2018-05-018-185/+300
| | | | | | | | | | | | | | Add ability to organize symbol sets of libraries in INI file and then read them with covoar and load the symbols directly from the libraries. rtems-tools/../testing: Add configuration files for coverage analysis. A number of covoar options are not required and are defaulted. Co-author: Krzysztof Miesowicz <krzysztof.miesowicz@gmail.com> Co-author: Vijay Kumar Banerjee <vijaykumar9597@gmail.com> Co-author: Chris Johns <chrisj@rtems.org>
* tester/covoar/covoar.cc: Add missing throw keywordJoel Sherrill2018-01-021-1/+1
| | | | | | Why clang caught this and gcc didn't is a mystery. Updates #3191.
* tester/covoar/covoar.cc: Exit using exit() rather than just throwing.Joel Sherrill2017-12-051-4/+4
| | | | Closes #3191.
* tester/covoar/covoar.cc: Clean up formatting (tabs, braces, indentation, etc)Joel Sherrill2017-12-051-107/+114
|
* tester/covoar: Use standard waf modules for linking.Chris Johns2017-10-131-4/+7
| | | | | | | Use the standard modules `use` option for building executables and let waf figure out the platform specifics. Closes #3190.
* tester/covoar/DesiredSymbols.cc: Now compiles on CygwinJoel Sherrill2017-09-141-0/+4
|
* covoar: Add function defs to fix Windows build errors.Cillian O'Donnell2017-09-144-3/+11
| | | | Closes #3129
* Add Windows includes so the rtemstoolkit builds.Chris Johns2017-09-111-5/+8
| | | | Closes #3128.
* covoar: Remove config file and test critical options are valid.Cillian O'Donnell2017-08-292-102/+63
|
* covoar/CoverageReaderQEMU.cc: Remove trace block matching check.Cillian O'Donnell2017-08-291-15/+0
| | | | | This removes the 'Trace block inconsistent with coverage map' check as it was deemed to be too restrictive and not neccessary.