Re: [CMake] CTest continuous testing

2012-01-13 Thread Tim Gallagher
The devil is always in the little details. That does the trick nicely, thanks!

Tim

- Original Message -
From: "David Cole" 
To: gtg0...@mail.gatech.edu
Cc: cmake@cmake.org
Sent: Friday, January 13, 2012 2:37:29 PM
Subject: Re: [CMake] CTest continuous testing

See the cmake_common.cmake script (as seen here on a CMake Continuous
dashboard, and in other places):

  http://cdash.org/CDash/viewNotes.php?buildid=1911520

Notice that it does:

  ctest_update(RETURN_VALUE count)

and then checks whether count is > 0 or not. It only does stuff if
count > 0 or it's the first time, or it's not a continuous
dashboard...

You need logic like that, and do not execute the configure/build/test
steps when nothing came back from the update...


HTH,
David


On Fri, Jan 13, 2012 at 2:11 PM, Tim Gallagher  wrote:
> Hi,
>
> We have a test case suite setup to run in continuous mode and submit to 
> CDash. I followed instructions on the wiki 
> (http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest#Continuous_Builds_.28new_Style.29)
>  and have a script that's below the signature.
>
> I was under the impression that continuous testing would run once when it 
> started each run, then sleep and check for changed files and if nothing 
> changed, go back to sleep and wait again, then check again, etc.. And if 
> files did change and ctest_update() pulled in new code, the tests would run 
> again.
>
> However, the behavior I am getting is that the entire test suite is run every 
> 5 minutes for the entire continuous run time, even though no files are being 
> updated. Some of the tests are failing, if that makes a difference.
>
> Was I mistaken on how it works? Or did I miss a step somewhere? Thanks,
>
> Tim
>
> ---
> while(${CTEST_ELAPSED_TIME} LESS 43200)
>  set(START_TIME ${CTEST_ELAPSED_TIME})
>
>  ctest_start("Continuous")
>  ctest_update()
>  # Copy over the files we need
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestCustom.cmake
>    ${CTEST_REPO_DIRECTORY}/CTestCustom.cmake @ONLY)
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestTestfile.cmake
>    ${CTEST_REPO_DIRECTORY}/CTestTestfile.cmake @ONLY)
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestAvailableTests.cmake
>    ${CTEST_REPO_DIRECTORY}/CTestAvailableTests.cmake @ONLY)
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/runPythonTest.sh.in
>    ${CTEST_REPO_DIRECTORY}/runPythonTest.sh @ONLY)
>
>  include(${CTEST_REPO_DIRECTORY}/CTestAvailableTests.cmake)
>
>  foreach(TESTCASE ${LESLIE_AVAILABLE_TESTCASES})
>    set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE} 
> '{${LESLIE_CONFIGURE_DICT_BASE}}'")
>    ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>    set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE} 
> '{${LESLIE_BUILD_DICT_BASE}}'")
>    ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>  endforeach()
>
>  list(LENGTH LESLIE_CUSTOM_TESTCASE_BASE len1)
>  math(EXPR len2 "${len1} - 1")
>
>  foreach(value RANGE ${len2})
>    list(GET LESLIE_CUSTOM_TESTCASE_BASE ${value} TESTCASE_BASE)
>    list(GET LESLIE_CUSTOM_TESTCASE_CONFIG_DICT ${value} TESTCASE_CONFIG)
>    list(GET LESLIE_CUSTOM_TESTCASE_BUILD_DICT ${value} TESTCASE_BUILD)
>
>    set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE_BASE} 
> ${TESTCASE_CONFIG}")
>    ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>    set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE_BASE} ${TESTCASE_BUILD}")
>    ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>  endforeach()
>
>  ctest_test(BUILD "${CTEST_REPO_DIRECTORY}")
>  ctest_submit()
>
>  ctest_sleep(${START_TIME} 300 ${CTEST_ELAPSED_TIME})
> endwhile()
>
>
>
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] CTest continuous testing

2012-01-13 Thread David Cole
See the cmake_common.cmake script (as seen here on a CMake Continuous
dashboard, and in other places):

  http://cdash.org/CDash/viewNotes.php?buildid=1911520

Notice that it does:

  ctest_update(RETURN_VALUE count)

and then checks whether count is > 0 or not. It only does stuff if
count > 0 or it's the first time, or it's not a continuous
dashboard...

You need logic like that, and do not execute the configure/build/test
steps when nothing came back from the update...


HTH,
David


