Commit graph

24104 commits

Author SHA1 Message Date
Frank Tang
770c4b8042 ICU-23095 Add fuzzer for DecimalFormatSymbols
Some checks are pending
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "HH:mm" "13:13" 2, TestICUParse) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUConstruction) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUFormat) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUParse) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (sw_KE, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUConstruction) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (sw_KE, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUFormat) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (sw_KE, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUParse) (push) Blocked by required conditions
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x64, Debug, x64) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (idna) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (normalize) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbbi) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnf) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x64, Release, x64) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x86, Debug, Win32) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x86, Release, Win32) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-cygwin-gcc (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (csdet) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (format) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (icuserv) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnfp) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnfrt) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (regex) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (spoof) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (translit) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (utility) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-test (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (bidi) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (collator) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (convert) (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
2025-04-03 14:36:55 -07:00
Tim Chevalier
d0e30acc68 ICU-23059 ICU4C MF2: Spec test updates
Some checks failed
GHA CI Valgrind / clang-valgrind-intltest (spoof) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (translit) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_IDNA=1) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_LEGACY_CONVERSION=1 -DUCONFIG_NO_NORMALIZATION=1 -DUCONFIG_NO_BREAK_ITERATION=1 -DUCONFIG_NO_IDNA=1 -DUCONFIG_NO_COLLATION=1 -DUCONFIG_NO_FORMATTING=1 -DUCONFIG_NO_MF2=1 -DUCONFIG_NO_TRANSLITERATION=1 -DUCONFIG_NO_REG… (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_LEGACY_CONVERSION=1) (push) Has been cancelled
GHA ICU4C / icu4c-without-collation-rule-strings (push) Has been cancelled
GHA ICU4C / icu4c-icuexportdata (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (rbbi) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-test (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (bidi) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (collator) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (convert) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (csdet) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (format) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (rbnfrt) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (regex) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_MF2=1) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_NORMALIZATION=1) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_REGULAR_EXPRESSIONS=1) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_SERVICE=1) (push) Has been cancelled
GHA ICU4C / uconfig-header-tests (-DUCONFIG_NO_TRANSLITERATION=1) (push) Has been cancelled
GHA ICU4C / unicode-update-tools (push) Has been cancelled
GHA ICU4C / icu4c-test-samples (push) Has been cancelled
GHA ICU4C / icu4c-uconfig-no-conversion (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (icuserv) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (idna) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (normalize) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (rbnf) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (rbnfp) (push) Has been cancelled
GHA CI Valgrind / clang-valgrind-intltest (utility) (push) Has been cancelled
Update spec tests to current version from message-format-wg

  - Update parser for changed name-start grammar rule
  - Validate number literals in :number implementation (since parser no longer does this)
  - Disallow `:number`/`:integer` select option set from variable

    See https://github.com/unicode-org/message-format-wg/pull/1016

    As part of this, un-skip tests where the `bad-option` error is
    expected, and implement validating digit size options
    (pending PR https://github.com/unicode-org/icu/pull/2973 is intended
    to do this more fully)
2025-03-27 15:20:49 -07:00
Mihai Nita
d93b8bb344 ICU-23056 ICU 78rc BRS: front-load update version to 78.0.1
Some checks failed
Deploy User Guide / build (push) Has been cancelled
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUFormat) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUParse) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (sw_KE, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUConstruction) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (sw_KE, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUFormat) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (sw_KE, "dddd MMM yyyy" "15 Jan 2007" 1, TestICUParse) (push) Blocked by required conditions
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x64, Debug, x64) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x64, Release, x64) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x86, Debug, Win32) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x86, Release, Win32) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-cygwin-gcc (push) Waiting to run
GHA CI Valgrind / clang-valgrind-test (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (bidi) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (collator) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (convert) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (csdet) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (format) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (icuserv) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (idna) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (normalize) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbbi) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnf) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnfp) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnfrt) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (regex) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (spoof) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (translit) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (utility) (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
Deploy User Guide / deploy (push) Has been cancelled
2025-03-25 16:09:37 -07:00
Frank Tang
ad0df7e4c8 ICU-22817 Use LocalPointer/Memory/Array to clarify ownership transfer
Some checks are pending
GHA ICU Merge CI / icu4j-converterperf (TestCharsetEncoderICU, korean, UTF-8) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-converterperf (TestCharsetEncoderICU, korean, csiso2022kr) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-converterperf (TestCharsetEncoderICU, s-chinese, EUC-CN) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-converterperf (TestCharsetEncoderICU, s-chinese, UTF-8) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "HH:mm Z" "13:13 -0800" 5, TestICUConstruction) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "HH:mm Z" "13:13 -0800" 5, TestICUFormat) (push) Blocked by required conditions
GHA ICU Merge CI / icu4j-dateformatperf (en_US, "HH:mm Z" "13:13 -0800" 5, TestICUParse) (push) Blocked by required conditions
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x64, Debug, x64) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x64, Release, x64) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x86, Debug, Win32) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-msvc-postmerge (x86, Release, Win32) (push) Waiting to run
GHA ICU Merge CI / icu4c-windows-cygwin-gcc (push) Waiting to run
GHA CI Valgrind / clang-valgrind-test (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (csdet) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (format) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (bidi) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (collator) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (convert) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (icuserv) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (idna) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (normalize) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbbi) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnf) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnfp) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (rbnfrt) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (regex) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (spoof) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (translit) (push) Waiting to run
GHA CI Valgrind / clang-valgrind-intltest (utility) (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
See #3443
2025-03-24 16:24:02 -07:00
Frank Tang
b65650bc5f ICU-23077 Correct the internalGet call inside Calendar
See #3439
2025-03-19 16:22:43 -07:00
Steve Lawrence
3edd9c828a ICU-22303 Support parsing infinity/NaN when decimal pattern match is required
If a DecimalFormat pattern contains a decimal point and
setDecimalPatternMatchRequired is true, then DecimalFormat parse() fails
to parse infinity/NaN representations. This is because infinity/NaN
parsing does not set the HAS_DECIMAL_SEPARATOR_FLAG and so the
RequireDecimalSeparatorValidator fails.

This modifies the RequireDecimalSeparatorValidator so that it does not
fail if the INFINITY or NAN flags are set, making it so decimal
separators are not required if the infinity/NaN representations are
parsed.
2025-03-19 16:19:41 -07:00
Frank Tang
255eb4ef3e ICU-23069 Fix Hebrew calendar calculation
See #3438
2025-03-19 13:45:52 -07:00
Frank Tang
cdf52396dc ICU-22817 Fix memory leak in basictz by using LocalPointer
See https://github.com/LuMingYinDetect/icu_defects/blob/main/icu_1.png
2025-03-18 14:03:29 -07:00
Frank Tang
545bf260e1 ICU-22817 Fix potential memory leak by using LocalPointer
See https://github.com/LuMingYinDetect/icu_defects/blob/main/icu_10.png
2025-03-18 14:02:55 -07:00
Frank Tang
ba0f39b592 ICU-22817 Use LocalArray to fix memory leak 2025-03-18 12:21:23 -07:00
Markus Scherer
72406ed78a
ICU-23056 merge maint/maint-77 to main (#3436) 2025-03-13 15:07:01 -07:00
Tim Chevalier
c5b7dce96b ICU-23073 Use string_view constants for option names and formatter names 2025-03-13 10:21:46 -07:00
Mihai Nita
457157a92a ICU-22923 Workaround for addLikelySubtags(und-Latn-RS) bug 2025-03-10 16:06:50 -07:00
yumaoka
27cc39a620 ICU-23067 Add test option to ignore runtime time zone data sensitive test. 2025-03-07 17:57:45 -05:00
Rich Gillam
faa80a2972 ICU-23062 Added null check in one spot in genrb where we know we've seen crashes. 2025-03-06 17:50:59 +00:00
Mihai Nita
443c8c5187 ICU-23064 Fix for POSIX_MADV_RANDOM undefined 2025-02-27 14:22:47 -08:00
Frank Tang
53adb4bca8 ICU-23060 Fix TestLargeAppend
Correct the test based on the kMaxCapacity
setToBogus on error
2025-02-27 11:02:54 -08:00
DraganBesevic
d6ca2ba5de ICU-22923 Integrate CLDR 47 release beta2, part 4, remove unused variables in tests 2025-02-26 12:54:55 -08:00
DraganBesevic
19dd858b6a ICU-22923 Integrate CLDR 47 release beta2, part 3, source and test files 2025-02-26 12:54:55 -08:00
DraganBesevic
7931e6f7ce ICU-22923 Integrate CLDR 47 release beta2, part 2, data files 2025-02-26 12:54:55 -08:00
DraganBesevic
c210730f76 ICU-22923 Integrate CLDR 47 release beta2, part 1, binary files 2025-02-26 12:54:55 -08:00
Frank Tang
0b88b1c754 ICU-23060 Fix heap-buffer-overflow when UnicodeString size too large
See #3416
2025-02-25 15:36:06 -08:00
Tim Chevalier
0748442ed6 ICU-23059 ICU4C MF2: Update spec tests
This updates the MF2 spec tests to 943479b602 with the following exceptions:

- functions/currency.json and functions/math.json are omitted because these are not yet implemented

- bidi.json will be handled in a future PR

- u-options.json will be handled in a future PR

Changes include:
* `:integer` now returns a value encapsulating the rounded numeric value of the argument, rather than
  the value itself.
* Fallbacks are handled according to the current spec.
* Fallback values are not passed into functions.
* Characters inside literal fallbacks are properly escaped.
* The test runner skips null values properly.
* The test runner handles boolean `expErrors` in defaultTestProperties.
* `:string` normalizes its input and normalizeNFC() has been refactored so it can be called there.
2025-02-25 12:24:07 -08:00
sven-oly
1b48d262c2 ICU-22922 Scrubbing closed issues
See #3399
2025-02-21 11:24:10 -08:00
Mihai Nita
6cc1618136 ICU-22922 ICU4C produce search doxygen doc by default 2025-02-21 10:09:51 -08:00
sven-oly
cfc208f546 ICU-22922 ICU4C RC APIChangeReport updates 2025-02-19 16:50:14 -08:00
Mihai Nita
d69d452382 ICU-22922 BRS_77_RC: Update version number to 77.1-SNAPSHOT 2025-02-19 15:59:57 -08:00
Robin Leroy
215131c1a4 ICU-22984 Remove some obnoxious tests from 2003 2025-02-19 23:30:34 +01:00
Fredrik Roubert
61b2dbc980 ICU-22901 Replace fixed size buffer with CharString. 2025-02-14 21:42:22 +01:00
Fredrik Roubert
7da5e90a3d ICU-22901 Update Locale::init() to use StringPiece. 2025-02-14 20:52:40 +01:00
Younies Mahmoud
3c85be19ec ICU-22781 Uncomment and enable constant denominator tests
See #3385
2025-02-14 10:34:51 +01:00
Fredrik Roubert
3f5fd0df73 ICU-22901 Update ulocimp_canonicalize() &co. to use std::string_view. 2025-02-13 15:50:54 +01:00
Fredrik Roubert
afa06d2bcd ICU-22901 Update _canonicalize() to use std::string_view. 2025-02-13 15:50:54 +01:00
Fredrik Roubert
5463eac8b4 ICU-22901 Update ulocimp_getKeywords() to use std::string_view. 2025-02-13 15:50:54 +01:00
Fredrik Roubert
aa724e1e3f ICU-22901 Move calls to uloc_getDefault() out of _canonicalize(). 2025-02-13 15:50:54 +01:00
Fredrik Roubert
83726260ef ICU-23031 Reinstate special case for "-u-va-posix" lost by ICU-22520.
Inside of locimp_forLanguageTag() in _appendKeywords() in uloc_tag.cpp
there's a hardcoded special case for "-u-va-posix" which appends the
"_POSIX" variant but this was missed during the refactoring made for
ICU-22520 (there isn't any test case that covers this).

So the call to locimp_forLanguageTag() did more than previously
understood, but we still don't want to have to call that for every
language tag that has BCP-47 extensions just in order to get to this
special case. Instead, add a special case also to ulocimp_getSubtags().

For this to work nicely, the loop in _getVariant() that copies variants
needs to be refactored so that it easily can break when encountering the
start of any BCP-47 extension (which also has the welcome side-effect of
making it more efficient, being able to append an entire variant at once
to the output sink).

This was broken by commit 678d5c1273.
2025-02-13 08:50:17 +01:00
Frank Tang
59719f09d9 ICU-22934 Fix typo in PR#3230
ICU-22934 Fix error handling while new return nullptr

ICU-22934 Simplfied

ICU-22934 more

ICU-22934 fix leak
2025-02-12 16:56:20 -08:00
David Barts
b81956ebcc ICU-22808 Correct a factually incorrect doc comment. 2025-02-12 16:37:33 -08:00
Younies Mahmoud
e20b71af50 ICU-22781 Add CLDR-18274 failing comments to portion unit formatting tests
See #3393
2025-02-12 23:12:13 +01:00
Younies Mahmoud
35c9778781 ICU-22781 Support Arbitrary Constant Unit Formatting
See #3381
2025-02-12 01:45:16 +01:00
Frank Tang
59af52bb6f ICU-23043 Propogate error in Calendar. 2025-02-11 15:14:27 -08:00
Younies Mahmoud
42e3b43c78 ICU-22781 Add test for portion format with parts per billion (C++)
See #3389
2025-02-11 23:37:53 +01:00
Mihai Nita
84599e1117 ICU-22781 Comment out the failing tests 2025-02-10 10:46:19 -08:00
Mihai Nita
339ebb368f ICU-22781 Data generated with the concentr/perbillion on, code update
Following the steps in docs/processes/release/tasks/updating-measure-unit.md
2025-02-10 10:46:19 -08:00
Mihai Nita
fe4549dc62 ICU-22781 Data generated with the concentr/perbillion on, tests 2025-02-10 10:46:19 -08:00
Mihai Nita
19458b75f4 ICU-22781 Data generated with the concentr/perbillion on, ICU4C 2025-02-10 10:46:19 -08:00
Mihai Nita
5ae7f068b1 ICU-23042 CLDR-to-ICU, generate rbnf data for Gujarati 2025-02-08 21:55:43 -08:00
Tim Chevalier
7b8110f003 ICU-22907 MF2: Finish updating spec tests and implement required test functions
Implement :test:format, :test:select, and :test:function, which are
required by the new `pattern-selection.json` tests.

Change the internal value representation in the formatter in order to
support some of the test cases (binding the results of selectors to a
variable).
2025-02-08 21:42:03 -06:00
Vladyslav Yeremeichuk
624a26030b ICU-22950 Do not initialize currency redundantly
resolveCurrency() slows down simple number formatting requests like:
for (int i = 0; i < 9999; i++) u_snprintf_u(buff, 100, u"%d", i);
Since we don't use currency here, we can skip its initialization.
2025-02-07 14:45:43 -08:00
Burkov Egor
40c325322e ICU-23035 Fix bound check at u_strToPunycode 2025-02-07 13:03:27 -08:00