123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- #ifndef cmCTestMemCheckHandler_h
- #define cmCTestMemCheckHandler_h
- #include "cmConfigure.h"
- #include "cmCTestTestHandler.h"
- #include <string>
- #include <vector>
- class cmMakefile;
- class cmXMLWriter;
- class cmCTestMemCheckHandler : public cmCTestTestHandler
- {
- friend class cmCTestRunTest;
- public:
- typedef cmCTestTestHandler Superclass;
- void PopulateCustomVectors(cmMakefile* mf) override;
- cmCTestMemCheckHandler();
- void Initialize() override;
- int GetDefectCount();
- protected:
- int PreProcessHandler() override;
- int PostProcessHandler() override;
- void GenerateTestCommand(std::vector<std::string>& args, int test) override;
- private:
- enum
- {
- UNKNOWN = 0,
- VALGRIND,
- PURIFY,
- BOUNDS_CHECKER,
-
- ADDRESS_SANITIZER,
- LEAK_SANITIZER,
- THREAD_SANITIZER,
- MEMORY_SANITIZER,
- UB_SANITIZER
- };
- public:
- enum
- {
- ABR = 0,
- ABW,
- ABWL,
- COR,
- EXU,
- FFM,
- FIM,
- FMM,
- FMR,
- FMW,
- FUM,
- IPR,
- IPW,
- MAF,
- MLK,
- MPK,
- NPR,
- ODS,
- PAR,
- PLK,
- UMC,
- UMR,
- NO_MEMORY_FAULT
- };
- private:
- enum
- {
- NOT_RUN = 0,
- TIMEOUT,
- SEGFAULT,
- ILLEGAL,
- INTERRUPT,
- NUMERICAL,
- OTHER_FAULT,
- FAILED,
- BAD_COMMAND,
- COMPLETED
- };
- std::string BoundsCheckerDPBDFile;
- std::string BoundsCheckerXMLFile;
- std::string MemoryTester;
- std::vector<std::string> MemoryTesterDynamicOptions;
- std::vector<std::string> MemoryTesterOptions;
- int MemoryTesterStyle;
- std::string MemoryTesterOutputFile;
- std::string MemoryTesterEnvironmentVariable;
-
- std::vector<std::string> ResultStrings;
- std::vector<std::string> ResultStringsLong;
- std::vector<int> GlobalResults;
- bool LogWithPID;
- int DefectCount;
- std::vector<int>::size_type FindOrAddWarning(const std::string& warning);
-
-
- void InitializeResultsVectors();
-
- bool InitializeMemoryChecking();
-
- void GenerateDartOutput(cmXMLWriter& xml) override;
- std::vector<std::string> CustomPreMemCheck;
- std::vector<std::string> CustomPostMemCheck;
-
-
-
- bool ProcessMemCheckOutput(const std::string& str, std::string& log,
- std::vector<int>& results);
- bool ProcessMemCheckValgrindOutput(const std::string& str, std::string& log,
- std::vector<int>& results);
- bool ProcessMemCheckPurifyOutput(const std::string& str, std::string& log,
- std::vector<int>& results);
- bool ProcessMemCheckSanitizerOutput(const std::string& str, std::string& log,
- std::vector<int>& results);
- bool ProcessMemCheckBoundsCheckerOutput(const std::string& str,
- std::string& log,
- std::vector<int>& results);
- void PostProcessTest(cmCTestTestResult& res, int test);
- void PostProcessBoundsCheckerTest(cmCTestTestResult& res, int test);
-
- void AppendMemTesterOutput(cmCTestTestHandler::cmCTestTestResult& res,
- std::string const& filename);
-
- void TestOutputFileNames(int test, std::vector<std::string>& files);
- };
- #endif
|