From f3dce87e6d508e7552bd378f98d22f82c2011516 Mon Sep 17 00:00:00 2001
From: Zach Mullen <zach.mullen@kitware.com>
Date: Wed, 23 Sep 2009 11:38:37 -0400
Subject: [PATCH] Set new ctest tests to always run, whether CTEST_TEST_CTEST
 is enabled or not.  Changed parallel test to be portable.

---
 Tests/CMakeLists.txt                   | 90 +++++++++++++-------------
 Tests/CTestTestParallel/CMakeLists.txt |  3 +-
 Tests/CTestTestParallel/lockFile.c     | 20 ++++++
 Tests/CTestTestParallel/lockFile.cxx   | 20 ------
 4 files changed, 66 insertions(+), 67 deletions(-)
 create mode 100644 Tests/CTestTestParallel/lockFile.c
 delete mode 100644 Tests/CTestTestParallel/lockFile.cxx

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 2420fc050a..2c49de93b4 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1030,6 +1030,51 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
     ENDIF(CTEST_TEST_UPDATE_HG)
   ENDIF(CTEST_TEST_UPDATE)
 
+  CONFIGURE_FILE(
+    "${CMake_SOURCE_DIR}/Tests/CTestTestFailure/testNoBuild.cmake.in"
+    "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoBuild.cmake"
+    @ONLY ESCAPE_QUOTES)
+  ADD_TEST(CTestTestNoBuild ${CMAKE_CTEST_COMMAND}
+    -S "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoBuild.cmake" -V
+    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testOut1.log"
+    )
+  SET_TESTS_PROPERTIES(CTestTestNoBuild PROPERTIES
+    FAIL_REGULAR_EXPRESSION "Error" WILL_FAIL true)
+  
+  CONFIGURE_FILE(
+    "${CMake_SOURCE_DIR}/Tests/CTestTestFailure/testNoExe.cmake.in"
+    "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoExe.cmake"
+    @ONLY ESCAPE_QUOTES)
+  ADD_TEST(CTestTestNoExe ${CMAKE_CTEST_COMMAND}
+    -S "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoExe.cmake" -V
+    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testOut2.log"
+    )
+  SET_TESTS_PROPERTIES(CTestTestNoExe PROPERTIES #DEPENDS CTestTestNoBuild
+    PASS_REGULAR_EXPRESSION "Could not find executable"
+    FAIL_REGULAR_EXPRESSION "SegFault")
+
+  CONFIGURE_FILE(
+    "${CMake_SOURCE_DIR}/Tests/CTestTestCrash/test.cmake.in"
+    "${CMake_BINARY_DIR}/Tests/CTestTestCrash/test.cmake"
+    @ONLY ESCAPE_QUOTES)
+  ADD_TEST(CTestTestCrash ${CMAKE_CTEST_COMMAND}
+    -S "${CMake_BINARY_DIR}/Tests/CTestTestCrash/test.cmake" -V
+    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestCrash/testOutput.log"
+    )
+  SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES
+    PASS_REGULAR_EXPRESSION "SegFault")
+    
+  CONFIGURE_FILE(
+    "${CMake_SOURCE_DIR}/Tests/CTestTestParallel/test.cmake.in"
+    "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake"
+    @ONLY ESCAPE_QUOTES)
+  ADD_TEST(CTestTestParallel ${CMAKE_CTEST_COMMAND}
+    -S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V
+    --output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
+    )
+  ADD_TEST(CTestTestShowOnly ${CMAKE_CTEST_COMMAND}
+    -N
+    )
   IF (CTEST_TEST_CTEST AND CMAKE_RUN_LONG_TESTS)
     CONFIGURE_FILE("${CMake_SOURCE_DIR}/Tests/CTestTest/test.cmake.in"
       "${CMake_BINARY_DIR}/Tests/CTestTest/test.cmake" @ONLY ESCAPE_QUOTES)
@@ -1050,51 +1095,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
       --output-log "${CMake_BINARY_DIR}/Tests/CTestTest3/testOutput.log"
       )
     
