[CMake] Split Build and Test Pipelines

Miller Henry MillerHenry at JohnDeere.com
Fri May 10 13:57:03 EDT 2019


We have had luck packaging all the CTestTestFile.cmake files, and using sed to adjust paths for the target location.  You need to install ctest on the test machine, along with all the tests.

The only paths we change are the test output location (ie google test .xml files: this might not apply to you), and the path to the build directory.  Something like the following.

         sed -i ‘s/$BUILD_DIR/@CTEST_TARGET_DIR@/g’ $file

When running we first use configure_file in cmake to substitute CTEST_TARGET_DIR with whatever path things are installed to on the test machine.

From: CMake <cmake-bounces at cmake.org> On Behalf Of Dustyn Blasig
Sent: Friday, May 10, 2019 12:07 PM
To: CMake <cmake at cmake.org>
Subject: [CMake] Split Build and Test Pipelines

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!

Cheers!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190510/64a43980/attachment-0001.html>


More information about the CMake mailing list