[CMake] pipe add_test() output into a file

Nico Schlömer nico.schloemer at gmail.com
Tue Aug 26 09:17:28 EDT 2014


Thanks Nils! That does the trick.

--Nico

On Tue, Aug 26, 2014 at 12:03 PM, Nils Gladitz <nilsgladitz at gmail.com> wrote:
> On 08/26/2014 11:50 AM, Nico Schlömer wrote:
>>
>> I would like to add a test for a file converter. The output of the
>> converter is written out to stdout, and I would like to direct this
>> into a file to compare it against a reference file. The signature of
>> add_test() [1] however doesn't seem to allow that.
>>
>> How would you go about this problem?
>
>
> You could run cmake in script mode (${CMAKE_COMMAND} -P) and have the script
> call your converter with execute_process().
>
> You can pass the path to the converter with the $<TARGET_FILE:tgt> generator
> expression and -D (-D options have to be listed before -P).
>
> Note that generator expressions in tests are only supported when the test is
> defined with the NAME/COMMAND signature of add_test().
>
> execute_process() can capture the output of the command in a file or
> variable.
>
> The script could then also perform the comparison.
>
> You can make the script (and the test) fail with e.g. message(FATAL_ERROR
> "message")
>
> Nils


More information about the CMake mailing list