| Index: source/test/cintltst/cbiditst.c
|
| ===================================================================
|
| --- source/test/cintltst/cbiditst.c (revision 291619)
|
| +++ source/test/cintltst/cbiditst.c (working copy)
|
| @@ -84,6 +84,8 @@
|
|
|
| static void doTailTest(void);
|
|
|
| +static void testBracketOverflow(void);
|
| +
|
| /* new BIDI API */
|
| static void testReorderingMode(void);
|
| static void testReorderRunsOnly(void);
|
| @@ -130,6 +132,7 @@
|
| addTest(root, testClassOverride, "complex/bidi/TestClassOverride");
|
| addTest(root, testGetBaseDirection, "complex/bidi/testGetBaseDirection");
|
| addTest(root, testContext, "complex/bidi/testContext");
|
| + addTest(root, testBracketOverflow, "complex/bidi/TestBracketOverflow");
|
|
|
| addTest(root, doArabicShapingTest, "complex/arabic-shaping/ArabicShapingTest");
|
| addTest(root, doLamAlefSpecialVLTRArabicShapingTest, "complex/arabic-shaping/lamalef");
|
| @@ -4654,3 +4657,25 @@
|
|
|
| log_verbose("\nExiting TestContext \n\n");
|
| }
|
| +
|
| +/* Ticket#11054 ubidi_setPara crash with heavily nested brackets */
|
| +static void
|
| +testBracketOverflow(void) {
|
| + static const char* TEXT = "(((((((((((((((((((((((((((((((((((((((((a)(A)))))))))))))))))))))))))))))))))))))))))";
|
| + UErrorCode status = U_ZERO_ERROR;
|
| + UBiDi* bidi;
|
| + UChar src[100];
|
| + UChar dest[100];
|
| + int32_t len;
|
| +
|
| + bidi = ubidi_open();
|
| + len = uprv_strlen(TEXT);
|
| + pseudoToU16(len, TEXT, src);
|
| + ubidi_setPara(bidi, src, len, UBIDI_DEFAULT_LTR , NULL, &status);
|
| + if (U_FAILURE(status)) {
|
| + log_err("setPara failed with heavily nested brackets - %s", u_errorName(status));
|
| + }
|
| +
|
| + ubidi_close(bidi);
|
| +}
|
| +
|
|
|