• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /**
4  * Copyright (c) 1999-2012, International Business Machines Corporation and
5  * others. All Rights Reserved.
6  *
7  * Test for source/i18n/collunsafe.h
8  */
9 
10 #include <stdio.h>
11 #include "unicode/ucol.h"
12 #include "unicode/uniset.h"
13 #include "unicode/coll.h"
14 #include "collation.h"
15 
16 #include "collunsafe.h"
17 
18 using icu::Collator;
19 using icu::Locale;
20 using icu::UnicodeSet;
21 
main(int argc,const char * argv[])22 int main(int argc, const char *argv[]) {
23   puts("verify");
24   UErrorCode errorCode = U_ZERO_ERROR;
25 #if defined (COLLUNSAFE_PATTERN)
26   puts("verify pattern");
27   const UnicodeString unsafeBackwardPattern(false, collunsafe_pattern, collunsafe_len);
28   fprintf(stderr, "\n -- pat '%c%c%c%c%c'\n",
29           collunsafe_pattern[0],
30           collunsafe_pattern[1],
31           collunsafe_pattern[2],
32           collunsafe_pattern[3],
33           collunsafe_pattern[4]);
34   if(U_SUCCESS(errorCode)) {
35     UnicodeSet us(unsafeBackwardPattern, errorCode);
36     fprintf(stderr, "\n%s:%d: err creating set %s\n", __FILE__, __LINE__, u_errorName(errorCode));
37   }
38 #endif
39 
40 #if defined (COLLUNSAFE_RANGE)
41   {
42     puts("verify range");
43     UnicodeSet u;
44     for(int32_t i=0;i<unsafe_rangeCount*2;i+=2) {
45       u.add(unsafe_ranges[i+0],unsafe_ranges[i+1]);
46     }
47     printf("Finished with %d ranges\n", u.getRangeCount());
48   }
49 #endif
50 
51 #if defined (COLLUNSAFE_SERIALIZE)
52   {
53     puts("verify serialize");
54     UnicodeSet u(unsafe_serializedData, unsafe_serializedCount, UnicodeSet::kSerialized, errorCode);
55     fprintf(stderr, "\n%s:%d: err creating set %s\n", __FILE__, __LINE__, u_errorName(errorCode));
56     printf("Finished deserialize with %d ranges\n", u.getRangeCount());
57   }
58 #endif
59 // if(tailoring.unsafeBackwardSet == nullptr) {
60   //   errorCode = U_MEMORY_ALLOCATION_ERROR;
61   //   fprintf(stderr, "\n%s:%d: err %s\n", __FILE__, __LINE__, u_errorName(errorCode));
62   // }
63   puts("verify col UCA");
64   if(U_SUCCESS(errorCode)) {
65     Collator *col = Collator::createInstance(Locale::getEnglish(), errorCode);
66     fprintf(stderr, "\n%s:%d: err %s creating collator\n", __FILE__, __LINE__, u_errorName(errorCode));
67   }
68 
69   if(U_FAILURE(errorCode)) {
70     return 1;
71   } else {
72     return 0;
73   }
74 }
75