summaryrefslogtreecommitdiffstats
path: root/Source/cmCTest.h
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2004-09-09 12:41:05 (GMT)
committerKen Martin <ken.martin@kitware.com>2004-09-09 12:41:05 (GMT)
commit43d8918f4078dc2f99a868b23bcdffabaa739a95 (patch)
treefdac473637067c129ad84173bfe0541406a0ee80 /Source/cmCTest.h
parentfca0ce545dec426c591511b13dddf733acbe00da (diff)
downloadCMake-43d8918f4078dc2f99a868b23bcdffabaa739a95.zip
CMake-43d8918f4078dc2f99a868b23bcdffabaa739a95.tar.gz
CMake-43d8918f4078dc2f99a868b23bcdffabaa739a95.tar.bz2
more cleanup of ctest
Diffstat (limited to 'Source/cmCTest.h')
-rw-r--r--Source/cmCTest.h197
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