120 lines
5.5 KiB
Diff
120 lines
5.5 KiB
Diff
From b0ae845e4760a26719b2285fca3fc464cf213aee Mon Sep 17 00:00:00 2001
|
|
From: Markus Scherer <markus.icu@gmail.com>
|
|
Date: Mon, 23 Dec 2024 10:35:05 -0800
|
|
Subject: [PATCH] ICU-22954 USetHeaderOnlyTest use unique_ptr
|
|
|
|
---
|
|
.../test/intltest/usetheaderonlytest.cpp | 31 +++++++++++--------
|
|
1 file changed, 18 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/icu4c/source/test/intltest/usetheaderonlytest.cpp b/icu4c/source/test/intltest/usetheaderonlytest.cpp
|
|
index 38bc175c174..49fe420a418 100644
|
|
--- icu4c/source/test/intltest/usetheaderonlytest.cpp
|
|
+++ icu4c/source/test/intltest/usetheaderonlytest.cpp
|
|
@@ -4,6 +4,7 @@
|
|
// usetheaderonlytest.cpp
|
|
// created: 2024dec11 Markus W. Scherer
|
|
|
|
+#include <memory>
|
|
#include <string>
|
|
|
|
// Test header-only ICU C++ APIs. Do not use other ICU C++ APIs.
|
|
@@ -57,16 +58,17 @@ std::u16string cpString(UChar32 c) {
|
|
void USetHeaderOnlyTest::TestUSetCodePointIterator() {
|
|
IcuTestErrorCode errorCode(*this, "TestUSetCodePointIterator");
|
|
using U_HEADER_NESTED_NAMESPACE::USetCodePoints;
|
|
- LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴]", -1, errorCode));
|
|
+ std::unique_ptr<USet, decltype(&uset_close)> uset(
|
|
+ uset_openPattern(u"[abcçカ🚴]", -1, errorCode), &uset_close);
|
|
std::u16string result;
|
|
- for (UChar32 c : USetCodePoints(uset.getAlias())) {
|
|
+ for (UChar32 c : USetCodePoints(uset.get())) {
|
|
// Commented-out sample code for pasting into the API docs.
|
|
// printf("uset.codePoint U+%04lx\n", (long)c);
|
|
result.append(u" ").append(cpString(c));
|
|
}
|
|
assertEquals(WHERE, u" a b c ç カ 🚴", result);
|
|
|
|
- USetCodePoints range1(uset.getAlias());
|
|
+ USetCodePoints range1(uset.get());
|
|
auto range2(range1); // copy constructor
|
|
auto iter = range1.begin();
|
|
auto limit = range2.end();
|
|
@@ -89,16 +91,17 @@ void USetHeaderOnlyTest::TestUSetRangeIterator() {
|
|
IcuTestErrorCode errorCode(*this, "TestUSetRangeIterator");
|
|
using U_HEADER_NESTED_NAMESPACE::USetRanges;
|
|
using U_HEADER_NESTED_NAMESPACE::CodePointRange;
|
|
- LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴]", -1, errorCode));
|
|
+ std::unique_ptr<USet, decltype(&uset_close)> uset(
|
|
+ uset_openPattern(u"[abcçカ🚴]", -1, errorCode), &uset_close);
|
|
std::u16string result;
|
|
- for (auto [start, end] : USetRanges(uset.getAlias())) {
|
|
+ for (auto [start, end] : USetRanges(uset.get())) {
|
|
// Commented-out sample code for pasting into the API docs.
|
|
// printf("uset.range U+%04lx..U+%04lx\n", (long)start, (long)end);
|
|
result.append(u" ").append(cpString(start)).append(u"-").append(cpString(end));
|
|
}
|
|
assertEquals(WHERE, u" a-c ç-ç カ-カ 🚴-🚴", result);
|
|
result.clear();
|
|
- for (auto range : USetRanges(uset.getAlias())) {
|
|
+ for (auto range : USetRanges(uset.get())) {
|
|
for (UChar32 c : range) {
|
|
// Commented-out sample code for pasting into the API docs.
|
|
// printf("uset.range.c U+%04lx\n", (long)c);
|
|
@@ -108,7 +111,7 @@ void USetHeaderOnlyTest::TestUSetRangeIterator() {
|
|
}
|
|
assertEquals(WHERE, u" a b c | ç | カ | 🚴 |", result);
|
|
|
|
- USetRanges range1(uset.getAlias());
|
|
+ USetRanges range1(uset.get());
|
|
auto range2(range1); // copy constructor
|
|
auto iter = range1.begin();
|
|
auto limit = range2.end();
|
|
@@ -155,9 +158,10 @@ void USetHeaderOnlyTest::TestUSetRangeIterator() {
|
|
void USetHeaderOnlyTest::TestUSetStringIterator() {
|
|
IcuTestErrorCode errorCode(*this, "TestUSetStringIterator");
|
|
using U_HEADER_NESTED_NAMESPACE::USetStrings;
|
|
- LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, errorCode));
|
|
+ std::unique_ptr<USet, decltype(&uset_close)> uset(
|
|
+ uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, errorCode), &uset_close);
|
|
std::u16string result;
|
|
- for (auto s : USetStrings(uset.getAlias())) {
|
|
+ for (auto s : USetStrings(uset.get())) {
|
|
// Commented-out sample code for pasting into the API docs.
|
|
// Needs U_SHOW_CPLUSPLUS_API=1 for UnicodeString.
|
|
// UnicodeString us(s);
|
|
@@ -167,7 +171,7 @@ void USetHeaderOnlyTest::TestUSetStringIterator() {
|
|
}
|
|
assertEquals(WHERE, uR"( "" "abc" "de")", result);
|
|
|
|
- USetStrings range1(uset.getAlias());
|
|
+ USetStrings range1(uset.get());
|
|
auto range2(range1); // copy constructor
|
|
auto iter = range1.begin();
|
|
auto limit = range2.end();
|
|
@@ -185,9 +189,10 @@ void USetHeaderOnlyTest::TestUSetStringIterator() {
|
|
void USetHeaderOnlyTest::TestUSetElementIterator() {
|
|
IcuTestErrorCode errorCode(*this, "TestUSetElementIterator");
|
|
using U_HEADER_NESTED_NAMESPACE::USetElements;
|
|
- LocalUSetPointer uset(uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, errorCode));
|
|
+ std::unique_ptr<USet, decltype(&uset_close)> uset(
|
|
+ uset_openPattern(u"[abcçカ🚴{}{abc}{de}]", -1, errorCode), &uset_close);
|
|
std::u16string result;
|
|
- for (auto el : USetElements(uset.getAlias())) {
|
|
+ for (auto el : USetElements(uset.get())) {
|
|
// Commented-out sample code for pasting into the API docs.
|
|
// Needs U_SHOW_CPLUSPLUS_API=1 for UnicodeString.
|
|
// UnicodeString us(el);
|
|
@@ -197,7 +202,7 @@ void USetHeaderOnlyTest::TestUSetElementIterator() {
|
|
}
|
|
assertEquals(WHERE, uR"( "a" "b" "c" "ç" "カ" "🚴" "" "abc" "de")", result);
|
|
|
|
- USetElements range1(uset.getAlias());
|
|
+ USetElements range1(uset.get());
|
|
auto range2(range1); // copy constructor
|
|
auto iter = range1.begin();
|
|
auto limit = range2.end();
|
|
--
|
|
2.47.1
|
|
|