[Cmake-commits] [cmake-commits] zach.mullen committed cmCTest.cxx 1.376 1.377 cmCTest.h 1.122 1.123 ctest.cxx 1.109 1.110

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Oct 29 15:30:14 EDT 2009


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv15114/Source

Modified Files:
	cmCTest.cxx cmCTest.h ctest.cxx 
Log Message:
Hook for scheduling tests in a random order

This may help statistically detect implicit dependencies among unit
tests while running in parallel.


Index: cmCTest.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmCTest.h,v
retrieving revision 1.122
retrieving revision 1.123
diff -C 2 -d -r1.122 -r1.123
*** cmCTest.h	28 Sep 2009 15:41:57 -0000	1.122
--- cmCTest.h	29 Oct 2009 19:30:12 -0000	1.123
***************
*** 192,195 ****
--- 192,198 ----
    bool GetShowOnly();
  
+   //Used for parallel ctest job scheduling
+   std::string GetScheduleType() { return this->ScheduleType; }
+   void SetScheduleType(std::string type) { this->ScheduleType = type; }
  
    ///! The max output width
***************
*** 375,378 ****
--- 378,382 ----
  private:
    std::string ConfigType;
+   std::string ScheduleType;
    bool Verbose;
    bool ExtraVerbose;

Index: cmCTest.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmCTest.cxx,v
retrieving revision 1.376
retrieving revision 1.377
diff -C 2 -d -r1.376 -r1.377
*** cmCTest.cxx	15 Oct 2009 11:38:47 -0000	1.376
--- cmCTest.cxx	29 Oct 2009 19:30:12 -0000	1.377
***************
*** 226,229 ****
--- 226,230 ----
    this->CompressXMLFiles       = false;
    this->CTestConfigFile        = "";
+   this->ScheduleType           = "";
    this->OutputLogFile          = 0;
    this->OutputLogFileLastTag   = -1;
***************
*** 2028,2031 ****
--- 2029,2037 ----
        }
  
+     if(this->CheckArgument(arg, "--schedule-random"))
+       {
+       this->ScheduleType = "Random";
+       }
+ 
      // pass the argument to all the handlers as well, but i may no longer be
      // set to what it was originally so I'm not sure this is working as

Index: ctest.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/ctest.cxx,v
retrieving revision 1.109
retrieving revision 1.110
diff -C 2 -d -r1.109 -r1.110
*** ctest.cxx	28 Sep 2009 15:42:50 -0000	1.109
--- ctest.cxx	29 Oct 2009 19:30:12 -0000	1.110
***************
*** 209,212 ****
--- 209,215 ----
     "If this behavior is not desired, this argument will enforce new "
     "processes for child CTest processes." },
+   {"--schedule-random", "Use a random order for scheduling tests",
+    "This option will run the tests in a random order. It is commonly used to "
+    "detect implicit dependencies in a test suite." },
    {"--submit-index", "Submit individual dashboard tests with specific index",
     "This option allows performing the same CTest action (such as test) "



More information about the Cmake-commits mailing list