undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com Patches, unit tests, benchmarks, whitepaper, and outreach briefs. Public domain — no copyright claimed. Use freely.
This commit is contained in:
commit
0a580b313d
70422 changed files with 17213626 additions and 0 deletions
248
test/jdk/java/util/Locale/PrintDefaultLocale.java
Normal file
248
test/jdk/java/util/Locale/PrintDefaultLocale.java
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
/*
|
||||
* Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
/*
|
||||
* This file is available under and governed by the GNU General Public
|
||||
* License version 2 only, as published by the Free Software Foundation.
|
||||
* However, the following notice accompanied the original version of this
|
||||
* file and, per its terms, should not be removed:
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998 - All Rights Reserved
|
||||
*
|
||||
* Portions copyright (c) 2007 Sun Microsystems, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* The original version of this source code and documentation
|
||||
* is copyrighted and owned by Taligent, Inc., a wholly-owned
|
||||
* subsidiary of IBM. These materials are provided under terms
|
||||
* of a License Agreement between Taligent and Sun. This technology
|
||||
* is protected by multiple US and International patents.
|
||||
*
|
||||
* This notice and attribution to Taligent may not be removed.
|
||||
* Taligent is a registered trademark of Taligent, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* and its documentation for NON-COMMERCIAL purposes and without
|
||||
* fee is hereby granted provided that this copyright notice
|
||||
* appears in all copies. Please refer to the file "copyright.html"
|
||||
* for further important copyright and licensing information.
|
||||
*
|
||||
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
|
||||
* THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
* PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
|
||||
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
|
||||
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
@bug 4123370 4091969 4118731 4182108 4778440
|
||||
|
||||
The "at-test" tag was removed from this file, because there's no way to
|
||||
run this test in an automated test harness. It depends on having various
|
||||
different locales installed on the machine, and on Windows it depends
|
||||
on the user going to the "Regional Settings" control panel and changing
|
||||
the settings before running the test for each bug. We can run this test
|
||||
manually from time to time to ensure that there has been no regression,
|
||||
but it's not automated. -- lwerner, 7/6/98
|
||||
|
||||
INSTRUCTIONS FOR RUNNING THIS TEST
|
||||
==================================
|
||||
This test is designed to check for problems in the JVM code that initializes the
|
||||
default Java locale (the locale returned by Locale.getDefault()) from the system
|
||||
locale settings (or from command-line arguments). Since detecting a regression
|
||||
usually requires setting the environment up in some way prior to running the test,
|
||||
this is a manual test.
|
||||
|
||||
The test simply prints out the internal ID and display name of the default Java locale,
|
||||
and the name of the default Java character encoding. It passes if these are what
|
||||
you expect them to be, and fails if they're not.
|
||||
|
||||
Bug #4091969:
|
||||
To test for bug #4091969, run this test on a Korean-localized version of
|
||||
Windows, with the default locale set to Korean. You should get "ko_KR"
|
||||
as the default locale.
|
||||
|
||||
Bug #4123370:
|
||||
One part of bug #4123370 duplicates bug #4091969, which is covered by the
|
||||
instructions above.
|
||||
|
||||
To test the unique part of bug #4123370, use the "Regional Settings" control
|
||||
panel to set the currect locale to each of the different Spanish-language locales.
|
||||
Run this test once for each Spanish-language locale. You should see the appropriate
|
||||
locale ID and name for each locale. Both "Spanish - Traditional Sort" and
|
||||
"Spanish - Modern Sort" should produce "es_ES" and "Spanish (Spain)".
|
||||
|
||||
Bug #4118731:
|
||||
The basic issue here was that we had changed so that calling getDisplayName()
|
||||
on a locale that didn't include a country code no longer included a country
|
||||
name (instead of picking a default country name, as before), which is the
|
||||
right answer. The problem is we weren't always getting back a system default
|
||||
locale from Solaris that includes a country code, even though we should.
|
||||
|
||||
To test this, set the system default locale to a locale that doesn't include
|
||||
a country code, such as "fr" or "de", using (in the C shell) "setenv LC_ALL fr"
|
||||
(or whatever the locale ID you want is). Running PrintDefaultLocale should
|
||||
still produce a locale ID, and a locale display name, that include a country
|
||||
code (and country name). [Remember to make sure the locale is actually installed
|
||||
first.]
|
||||
|
||||
To test the specific complaint in the bug, use "setenv LC_ALL ja". Also pay
|
||||
special attention to Solaris locale IDs that don't match the corresponding java
|
||||
locales, such as "su" (which should turn into "fi_FI"), "cz" (which should turn
|
||||
into "cs_CZ"), and "en_UK" (which should turn into "en_GB").
|
||||
|
||||
Bug #4079167:
|
||||
Test this bug the same way you test bug #4118731. Set the locale to each of
|
||||
the specified locale IDs (e.g., "setenv LC_ALL japanese"), and then run
|
||||
PrintDefaultLocale. You should get the following results:
|
||||
Solaris ID Java ID Java display name Encoding
|
||||
========== ======= ==================== ========
|
||||
japanese ja_JP Japanese (Japan) --
|
||||
korean ko_KR Korean (South Korea) --
|
||||
tchinese zh_TW Chinese (Taiwan) --
|
||||
big5 zh_TW Chinese (Taiwan) Big5
|
||||
(Where "--" is marked for "encoding," the result isn't important-- it's the
|
||||
default encoding for that locale, which we don't test. It should be something
|
||||
plausible. Also note that this test presupposed you actually have locales
|
||||
with these names installed on your system.)
|
||||
|
||||
Bug #4154559, 4778440:
|
||||
Set the locale to Norwegian (Bokmal) and Norwegian (Nynorsk) using the
|
||||
Regional Settings control panel on Windows. For each setting, run this program.
|
||||
You should see no_NO and no_NO_NY, respectively.
|
||||
|
||||
Bug #4182108:
|
||||
Test this bug the same way you test bug #4118731. Set the locale to
|
||||
each of the specified locale IDs (e.g., "setenv LC_ALL japanese"), and
|
||||
then run PrintDefaultLocale. You should get the following results:
|
||||
|
||||
Solaris ID Java ID Encoding
|
||||
========== ======= ========
|
||||
cz cs_CZ --
|
||||
su fi_FI --
|
||||
fr.ISO8859-15 fr_FR ISO8859-15
|
||||
fr.ISO8859-15@euro fr_FR ISO8859-15
|
||||
|
||||
Where "--" is marked for "encoding," the result isn't important-- it's
|
||||
the default encoding for that locale, which we don't test. It should be
|
||||
something plausible. Also note that this test presupposed you actually
|
||||
have locales with these names installed on your system.
|
||||
|
||||
As of this writing, there is a bug in Solaris or in the 8859-15/euro
|
||||
patch for 2.6 (Solaris patch 106842-01) which causes nl_langinfo() to
|
||||
return the wrong value for 8859-15 locales. As a result, the encoding
|
||||
returned by this test is currency ISO8859-1 for 8859-15 locales.
|
||||
|
||||
Bug #4778440, 5005601, 5074060, 5107154:
|
||||
Run the "deflocale" tool found in "data" directory (deflocale.sh on Unix,
|
||||
deflocale.exe on Windows), and check the following:
|
||||
|
||||
4778440: Check that iw_IL is the default locale if the OS's locale is
|
||||
Hebrew, and in_ID for Indonesian.
|
||||
5005601: For Norwegian locales, no_NO is selected for Bokmal, and no_NO_NY
|
||||
is selected for Nynorsk.
|
||||
5074060, 5107154: On Windows XP ServicePack 2, check the default locales for the
|
||||
following Windows locales. Compare with the golden data (deflocale.win):
|
||||
Bengali - India
|
||||
Croatian - Bosnia and Herzegovina
|
||||
Bosnian - Bosnia and Herzegovina
|
||||
Serbian (Latin) - Bosnia and Herzegovina
|
||||
Serbian (Cyrillic) - Bosnia and Herzegovina
|
||||
Welsh - United Kingdom
|
||||
Maori - New Zealand
|
||||
Malayalam - India
|
||||
Maltese - Malta
|
||||
Quechua - Bolivia
|
||||
Quechua - Ecuador
|
||||
Quechua - Peru
|
||||
Setswana (Tswana) - South Africa
|
||||
isiXhosa (Xhosa) - South Africa
|
||||
isiZulu ( Zulu) - South Africa
|
||||
Sesotho sa Leboa (Northern Sotho) - South Africa
|
||||
Sami, Northern - Norway
|
||||
Sami, Northern - Sweden
|
||||
Sami, Northern - Finland
|
||||
Sami, Lule - Norway
|
||||
Sami, Lule - Sweden
|
||||
Sami, Southern - Norway
|
||||
Sami, Southern - Sweden
|
||||
Sami, Skolt - Finland
|
||||
Sami, Inari - Finland
|
||||
|
||||
Bug # 6409997:
|
||||
Run the "deflocale.exe" tool found in "data" directory on Windows Vista.
|
||||
It contains the following new locales:
|
||||
Tajik (Cyrillic) (Tajikistan) - 1251
|
||||
Upper Sorbian (Germany) - 1252
|
||||
Turkmen (Turkmenistan) - 1250
|
||||
Oriya (India) - 0
|
||||
Assamese (India) - 0
|
||||
Tibetan (People's Republic of China) - 0
|
||||
Khmer (Cambodia) - 0
|
||||
Lao (Lao P.D.R.) - 0
|
||||
Sinhala (Sri Lanka) - 0
|
||||
Inuktitut (Canada) - 0
|
||||
Amharic (Ethiopia) - 0
|
||||
Hausa (Latin) (Nigeria) - 1252
|
||||
Yoruba (Nigeria) - 1252
|
||||
Bashkir (Russia) - 1251
|
||||
Greenlandic (Greenland) - 1252
|
||||
Igbo (Nigeria) - 1252
|
||||
Yi (People's Republic of China) - 0
|
||||
Breton (France) - 1252
|
||||
Uighur (People's Republic of China) - 1256
|
||||
Occitan (France) - 1252
|
||||
Corsican (France) - 1252
|
||||
Alsatian (France) - 1252
|
||||
Yakut (Russia) - 1251
|
||||
K'iche (Guatemala) - 1252
|
||||
Kinyarwanda (Rwanda) - 1252
|
||||
Wolof (Senegal) - 1252
|
||||
Dari (Afghanistan) - 1256
|
||||
Lower Sorbian (Germany) - 1252
|
||||
Bengali (Bangladesh) - 0
|
||||
Mongolian (Traditional Mongolian) (People's Republic of China) - 0
|
||||
Tamazight (Latin) (Algeria) - 1252
|
||||
English (India) - 1252
|
||||
English (Malaysia) - 1252
|
||||
English (Singapore) - 1252
|
||||
Spanish (United States) - 1252
|
||||
|
||||
*/
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Locale;
|
||||
|
||||
public class PrintDefaultLocale {
|
||||
public static void main(String[] args) {
|
||||
System.out.printf("default locale: ID: %s, Name: %s\n",
|
||||
Locale.getDefault().toString(),
|
||||
Locale.getDefault().getDisplayName(Locale.US));
|
||||
System.out.printf("display locale: ID: %s, Name: %s\n",
|
||||
Locale.getDefault(Locale.Category.DISPLAY).toString(),
|
||||
Locale.getDefault(Locale.Category.DISPLAY).getDisplayName(Locale.US));
|
||||
System.out.printf("format locale: ID: %s, Name: %s\n",
|
||||
Locale.getDefault(Locale.Category.FORMAT).toString(),
|
||||
Locale.getDefault(Locale.Category.FORMAT).getDisplayName(Locale.US));
|
||||
System.out.printf("default charset: %s\n", Charset.defaultCharset());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue