[CMake] building and running tests with one command

Petr Kmoch petr.kmoch at gmail.com
Wed May 9 07:34:44 EDT 2012


The closest I've come to solving this problem is that for each test
${testTarget}, I add two cmake tests:

add_test(NAME build_${testTarget} COMMAND ${CMAKE_COMMAND} --build
"${CMAKE_BINARY_DIR}" --target ${testTarget} --config
$<CONFIGURATION>)

add_test(NAME someName COMMAND ${testTarget} ...)

It might even be possible to combine them into one command, perhaps
with a custom test driver.

Petr

On Tue, May 8, 2012 at 1:27 AM, Leif Walsh <leif.walsh at gmail.com> wrote:
> Hi,
>
> Is there a make, cmake, or ctest way to rebuild the dependencies of a
> test if needed, and then run the test?
>
> Suppose I have a bulit directory and I'm developing.  I want to make
> edits, then run a command specifying one test to check, so that
> anything needed by that test gets rebuilt (if my changes require it),
> and then run.
>
> In make, I would do this by having one rule like
>
> run_%: %
>    ./$<
>
> so that if I want to edit some library's source file and then run
> test_foobar, I would just run `make run_test_foobar`, and the source I
> changed would get recompiled, the library would get relinked,
> test_foobar would get relinked if it's static, and then test_foobar
> would be run.
>
> I hoped ctest --bulid-and-test would help, but it seems it doesn't.  I
> tried --build-target test_foobar (I have add_test(test_foobar ...) in
> my configuration), and it only built test_foobar, it didn't seem to
> run it.
>
> --
> Cheers,
> Leif
> --
>
> 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


More information about the CMake mailing list