summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestMemCheckHandler.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-09 14:02:48 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-07-09 14:02:48 (GMT)
commit55d3e88fb7eb5cfdb58c5617133dfaf70d3b0547 (patch)
tree6b3060963ff185b10bb440368a4d1b3bb91e50c2 /Source/CTest/cmCTestMemCheckHandler.h
parentaaea11e3531918612887263c7e926fca40964b1a (diff)
parent7c80ce6f057a7d97b049fe152a6f9d914093da5f (diff)
downloadCMake-55d3e88fb7eb5cfdb58c5617133dfaf70d3b0547.zip
CMake-55d3e88fb7eb5cfdb58c5617133dfaf70d3b0547.tar.gz
CMake-55d3e88fb7eb5cfdb58c5617133dfaf70d3b0547.tar.bz2
Merge topic 'thread-sanitizer'
7c80ce6f Help: Add notes for topic 'thread-sanitizer' 49948f72 ctest_memcheck: Add support for ThreadSanitizer
Diffstat (limited to 'Source/CTest/cmCTestMemCheckHandler.h')
-rw-r--r--Source/CTest/cmCTestMemCheckHandler.h36
1 files changed, 28 insertions, 8 deletions
diff --git a/Source/CTest/cmCTestMemCheckHandler.h b/Source/CTest/cmCTestMemCheckHandler.h
index 20a38bb..ffe57f6 100644
--- a/Source/CTest/cmCTestMemCheckHandler.h
+++ b/Source/CTest/cmCTestMemCheckHandler.h
@@ -15,7 +15,10 @@
#include "cmCTestTestHandler.h"
+#include "cmStandardIncludes.h"
#include "cmListFileCache.h"
+#include <vector>
+#include <string>
class cmMakefile;
@@ -45,7 +48,9 @@ private:
UNKNOWN = 0,
VALGRIND,
PURIFY,
- BOUNDS_CHECKER
+ BOUNDS_CHECKER,
+ // checkers after hear do not use the standard error list
+ THREAD_SANITIZER
};
public:
enum { // Memory faults
@@ -93,7 +98,17 @@ private:
std::vector<std::string> MemoryTesterOptions;
int MemoryTesterStyle;
std::string MemoryTesterOutputFile;
- int MemoryTesterGlobalResults[NO_MEMORY_FAULT];
+ std::string MemoryTesterEnvironmentVariable;
+ // these are used to store the types of errors that can show up
+ std::vector<std::string> ResultStrings;
+ std::vector<std::string> ResultStringsLong;
+ std::vector<int> GlobalResults;
+ bool LogWithPID; // does log file add pid
+
+ std::vector<int>::size_type FindOrAddWarning(const std::string& warning);
+ // initialize the ResultStrings and ResultStringsLong for
+ // this type of checker
+ void InitializeResultsVectors();
///! Initialize memory checking subsystem.
bool InitializeMemoryChecking();
@@ -110,17 +125,22 @@ private:
//string. After running, log holds the output and results hold the
//different memmory errors.
bool ProcessMemCheckOutput(const std::string& str,
- std::string& log, int* results);
+ std::string& log, std::vector<int>& results);
bool ProcessMemCheckValgrindOutput(const std::string& str,
- std::string& log, int* results);
+ std::string& log,
+ std::vector<int>& results);
bool ProcessMemCheckPurifyOutput(const std::string& str,
- std::string& log, int* results);
+ std::string& log,
+ std::vector<int>& results);
+ bool ProcessMemCheckThreadSanitizerOutput(const std::string& str,
+ std::string& log,
+ std::vector<int>& results);
bool ProcessMemCheckBoundsCheckerOutput(const std::string& str,
- std::string& log, int* results);
+ std::string& log,
+ std::vector<int>& results);
- void PostProcessPurifyTest(cmCTestTestResult& res, int test);
+ void PostProcessTest(cmCTestTestResult& res, int test);
void PostProcessBoundsCheckerTest(cmCTestTestResult& res, int test);
- void PostProcessValgrindTest(cmCTestTestResult& res, int test);
///! append MemoryTesterOutputFile to the test log
void AppendMemTesterOutput(cmCTestTestHandler::cmCTestTestResult& res,