1// Copyright (C) 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 19int main(int argc, const char *argv[]) { 20 puts("verify"); 21 UErrorCode errorCode = U_ZERO_ERROR; 22#if defined (COLLUNSAFE_PATTERN) 23 puts("verify pattern"); 24 const UnicodeString unsafeBackwardPattern(FALSE, collunsafe_pattern, collunsafe_len); 25 fprintf(stderr, "\n -- pat '%c%c%c%c%c'\n", 26 collunsafe_pattern[0], 27 collunsafe_pattern[1], 28 collunsafe_pattern[2], 29 collunsafe_pattern[3], 30 collunsafe_pattern[4]); 31 if(U_SUCCESS(errorCode)) { 32 UnicodeSet us(unsafeBackwardPattern, errorCode); 33 fprintf(stderr, "\n%s:%d: err creating set %s\n", __FILE__, __LINE__, u_errorName(errorCode)); 34 } 35#endif 36 37#if defined (COLLUNSAFE_RANGE) 38 { 39 puts("verify range"); 40 UnicodeSet u; 41 for(int32_t i=0;i<unsafe_rangeCount*2;i+=2) { 42 u.add(unsafe_ranges[i+0],unsafe_ranges[i+1]); 43 } 44 printf("Finished with %d ranges\n", u.getRangeCount()); 45 } 46#endif 47 48#if defined (COLLUNSAFE_SERIALIZE) 49 { 50 puts("verify serialize"); 51 UnicodeSet u(unsafe_serializedData, unsafe_serializedCount, UnicodeSet::kSerialized, errorCode); 52 fprintf(stderr, "\n%s:%d: err creating set %s\n", __FILE__, __LINE__, u_errorName(errorCode)); 53 printf("Finished deserialize with %d ranges\n", u.getRangeCount()); 54 } 55#endif 56// if(tailoring.unsafeBackwardSet == NULL) { 57 // errorCode = U_MEMORY_ALLOCATION_ERROR; 58 // fprintf(stderr, "\n%s:%d: err %s\n", __FILE__, __LINE__, u_errorName(errorCode)); 59 // } 60 puts("verify col UCA"); 61 if(U_SUCCESS(errorCode)) { 62 Collator *col = Collator::createInstance(Locale::getEnglish(), errorCode); 63 fprintf(stderr, "\n%s:%d: err %s creating collator\n", __FILE__, __LINE__, u_errorName(errorCode)); 64 } 65 66 if(U_FAILURE(errorCode)) { 67 return 1; 68 } else { 69 return 0; 70 } 71} 72