diff options
Diffstat (limited to 'Source/cmCTest.h')
-rw-r--r-- | Source/cmCTest.h | 197 |
1 files changed, 20 insertions, 177 deletions
diff --git a/Source/cmCTest.h b/Source/cmCTest.h index bef3d4a..a9efcc0 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -25,15 +25,16 @@ class cmMakefile; class cmCTestBuildHandler; +class cmCTestConfigureHandler; +class cmCTestCoverageHandler; class cmCTestScriptHandler; +class cmCTestTestHandler; class cmCTestUpdateHandler; -class cmCTestConfigureHandler; class cmCTest { public: typedef std::vector<cmStdString> tm_VectorOfStrings; - typedef std::vector<cmListFileArgument> tm_VectorOfListFileArgs; ///! Process Command line arguments int Run(std::vector<std::string>const&, std::string* output = 0); @@ -74,34 +75,20 @@ public: int TestDirectory(bool memcheck); /** - * Try to get coverage of the project - */ - int CoverageDirectory(); - - /** * Do submit testing results */ int SubmitResults(); std::string GetSubmitResultsPrefix(); + ///! what is the configuraiton type, e.g. Debug, Release etc. + std::string GetConfigType(); + /** * Check if CTest file exists */ bool CTestFileExists(const std::string& filename); /** - * Run the test for a directory and any subdirectories - */ - void ProcessDirectory(tm_VectorOfStrings &passed, - tm_VectorOfStrings &failed, - bool memcheck); - - /** - * Find the executable for a test - */ - std::string FindTheExecutable(const char *exe); - - /** * Set the cmake test */ bool SetTest(const char*, bool report = true); @@ -114,7 +101,7 @@ public: std::string GetTestModelString(); static int GetTestModelFromString(const char* str); - + static std::string CleanString(const std::string& str); std::string GetDartConfiguration(const char *name); /** @@ -126,13 +113,6 @@ public: //! Set the notes files to be created. void SetNotesFiles(const char* notes); - bool m_UseIncludeRegExp; - std::string m_IncludeRegExp; - - bool m_UseExcludeRegExp; - bool m_UseExcludeRegExpFirst; - std::string m_ExcludeRegExp; - std::string m_ConfigType; bool m_Verbose; bool m_DartMode; @@ -174,6 +154,9 @@ public: ///! Should we only show what we would do? bool GetShowOnly(); + ///! Are we producing XML + bool GetProduceXML(); + //! Start CTest XML output file void StartXML(std::ostream& ostr); @@ -189,17 +172,22 @@ public: static void PopulateCustomVector(cmMakefile* mf, const char* definition, tm_VectorOfStrings& vec); + std::string GetToplevelPath(); + + //! Run command specialized for tests. Returns process status and retVal is + // return value or exception. + int RunTest(std::vector<const char*> args, std::string* output, int *retVal, + std::ostream* logfile); + private: // these are helper classes - cmCTestBuildHandler *BuildHandler; + cmCTestBuildHandler *BuildHandler; + cmCTestCoverageHandler *CoverageHandler; cmCTestScriptHandler *ScriptHandler; + cmCTestTestHandler *TestHandler; cmCTestUpdateHandler *UpdateHandler; cmCTestConfigureHandler *ConfigureHandler; - void SetTestsToRunInformation(const char*); - void ExpandTestsToRunInformation(int numPossibleTests); - std::string TestsToRunString; - bool m_ShowOnly; enum { @@ -217,104 +205,9 @@ private: LAST_TEST = 11 }; - enum { // Program statuses - NOT_RUN = 0, - TIMEOUT, - SEGFAULT, - ILLEGAL, - INTERRUPT, - NUMERICAL, - OTHER_FAULT, - FAILED, - BAD_COMMAND, - COMPLETED - }; - - enum { // Memory checkers - UNKNOWN = 0, - VALGRIND, - PURIFY, - BOUNDS_CHECKER - }; - - enum { // Memory faults - 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 - }; - - - struct cmCTestTestResult - { - std::string m_Name; - std::string m_Path; - std::string m_FullCommandLine; - double m_ExecutionTime; - int m_ReturnValue; - int m_Status; - std::string m_CompletionStatus; - std::string m_Output; - std::string m_RegressionImages; - int m_TestCount; - }; - - struct cmCTestTestProperties - { - cmStdString m_Name; - cmStdString m_Directory; - tm_VectorOfListFileArgs m_Args; - }; - - typedef std::vector<cmCTestTestProperties> tm_ListOfTests; - - - struct cmCTestCoverage - { - cmCTestCoverage() - { - m_AbsolutePath = ""; - m_FullPath = ""; - m_Covered = false; - m_Tested = 0; - m_UnTested = 0; - m_Lines.clear(); - m_Show = false; - } - std::string m_AbsolutePath; - std::string m_FullPath; - bool m_Covered; - int m_Tested; - int m_UnTested; - std::vector<int> m_Lines; - bool m_Show; - }; - - typedef std::vector<cmCTestTestResult> tm_TestResultsVector; //! Map of configuration properties typedef std::map<std::string, std::string> tm_DartConfigurationMap; - typedef std::map<std::string, cmCTestCoverage> tm_CoverageMap; - tm_TestResultsVector m_TestResults; std::string m_ToplevelPath; tm_DartConfigurationMap m_DartConfiguration; int m_Tests[LAST_TEST]; @@ -322,21 +215,10 @@ private: std::string m_CurrentTag; bool m_TomorrowTag; - std::string m_StartTest; - std::string m_EndTest; - double m_ElapsedTestingTime; - int m_TestModel; double m_TimeOut; - std::string m_MemoryTester; - std::string m_MemoryTesterOptions; - int m_MemoryTesterStyle; - std::string m_MemoryTesterOutputFile; - tm_VectorOfStrings m_MemoryTesterOptionsParsed; - int m_MemoryTesterGlobalResults[NO_MEMORY_FAULT]; - int m_CompatibilityMode; // information for the --build-and-test options @@ -357,67 +239,28 @@ private: bool m_BuildNoClean; bool m_BuildNoCMake; std::string m_NotesFiles; - std::vector<int> m_TestsToRun; int ReadCustomConfigurationFileTree(const char* dir); - tm_VectorOfStrings m_CustomTestsIgnore; - tm_VectorOfStrings m_CustomMemCheckIgnore; - - tm_VectorOfStrings m_CustomPreTest; - tm_VectorOfStrings m_CustomPostTest; - tm_VectorOfStrings m_CustomPreMemCheck; - tm_VectorOfStrings m_CustomPostMemCheck; bool m_InteractiveDebugMode; bool m_ShortDateFormat; void BlockTestErrorDiagnostics(); - int ExecuteCommands(tm_VectorOfStrings& vec); - - /** - * Get the list of tests in directory and subdirectories. - */ - void GetListOfTests(tm_ListOfTests* testlist, bool memcheck); //! Reread the configuration file void UpdateCTestConfiguration(); - /** - * Generate the Dart compatible output - */ - void GenerateDartTestOutput(std::ostream& os); - void GenerateDartMemCheckOutput(std::ostream& os); - - //! Run command specialized for tests. Returns process status and retVal is - // return value or exception. - int RunTest(std::vector<const char*> args, std::string* output, int *retVal, - std::ostream* logfile); - - std::string GenerateRegressionImages(const std::string& xml); - const char* GetTestStatus(int status); - //! Create not from files. int GenerateDartNotesOutput(std::ostream& os, const tm_VectorOfStrings& files); - //! Parse Valgrind/Purify/Bounds Checker result out of the output 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); - bool ProcessMemCheckValgrindOutput(const std::string& str, std::string& log, int* results); - bool ProcessMemCheckPurifyOutput(const std::string& str, std::string& log, int* results); - ///! Run CMake and build a test and then run it as a single test. int RunCMakeAndTest(std::string* output); - ///! Initialize memory checking subsystem. - bool InitializeMemoryChecking(); ///! Find the running cmake void FindRunningCMake(const char* arg0); - ///! Maximum size of testing string - std::string::size_type m_MaximumPassedTestResultSize; - std::string::size_type m_MaximumFailedTestResultSize; }; #endif |