+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
- * Copyright (C) 2003-2011, International Business Machines
+ * Copyright (C) 2003-2016, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
* file name: testidna.cpp
- * encoding: US-ASCII
+ * encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
#include "unicode/ustring.h"
#include "unicode/usprep.h"
#include "unicode/uniset.h"
+#include "cmemory.h"
#include "testidna.h"
#include "idnaref.h"
#include "nptrans.h"
int32_t i;
UChar buf[MAX_DEST_SIZE];
- for(i=0;i< (int32_t)(sizeof(unicodeIn)/sizeof(unicodeIn[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(unicodeIn); i++){
u_charsToUChars(asciiIn[i],buf, (int32_t)(strlen(asciiIn[i])+1));
testAPI(unicodeIn[i], buf,testName, FALSE,U_ZERO_ERROR, TRUE, TRUE, func);
int32_t i;
UChar buf[MAX_DEST_SIZE];
- for(i=0;i< (int32_t)(sizeof(asciiIn)/sizeof(asciiIn[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(asciiIn); i++){
u_charsToUChars(asciiIn[i],buf, (int32_t)(strlen(asciiIn[i])+1));
testAPI(buf,unicodeIn[i],testName,FALSE,U_ZERO_ERROR, TRUE, TRUE, func);
}
UErrorCode status = U_ZERO_ERROR;
int32_t bufLen = 0;
UParseError parseError;
- for(i=0;i< (int32_t)(sizeof(domainNames)/sizeof(domainNames[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(domainNames); i++){
bufLen = (int32_t)strlen(domainNames[i]);
bufLen = u_unescape(domainNames[i],buf, bufLen+1);
func(buf,bufLen,expected,MAX_DEST_SIZE, UIDNA_ALLOW_UNASSIGNED, &parseError,&status);
UErrorCode status = U_ZERO_ERROR;
int32_t bufLen = 0;
UParseError parseError;
- for(i=0;i< (int32_t)(sizeof(domainNames)/sizeof(domainNames[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(domainNames); i++){
bufLen = (int32_t)strlen(domainNames[i]);
bufLen = u_unescape(domainNames[i],buf, bufLen+1);
func(buf,bufLen,expected,MAX_DEST_SIZE, UIDNA_ALLOW_UNASSIGNED, &parseError,&status);
ascii1.append(com);
ascii1.append((UChar)0x0000);
- for(i=0;i< (int32_t)(sizeof(unicodeIn)/sizeof(unicodeIn[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(unicodeIn); i++){
u_charsToUChars(asciiIn[i],buf+4, (int32_t)(strlen(asciiIn[i])+1));
u_strcat(buf,com);
int32_t labelLen=0;
UBool caseFlags[MAX_DEST_SIZE];
- for(int32_t i=0;i< sizeof(errorCases)/sizeof(errorCases[0]);i++){
+ for(int32_t i=0;i< UPRV_LENGTHOF(errorCases);i++){
ErrorCases errorCase = errorCases[i];
UErrorCode status = U_ZERO_ERROR;
start = errorCase.unicode;
UChar buf[MAX_DEST_SIZE];
int32_t bufLen=0;
- for(int32_t i=0;i< (int32_t)(sizeof(errorCases)/sizeof(errorCases[0]));i++){
+ for(int32_t i=0;i< UPRV_LENGTHOF(errorCases);i++){
ErrorCases errorCase = errorCases[i];
UChar* src =NULL;
if(errorCase.ascii != NULL){
int32_t srcLen=0;
UChar expected[MAX_DEST_SIZE];
int32_t expectedLen = 0;
- for(int32_t i=0;i< (int32_t)(sizeof(conformanceTestCases)/sizeof(conformanceTestCases[0]));i++){
+ for(int32_t i=0;i< UPRV_LENGTHOF(conformanceTestCases);i++){
const char* utf8Chars1 = conformanceTestCases[i].in;
int32_t utf8Chars1Len = (int32_t)strlen(utf8Chars1);
const char* utf8Chars2 = conformanceTestCases[i].out;
int32_t i;
UChar buf[MAX_DEST_SIZE];
- for(i=0;i< (int32_t)(sizeof(asciiIn)/sizeof(asciiIn[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(asciiIn); i++){
u_charsToUChars(asciiIn[i],buf, (int32_t)(strlen(asciiIn[i])+1));
testChaining(buf,5,toUnicodeName, FALSE, FALSE, toUnicode);
}
- for(i=0;i< (int32_t)(sizeof(unicodeIn)/sizeof(unicodeIn[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(unicodeIn); i++){
testChaining(unicodeIn[i], 5,toASCIIName, FALSE, TRUE, toASCII);
}
}
ascii1.append(com);
ascii1.append((UChar)0x0000);
- for(i=0;i< (int32_t)(sizeof(unicodeIn)/sizeof(unicodeIn[0])); i++){
+ for(i=0;i< UPRV_LENGTHOF(unicodeIn); i++){
u_charsToUChars(asciiIn[i],buf+4, (int32_t)(strlen(asciiIn[i])+1));
u_strcat(buf,com);
static const int loopCount = 100;
static const int maxCharCount = 20;
-static const int maxCodePoint = 0x10ffff;
+
static uint32_t
randul()
{
}
/* for debugging */
- for (i=0; i<(int)(sizeof(failures)/sizeof(failures[0])); i++){
+ for (i=0; i<UPRV_LENGTHOF(failures); i++){
source.truncate(0);
source.append( UnicodeString(failures[i], -1, US_INV) );
source = source.unescape();
UChar src [2] = {0,0};
int32_t srcLen = 0;
+ // data even OK?
+ {
+ UErrorCode dataStatus = U_ZERO_ERROR;
+ loadTestData(dataStatus);
+ if(U_FAILURE(dataStatus)) {
+ dataerrln("Couldn't load test data: %s\n", u_errorName(dataStatus)); // save us from thousands and thousands of errors
+ return;
+ }
+ }
for (int32_t i = 0; i <= 0x10FFFF; i++){
if (quick == TRUE && i > 0x0FFF){