[CMake] test property COST not working in cmake 2.8.3?

Zach Mullen zach.mullen at kitware.com
Fri Nov 26 10:38:44 EST 2010


I just realized why this isn't working -- it's actually not a regression.
 In this release we decided that the costs should only be taken into account
in a parallel case (ctest -j N).  Many users have implicit dependencies
based on the order of their add_test calls, so we didn't want to break
backward compatibility for those not using parallel ctest.

The non-parallel way to specify a test to run last is simply to make it the
last add_test call.

-Zach

On Fri, Nov 26, 2010 at 10:20 AM, Zach Mullen <zach.mullen at kitware.com>wrote:

>
>
> On Tue, Nov 23, 2010 at 6:02 PM, David Cole <david.cole at kitware.com>wrote:
>
>> It might be due to this commit:
>>
>> http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=142edf8ad4baccd991a6a8a3e5283d0b575acca2
>> (first released in 2.8.3)
>>
>> Or this one:
>>
>> http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b4d27dc041c9164d6f3ad39e192f4b7d116ca3b3
>> (first released in 2.8.2)
>>
>> Either way, seems like a bug to me. If you explicitly specify a COST
>> property value, especially a negative one to induce "last run" status,
>> then it should be honored over either historical average measurement
>> or "failed last time, so run it first this time" behavior.
>>
>> Zach, do you agree?
>>
>> Sure do, this is a bug.  I'll take a look at it today.
>
> -Zach
>
>>
>> Thanks,
>> David
>>
>>
>> On Tue, Nov 23, 2010 at 5:36 PM, Tyler Roscoe <tyler at cryptio.net> wrote:
>> > I use set_tests_properties (... COST -500) to force my code coverage
>> > checks to run after all the unit tests have run. This has stopped
>> > working and I'm reasonably confident that the only thing that changed
>> > was an upgrade from cmake 2.8.0 or 2.8.1 to 2.8.3.
>> >
>> > I couldn't find anything in the bug tracker or in the release notes
>> > suggesting that COST or test properties were changed in 2.8.3.
>> >
>> > I'm still getting lines like this in my generated CTestTestfile.cmake:
>> >
>> >    SET_TESTS_PROPERTIES(rs_exerciser_2dgrid PROPERTIES  COST "-500"
>> FAIL_REGULAR_EXPRESSION "TP_EXERCISER_FAIL")
>> >
>> > and the FAIL_REGULAR_EXPRESSION property seems to be working just fine.
>> >
>> >
>> > I've included a small repro case below. This looks like a regression.
>> Should I
>> > open a bug?
>> >
>> > Thanks,
>> > tyler
>> >
>> >
>> > [tylermr at tpb006:~/cmake-test-properties-test]$ cat CMakeLists.txt
>> > cmake_minimum_required(VERSION 2.8)
>> > project(p)
>> > enable_testing()
>> >
>> > add_test (i_should_run_second echo i should run second)
>> > set_tests_properties (i_should_run_second PROPERTIES COST -1)
>> > add_test (i_should_run_first echo i should run first)
>> >
>> > [tylermr at tpb006:~/cmake-test-properties-test]$ mkdir b && cd b && cmake
>> ..
>> > -- 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
>> > -- Configuring done
>> > -- Generating done
>> > -- Build files have been written to:
>> /tpb006/tylermr/cmake-test-properties-test/b
>> >
>> > [tylermr at tpb006:~/cmake-test-properties-test/b]$ ctest --version
>> > ctest version 2.8.3
>> > [tylermr at tpb006:~/cmake-test-properties-test/b]$ ctest
>> > Test project /tpb006/tylermr/cmake-test-properties-test/b
>> >    Start 1: i_should_run_second
>> > 1/2 Test #1: i_should_run_second ..............   Passed    0.01 sec
>> >    Start 2: i_should_run_first
>> > 2/2 Test #2: i_should_run_first ...............   Passed    0.01 sec
>> >
>> > 100% tests passed, 0 tests failed out of 2
>> >
>> > Total Test time (real) =   0.04 sec
>> >
>> > [tylermr at tpb006:~/cmake-test-properties-test/b]$
>> /usr/local/cmake-2.8.1-Linux-i386/bin/ctest --version
>> > ctest version 2.8.1
>> > [tylermr at tpb006:~/cmake-test-properties-test/b]$
>> /usr/local/cmake-2.8.1-Linux-i386/bin/ctest
>> > Test project /tpb006/tylermr/cmake-test-properties-test/b
>> >    Start 2: i_should_run_first
>> > 1/2 Test #2: i_should_run_first ...............   Passed    0.01 sec
>> >    Start 1: i_should_run_second
>> > 2/2 Test #1: i_should_run_second ..............   Passed    0.01 sec
>> >
>> > 100% tests passed, 0 tests failed out of 2
>> >
>> > Total Test time (real) =   0.02 sec
>> >
>> > _______________________________________________
>> > 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
>> >
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20101126/eac757ba/attachment.htm>


More information about the CMake mailing list