>From: "David Abrahams" <[EMAIL PROTECTED]> > Terje Slettebų <[EMAIL PROTECTED]> writes: > > > Also these three tests, like MSVC 6, concerns tests where it doesn't throw > > when it's supposed to: > > > > BOOST_CHECK_THROW(lexical_cast<int>(" 123"), boost::bad_lexical_cast); > > BOOST_CHECK_THROW(lexical_cast<int>(std::string(" 123")), > > boost::bad_lexical_cast); > > BOOST_CHECK_THROW(lexical_cast<bool>(123), boost::bad_lexical_cast); > > > > If these are omitted for g++ 2.95.x, all tests pass for that compiler. > > However, as it compiles without errors on both MSVC 6 and g++ 2.95.x, maybe > > one shouldn't have any BOOST_WORKAROUND's in the test code? > > > > That will make it show up as failing on MSVC 6 and g++ 2.95.x, even though > > it passes almost all the enabled tests on both. > > Often the cure is to break the test into two parts, so that you can > demonstrate passing the majority of tests even on broken compilers.
Yeah. That's what is done with the 10 tests making up the suite - 6 for char and 4 for wide character. However, the three failing tests for each of MSVC 6 and g++ 2.95 (different ones for the two) are in the middle of some wide character tests. As Beman also points out, what is most important is that lexical_cast doesn't cause other components to fail, even if they don't use an unsupported feature. Therefore, to not mask any run-time errors on MSVC 6 and g++ 2.95, one may remove the BOOST_WORKAROUND's, since the failing tests don't appear to have much in common. Anyway, now that you've has committed it, we'll see how it goes in the regression test. At least BOOST_TESTED_AT should be taken out before the release, as you said. Regards, Terje _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost