OLD | NEW |
1 /******************************************************************** | 1 /******************************************************************** |
2 * Copyright (c) 1997-2011, International Business Machines | 2 * Copyright (c) 1997-2014, International Business Machines |
3 * Corporation and others. All Rights Reserved. | 3 * Corporation and others. All Rights Reserved. |
4 ******************************************************************** | 4 ******************************************************************** |
5 * | 5 * |
6 * File UCNVSELTST.C | 6 * File UCNVSELTST.C |
7 * | 7 * |
8 * Modification History: | 8 * Modification History: |
9 * Name Description | 9 * Name Description |
10 * MOHAMED ELDAWY Creation | 10 * MOHAMED ELDAWY Creation |
11 ******************************************************************** | 11 ******************************************************************** |
12 */ | 12 */ |
13 | 13 |
14 /* C API AND FUNCTIONALITY TEST FOR CONVERTER SELECTOR (ucnvsel.h)*/ | 14 /* C API AND FUNCTIONALITY TEST FOR CONVERTER SELECTOR (ucnvsel.h)*/ |
15 | 15 |
16 #include "ucnvseltst.h" | 16 #include "ucnvseltst.h" |
17 | 17 |
18 #include <stdio.h> | 18 #include <stdio.h> |
19 | 19 |
20 #include "unicode/utypes.h" | 20 #include "unicode/utypes.h" |
21 #include "unicode/ucnvsel.h" | 21 #include "unicode/ucnvsel.h" |
22 #include "unicode/ustring.h" | 22 #include "unicode/ustring.h" |
23 #include "cmemory.h" | 23 #include "cmemory.h" |
24 #include "cstring.h" | 24 #include "cstring.h" |
25 #include "propsvec.h" | 25 #include "propsvec.h" |
26 | 26 |
27 #define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0])) | |
28 | |
29 #define FILENAME_BUFFER 1024 | 27 #define FILENAME_BUFFER 1024 |
30 | 28 |
31 #define TDSRCPATH ".." U_FILE_SEP_STRING "test" U_FILE_SEP_STRING "testdata" U_
FILE_SEP_STRING | 29 #define TDSRCPATH ".." U_FILE_SEP_STRING "test" U_FILE_SEP_STRING "testdata" U_
FILE_SEP_STRING |
32 | 30 |
33 static void TestSelector(void); | 31 static void TestSelector(void); |
34 static void TestUPropsVector(void); | 32 static void TestUPropsVector(void); |
35 void addCnvSelTest(TestNode** root); /* Declaration required to suppress compil
er warnings. */ | 33 void addCnvSelTest(TestNode** root); /* Declaration required to suppress compil
er warnings. */ |
36 | 34 |
37 void addCnvSelTest(TestNode** root) | 35 void addCnvSelTest(TestNode** root) |
38 { | 36 { |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 } | 384 } |
387 if (!text_open(&text)) { | 385 if (!text_open(&text)) { |
388 releaseAvailableNames();; | 386 releaseAvailableNames();; |
389 } | 387 } |
390 | 388 |
391 excluded_sets[0] = uset_openEmpty(); | 389 excluded_sets[0] = uset_openEmpty(); |
392 for(i = 1 ; i < 3 ; i++) { | 390 for(i = 1 ; i < 3 ; i++) { |
393 excluded_sets[i] = uset_open(i*30, i*30+500); | 391 excluded_sets[i] = uset_open(i*30, i*30+500); |
394 } | 392 } |
395 | 393 |
396 for(testCaseIdx = 0; testCaseIdx < LENGTHOF(getEncodingsFns); testCaseIdx++) | 394 for(testCaseIdx = 0; testCaseIdx < UPRV_LENGTHOF(getEncodingsFns); testCaseIdx
++) |
397 { | 395 { |
398 int32_t excluded_set_id; | 396 int32_t excluded_set_id; |
399 int32_t num_encodings; | 397 int32_t num_encodings; |
400 const char **encodings = getEncodingsFns[testCaseIdx](&num_encodings); | 398 const char **encodings = getEncodingsFns[testCaseIdx](&num_encodings); |
401 if (getTestOption(QUICK_OPTION) && num_encodings > 25) { | 399 if (getTestOption(QUICK_OPTION) && num_encodings > 25) { |
402 uprv_free((void *)encodings); | 400 uprv_free((void *)encodings); |
403 continue; | 401 continue; |
404 } | 402 } |
405 | 403 |
406 /* | 404 /* |
407 * for(excluded_set_id = 0 ; excluded_set_id < 3 ; excluded_set_id++) | 405 * for(excluded_set_id = 0 ; excluded_set_id < 3 ; excluded_set_id++) |
408 * | 406 * |
409 * This loop was replaced by the following statement because | 407 * This loop was replaced by the following statement because |
410 * the loop made the test run longer without adding to the code coverage. | 408 * the loop made the test run longer without adding to the code coverage. |
411 * The handling of the exclusion set is independent of the | 409 * The handling of the exclusion set is independent of the |
412 * set of encodings, so there is no need to test every combination. | 410 * set of encodings, so there is no need to test every combination. |
413 */ | 411 */ |
414 excluded_set_id = testCaseIdx % LENGTHOF(excluded_sets); | 412 excluded_set_id = testCaseIdx % UPRV_LENGTHOF(excluded_sets); |
415 { | 413 { |
416 UConverterSelector *sel_rt, *sel_fb; | 414 UConverterSelector *sel_rt, *sel_fb; |
417 char *buffer_fb = NULL; | 415 char *buffer_fb = NULL; |
418 UErrorCode status = U_ZERO_ERROR; | 416 UErrorCode status = U_ZERO_ERROR; |
419 sel_rt = ucnvsel_open(encodings, num_encodings, | 417 sel_rt = ucnvsel_open(encodings, num_encodings, |
420 excluded_sets[excluded_set_id], | 418 excluded_sets[excluded_set_id], |
421 UCNV_ROUNDTRIP_SET, &status); | 419 UCNV_ROUNDTRIP_SET, &status); |
422 if (num_encodings == gCountAvailable) { | 420 if (num_encodings == gCountAvailable) { |
423 /* test the special "all converters" parameter values */ | 421 /* test the special "all converters" parameter values */ |
424 sel_fb = ucnvsel_open(NULL, 0, | 422 sel_fb = ucnvsel_open(NULL, 0, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 excluded_sets[excluded_set_id], | 460 excluded_sets[excluded_set_id], |
463 UCNV_ROUNDTRIP_AND_FALLBACK_SET); | 461 UCNV_ROUNDTRIP_AND_FALLBACK_SET); |
464 /* UTF-8 with length */ | 462 /* UTF-8 with length */ |
465 status = U_ZERO_ERROR; | 463 status = U_ZERO_ERROR; |
466 verifyResult(ucnvsel_selectForUTF8(sel_rt, s, length8, &status), manual_
rt); | 464 verifyResult(ucnvsel_selectForUTF8(sel_rt, s, length8, &status), manual_
rt); |
467 verifyResult(ucnvsel_selectForUTF8(sel_fb, s, length8, &status), manual_
fb); | 465 verifyResult(ucnvsel_selectForUTF8(sel_fb, s, length8, &status), manual_
fb); |
468 /* UTF-8 NUL-terminated */ | 466 /* UTF-8 NUL-terminated */ |
469 verifyResult(ucnvsel_selectForUTF8(sel_rt, s, -1, &status), manual_rt); | 467 verifyResult(ucnvsel_selectForUTF8(sel_rt, s, -1, &status), manual_rt); |
470 verifyResult(ucnvsel_selectForUTF8(sel_fb, s, -1, &status), manual_fb); | 468 verifyResult(ucnvsel_selectForUTF8(sel_fb, s, -1, &status), manual_fb); |
471 | 469 |
472 u_strFromUTF8(utf16, LENGTHOF(utf16), &length16, s, length8, &status); | 470 u_strFromUTF8(utf16, UPRV_LENGTHOF(utf16), &length16, s, length8, &statu
s); |
473 if (U_FAILURE(status)) { | 471 if (U_FAILURE(status)) { |
474 log_err("error converting the test text (string %ld) to UTF-16 - %s\n"
, | 472 log_err("error converting the test text (string %ld) to UTF-16 - %s\n"
, |
475 (long)text.number, u_errorName(status)); | 473 (long)text.number, u_errorName(status)); |
476 } else { | 474 } else { |
477 if (text.number == 0) { | 475 if (text.number == 0) { |
478 sel_fb = serializeAndUnserialize(sel_fb, &buffer_fb, &status); | 476 sel_fb = serializeAndUnserialize(sel_fb, &buffer_fb, &status); |
479 } | 477 } |
480 if (U_SUCCESS(status)) { | 478 if (U_SUCCESS(status)) { |
481 /* UTF-16 with length */ | 479 /* UTF-16 with length */ |
482 verifyResult(ucnvsel_selectForString(sel_rt, utf16, length16, &statu
s), manual_rt); | 480 verifyResult(ucnvsel_selectForString(sel_rt, utf16, length16, &statu
s), manual_rt); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 } | 528 } |
531 if (upvec_getRow(pv, 0, NULL, NULL) == NULL) { | 529 if (upvec_getRow(pv, 0, NULL, NULL) == NULL) { |
532 log_err("upvec_getRow should not return NULL.\n"); | 530 log_err("upvec_getRow should not return NULL.\n"); |
533 } | 531 } |
534 if (upvec_getArray(pv, NULL, NULL) != NULL) { | 532 if (upvec_getArray(pv, NULL, NULL) != NULL) { |
535 log_err("upvec_getArray should return NULL.\n"); | 533 log_err("upvec_getArray should return NULL.\n"); |
536 } | 534 } |
537 | 535 |
538 upvec_close(pv); | 536 upvec_close(pv); |
539 } | 537 } |
OLD | NEW |