[cmake-developers] Keeping unit tests useful and splitting feature support from platform support

Stephen Kelly steveire at gmail.com
Sun Oct 16 19:21:21 EDT 2011


On 10/16/2011 02:56 PM, Richard Wackerbarth wrote:
> On Oct 16, 2011, at 6:54 AM, Stephen Kelly wrote:
>> Having so many old platforms and compilers on the dashboard going red with
>> failure
>> So, I think I'm talking about two separate issues. One is whether failures
>> on platforms I don't care about are my responsibility, and the other is
>> ensuring that unit tests fail when something breaks.
> Steve,
>
> This is the "backward compatibility" issue that plagues all projects.
> Since CMake is a development tool, you have to consider its audience.
>
> Suppose you generate some "wiz-bang" new feature that only works when the generator is for the clang compiler and using Xcode.
> You decide "It's too much trouble to support Visual Studio" or the gcc 4.0 compiler."
>
> Now as a package developer, I have to choose from the following options:
> 1) Drop my support for platforms that your feature doesn't support,
> 2) Avoid using the "wiz-bang" feature, or
> 3) Avoid CMake entirely
>
> The problem is that I was happy with the feature set of CMake 2.4 and don't "need" "wiz-bang".
> A POLICY can provide notice that "the wiz-bang feature is not supported on this platform".
> But CMake still has to support "the old way".
>
> Adding features that are not supported on ALL supported platforms reduces the utility of CMake as a viable cross-platform tool.
>
> Adding unsupported features really confuses the definition of CMake. At some point, we should "bite the bullet", freeze the feature set of CMake and start  a new CMake2 project. In doing so, we can drop all support for certain platforms and the need to support backward compatibility. But, within each version of the product, all of its features need to work on all platforms supported by the product.
>
> I think that it is YOUR responsibility to make any new feature work on all supported platforms.
> If you cannot support some particular platform, you can petition the CMake community to drop support for certain platforms. But it should not be your unilateral choice to do so.
>
> Richard

Hi Richard,

I'm trying to find a solution to an issue I perceive about unit tests 
not counting for much if we only run them when they are testably already 
working.

There may be other ways to make that work, but your response indicates 
that you strongly think what I proposed is the wrong approach. You might 
be right, I don't know.

I came up with this proposal after looking at the Qt approach to 
platform support -- They define reference platforms, and if others want 
to make Qt work on WinCE for example, they can do that work and be the 
experts in it. I don't mean to say that what Qt does will automatically 
work for CMake (unlikely in fact). I'm trying to explore options.

All the best,

Steve.

PS, please subscribe to the cmake-developers mailing list. I think your 
mails are being held in moderation. At least they don't appear on gmane: 
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/2023 
(also your previous mails never made it to the list)




More information about the cmake-developers mailing list