///Create a test harness that runs tests matching the substrings ///passed on the command line. argc and argv are interpreted as if ///they were the arguments to main. If no substrings are given ///(that is, no arguments are passed), all tests are run, as if one ///argument of an empty string had been given. GTestHarness(int argc, char**argv) { //Make list of test names to match if(argc < 2){ m_testNameSubstr.push_back(""); }else{ for(int i = 1; i < argc; ++i){ m_testNameSubstr.push_back(argv[i]); } } //Ready performance stats char buf[256]; if(GApp::appPath(buf, 256, true) == -1) throw Ex("Failed to retrieve app path"); if(chdir(buf) != 0) throw Ex("Failed to change the dir to the app folder"); m_testTimes.flags(std::ios::showpoint | std::ios::skipws | std::ios::dec | std::ios::fixed | std::ios::left); m_testTimes.width(PERF_FILE_CHARS); m_testTimes.precision(PERF_FILE_CHARS - 3); string s; GTime::appendTimeStampValue(&s, "-", " ", ":", false); m_testTimes << s; }
void toHex(const uint8_t* array, size_t arrayLength, std::ostringstream& result) { if (arrayLength == 0) return; result.flags(ios::hex); for (size_t i = 0; i < arrayLength; ++i) { uint8_t x = array[i]; if (x < 16) result << '0'; result << (unsigned int)x; } }