summaryrefslogtreecommitdiffstats
path: root/covoar
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-05-24 20:10:31 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-05-24 20:10:31 +0000
commit997cdd67b929ac251c96c6263fbf6f26f023d285 (patch)
tree7e8e65e68eaeb354523dc7cf5717763997a1876e /covoar
parent2010-05-24 Jennifer Averett <Jennifer.Averett@OARcorp.com> (diff)
downloadrtems-testing-997cdd67b929ac251c96c6263fbf6f26f023d285.tar.bz2
2010-05-24 Joel Sherrill <joel.sherrilL@OARcorp.com>
* CoverageReaderTSIM.cc: Add branch coverage to TSIM. Only on erc32 and leon3 at this time. * ChangeLog: New file.
Diffstat (limited to 'covoar')
-rw-r--r--covoar/ChangeLog3
-rw-r--r--covoar/CoverageReaderTSIM.cc25
2 files changed, 20 insertions, 8 deletions
diff --git a/covoar/ChangeLog b/covoar/ChangeLog
new file mode 100644
index 0000000..ff47b67
--- /dev/null
+++ b/covoar/ChangeLog
@@ -0,0 +1,3 @@
+2010-05-24 TEAM
+
+ * Created directory and split covoar from rtems-coverage.
diff --git a/covoar/CoverageReaderTSIM.cc b/covoar/CoverageReaderTSIM.cc
index 90ed4b5..4f63dab 100644
--- a/covoar/CoverageReaderTSIM.cc
+++ b/covoar/CoverageReaderTSIM.cc
@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <sys/stat.h>
+#include "app_common.h"
#include "CoverageReaderTSIM.h"
#include "CoverageMap.h"
#include "ExecutableInfo.h"
@@ -21,6 +22,7 @@ namespace Coverage {
CoverageReaderTSIM::CoverageReaderTSIM()
{
+
}
CoverageReaderTSIM::~CoverageReaderTSIM()
@@ -62,6 +64,7 @@ namespace Coverage {
}
for (i=0; i < 0x80; i+=4) {
+ unsigned int a;
status = fscanf( coverageFile, "%d", &cover );
if (status == EOF || status == 0) {
fprintf(
@@ -77,15 +80,21 @@ namespace Coverage {
// Obtain the coverage map containing the address and
// mark the address as executed.
//
+ a = baseAddress + i;
+ aCoverageMap = executableInformation->getCoverageMap( a );
+ if (!aCoverageMap)
+ continue;
if (cover & 1) {
- aCoverageMap = executableInformation->getCoverageMap(
- baseAddress + i
- );
- if (aCoverageMap) {
- aCoverageMap->setWasExecuted( baseAddress + i );
- aCoverageMap->setWasExecuted( baseAddress + i + 1 );
- aCoverageMap->setWasExecuted( baseAddress + i + 2 );
- aCoverageMap->setWasExecuted( baseAddress + i + 3 );
+ aCoverageMap->setWasExecuted( a );
+ aCoverageMap->setWasExecuted( a + 1 );
+ aCoverageMap->setWasExecuted( a + 2 );
+ aCoverageMap->setWasExecuted( a + 3 );
+ if ( cover & 0x10 ) {
+ aCoverageMap->setWasTaken( a );
+ BranchInfoAvailable = true;
+ } else if ( cover & 0x20 ) {
+ aCoverageMap->setWasNotTaken( a );
+ BranchInfoAvailable = true;
}
}
}