
Boost Test is used by ALL libraries in boost to test themselves. For it to be an effective in this role, it must be usable with any compiler that is supported by any library. This is not a suggestion or normative statement. Its just a recognition of the fact that it can't do the job it has been doing if it doesn't support older compilers.
This is not exactly true. IMO. Boost.Test need to support only those compilers we are running regression tests on. If library author or any other interested party want to employ old compiler they will have to use older version of Boost.Test.
So Boost Test should be structured so that it doesn't break old tests.
Boost.Test doesn't break old tests on supported compilers (IOW those we are running regression tests on). Lets say library author want to support Sunpro 4.2. Does it mean Boost.Test have to comply. The fact that MSVC *was* used for regression testing sometime before shouldn't make any difference IMO.
A couple of random observations re boost test.
I appreciate that the author of Boost Test thinks its a pain in the rear to address the "old compilers" but he is too modest in appreciation of his own work and I'm sure that if knew how important it really has been and he would just say "$%%&%&*" OK and accept his lot and keep it widely compatible.
Actually it's not that difficult to support older compilers (not counting new features), but I believe in a long term we need to have a procedure to stop doing that for the sake of code base health.
An and another thing. It damn annoying to find that all my tests suddenly fail on msvc because of a change in the test system. Oh I'm sure it was announced somewhere and I don't care - its annoying none the less. Now what am I to do? Stop supporting msvc? Shouldn't that be my decision? Re write my tests to not use boost test? I don't want to do that!
Actually I believed it was kind of agreed upon: 1.34 doesn't support MSVC anymore. Is there any particular reason you want to hold on to this compiler?
Finally, I managed to get the serialization libraries test to work with comeau by commenting out some of boost test.
unit_test_parameters.ipp
// const_string rs_str = retrieve_framework_parameter( RANDOM_SEED, argc, argv ); // s_random_seed = rs_str.is_empty() ? 0 : lexical_cast<unsigned int>( rs_str );
This apparently instantiates some basic_stream template that the serialiation library also instantiates. The comeau 4.3.3 prelinker complains about this - which I don't thnk it should - and build of serialization library fails.
You meant build of unit test, right?
Commenting this out permits the serialization libary to be tested with comeau.
There should be another way. I do not have an access to this compiler. Maybe you could rewrite with statement somehow? Gennadiy