On Fri, Jan 13, 2012 at 2:11 PM, Tim Gallagher  wrote:
> Hi,
>
> We have a test case suite setup to run in continuous mode and submit to 
> CDash. I followed instructions on the wiki 
> (http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest#Continuous_Builds_.28new_Style.29)
>  and have a script that's below the signature.
>
> I was under the impression that continuous testing would run once when it 
> started each run, then sleep and check for changed files and if nothing 
> changed, go back to sleep and wait again, then check again, etc.. And if 
> files did change and ctest_update() pulled in new code, the tests would run 
> again.
>
> However, the behavior I am getting is that the entire test suite is run every 
> 5 minutes for the entire continuous run time, even though no files are being 
> updated. Some of the tests are failing, if that makes a difference.
>
> Was I mistaken on how it works? Or did I miss a step somewhere? Thanks,
>
> Tim
>
> ---
> while(${CTEST_ELAPSED_TIME} LESS 43200)
>  set(START_TIME ${CTEST_ELAPSED_TIME})
>
>  ctest_start("Continuous")
>  ctest_update()
>  # Copy over the files we need
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestCustom.cmake
>    ${CTEST_REPO_DIRECTORY}/CTestCustom.cmake @ONLY)
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestTestfile.cmake
>    ${CTEST_REPO_DIRECTORY}/CTestTestfile.cmake @ONLY)
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestAvailableTests.cmake
>    ${CTEST_REPO_DIRECTORY}/CTestAvailableTests.cmake @ONLY)
>  configure_file(${CTEST_REPO_DIRECTORY}/CTest/runPythonTest.sh.in
>    ${CTEST_REPO_DIRECTORY}/runPythonTest.sh @ONLY)
>
>  include(${CTEST_REPO_DIRECTORY}/CTestAvailableTests.cmake)
>
>  foreach(TESTCASE ${LESLIE_AVAILABLE_TESTCASES})
>    set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE} 
> '{${LESLIE_CONFIGURE_DICT_BASE}}'")
>    ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>    set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE} 
> '{${LESLIE_BUILD_DICT_BASE}}'")
>    ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>  endforeach()
>
>  list(LENGTH LESLIE_CUSTOM_TESTCASE_BASE len1)
>  math(EXPR len2 "${len1} - 1")
>
>  foreach(value RANGE ${len2})
>    list(GET LESLIE_CUSTOM_TESTCASE_BASE ${value} TESTCASE_BASE)
>    list(GET LESLIE_CUSTOM_TESTCASE_CONFIG_DICT ${value} TESTCASE_CONFIG)
>    list(GET LESLIE_CUSTOM_TESTCASE_BUILD_DICT ${value} TESTCASE_BUILD)
>
>    set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE_BASE} 
> ${TESTCASE_CONFIG}")
>    ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>    set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE_BASE} ${TESTCASE_BUILD}")
>    ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
>  endforeach()
>
>  ctest_test(BUILD "${CTEST_REPO_DIRECTORY}")
>  ctest_submit()
>
>  ctest_sleep(${START_TIME} 300 ${CTEST_ELAPSED_TIME})
> endwhile()
>
>
>
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


[CMake] CTest continuous testing

2012-01-13 Thread Tim Gallagher
Hi,

We have a test case suite setup to run in continuous mode and submit to CDash. 
I followed instructions on the wiki 
(http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest#Continuous_Builds_.28new_Style.29)
 and have a script that's below the signature. 

I was under the impression that continuous testing would run once when it 
started each run, then sleep and check for changed files and if nothing 
changed, go back to sleep and wait again, then check again, etc.. And if files 
did change and ctest_update() pulled in new code, the tests would run again.

However, the behavior I am getting is that the entire test suite is run every 5 
minutes for the entire continuous run time, even though no files are being 
updated. Some of the tests are failing, if that makes a difference. 

Was I mistaken on how it works? Or did I miss a step somewhere? Thanks,

Tim

---
while(${CTEST_ELAPSED_TIME} LESS 43200)
  set(START_TIME ${CTEST_ELAPSED_TIME})

  ctest_start("Continuous")
  ctest_update()
  # Copy over the files we need 

  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestCustom.cmake
${CTEST_REPO_DIRECTORY}/CTestCustom.cmake @ONLY)
  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestTestfile.cmake
${CTEST_REPO_DIRECTORY}/CTestTestfile.cmake @ONLY)
  configure_file(${CTEST_REPO_DIRECTORY}/CTest/CTestAvailableTests.cmake
${CTEST_REPO_DIRECTORY}/CTestAvailableTests.cmake @ONLY)
  configure_file(${CTEST_REPO_DIRECTORY}/CTest/runPythonTest.sh.in
${CTEST_REPO_DIRECTORY}/runPythonTest.sh @ONLY)

  include(${CTEST_REPO_DIRECTORY}/CTestAvailableTests.cmake)

  foreach(TESTCASE ${LESLIE_AVAILABLE_TESTCASES})
set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE} 
'{${LESLIE_CONFIGURE_DICT_BASE}}'")
ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE} 
'{${LESLIE_BUILD_DICT_BASE}}'")
ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
  endforeach()

  list(LENGTH LESLIE_CUSTOM_TESTCASE_BASE len1)
  math(EXPR len2 "${len1} - 1")

  foreach(value RANGE ${len2})
list(GET LESLIE_CUSTOM_TESTCASE_BASE ${value} TESTCASE_BASE)
list(GET LESLIE_CUSTOM_TESTCASE_CONFIG_DICT ${value} TESTCASE_CONFIG)
list(GET LESLIE_CUSTOM_TESTCASE_BUILD_DICT ${value} TESTCASE_BUILD)

set(CTEST_CONFIGURE_COMMAND "./setup.py -t ${TESTCASE_BASE} 
${TESTCASE_CONFIG}")
ctest_configure(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
set(CTEST_BUILD_COMMAND "./setup.py -t ${TESTCASE_BASE} ${TESTCASE_BUILD}")
ctest_build(BUILD "${CTEST_REPO_DIRECTORY}" APPEND)
  endforeach()

  ctest_test(BUILD "${CTEST_REPO_DIRECTORY}")
  ctest_submit()

  ctest_sleep(${START_TIME} 300 ${CTEST_ELAPSED_TIME})
endwhile()



--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake