diff options
Diffstat (limited to 'backport-remove-TestJitterbug6175.patch')
-rw-r--r-- | backport-remove-TestJitterbug6175.patch | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/backport-remove-TestJitterbug6175.patch b/backport-remove-TestJitterbug6175.patch new file mode 100644 index 0000000..1d286db --- /dev/null +++ b/backport-remove-TestJitterbug6175.patch @@ -0,0 +1,112 @@ +From d4774599b63f72c887cf449d02b3d1e5b0acc960 Mon Sep 17 00:00:00 2001 +From: Peter Edberg <pedberg@unicode.org> +Date: Wed, 12 Mar 2008 23:22:07 +0000 +Subject: [PATCH] ICU-6175 Test detecting empty segments in ISO-2022-x & HZ + with UConverterCallbackReason==UCNV_IRREGULAR + +X-SVN-Rev: 23572 + +revert d4774599b63f72c887cf449d02b3d1e5b0acc960 + +--- + source/test/cintltst/nucnvtst.c | 70 --------------------------------- + 1 file changed, 70 deletions(-) + +diff --git a/source/test/cintltst/nucnvtst.c b/source/test/cintltst/nucnvtst.c +index 73e0fde..1f96ded 100644 +--- a/source/test/cintltst/nucnvtst.c ++++ b/source/test/cintltst/nucnvtst.c +@@ -101,7 +101,6 @@ static void TestJitterbug2346(void); + static void TestJitterbug2411(void); + static void TestJB5275(void); + static void TestJB5275_1(void); +-static void TestJitterbug6175(void); + + static void TestIsFixedWidth(void); + #endif +@@ -329,7 +328,6 @@ void addTestNewConvert(TestNode** root) + #if !UCONFIG_NO_LEGACY_CONVERSION + addTest(root, &TestJitterbug2346, "tsconv/nucnvtst/TestJitterbug2346"); + addTest(root, &TestJitterbug2411, "tsconv/nucnvtst/TestJitterbug2411"); +- addTest(root, &TestJitterbug6175, "tsconv/nucnvtst/TestJitterbug6175"); + + addTest(root, &TestIsFixedWidth, "tsconv/nucnvtst/TestIsFixedWidth"); + #endif +@@ -4591,74 +4589,6 @@ cleanup: + free(offsets); + } + +-/* Tests for empty segments in ISO-2022-JP/KR/CN, HZ, check that UConverterCallbackReason is UCNV_IRREGULAR */ +-typedef struct { +- const char * converterName; +- const char * inputText; +- int inputTextLength; +-} EmptySegmentTest; +- +-/* Callback for TestJitterbug6175, should only get called for empty segment errors */ +-static void UCNV_TO_U_CALLBACK_EMPTYSEGMENT( const void *context, UConverterToUnicodeArgs *toArgs, const char* codeUnits, +- int32_t length, UConverterCallbackReason reason, UErrorCode * err ) { +- // suppress compiler warnings about unused variables +- (void)context; +- (void)codeUnits; +- (void)length; +- if (reason > UCNV_IRREGULAR) { +- return; +- } +- if (reason != UCNV_IRREGULAR) { +- log_err("toUnicode callback invoked for empty segment but reason is not UCNV_IRREGULAR\n"); +- } +- /* Standard stuff below from UCNV_TO_U_CALLBACK_SUBSTITUTE */ +- *err = U_ZERO_ERROR; +- ucnv_cbToUWriteSub(toArgs,0,err); +-} +- +-enum { kEmptySegmentToUCharsMax = 64 }; +-static void TestJitterbug6175(void) { +- static const char iso2022jp_a[] = { 0x61, 0x62, 0x1B,0x24,0x42, 0x1B,0x28,0x42, 0x63, 0x64, 0x0D, 0x0A }; +- static const char iso2022kr_a[] = { 0x1B,0x24,0x29,0x43, 0x61, 0x0E, 0x0F, 0x62, 0x0D, 0x0A }; +- static const char iso2022cn_a[] = { 0x61, 0x1B,0x24,0x29,0x41, 0x62, 0x0E, 0x0F, 0x1B,0x24,0x2A,0x48, 0x1B,0x4E, 0x6A,0x65, 0x63, 0x0D, 0x0A }; +- static const char iso2022cn_b[] = { 0x61, 0x1B,0x24,0x29,0x41, 0x62, 0x0E, 0x1B,0x24,0x29,0x47, 0x68,0x64, 0x0F, 0x63, 0x0D, 0x0A }; +- static const char hzGB2312_a[] = { 0x61, 0x62, 0x7E,0x7B, 0x7E,0x7D, 0x63, 0x64 }; +- static const EmptySegmentTest emptySegmentTests[] = { +- /* converterName inputText inputTextLength */ +- { "ISO-2022-JP", iso2022jp_a, sizeof(iso2022jp_a) }, +- { "ISO-2022-KR", iso2022kr_a, sizeof(iso2022kr_a) }, +- { "ISO-2022-CN", iso2022cn_a, sizeof(iso2022cn_a) }, +- { "ISO-2022-CN", iso2022cn_b, sizeof(iso2022cn_b) }, +- { "HZ-GB-2312", hzGB2312_a, sizeof(hzGB2312_a) }, +- /* terminator: */ +- { NULL, NULL, 0, } +- }; +- const EmptySegmentTest * testPtr; +- for (testPtr = emptySegmentTests; testPtr->converterName != NULL; ++testPtr) { +- UErrorCode err = U_ZERO_ERROR; +- UConverter * cnv = ucnv_open(testPtr->converterName, &err); +- if (U_FAILURE(err)) { +- log_data_err("Unable to open %s converter: %s\n", testPtr->converterName, u_errorName(err)); +- return; +- } +- ucnv_setToUCallBack(cnv, UCNV_TO_U_CALLBACK_EMPTYSEGMENT, NULL, NULL, NULL, &err); +- if (U_FAILURE(err)) { +- log_data_err("Unable to setToUCallBack for %s converter: %s\n", testPtr->converterName, u_errorName(err)); +- ucnv_close(cnv); +- return; +- } +- { +- UChar toUChars[kEmptySegmentToUCharsMax]; +- UChar * toUCharsPtr = toUChars; +- const UChar * toUCharsLimit = toUCharsPtr + kEmptySegmentToUCharsMax; +- const char * inCharsPtr = testPtr->inputText; +- const char * inCharsLimit = inCharsPtr + testPtr->inputTextLength; +- ucnv_toUnicode(cnv, &toUCharsPtr, toUCharsLimit, &inCharsPtr, inCharsLimit, NULL, true, &err); +- } +- ucnv_close(cnv); +- } +-} +- + static void + TestEBCDIC_STATEFUL(void) { + /* test input */ +-- +2.33.0 + |