[CMake] building and running tests with one command

David Cole david.cole at kitware.com
Tue May 8 11:34:00 EDT 2012


On Mon, May 7, 2012 at 7:27 PM, 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?
>

No -- there is no knowledge in the generated build system about what a
test depends on. The only thing add_test does is generate test suite
command lines and execute them. It does nothing to inject itself into
the build system's dependency list.

You might find previous messages in the list archive about this topic,
I know I've answered this before.

Ideally, we'd like to get to that point where what you want is
feasible, but right now, it's not.


> 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