incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: [PATCH] Update test 22.locale.time.put.mt.cpp to validate results
Date Wed, 08 Aug 2007 04:22:05 GMT
Travis Vitek wrote:
> 
[...]
>> [...]
>>> +    // avoid divide by zero in thread if there are no 
>> locales to test
>>> +    if (nlocales < 1) {
>>> +        rw_fatal(nlocales != 0, 0, __LINE__,
>>> +                 "failed to create one or more usable locales");
>> There are systems with no locales installed. I think we just want
>> rw_warn() here, not something as severe as rw_fatal(). (And we
>> want a space before the open paren :)
>>
> 
> Not exactly sure what you want here. I can put an rw_warn() followed
> immediately by a return, or I can have each thread test the number of
> locales again and bail early. If the threads are allowed to run, they
> will all fail with a div-by-zero when they try to mod by 'nlocales'.

A test failure should indicate that there is a problem with the library,
not that the environment system is not equipped to exercise it. When
there's only one locale installed on a system (the "C" locale must
always be present) that's not a problem we can do much about. All it
means is that we can't tell if the library would work correctly if
there were more than one locale. So I think in this case the test
should just run all threads in the "C" locale. It won't be a very
useful test but it'll be better than nothing, don't you agree?

Btw., the locale thread safety tests currently only exercise the
implementation when using the native (libc) locales. There's a big
chunk of code that deals with our own locales that's not being
tested. At some point we'll need to enhance the tests to exercise
this functionality as well.

Martin

Mime
View raw message