[CMake] Simultaneous --build-and-test and CDash submission

David Cole david.cole at kitware.com
Thu Dec 9 11:24:57 EST 2010


On Thu, Dec 9, 2010 at 10:44 AM, Wojciech Migda <wojtek.golf at interia.pl> wrote:
>
> Użytkownik  napisał(a):
>> From:
>> Subject: Re: [CMake] Simultaneous --build-and-test and CDash submission
>> To: "Wojciech Migda" ;
>>
>> On Thu, Dec 9, 2010 at 4:13 AM, Wojciech Migda  wrote:
>> > Hi,
>> >
>> > I have unit tests configured for CDash submissions. Submissions do work if I issue in sequence TWO commands which go pretty much like this:
>> >
>> > # configure the build system
>> > ${CMAKE_ROOT}${CMAKE_BINDIR}/cmake .
>> > # build tests
>> > make clean ; make
>> > # run tests
>> > ${CMAKE_ROOT}${CMAKE_BINDIR}/ctest
>> >
>> > However, when doing that CDash shows useful results only for the test phase - build info is missing and configure info shows only 3 lines despite removal of CMakeCache.txt.
>> >
>> > So I attepmted using the build-and-test option. I would expect this to work:
>> >
>> > /vob/tetra/tools/CMake/bin_linux_x86_64/ctest -D Experimental --build-and-test . . --build-generator 'Unix Makefiles' --build-makeprogram `which clearmake`
>> >
>> > but it only builds and tests --- '-D' option seems to be ignored.
>> >
>> > I also tried this:
>> >
>> > /vob/tetra/tools/CMake/bin_linux_x86_64/ctest --build-and-test . . --build-generator 'Unix Makefiles' --build-makeprogram `which clearmake` --test-command ./test_command.sh
>> >
>> > where test_command.sh executes 'ctest -D Experimental' but although it submission is achieved the CDash contents is the same as with the original two commands.
>> >
>> > So my question is how to achieve CDash submission with 'scratch' configure info (just as if cmake was invoked on clean environment), build info (compilation warnings and such) and test results by issueing single command ?
>> >
>> > Thanks for help,
>> >
>> > Wojtek
>> >
>> >
>> > ----------------------------------------------
>> > Księgowa radzi: Jak załozyć firmę w 15 minut?
>> > http://linkint.pl/f2842
>> >
>> > _______________________________________________
>> > 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
>>
>>
>> How about this?
>>
>> # configure the build system
>> ${CMAKE_ROOT}${CMAKE_BINDIR}/cmake .
>> # run an Experimental dashboard
>> ${CMAKE_ROOT}${CMAKE_BINDIR}/ctest -D Experimental
>>
>> Running an Experimental dashboard should execute configure, build and
>> test steps and submit the results to the CDash server. The initial
>> configure is necessary to configure some of the files that ctest reads
>> to know, for example, where the CDash server is.
>>
>>
>> HTH,
>> David
>
> Thank you David - I got the compilation warnings to appear in the CDash listing.
>
> In addition, can sth be done with the Configure Output ? In CDash it goes like this (all 3 lines):
>
> -- Configuring done
> -- Generating done
> -- Build files have been written to: foo_location
>
> whilst I'd like to have it in full, like when CMake is initially invoked, e.g:
>
> -- The C compiler identification is GNU
> -- The CXX compiler identification is GNU
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Check if the system is big endian
> -- Searching 16 bit integer
> -- Looking for sys/types.h
> -- Looking for sys/types.h - found
> -- Looking for stdint.h
> -- Looking for stdint.h - found
>
> ... snip
>
> Thanks,
>
> Wojtek
>
>
> ---------------------------------------------------------------
> Nadal nie wiesz, co wybrac na prezent?
> Sprawdz nasz poradnik >> http://linkint.pl/f2885
>
>
>
> http://linkint.pl/f2885
>
>



You can do it all in one step with ctest, but you have to write a
ctest -S script, and call that... Inside it, you can do a "configure
from scratch" using the ctest_configure(...) command. Then you'll see
all the configure output submitted to the dashboard.

Poke around the wiki and the mailing list for ctest -S script
documentation. (Go with a new style script that uses the commands
'ctest_configure' and 'ctest_build' and 'ctest_test'.) Maybe somebody
else has time to chime in and give you more details.


Cheers,
David


More information about the CMake mailing list