[CMake] bug in ctest (2.6.3)?

Bill Hoffman bill.hoffman at kitware.com
Wed Mar 4 10:55:05 EST 2009


Clemens Arth wrote:

> Until now, this worked well, but now it seems that CTEST_RUN_SCRIPT is 
> only called once and, not as expected, multiple times one after each 
> other. I guess this is not the intended behaviour... Can anyone 
> reproduce this?
> 

I reproduced it.   I think I have a fix.  The problem is that the 
CTEST_RUN_SCRIPT command will fail now if there are ANY errors in the 
script prior to running the script.  Are you getting any errors in the 
first script?   If you want a code patch, you can do this:

cmCTestScriptHandler::ReadInScript(const std::string& total_script_arg)
{
  cmSystemTools::ResetErrorOccuredFlag();
...


The difference in 2.6.3 is that it now reads CMakeDetermineSystem.cmake 
and CMakeSystemSpecificInformation.cmake before actually reading the 
script.


Basically it does this:

read CMakeDetermineSystem.cmake
if(cmSystemTools::GetErrorOccuredFlag()) return

read CMakeSystemSpecificInformation.cmake
if(cmSystemTools::GetErrorOccuredFlag()) return

read the script
if(cmSystemTools::GetErrorOccuredFlag()) return

The first two are new, so before the change it would read the script and 
then return an error, but it still would read the script.  Now, if there 
are any errors before calling ReadInScript, it will error out in the 
first read and never actually read the script.   So, the only workaround 
is to avoid errors...  I will put in a fix for the next release.

If you run ctest -S yourscript.cmake -VV --debug then you should be able 
to figure out where the error is happening.

Thanks for the report.

-Bill



More information about the CMake mailing list