Explorar o código

ENH: Add method so that ctest handlers and commands can add notes

Andy Cedilnik %!s(int64=21) %!d(string=hai) anos
pai
achega
4e49c3bf6e
Modificáronse 2 ficheiros con 30 adicións e 9 borrados
  1. 19 9
      Source/cmCTest.cxx
  2. 11 0
      Source/cmCTest.h

+ 19 - 9
Source/cmCTest.cxx

@@ -236,6 +236,7 @@ cmCTest::cmCTest()
   m_TimeOut                = 0;
   m_CompressXMLFiles       = false;
   m_CTestConfigFile        = "";
+  m_SuppressUpdatingCTestConfiguration = false;
   int cc; 
   for ( cc=0; cc < cmCTest::LAST_TEST; cc ++ )
     {
@@ -373,6 +374,10 @@ int cmCTest::Initialize(const char* binary_dir, bool new_tag)
 
 bool cmCTest::UpdateCTestConfiguration()
 {
+  if ( m_SuppressUpdatingCTestConfiguration )
+    {
+    return true;
+    }
   std::string fileName = m_CTestConfigFile;
   if ( fileName.empty() )
     {
@@ -1032,6 +1037,19 @@ int cmCTest::GenerateCTestNotesOutput(std::ostream& os, const cmCTest::tm_Vector
   return 1;
 }
 
+int cmCTest::GenerateNotesFile(const std::vector<cmStdString> &files)
+{
+  cmGeneratedFileStream ofs;
+  if ( !this->OpenOutputFile(m_CurrentTag, "Notes.xml", ofs) )
+    {
+    std::cerr << "Cannot open notes file" << std::endl;
+    return 1;
+    }
+
+  this->GenerateCTestNotesOutput(ofs, files);
+  return 0;
+}
+
 int cmCTest::GenerateNotesFile(const char* cfiles)
 {
   if ( !cfiles )
@@ -1049,15 +1067,7 @@ int cmCTest::GenerateNotesFile(const char* cfiles)
     return 1;
     }
 
-  cmGeneratedFileStream ofs;
-  if ( !this->OpenOutputFile(m_CurrentTag, "Notes.xml", ofs) )
-    {
-    std::cerr << "Cannot open notes file" << std::endl;
-    return 1;
-    }
-
-  this->GenerateCTestNotesOutput(ofs, files);
-  return 0;
+  return this->GenerateNotesFile(files);
 }
 
 int cmCTest::Run(std::vector<std::string>const& args, std::string* output)

+ 11 - 0
Source/cmCTest.h

@@ -196,6 +196,16 @@ public:
 
   //! Make string safe to be send as an URL
   static std::string MakeURLSafe(const std::string&);
+
+  //! Should ctect configuration be updated. When using new style ctest script,
+  //  this should be true.
+  void SetSuppressUpdatingCTestConfiguration(bool val)
+    {
+    m_SuppressUpdatingCTestConfiguration = val;
+    }
+
+  //! Create XML file that contains all the notes specified
+  int GenerateNotesFile(const std::vector<cmStdString> &files);
 private:
   std::string m_ConfigType;
   bool m_Verbose;
@@ -291,6 +301,7 @@ private:
   ///! Find the running cmake
   void FindRunningCMake(const char* arg0);
 
+  bool                      m_SuppressUpdatingCTestConfiguration;
 };
 
 #endif