Boost Interest :
Subject: Re: [Boost-cmake] placement_new test failure under VC++8
From: Doug Gregor (doug.gregor_at_[hidden])
Date: 2009-05-17 11:17:17
On Sat, May 16, 2009 at 3:57 PM, David Wolfe <dwolfe_at_[hidden]> wrote:
>>> A runtime error in one of the unit tests has been making it difficult
>>> to get continuous builds going under Windows. I get about halfway
>>> through the tests and then a message box pops up...
>>> If I click 'Ignore', the rest of the tests complete, and my results get
>>> submitted to the dashboard; but this prevents me from doing unattended
>> That's very bad; CTest should be disabling this dialog, because this
>> is going to happen often. Unless our tests are doing something to
>> re-enable the dialog?
> It would appear that the /RTC1 compiler flag (equivalent to /RTCsu) is
> causing this run-time assertion failure:
> - http://msdn.microsoft.com/en-us/library/8wtf2dfz.aspx
> What's strange is that I only get this failure when I build with the
> 'NMake Makefiles' generator. If I generate with 'Visual Studio 8 2005'
> instead, then open 'numeric.sln' in the IDE and build
> numeric-placement_new from there, it runs fine.
> I poked around in the BuildLog.htm files (for VS2005) and build.make
> files (NMake) and convinced myself that CMake builds that use the NMake
> generator are specifying /RTC1, while VS 2005 builds are not.
Hmm.... are you building the Debug or the Release variant in VS 2005?
Perhaps this flag is only provided with debug (which is probably the
default for NMake Makefiles)?
>> Oh, and here's a really dumb question: how long did you leave the
>> program running with this dialog open? IIRC, CTest has an internal
>> timer and will kill a test after some number of seconds.
> That number appears to be 1500. `:-} I re-checked this and discovered
> that the test does eventually time out after 25 minutes.
Ah, good. It looks like this can be set via the CTEST_TEST_TIMEOUT
variable. So, on could use -DCTEST_TEST_TIMEOUT=300 when configuring
CMake to reduce the timeout time to 5 minutes.
But, it's good to know that CTest is doing the right thing (eventually).