-    CONFIGURE_FILE(
-      "${CMake_SOURCE_DIR}/Tests/CTestTestFailure/testNoBuild.cmake.in"
-      "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoBuild.cmake"
-      @ONLY ESCAPE_QUOTES)
-    ADD_TEST(CTestTestNoBuild ${CMAKE_CTEST_COMMAND}
-      -S "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoBuild.cmake" -V
-      --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testOut1.log"
-      )
-    SET_TESTS_PROPERTIES(CTestTestNoBuild PROPERTIES
-      FAIL_REGULAR_EXPRESSION "Error" WILL_FAIL true)
-    
-    CONFIGURE_FILE(
-      "${CMake_SOURCE_DIR}/Tests/CTestTestFailure/testNoExe.cmake.in"
-      "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoExe.cmake"
-      @ONLY ESCAPE_QUOTES)
-    ADD_TEST(CTestTestNoExe ${CMAKE_CTEST_COMMAND}
-      -S "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testNoExe.cmake" -V
-      --output-log "${CMake_BINARY_DIR}/Tests/CTestTestFailure/testOut2.log"
-      )
-    SET_TESTS_PROPERTIES(CTestTestNoExe PROPERTIES #DEPENDS CTestTestNoBuild
-      PASS_REGULAR_EXPRESSION "Could not find executable"
-      FAIL_REGULAR_EXPRESSION "SegFault")
-
-    CONFIGURE_FILE(
-      "${CMake_SOURCE_DIR}/Tests/CTestTestCrash/test.cmake.in"
-      "${CMake_BINARY_DIR}/Tests/CTestTestCrash/test.cmake"
-      @ONLY ESCAPE_QUOTES)
-    ADD_TEST(CTestTestCrash ${CMAKE_CTEST_COMMAND}
-      -S "${CMake_BINARY_DIR}/Tests/CTestTestCrash/test.cmake" -V
-      --output-log "${CMake_BINARY_DIR}/Tests/CTestTestCrash/testOutput.log"
-      )
-    SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES
-      PASS_REGULAR_EXPRESSION "SegFault")
-      
-    CONFIGURE_FILE(
-      "${CMake_SOURCE_DIR}/Tests/CTestTestParallel/test.cmake.in"
-      "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake"
-      @ONLY ESCAPE_QUOTES)
-    ADD_TEST(CTestTestParallel ${CMAKE_CTEST_COMMAND}
-      -S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V
-      --output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
-      )
-    ADD_TEST(CTestTestShowOnly ${CMAKE_CTEST_COMMAND}
-      -N
-      )
     # these tests take a long time, make sure they have it
     # if timeouts have not already been set
     GET_TEST_PROPERTY(CTestTest TIMEOUT PREVIOUS_TIMEOUT)
diff --git a/Tests/CTestTestParallel/CMakeLists.txt b/Tests/CTestTestParallel/CMakeLists.txt
index b6d31b3b47..1e57074d5e 100644
--- a/Tests/CTestTestParallel/CMakeLists.txt
+++ b/Tests/CTestTestParallel/CMakeLists.txt
@@ -8,8 +8,7 @@ INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake)
 GET_FILENAME_COMPONENT(CTEST_COMMAND "${CMAKE_COMMAND}" PATH)
 SET(CTEST_COMMAND "${CTEST_COMMAND}/ctest")
 
-ADD_EXECUTABLE (LockFile lockFile.cxx)
-TARGET_LINK_LIBRARIES (NoBuild ${EXTRA_LIBS})
+ADD_EXECUTABLE (LockFile lockFile.c)
 
 ENABLE_TESTING ()
 
diff --git a/Tests/CTestTestParallel/lockFile.c b/Tests/CTestTestParallel/lockFile.c
new file mode 100644
index 0000000000..7942b72266
--- /dev/null
+++ b/Tests/CTestTestParallel/lockFile.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+
+//if run serially, works fine
+//if run in parallel, someone will attempt to delete
+//a locked file, which will fail
+int main()
+{
+  FILE* file;
+  int i;
+  const char* fname = "lockedFile.txt";
+  file = fopen(fname, "w");
+
+  for(i = 0; i < 10000; i++)
+    {
+    fprintf(file, "%s", "x");
+    fflush(file);
+    }
+  fclose(file);
+  return remove(fname);
+}
diff --git a/Tests/CTestTestParallel/lockFile.cxx b/Tests/CTestTestParallel/lockFile.cxx
deleted file mode 100644
index e46d0fd9ef..0000000000
--- a/Tests/CTestTestParallel/lockFile.cxx
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <iostream>
-#include <fstream>
-
-//if run serially, works fine
-//if run in parallel, someone will attempt to delete
-//a locked file, which will fail
-int main()
-{
-  std::string fname = "lockedFile.txt";
-  std::fstream fout;
-  fout.open(fname.c_str(), std::ios::out);
-
-  for(int i = 0; i < 10000; i++)
-  {
-    fout << "x";
-    fout.flush();
-  }
-  fout.close();
-  return std::remove("lockedFile.txt");
-}
-- 
GitLab