>-----Original Message-----
>From: Paulex Yang [mailto:[EMAIL PROTECTED]
>Sent: Thursday, July 20, 2006 10:27 AM
>To: harmony-dev@incubator.apache.org
>Subject: Re: [testing] locale dependent tests
>
>Andrew Zhang wrote:
>> On 7/19/06, Richard Liang <[EMAIL PROTECTED]> wrote:
>>>
>>>
>>>
>>> Tim Ellison wrote:
>>> > Richard Liang wrote:
>>> >
>>> >> Although the spec does not require the round-trip of applyPattern
and
>>> >> toPattern, we still want to get one *certain* pattern through
>>> toPattern.
>>> >> Now the problem is the returned pattern is locale-dependent. I'm
>>> >> uncertain about the reason to remove the assertion:
>>> >> 1) Because the behavior is not required by spec, or
>>> >> 2) Because the behavior is locale-dependent
>>> >>
>>> >
>>> > It would seem that rather than forcing the locale to be en_US to
make
>>> > the test assertions valid, you could work with the default locale
and
>>> > guard any assertions that are locale-specific.  It would seem a
>>> shame to
>>> > loose the diversity of testing on multiple locale machines if the
>>> tests
>>> > always force everyone to look like an American (horror! ;-) )
>>> >
>>> > I would expect the fix therefore to be something like, if locale
is
>>> > en_US go ahead and assert more round-tripping code, otherwise
can't
>>> test
>>> > it as the spec allows variances.
>>> >
>>> >
>>> If a test case passes in all locales, could we think that the
behavior
>>> tested by the test case is locale-independent? We still have to
think
>>> about how to test locale-dependent behavior. For example,
>>> java.util.Locale.getDisplayName() and
java.lang.String.toUpperCase(). To
>>> verify both the code logic and locale data, shall we have some tests
>>> like ABC_en_US_Test, ABC_en_UK_Test, and ABC_ru_RU_Test?
>
>
>I still confuse what we want to test, the logic or the data? I think
>most (if not all) i18n related methods actually have same single
>executable with multiple resource bundles, i.e., the single executable
>should be locale-independent, the different return value is due to the
>resource data difference. I think at least for now, we should pay our
>attention to logic of single executable, and leave the data
verification
>to the i18n libraries' author, say, ICU, they have much more knowledge
>and authority (at least than me) on this area.
>
>If we can get agree on the above, so the i18n related test cases
>organization are easier to judge: the logic is locale-independent, so
>ideally the tests should be locale-independent, but we have some
>exceptional cases, say, the en_UK in MessageFormat case, so we cannot
>make our tests rely on the default locale, then we just specify one
>locale(en_US) to the tests, and supplement some exceptional case when
we
>find some. i.e., I don't think we need ABC_en_US_Test, or so.
>
>Comments?
>

I don't think we need several test cases like ABC_en_US_Test and
ABC_ru_RU_Test because users can modify locale data. Perhaps not all
data can be changed, but some can be surely, for example, date/time
formats, decimal and group separators. Thus a test which passes on one
machine can fail on another one because locale data are different from
the default values.

So, I think the best way to deal with such tests is to provide a "fake"
hard-coded locale which can't be changed at all. And tests will become
locale-independent.


Any thoughts?


Thanks,
Alexey. 

>
>>
>>
>> Hi Richard,
>> For getDisplayName, getDisplayLanguage() and methods like so, which
are
>> locale-dependent, I suggest we write implementation tests for them.
>> The test
>> may look like:
>> 1. get default locale
>> 2. get i18n string from ResourceBundle directly
>> 3. get i18n string by locale-dependent method
>> 4. assertEquals
>If we write test cases like this, these tests are probably
>locale-independent, because: the executable is probably single. I don't
>think we should have many "locale-dependent" methods, we just have many
>methods with "locale-dependent" data.
>>
>> Sounds reasonable?
>>
>> Any comments? Thank you!
>>
>> Best regards,
>>> Richard
>>>
>>> > Regards,
>>> > Tim
>>> >
>>> >
>>>
>>> --
>>> Richard Liang
>>> China Software Development Lab, IBM
>>>
>>>
>>>
>>
>>
>
>
>--
>Paulex Yang
>China Software Development Lab
>IBM
>
>
>
>---------------------------------------------------------------------
>Terms of use : http://incubator.apache.org/harmony/mailing.html
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]


--
Alexey A. Ivanov
Intel Middleware Product Division

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to