[CMake] Test Script problems on Windows

Allen D Byrne byrn at hdfgroup.org
Wed May 5 17:32:46 EDT 2010


Well it turns out the problem was in the execute_process script. I had the :
       OUTPUT_FILE ${TEST_OUTPUT}
    ERROR_FILE ${TEST_OUTPUT}

both going to one file - Windows couldn't handle that. Changing that allowed the command to actually execute,    

NOW, I have to deal with the CRLF issue in the stdout file. The reference file only has LF line endings.

Allen

> As stated in my previous post, I have a script, named runTest.cmake, which works on linux but fails on Windows with:
>      "The process cannot access the file because it is being used by another process"
> This script calls execute_process() with an executable to capture the output for a comparison later. This script is invoked in a CMakeLists.txt file:
> ---------------------------------------------------------
> ...
> MACRO (ADD_CMP_TEST resultfile resultcode)
>     ADD_TEST (
>         NAME TOOL-${resultfile}
>         COMMAND "${CMAKE_COMMAND}"
>             -D "TEST_PROGRAM=$<TARGET_FILE:tool>"
>             -D "TEST_ARGS=${ARGN}"
>             -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
>             -D "TEST_OUTPUT=${resultfile}.out"
>             -D "TEST_EXPECT=${resultcode}"
>             -D "TEST_REFERENCE=${resultfile}.txt"
>             -D "TEST_APPEND=EXIT CODE:"
>             -P "runTest.cmake"
>     )
>   ENDMACRO (ADD_CMP_TEST file)
> 
> ...
> 
> ADD_CMP_TEST (tool_11 1  tool_param1 tool_param2 tool_paramN)
> ---------------------------------------------------------------------------------  
> BTW, if I can run the command and args on the command line just fine.
> I will consider any alternatives to the script even two ADD_TEST() calls. The primary need is to capture the output of the executable in a file.
> 
> Allen
> 
> 


More information about the CMake mailing list