[CMake] Split Build and Test Pipelines

Kyle Edwards kyle.edwards at kitware.com
Fri May 10 13:22:31 EDT 2019


On Fri, 2019-05-10 at 12:06 -0500, Dustyn Blasig wrote:
> Hi All,
> 
> I'm curious if anyone has had success allowing two testing paths to
> coexist well.
> 
> Currently, we are using CTest to run our test executables with `make
> test`. However, on our Jenkins system, the build machines have the
> whole development stack but the test machines do not. So we need a
> way to package up the tests in a way that the test machines can
> simply run some generated script to do the equivalent of what CTest
> would do.
> 
> My current thought is to generate OS specific scripts `make test`
> depends on and runs. These scripts can get installed through `make
> install` if ENABLE_TEST_INSTALL is set, and then the test machine can
> run the installed scripts. The tricky part is building up the
> hierarchy of scripts in such a way that the tester just needs to run
> "test.sh" or "test.bat" at the top-level of the install hierarchy.
> 
> Any comments and suggestions greatly appreciated!
If you at least have CMake/CTest installed on the test machines (even
if you don't have compilers, libraries, etc.), then you can create a
CMake project that doesn't build any code, but instead runs tests
against a set of external executables.
The build process for CMake itself has a mechanism to do exactly this:
if you configure CMake with -DCMake_TEST_EXTERNAL_CMAKE=path/to/bin,
then it will execute the test suite against the external CMake
executable without building any code. You could do something similar in
your own project: add an option to instead run the test suite against
an set of external excutables instead of building them.
Hope that helps!
Kyle

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190510/a9961221/attachment.html>


More information about the CMake mailing list