Browse Source

ENH: Fix some dart issues. Now it works fine without dart.

Andy Cedilnik 23 years ago
parent
commit
bec9b174f5
4 changed files with 268 additions and 119 deletions
  1. 128 91
      Modules/Dart.cmake
  2. 53 0
      Modules/DartConfiguration.tcl.in
  3. 27 27
      Source/CMakeLists.txt
  4. 60 1
      Source/ctest.cxx

+ 128 - 91
Modules/Dart.cmake

@@ -13,7 +13,6 @@ OPTION(BUILD_TESTING "Build the testing tree." "On")
 IF(BUILD_TESTING)
   INCLUDE(${CMAKE_ROOT}/Modules/FindDart.cmake)
 
-  IF (DART_ROOT)
   #
   # Section #1:
   #
@@ -52,7 +51,8 @@ IF(BUILD_TESTING)
   # make program just needs to use CMAKE_MAKE_PROGRAM which is required
   # to be defined by cmake 
   SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
-  OPTION(DART_VERBOSE_BUILD "Show the actual output of the build, or if off show a . for each 1024 bytes." "OFF")
+  OPTION(DART_VERBOSE_BUILD "Show the actual output of the build, or if off show a . for each 1024 bytes." 
+    OFF)
   OPTION(DART_BUILD_ERROR_REPORT_LIMIT "Limit of reported errors, -1 reports all." -1 )  
   OPTION(DART_BUILD_WARNING_REPORT_LIMIT "Limit of reported warnings, -1 reports all." -1 )  
 
@@ -66,7 +66,7 @@ IF(BUILD_TESTING)
   SET(DART_TESTING_TIMEOUT 1500 CACHE STRING "Time alloted for a test before Dart will kill the test.")
 
   FIND_PROGRAM(COMPRESSIONCOMMAND NAMES gzip compress zip 
-               DOC "Path to program used to compress files for transfer to the dart server")
+    DOC "Path to program used to compress files for transfer to the dart server")
   FIND_PROGRAM(GUNZIPCOMMAND gunzip DOC "Path to gunzip executable")
   FIND_PROGRAM(JAVACOMMAND java DOC "Path to java command, used by the Dart server to create html.")
   FIND_PROGRAM(PURIFYCOMMAND purify 
@@ -122,7 +122,7 @@ IF(BUILD_TESTING)
     DART_TESTING_TIMEOUT
     SCPCOMMAND
     DELIVER_CONTINUOUS_EMAIL
-  )
+    )
   #  BUILDNAME 
 
   #
@@ -131,100 +131,137 @@ IF(BUILD_TESTING)
   # Make necessary directories and configure testing scripts
   #
 
