[CMake] building and running tests with one command

Leif Walsh leif.walsh at gmail.com
Wed May 9 09:16:19 EDT 2012


So you run 'ctest -R testTarget' and it picks up the build test too?
Hmm.  Thanks.

On Wed, 9 May 2012, Petr Kmoch wrote:

> 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
> 

-- 
Cheers,
Leif


More information about the CMake mailing list