diff options
author | Ryan Long <ryan.long@oarcorp.com> | 2021-07-13 14:58:45 -0400 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2021-09-07 14:26:51 -0500 |
commit | 32ff9bb2967f1a5caa503ec06e97b8320b98dad6 (patch) | |
tree | 8dd7e4fb139cc2aeb2d9faf8abaace64e9b21e14 /tester/covoar/CoverageReaderSkyeye.cc | |
parent | CoverageMap.cc: Fix formatting (diff) | |
download | rtems-tools-32ff9bb2967f1a5caa503ec06e97b8320b98dad6.tar.bz2 |
CoverageReader: Convert to C++
Diffstat (limited to 'tester/covoar/CoverageReaderSkyeye.cc')
-rw-r--r-- | tester/covoar/CoverageReaderSkyeye.cc | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/tester/covoar/CoverageReaderSkyeye.cc b/tester/covoar/CoverageReaderSkyeye.cc index 0fe33d7..de0d4ad 100644 --- a/tester/covoar/CoverageReaderSkyeye.cc +++ b/tester/covoar/CoverageReaderSkyeye.cc @@ -10,6 +10,7 @@ #include <sys/stat.h> #include <iostream> +#include <fstream> #include <iomanip> #include "CoverageReaderSkyeye.h" @@ -28,32 +29,30 @@ namespace Coverage { } void CoverageReaderSkyeye::processFile( - const char* const file, + const std::string& file, ExecutableInfo* const executableInformation ) { CoverageMapBase* aCoverageMap = NULL; uintptr_t baseAddress; uint8_t cover; - FILE* coverageFile; + std::ifstream coverageFile; prof_header_t header; uintptr_t i; uintptr_t length; - int status; // // Open the coverage file and read the header. // - coverageFile = ::fopen( file, "r" ); - if (!coverageFile) { + coverageFile.open( file ); + if ( !coverageFile ) { std::ostringstream what; what << "Unable to open " << file; throw rld::error( what, "CoverageReaderSkyeye::processFile" ); } - status = ::fread( &header, sizeof(header), 1, coverageFile ); - if (status != 1) { - ::fclose( coverageFile ); + coverageFile.read( (char *) &header, sizeof( header ) ); + if ( coverageFile.fail() ) { std::ostringstream what; what << "Unable to read header from " << file; throw rld::error( what, "CoverageReaderSkyeye::processFile" ); @@ -66,8 +65,8 @@ namespace Coverage { // Read and process each line of the coverage file. // for (i = 0; i < length; i += 8) { - status = ::fread( &cover, sizeof(uint8_t), 1, coverageFile ); - if (status != 1) { + coverageFile.read( (char *) &cover, sizeof( uint8_t ) ); + if ( coverageFile.gcount() != sizeof( uint8_t ) ) { std::cerr << "CoverageReaderSkyeye::ProcessFile - breaking after 0x" << std::hex << std::setfill('0') << std::setw(8) << i @@ -106,6 +105,5 @@ namespace Coverage { } } - ::fclose( coverageFile ); } } |