-  # make directories in the binary tree
-  MAKE_DIRECTORY(${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Dashboard)
-  MAKE_DIRECTORY(${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME})
+  IF (DART_ROOT)
+    # make directories in the binary tree
+    MAKE_DIRECTORY(${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Dashboard)
+    MAKE_DIRECTORY(${PROJECT_BINARY_DIR}/Testing/HTML/TestingResults/Sites/${SITE}/${BUILDNAME})
 
-  # configure files
-  CONFIGURE_FILE(
-  ${DART_ROOT}/Source/Client/Utility.conf.in
-  ${PROJECT_BINARY_DIR}/DartConfiguration.tcl )
+    # configure files
+    CONFIGURE_FILE(
+      ${DART_ROOT}/Source/Client/Utility.conf.in
+      ${PROJECT_BINARY_DIR}/DartConfiguration.tcl )
 
-  #
-  # Section 3:
-  #
-  # Custom targets to perform dashboard builds and submissions.
-  # These should NOT need to be modified from project to project.
-  #
+    #
+    # Section 3:
+    #
+    # Custom targets to perform dashboard builds and submissions.
+    # These should NOT need to be modified from project to project.
+    #
+
+    # add testing targets
+    IF(TCL_TCLSH)
+      ADD_CUSTOM_TARGET(Experimental 
+        ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Update Configure Build Test)
+      ADD_CUSTOM_TARGET(ExperimentalSubmit 
+        ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Submit)
+
+      # for non IDE based builds nmake and make 
+      # add all these extra targets 
+      IF(${CMAKE_MAKE_PROGRAM} MATCHES make)
+        # Make targets for Experimental builds
+        ADD_CUSTOM_TARGET(ExperimentalStart
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start)
+        ADD_CUSTOM_TARGET(ExperimentalUpdate   
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Update)
+        ADD_CUSTOM_TARGET(ExperimentalConfigure   
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Configure)
+        ADD_CUSTOM_TARGET(ExperimentalBuild   
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Build)
+        ADD_CUSTOM_TARGET(ExperimentalTest 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Test)
+        ADD_CUSTOM_TARGET(ExperimentalCoverage 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Coverage)
+        ADD_CUSTOM_TARGET(ExperimentalDashboardStart 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental DashboardStart)
+        ADD_CUSTOM_TARGET(ExperimentalDashboardEnd 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental DashboardEnd)
 
-  # add testing targets
-  IF(TCL_TCLSH)
-    ADD_CUSTOM_TARGET(Experimental 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Update Configure Build Test)
-    ADD_CUSTOM_TARGET(ExperimentalSubmit 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Submit)
-
-# for non IDE based builds nmake and make 
-# add all these extra targets 
-  IF(${CMAKE_MAKE_PROGRAM} MATCHES make)
-    # Make targets for Experimental builds
-    ADD_CUSTOM_TARGET(ExperimentalStart
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start)
-    ADD_CUSTOM_TARGET(ExperimentalUpdate   
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Update)
-    ADD_CUSTOM_TARGET(ExperimentalConfigure   
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Configure)
-    ADD_CUSTOM_TARGET(ExperimentalBuild   
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Start Build)
-    ADD_CUSTOM_TARGET(ExperimentalTest 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Test)
-    ADD_CUSTOM_TARGET(ExperimentalCoverage 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental Coverage)
-    ADD_CUSTOM_TARGET(ExperimentalDashboardStart 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental DashboardStart)
-    ADD_CUSTOM_TARGET(ExperimentalDashboardEnd 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Experimental DashboardEnd)
-
-    # Continuous
-    ADD_CUSTOM_TARGET(Continuous 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Start Update Configure Build Test Submit)
-    ADD_CUSTOM_TARGET(ContinuousStart
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Start)
-    ADD_CUSTOM_TARGET(ContinuousUpdate
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Update)
-    ADD_CUSTOM_TARGET(ContinuousConfigure
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Configure)
-    ADD_CUSTOM_TARGET(ContinuousBuild   
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Build)
-    ADD_CUSTOM_TARGET(ContinuousTest 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Test)
-    ADD_CUSTOM_TARGET(ContinuousCoverage 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Coverage)
-    ADD_CUSTOM_TARGET(ContinuousSubmit 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Submit)
-
-    # Nightly
-    ADD_CUSTOM_TARGET(Nightly 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Start Update Configure Build Test Submit)
-    ADD_CUSTOM_TARGET(NightlyStart
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Start)
-    ADD_CUSTOM_TARGET(NightlyUpdate
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Update)
-    ADD_CUSTOM_TARGET(NightlyConfigure
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Configure)
-    ADD_CUSTOM_TARGET(NightlyBuild   
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Build)
-    ADD_CUSTOM_TARGET(NightlyTest 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Test)
-    ADD_CUSTOM_TARGET(NightlyCoverage 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Coverage)
-    ADD_CUSTOM_TARGET(NightlySubmit 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Submit)
-    ADD_CUSTOM_TARGET(NightlyDashboardStart 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly DashboardStart)
-    ADD_CUSTOM_TARGET(NightlyDashboardEnd 
-    ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly DashboardEnd)
-  ENDIF (${CMAKE_MAKE_PROGRAM} MATCHES make)
-
-  ELSE(TCL_TCLSH)
-    MESSAGE("Could not find TCL_TCLSH, disabling testing." "Error")   
-  ENDIF(TCL_TCLSH)
-  ENABLE_TESTING()
+        # Continuous
+        ADD_CUSTOM_TARGET(Continuous 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Start Update Configure Build Test Submit)
+        ADD_CUSTOM_TARGET(ContinuousStart
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Start)
+        ADD_CUSTOM_TARGET(ContinuousUpdate
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Update)
+        ADD_CUSTOM_TARGET(ContinuousConfigure
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Configure)
+        ADD_CUSTOM_TARGET(ContinuousBuild   
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Build)
+        ADD_CUSTOM_TARGET(ContinuousTest 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Test)
+        ADD_CUSTOM_TARGET(ContinuousCoverage 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Coverage)
+        ADD_CUSTOM_TARGET(ContinuousSubmit 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Continuous Submit)
 
+        # Nightly
+        ADD_CUSTOM_TARGET(Nightly 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Start Update Configure Build Test Submit)
+        ADD_CUSTOM_TARGET(NightlyStart
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Start)
+        ADD_CUSTOM_TARGET(NightlyUpdate
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Update)
+        ADD_CUSTOM_TARGET(NightlyConfigure
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Configure)
+        ADD_CUSTOM_TARGET(NightlyBuild   
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Build)
+        ADD_CUSTOM_TARGET(NightlyTest 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Test)
+        ADD_CUSTOM_TARGET(NightlyCoverage 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Coverage)
+        ADD_CUSTOM_TARGET(NightlySubmit 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly Submit)
+        ADD_CUSTOM_TARGET(NightlyDashboardStart 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly DashboardStart)
+        ADD_CUSTOM_TARGET(NightlyDashboardEnd 
+          ${TCL_TCLSH} ${DART_ROOT}/Source/Client/DashboardManager.tcl ${PROJECT_BINARY_DIR}/DartConfiguration.tcl Nightly DashboardEnd)
+      ENDIF (${CMAKE_MAKE_PROGRAM} MATCHES make)
+
+    ELSE(TCL_TCLSH)
+      MESSAGE("Could not find TCL_TCLSH, disabling testing." "Error")   
+    ENDIF(TCL_TCLSH)
+    ENABLE_TESTING()
+
+  ELSE(DART_ROOT)
+    # make directories in the binary tree
+    MAKE_DIRECTORY(${PROJECT_BINARY_DIR}/Testing/Temporary)
+    GET_FILENAME_COMPONENT(CMAKE_HOST_PATH ${CMAKE_COMMAND} PATH)
+    SET(CMAKE_TARGET_PATH ${EXECUTABLE_OUTPUT_PATH})
+    MESSAGE("Look in: ${CMAKE_HOST_PATH} ${CMAKE_TARGET_PATH}")
+    FIND_PROGRAM(CMAKE_CTEST_COMMAND ctest ${CMAKE_HOST_PATH} ${CMAKE_TARGET_PATH})
+    MARK_AS_ADVANCED(CMAKE_CTEST_COMMAND)
+
+    # Use CTest
+    # configure files
+    CONFIGURE_FILE(
+      ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in
+      ${PROJECT_BINARY_DIR}/DartConfiguration.tcl )
+
+    #
+    # Section 3:
+    #
+    # Custom targets to perform dashboard builds and submissions.
+    # These should NOT need to be modified from project to project.
+    #
+
+    # add testing targets
+    ADD_CUSTOM_TARGET(Experimental ${CMAKE_CTEST_COMMAND} -D Experimental)
+
+    # for non IDE based builds nmake and make 
+    # add all these extra targets 
+    IF(${CMAKE_MAKE_PROGRAM} MATCHES make)
+      # Make targets for Experimental builds
+      FOREACH(mode Nightly Experimental Continuous)
+        FOREACH(testtype Start Update Configure Build Test Purify Coverage Submit)
+          ADD_CUSTOM_TARGET(${mode}${testtype} 
+            ${CMAKE_CTEST_COMMAND} -D ${mode}${testtype})
+        ENDFOREACH(testtype)
+      ENDFOREACH(mode)
+    ENDIF (${CMAKE_MAKE_PROGRAM} MATCHES make)
   ENDIF (DART_ROOT)
 ENDIF(BUILD_TESTING)
 
 #
 # End of Dart.cmake
 #
- 
+

+ 53 - 0
Modules/DartConfiguration.tcl.in

@@ -0,0 +1,53 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: @PROJECT_SOURCE_DIR@
+BuildDirectory: @PROJECT_BINARY_DIR@
+
+# Dart options
+
+# CVS options
+# Default is "-d -P -A"
+CVSUpdateOptions: @CVS_UPDATE_OPTIONS@
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: @SITE@
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: @BUILDNAME@
+
+# Submission information
+DropSite: @DROP_SITE@
+DropLocation: @DROP_LOCATION@
+DropSiteUser: @DROP_SITE_USER@
+DropSitePassword: @DROP_SITE_PASSWORD@
+DropSiteMode: @DROP_SITE_MODE@
+DropMethod: @DROP_METHOD@
+TriggerSite: @TRIGGER_SITE@
+
+# Dashboard start time
+NightlyStartTime: @NIGHTLY_START_TIME@
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "@CMAKE_COMMAND@" "@PROJECT_SOURCE_DIR@"
+CMakeCommand: @CMAKE_COMMAND@
+MakeCommand: @MAKECOMMAND@
+CVSCommand: @CVSCOMMAND@
+ScpCommand: @SCPCOMMAND@
+PurifyCommand: @PURIFYCOMMAND@
+ValgrindCommand: @VALGRIND_COMMAND@
+ValgrindCommandOptions: @VALGRIND_COMMAND_OPTIONS@
+# Compression commands
+GunzipCommand: @GUNZIPCOMMAND@
+CompressionCommand: @COMPRESSIONCOMMAND@
+CompressionType: @COMPRESSIONCOMMAND@
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing.  After TimeOut seconds, the
+# process will be summaily terminated.
+# Currently set to 25 minutes
+TimeOut: @DART_TESTING_TIMEOUT@

+ 27 - 27
Source/CMakeLists.txt

@@ -155,40 +155,40 @@ ADD_EXECUTABLE(cmaketest cmaketest.cxx)
 TARGET_LINK_LIBRARIES(cmaketest CMakeLib)
 
 IF(BUILD_TESTING)
-    ADD_TEST(DumpDocumentation ${CMake_BINARY_DIR}/Source/DumpDocumentation
+    ADD_TEST(DumpDocumentation ${CMake_BINARY_DIR}/bin/DumpDocumentation
       --all-for-coverage)
 
-    ADD_TEST(SystemInformation ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(SystemInformation ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/SystemInformation
       ${CMake_BINARY_DIR}/Tests/SystemInformation 
       DumpInformation)
 
-    ADD_TEST(TryCompile ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(TryCompile ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/TryCompile
       ${CMake_BINARY_DIR}/Tests/TryCompile 
       TryCompile)
 
-    ADD_TEST(simple ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(simple ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Simple 
       ${CMake_BINARY_DIR}/Tests/Simple 
       simple)
 
-    ADD_TEST(conly ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(conly ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/COnly 
       ${CMake_BINARY_DIR}/Tests/COnly 
       conly)
 
-    ADD_TEST(X11 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(X11 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/X11
       ${CMake_BINARY_DIR}/Tests/X11 
       UseX11)
 
-    ADD_TEST(LoadedCommand ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(LoadedCommand ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/LoadCommand 
       ${CMake_BINARY_DIR}/Tests/LoadCommand 
       LoadedCommand)
 
-    ADD_TEST(LoadedCommandOneConfig ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(LoadedCommandOneConfig ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/LoadCommand 
       ${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig
       LoadedCommand ONLY_ONE_CONFIG)
@@ -199,33 +199,33 @@ IF(BUILD_TESTING)
       SET(COMPILER_IS_COMO 1)
     ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
     IF(NOT COMPILER_IS_COMO)
-      ADD_TEST(complex ${CMake_BINARY_DIR}/Source/cmaketest 
+      ADD_TEST(complex ${CMake_BINARY_DIR}/bin/cmaketest 
         ${CMake_SOURCE_DIR}/Tests/Complex 
         ${CMake_BINARY_DIR}/Tests/Complex 
         complex 
         ${CMake_BINARY_DIR}/Tests/Complex/bin)
 
-      ADD_TEST(complexOneConfig ${CMake_BINARY_DIR}/Source/cmaketest 
+      ADD_TEST(complexOneConfig ${CMake_BINARY_DIR}/bin/cmaketest 
         ${CMake_SOURCE_DIR}/Tests/Complex 
         ${CMake_BINARY_DIR}/Tests/ComplexOneConfig 
         complex 
         ${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG)
     ENDIF(NOT COMPILER_IS_COMO)
 
-    ADD_TEST(Example ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(Example ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Example
       ${CMake_BINARY_DIR}/Example
       helloDemo
       ${CMake_BINARY_DIR}/Example/Demo
       HELLO)
 
-    ADD_TEST(testing ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(testing ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Testing 
       ${CMake_BINARY_DIR}/Tests/Testing
       testing
       ${CMake_BINARY_DIR}/Tests/Testing/bin)
 
-    ADD_TEST(wrapping ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(wrapping ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Wrapping 
       ${CMake_BINARY_DIR}/Tests/Wrapping
       wrapping
@@ -239,97 +239,97 @@ IF(BUILD_TESTING)
      QT_UIC_EXE)
 
     IF (QT_FOUND)
-      ADD_TEST(qtwrapping ${CMake_BINARY_DIR}/Source/cmaketest 
+      ADD_TEST(qtwrapping ${CMake_BINARY_DIR}/bin/cmaketest 
         ${CMake_SOURCE_DIR}/Tests/Wrapping 
         ${CMake_BINARY_DIR}/Tests/Wrapping
         qtwrapping
         ${CMake_BINARY_DIR}/Tests/Wrapping/bin)
     ENDIF (QT_FOUND)
 
-    ADD_TEST(testdriver1 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(testdriver1 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/TestDriver 
       ${CMake_BINARY_DIR}/Tests/TestDriver
       TestDriverTest
       ${CMake_BINARY_DIR}/Tests/Wrapping/bin
       TestDriverTest test1)
 
-    ADD_TEST(testdriver2 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(testdriver2 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/TestDriver 
       ${CMake_BINARY_DIR}/Tests/TestDriver
       TestDriverTest
       ${CMake_BINARY_DIR}/Tests/Wrapping/bin
       TestDriverTest test2)
 
-    ADD_TEST(testdriver3 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(testdriver3 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/TestDriver 
       ${CMake_BINARY_DIR}/Tests/TestDriver
       TestDriverTest
       ${CMake_BINARY_DIR}/Tests/Wrapping/bin
       TestDriverTest subdir/test3)
 
-    ADD_TEST(dependency_w_libout ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(dependency_w_libout ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Dependency 
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
       exec
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec
       Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
 
-    ADD_TEST(dependency_wo_lib_out ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(dependency_wo_lib_out ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Dependency 
       ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut
       exec
       ${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec
       Dependency)
 
-    ADD_TEST(dependency2 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(dependency2 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Dependency 
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
       exec2
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2
       Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
 
-    ADD_TEST(dependency3 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(dependency3 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Dependency 
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
       exec3
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3
       Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
 
-    ADD_TEST(dependency4 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(dependency4 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/Dependency 
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
       exec4
       ${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4
       Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
 
-    ADD_TEST(linkline ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(linkline ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/LinkLine
       ${CMake_BINARY_DIR}/Tests/LinkLine
       Exec
       ${CMake_BINARY_DIR}/Tests/LinkLine
       LinkLine)
 
-    ADD_TEST(linkorder1 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(linkorder1 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
       ${CMake_BINARY_DIR}/Tests/LinkLineOrder
       Exec1
       ${CMake_BINARY_DIR}/Tests/LinkLineOrder
       LinkLineOrder)
 
-    ADD_TEST(linkorder2 ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(linkorder2 ${CMake_BINARY_DIR}/bin/cmaketest 
       ${CMake_SOURCE_DIR}/Tests/LinkLineOrder
       ${CMake_BINARY_DIR}/Tests/LinkLineOrder
       Exec2
       ${CMake_BINARY_DIR}/Tests/LinkLineOrder
       LinkLineOrder)
 
-    ADD_TEST(curl ${CMake_BINARY_DIR}/Source/cmaketest 
+    ADD_TEST(curl ${CMake_BINARY_DIR}/bin/cmaketest 
              ${CMake_SOURCE_DIR}/Source/CTest/Curl
              ${CMake_BINARY_DIR}/Tests/Curl
              LIBCURL)
 
     IF (APPLE)
-      ADD_TEST(objc++ ${CMake_BINARY_DIR}/Source/cmaketest
+      ADD_TEST(objc++ ${CMake_BINARY_DIR}/bin/cmaketest
 		        ${CMake_SOURCE_DIR}/Tests/Objc++
 			${CMake_BINARY_DIR}/Tests/Objc++
 			objc++)

+ 60 - 1
Source/ctest.cxx

@@ -53,7 +53,66 @@ int main (int argc, char *argv[])
       inst.m_ShowOnly = true;
       }
 
-    if( ( arg.find("-T",0) == 0 || arg.find("--dart-mode",0) == 0 ) && 
+    if( arg.find("-D",0) == 0 && i < args.size() - 1 )
+      {
+      inst.m_DartMode = true;
+      std::string arg = args[i+1];
+      if ( arg == "Experimental" )
+        {
+        inst.SetTestModel(cmCTest::EXPERIMENTAL);
+        inst.SetTest("Start");
+        inst.SetTest("Configure");
+        inst.SetTest("Build");
+        inst.SetTest("Test");
+        inst.SetTest("Coverage");
+        inst.SetTest("Submit");
+        }
+      else if ( arg == "Continuous" )
+        {
+        inst.SetTestModel(cmCTest::CONTINUOUS);
+        inst.SetTest("Start");
+        inst.SetTest("Update");
+        inst.SetTest("Configure");
+        inst.SetTest("Build");
+        inst.SetTest("Test");
+        inst.SetTest("Coverage");
+        inst.SetTest("Submit");
+        }
+      else if ( arg == "Nightly" )
+        {
+        inst.SetTestModel(cmCTest::NIGHTLY);
+        inst.SetTest("Start");
+        inst.SetTest("Update");
+        inst.SetTest("Configure");
+        inst.SetTest("Build");
+        inst.SetTest("Test");
+        inst.SetTest("Coverage");
+        inst.SetTest("Submit");
+        }
+      else if ( arg == "MemoryCheck" )
+        {
+        inst.SetTestModel(cmCTest::EXPERIMENTAL);
+        inst.SetTest("Start");
+        inst.SetTest("Configure");
+        inst.SetTest("Build");
+        inst.SetTest("Purify");
+        inst.SetTest("Coverage");
+        inst.SetTest("Submit");
+        }
+      else if ( arg == "NightlyMemoryCheck" )
+        {
+        inst.SetTestModel(cmCTest::NIGHTLY);
+        inst.SetTest("Start");
+        inst.SetTest("Update");
+        inst.SetTest("Configure");
+        inst.SetTest("Build");
+        inst.SetTest("Purify");
+        inst.SetTest("Coverage");
+        inst.SetTest("Submit");
+        }
+      }
+
+    if( ( arg.find("-T",0) == 0 ) && 
         (i < args.size() -1) )
       {
       inst.m_DartMode = true;