Bläddra i källkod

add example to tests

Bill Hoffman 24 år sedan
förälder
incheckning
384cf0c7f3
2 ändrade filer med 17 tillägg och 3 borttagningar
  1. 6 1
      Source/CMakeLists.txt
  2. 11 2
      Source/cmaketest.cxx

+ 6 - 1
Source/CMakeLists.txt

@@ -91,7 +91,12 @@ IF(BUILD_TESTING)
       ${CMake_BINARY_DIR}/Tests/Complex 
       complex 
       ${CMake_BINARY_DIR}/Tests/Complex/bin )
-
+    ADD_TEST(Example ${CMake_BINARY_DIR}/Source/cmaketest 
+      ${CMake_SOURCE_DIR}/Example
+      ${CMake_BINARY_DIR}/Example
+      helloDemo
+      ${CMake_BINARY_DIR}/Example/Demo
+      HELLO )
   ENDIF (DART_ROOT)
 ENDIF(BUILD_TESTING)
 

+ 11 - 2
Source/cmaketest.cxx

@@ -28,6 +28,11 @@ int main (int argc, char *argv[])
     {
     executableDirectory = argv[4];
     }
+  const char* projectName = executableName;
+  if(argc > 5)
+    {
+    projectName = argv[5];
+    }
   
   /**
    * Run an executable command and put the stdout in output.
@@ -37,6 +42,7 @@ int main (int argc, char *argv[])
   // change to the tests directory and run cmake
   // use the cmake object instead of calling cmake
   std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
+  std::cout << "Changing into directory: " << binaryDirectory << "\n";
   cmSystemTools::ChangeDirectory(binaryDirectory);
   cmake cm;
   std::vector<std::string> args;
@@ -57,7 +63,7 @@ int main (int argc, char *argv[])
   std::string generator = "-G";
   generator += CMAKE_GENERATOR;
   args.push_back(generator);
-
+  std::cout << "Generating build files...\n";
   if (cm.Generate(args) != 0)
     {
     std::cerr << "Error: cmake execution failed\n";
@@ -65,6 +71,7 @@ int main (int argc, char *argv[])
     cmSystemTools::ChangeDirectory(cwd.c_str());
     return 1;
     }
+  std::cout << "Done Generating build files.\n";
   cmListFileCache::GetInstance()->ClearCache();
   // now build the test
   std::string makeCommand = MAKEPROGRAM;
@@ -97,7 +104,7 @@ int main (int argc, char *argv[])
       }
 #endif
     makeCommand += " ";
-    makeCommand += executableName;
+    makeCommand += projectName;
     makeCommand += ".dsw /MAKE \"ALL_BUILD - Debug\" /REBUILD";
     }
   else
@@ -105,6 +112,7 @@ int main (int argc, char *argv[])
     // assume a make sytle program
     makeCommand += " all";
     }
+  std::cout << "Running make command: " << makeCommand.c_str() << " ...\n";
   if (!cmSystemTools::RunCommand(makeCommand.c_str(), output))
     {
     std::cerr << "Error: " << makeCommand.c_str() <<  "  execution failed\n";
@@ -168,6 +176,7 @@ int main (int argc, char *argv[])
 #if defined(_WIN32) && !defined(__CYGWIN__)      
   cmSystemTools::ConvertToWindowsSlashes(fullPath);
 #endif
+  std::cout << "Running test executable: " << fullPath.c_str() << "\n";
   if (!cmSystemTools::RunCommand(fullPath.c_str(), output))
     {
     std::cerr << "Error: " << fullPath.c_str() << "  execution failed\n";