[CMake] CTest script doesn't checkout the head revision

Felipe Sodre dos Santos felipe.sodre at totvs.com.br
Fri Mar 19 09:08:39 EDT 2010


Hi. I have a ctest script for my nightly builds, as follows:

CMAKE_MINIMUM_REQUIRED (VERSION 2.6)

SET (CTEST_SITE "mysite")
SET (CTEST_BUILD_NAME "myproject")
SET (CTEST_DASHBOARD_ROOT "C:/myproject")
SET (CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}")
SET (CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}")
SET (ENV{COVFILE} "${CTEST_BINARY_DIRECTORY}/CMake.cov")

SET (CTEST_NIGHTLY_START_TIME "00:00:00 EST")
SET (CTEST_DROP_METHOD "http")
SET (CTEST_DROP_SITE "127.0.0.1")
SET (CTEST_DROP_LOCATION "/CDash/submit.php?project=myproject")
SET (CTEST_DROP_SITE_CDASH TRUE)

SET (CTEST_UPDATE_COMMAND "svn")
SET (REPO_USERNAME nightly_builder)
SET (REPO_PASSWORD nightly_builder_pass)
SET (REPO https://myrepo/svn/myproject/trunk)
SET (CTEST_CVS_CHECKOUT "svn co ${REPO} --username ${REPO_USERNAME} --password ${REPO_PASSWORD} ${CTEST_SOURCE_DIRECTORY}")


SET (CTEST_CMAKE_COMMAND "cmake .")
SET (CTEST_CMAKE_GENERATOR "Visual Studio 8 2005")

SET (CTEST_PROJECT_NAME "myproject")
CTEST_EMPTY_BINARY_DIRECTORY (${CTEST_BINARY_DIRECTORY})

message("CTest Directory: ${CTEST_DASHBOARD_ROOT}")
message("Initial checkout: ${CTEST_CVS_CHECKOUT}")
message("Initial cmake: ${CTEST_CMAKE_COMMAND}")
message("CTest command: ${CTEST_COMMAND}")

FILE(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
CTEST_TEST_CTEST:BOOL=1
")


FIND_PROGRAM(COV01 cov01)
IF(NOT COV01)
  MESSAGE(FATAL_ERROR "Could not find cov01")
ENDIF(NOT COV01)

SET(RES 1)
EXECUTE_PROCESS(COMMAND ${COV01} -0 RESULT_VARIABLE RES)
IF(RES)
  MESSAGE(FATAL_ERROR "Could not run cov01 -0")
ENDIF(RES)

CTEST_START (Nightly)
CTEST_UPDATE (SOURCE "${CTEST_SOURCE_DIRECTORY}")
CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}")
SET(RES 1)
EXECUTE_PROCESS(COMMAND ${COV01} -1 RESULT_VARIABLE RES)
IF(RES)
  MESSAGE(FATAL_ERROR "Could not run cov01 -1")
ENDIF(RES)
CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}")
CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}")
CTEST_COVERAGE(BUILD "${CTEST_BINARY_DIRECTORY}")
CTEST_SUBMIT()
EXECUTE_PROCESS(COMMAND ${COV01} -0 RESULT_VARIABLE RES)

And the batch file that calls this script is as follows:

rmdir /S /Q \myproject
ctest -S myproject.ctest

That is, it erases the previous checkout before actually start a new one.
However, sometimes it seems like the checkout isn't made right, since it doesn't check out the HEAD revision (I know that because when I see a broken build in the morning, I do a svn update in the build directory and it updates many files that weren't changed in the mean time).

Am I doing anything wrong in the script?

Thanks !
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100319/ea45dba1/attachment.htm>


More information about the CMake mailing list