netscape-revival
lib/libi18n/testnpc.c
/*
This file is a testing program should not be include in project.
Only for testing purpose.
*/
#include "xp_trace.h"
#include "csid.h"
#include "unicpriv.h"
#include "libi18n.h"
#include "npc.h"
/* #define TEST_ROUNDTRIP 1 */
/* #define DONT_REPORT_DETAILS 1 */
void DebuggerDummy(void);
#ifdef DONT_REPORT_DETAILS
#define XP_TraceHeader(a) DebuggerDummy()
#else
#define XP_TraceHeader XP_Trace
#endif
/*-----------------------------------------------------------------------*/
/*
Global
*/
unsigned char in[256];
unsigned char out[256];
int16 outcsid;
uint16 inread;
uint16 outlen;
int16 i,j,k;
uint16 csid ;
XP_Bool ret;
unsigned char npcfb;
/*-----------------------------------------------------------------------*/
/*
Tables
*/
enum {
notesting = 0,
test1byte,
test2byte,
test8bit,
testsjis,
testbig5
};
static uint16 testcase[MAXCSIDINNPC] =
{
notesting, notesting, test1byte, notesting, testsjis, notesting, test1byte, testbig5,
test8bit, notesting, test1byte, test1byte, test8bit, notesting, test1byte, test1byte,
test1byte, test1byte, test1byte, test1byte, test1byte, test1byte, test1byte, test1byte,
test2byte, test2byte, test2byte, test1byte, test2byte, test1byte, test2byte, test2byte,
notesting, notesting, notesting, notesting, notesting, notesting, notesting, notesting,
notesting, notesting, notesting, notesting, notesting, notesting, notesting, notesting,
notesting, notesting, notesting, notesting, notesting, notesting, notesting, notesting,
notesting, notesting, notesting, notesting, notesting, notesting, test1byte, notesting,
};
/*-----------------------------------------------------------------------*/
/*
Macros
*/
#define CheckRet() XP_ASSERT(ret == TRUE)
#define CheckInread(einread) XP_ASSERT(inread == einread)
#define CheckOutlen(eoutlen) XP_ASSERT(outlen == eoutlen)
#define CheckCSID() XP_ASSERT((uint16)outcsid == csid)
void StopInHere(unsigned char *in, unsigned char *out, uint16 inread, int16 outlen, uint16 outcsid )
{
int a;
a = 5; /* Dummy rountine, just stop in here */
}
void BasicCheck(uint16 einread,uint16 eoutlen)
{
CheckRet();
CheckInread(einread);
CheckOutlen(eoutlen);
CheckCSID();
}
void CheckU(uint16 einread,uint16 eoutlen)
{
CheckRet();
CheckInread(einread);
CheckOutlen(eoutlen);
}
void BasicCheck1(void)
{
BasicCheck(2,1);
XP_ASSERT(in[2] == out[1]);
}
void BasicCheck2(void)
{
BasicCheck(3,2);
XP_ASSERT(in[2] == out[1]);
XP_ASSERT(in[3] == out[2]);
}
void Test1(unsigned char b1)
{
in[0]= npcfb;
in[1] = b1;
ret= INTL_ConvertNPC(in, 2,&inread, out, 256, &outlen, &outcsid);
BasicCheck1();
}
void Test2(unsigned char b1,unsigned char b2)
{
in[0]= npcfb;
in[1] = b1;
in[2] = b2;
ret= INTL_ConvertNPC(in, 3,&inread, out, 256, &outlen, &outcsid);
BasicCheck2();
}
void TestU1(unsigned char b1)
{
in[0]= b1;
ret= INTL_ConvertNPC(in, 1,&inread, out, 256, &outlen, &outcsid);
CheckU(1,1);
XP_ASSERT(in[0] == out[0]);
}
void TestU2(unsigned char b1,unsigned char b2)
{
in[0]= b1;
in[1]= b2;
ret= INTL_ConvertNPC(in, 2,&inread, out, 256, &outlen, &outcsid);
CheckInread(2);
StopInHere(in,out,inread,outlen,outcsid);
}
void TestU3(unsigned char b1,unsigned char b2,unsigned char b3)
{
in[0]= b1;
in[1]= b2;
in[2]= b3;
ret= INTL_ConvertNPC(in, 3,&inread, out, 256, &outlen, &outcsid);
CheckInread(3);
StopInHere(in,out,inread,outlen,outcsid);
}
/*-----------------------------------------------------------------------*/
/*
Routines
*/
void testutf81(void)
{
XP_TraceHeader("Start TestUTF81\n");
for(i=1;i<0x80;i++)
TestU1(i);
XP_TraceHeader("End TestUTF81\n");
}
void testutf82(void)
{
XP_TraceHeader("Start TestUTF82\n");
for(i=0xc2;i<0xe0;i++)
for(j=0x80;j<0xc0;j++)
TestU2(i,j);
XP_TraceHeader("End TestUTF82\n");
}
void testutf83(void)
{
XP_TraceHeader("Start TestUTF83\n");
for(j=0xa0;j<0xc0;j++)
for(k=0x80;k<0xc0;k++)
TestU3(0xe0,j,k);
for(i=0xe1;i<0xf0;i++)
for(j=0x80;j<0xc0;j++)
for(k=0x80;k<0xc0;k++)
TestU3(i,j,k);
XP_TraceHeader("End TestUTF83\n");
}
void testutf84(void)
{
XP_TraceHeader("Start TestUTF84\n");
XP_TraceHeader("To Be Implement\n");
XP_TraceHeader("End TestUTF84\n");
}
void testutf85(void)
{
XP_TraceHeader("Start TestUTF85\n");
XP_TraceHeader("To Be Implement\n");
XP_TraceHeader("End TestUTF85\n");
}
void testutf86(void)
{
XP_TraceHeader("Start TestUTF86\n");
XP_TraceHeader("To Be Implement\n");
XP_TraceHeader("End TestUTF86\n");
}
void Test1Byte(unsigned char npcfb, uint16 csid)
{
XP_TraceHeader("Start Test1Byte\n");
for(i=1;i<256;i++)
Test1( i);
XP_TraceHeader("End Test1Byte\n");
}
void Test2Byte(unsigned char npcfb, uint16 csid)
{
XP_TraceHeader("Start Test2Byte\n");
for(i=0x21;i<0x7F;i++)
for(j=0x21;j<0x7F;j++)
Test2(i,j);
XP_TraceHeader("End Test2Byte\n");
}
void Test8Bit(unsigned char npcfb, uint16 csid)
{
XP_TraceHeader("Start Test8bit\n");
for(i=1;i<0x80;i++)
Test1(i);
for(i=0xA1;i<0xFF;i++)
for(j=0xA1;j<0xFF;j++)
Test2( i,j);
XP_TraceHeader("End Test8bit\n");
}
void Testsjis(unsigned char npcfb, uint16 csid)
{
XP_TraceHeader("Start Testsjis\n");
for(i=1;i<0x80;i++)
Test1(i);
for(i=0xA1;i<0xE0;i++)
Test1( i);
for(i=0x81;i<0xA0;i++)
{
for(j=0x40;j<0x80;j++)
Test2( i,j);
for(j=0x80;j<0xFD;j++)
Test2( i,j);
}
for(i=0xE0;i<0xFD;i++)
{
for(j=0x40;j<0x80;j++)
Test2( i,j);
for(j=0x80;j<0xFD;j++)
Test2(i,j);
}
XP_TraceHeader("End Testsjis\n");
}
void Testbig5(unsigned char npcfb, uint16 csid)
{
XP_TraceHeader("Start Testbit5\n");
for(i=1;i<0x80;i++)
Test1( i);
for(i=0xA1;i<0xFF;i++)
{
for(j=0x40;j<0x80;j++)
Test2( i,j);
for(j=0xA1;j<0xFF;j++)
Test2(i,j);
}
XP_TraceHeader("End Testbit5\n");
}
void DebuggerDummy()
{
}
void VerifyUnicodeTestSeg(unsigned char *buf1, unsigned char *buf2, INTL_Unicode *u)
{
if(strcmp((char*)buf1, (char*)buf2) != 0)
{
int i;
unsigned char *a, *b;
INTL_Unicode *p;
XP_Trace("Round Trip Problem \n Unicode:");
for(i=0,p=u; *p ; p++,i++)
XP_Trace("%d- U+%4X",i,*p);
XP_Trace(" String [from to]");
for(i=0,a=buf1,b=buf2; (*a && *b) ; a++, b++,i++)
if(*a != *b)
XP_Trace("%d- %2X %2X",i,*a,*b);
for(;*a;a++,i++)
XP_Trace("%d- %2X NULL",i,*a);
for(;*b;b++,i++)
XP_Trace("%d- NULL %2X",i,*b);
}
else
XP_TraceHeader("Round Trip OK!!!");
}
void unicodeTestSBSeg(unsigned char f, unsigned char l,
uint16 csid, char* charsetname )
{
uint16 len1, len2;
unsigned char *buf1,*buf2;
uint16 i;
uint16 ulen;
INTL_Unicode *u;
unsigned char c;
XP_TraceHeader("Start unicodeTestSeg(%s) routine, %2X %2X\n",charsetname,f,l);
len1 = l-f+2;
buf1=XP_ALLOC(len1);
XP_ASSERT(buf1 != NULL);
for(i=0,c=f;c<l;i++,c++)
{
XP_ASSERT(i < len1 );
buf1[i]=c;
}
XP_ASSERT(i < len1 );
buf1[i++]=l;
XP_ASSERT(i < len1 );
buf1[i]=0;
ulen = INTL_StrToUnicodeLen(csid,buf1) + 1;
u=XP_ALLOC((ulen)*sizeof(INTL_Unicode));
XP_ASSERT(u != NULL);
INTL_StrToUnicode(csid, buf1, u, ulen);
len2 = INTL_UnicodeToStrLen(csid, u, INTL_UnicodeLen(u)) + 1;
buf2 = XP_ALLOC(len2);
XP_ASSERT(buf2 != NULL);
INTL_UnicodeToStr(csid,u,INTL_UnicodeLen(u), buf2,len2);
VerifyUnicodeTestSeg(buf1,buf2,u);
XP_FREE(buf1);
XP_FREE(buf2);
XP_FREE(u);
XP_TraceHeader("End unicodeTestSeg() routine\n");
}
void unicodeTest3BSeg(unsigned char fb, unsigned char sb,
unsigned char f, unsigned char l,
uint16 csid, char* charsetname )
{
uint16 len1,len2;
unsigned char *buf1, *buf2;
unsigned char c;
uint16 i;
uint16 ulen;
INTL_Unicode *u;
XP_TraceHeader("Start unicodeTest3BSeg(%s) routine, %2X%2X%2X %2X%2X%2X\n",
charsetname,fb,sb,f,fb,sb,l);
len1 = (l-f+2)*3;
buf1=XP_ALLOC(len1);
XP_ASSERT(buf1 != NULL);
for(i=0,c=f;c<l ;c++)
{
XP_ASSERT(i < len1 );
buf1[i++]=fb;
XP_ASSERT(i < len1 );
buf1[i++]=sb;
XP_ASSERT(i < len1 );
buf1[i++]=c;
}
XP_ASSERT(i < len1 );
buf1[i++]=fb;
XP_ASSERT(i < len1 );
buf1[i++]=sb;
XP_ASSERT(i < len1 );
buf1[i++]=l;
XP_ASSERT(i < len1 );
buf1[i]=0;
ulen = INTL_StrToUnicodeLen(csid,buf1) + 1;
u=XP_ALLOC((ulen)*sizeof(INTL_Unicode));
XP_ASSERT(u != NULL);
INTL_StrToUnicode(csid, buf1, u, ulen);
len2 = INTL_UnicodeToStrLen(csid, u,INTL_UnicodeLen(u)) + 1;
buf2 = XP_ALLOC(len2);
XP_ASSERT(buf2 != NULL);
INTL_UnicodeToStr(csid,u,INTL_UnicodeLen(u),buf2,len2);
VerifyUnicodeTestSeg(buf1,buf2,u);
XP_FREE(buf1);
XP_FREE(buf2);
XP_FREE(u);
XP_TraceHeader("End unicodeTestSeg() routine\n");
}
void unicodeTestTBSeg(unsigned char fb, unsigned char f, unsigned char l,
uint16 csid, char* charsetname )
{
uint16 len1,len2;
unsigned char *buf1, *buf2;
unsigned char c;
uint16 i;
uint16 ulen;
INTL_Unicode *u;
XP_TraceHeader("Start unicodeTestTBSeg(%s) routine, %2X%2X %2X%2X\n",
charsetname,fb,f,fb,l);
len1 = (l-f+2)*2;
buf1=XP_ALLOC(len1);
XP_ASSERT(buf1 != NULL);
for(i=0,c=f;c<l ;c++)
{
XP_ASSERT(i < len1 );
buf1[i++]=fb;
XP_ASSERT(i < len1 );
buf1[i++]=c;
}
XP_ASSERT(i < len1 );
buf1[i++]=fb;
XP_ASSERT(i < len1 );
buf1[i++]=l;
XP_ASSERT(i < len1 );
buf1[i]=0;
ulen = INTL_StrToUnicodeLen(csid,buf1) + 1;
u=XP_ALLOC((ulen)*sizeof(INTL_Unicode));
XP_ASSERT(u != NULL);
INTL_StrToUnicode(csid, buf1, u, ulen);
len2 = INTL_UnicodeToStrLen(csid, u,INTL_UnicodeLen(u)) + 1;
buf2 = XP_ALLOC(len2);
XP_ASSERT(buf2 != NULL);
INTL_UnicodeToStr(csid,u,INTL_UnicodeLen(u),buf2,len2);
VerifyUnicodeTestSeg(buf1,buf2,u);
XP_FREE(buf1);
XP_FREE(buf2);
XP_FREE(u);
XP_TraceHeader("End unicodeTestSeg() routine\n");
}
void unicodeTest(void)
{
XP_TraceHeader("Start unicodeTest() routine\n");
XP_TraceHeader("To Be Implement\n");
/* CS_LATIN1 */
#ifndef XP_MAC
unicodeTestSBSeg(0x01,0x7e,CS_LATIN1, "CS_LATIN1");
unicodeTestSBSeg(0xa0,0xfe,CS_LATIN1, "CS_LATIN1");
#endif
/* CS_SJIS */
unicodeTestSBSeg(0x20,0x7e,CS_SJIS, "CS_SJIS");
unicodeTestSBSeg(0xA1,0xDF,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x81,0x40,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x81,0x80,0xac,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x81,0xb8,0xbf,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x81,0xc8,0xce,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x81,0xda,0xe8,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x81,0xf0,0xf7,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x82,0x4f,0x58,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x82,0x6e,0x79,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x82,0x81,0x9a,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x82,0x9F,0xf1,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x83,0x40,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x83,0x80,0x96,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x83,0x9F,0xb6,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x83,0xbF,0xD6,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x84,0x40,0x60,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x84,0x70,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x84,0x80,0x91,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x84,0x9f,0xbE,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x88,0x9f,0xFC,CS_SJIS, "CS_SJIS");
{
unsigned char fb;
for(fb=0x89;fb<0x98;fb++)
{
unicodeTestTBSeg(fb,0x40,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(fb,0x80,0xFC,CS_SJIS, "CS_SJIS");
}
unicodeTestTBSeg(0x98,0x40,0x72,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0x98,0x9F,0xFC,CS_SJIS, "CS_SJIS");
for(fb=0x99;fb<0xa0;fb++)
{
unicodeTestTBSeg(fb,0x40,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(fb,0x80,0xFC,CS_SJIS, "CS_SJIS");
}
for(fb=0xe0;fb<0xEA;fb++)
{
unicodeTestTBSeg(fb,0x40,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(fb,0x80,0xFC,CS_SJIS, "CS_SJIS");
}
unicodeTestTBSeg(0xEA,0x40,0x7E,CS_SJIS, "CS_SJIS");
unicodeTestTBSeg(0xEA,0x80,0xA4,CS_SJIS, "CS_SJIS");
}
/* To Be Continue */
/* CS_EUCJP */
#ifdef XP_UNIX
unicodeTestSBSeg(0x20,0x7e,CS_EUCJP, "CS_EUCJP");
DebuggerDummy();
unicodeTestTBSeg(0x8e,0xA1,0xDF,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA1,0xA1,0xFE,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA2,0xA1,0xAE,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA2,0xBA,0xC1,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA2,0xCA,0xD0,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA2,0xDc,0xEA,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA2,0xf2,0xf9,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA3,0xB0,0xB9,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA3,0xc1,0xda,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA3,0xe1,0xfa,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA4,0xA1,0xf3,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA5,0xA1,0xf6,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA6,0xA1,0xb8,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA6,0xc1,0xd8,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA7,0xA1,0xC1,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA7,0xD1,0xF1,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xA8,0xA1,0xc0,CS_EUCJP, "CS_EUCJP");
{
unsigned char fb;
for(fb=0xB0;fb<0xcf;fb++)
unicodeTestTBSeg(fb,0xA1,0xFE,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xcf,0xA1,0xd3,CS_EUCJP, "CS_EUCJP");
for(fb=0xd0;fb<0xF4;fb++)
unicodeTestTBSeg(fb,0xA1,0xFE,CS_EUCJP, "CS_EUCJP");
unicodeTestTBSeg(0xF4,0xA1,0xA6,CS_EUCJP, "CS_EUCJP");
}
unicodeTest3BSeg(0x8F,0xA2,0xAF,0xB9,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA2,0xc2,0xc4,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA2,0xeb,0xf1,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA6,0xe1,0xe5,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA6,0xf1,0xfc,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA6,0xf1,0xfc,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA7,0xc2,0xce,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xA7,0xf2,0xfe,CS_EUCJP, "CS_EUCJP");
/* GAP
unicodeTest3BSeg(0x8F,0xA9,0xA1,0xB0,CS_EUCJP, "CS_EUCJP");
*/
unicodeTest3BSeg(0x8F,0xA9,0xC1,0xD0,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xAa,0xA1,0xB8,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xAa,0xBA,0xF7,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xAb,0xA1,0xBB,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xAb,0xBD,0xC3,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xAb,0xC5,0xF7,CS_EUCJP, "CS_EUCJP");
{
unsigned char fb;
for(fb=0xB0;fb<0xED;fb++)
unicodeTest3BSeg(0x8F,fb,0xA1,0xFE,CS_EUCJP, "CS_EUCJP");
unicodeTest3BSeg(0x8F,0xED,0xA1,0xe3,CS_EUCJP, "CS_EUCJP");
}
#endif
/* CS_MAC_ROMAN */
#ifdef XP_MAC
unicodeTestSBSeg(0x01,0x7e,CS_MAC_ROMAN, "CS_MAC_ROMAN");
unicodeTestSBSeg(0xa0,0xfe,CS_MAC_ROMAN, "CS_MAC_ROMAN");
#endif
/* CS_BIG5 */
unicodeTestSBSeg(0x20,0x7e,CS_BIG5, "CS_BIG5");
DebuggerDummy();
unicodeTestTBSeg(0xA1,0x40,0x7E,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(0xA1,0xA1,0xFE,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(0xA2,0x40,0x7E,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(0xA2,0xA1,0xFE,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(0xA3,0x40,0x7E,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(0xA3,0xA1,0xe0,CS_BIG5, "CS_BIG5");
{
unsigned char fb;
for(fb=0xa4;fb<0xc5;fb++)
{
unicodeTestTBSeg(fb,0x40,0x7E,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(fb,0xA1,0xfe,CS_BIG5, "CS_BIG5");
}
unicodeTestTBSeg(0xc6,0x40,0x7E,CS_BIG5, "CS_BIG5");
for(fb=0xc9;fb<0xf8;fb++)
{
unicodeTestTBSeg(fb,0x40,0x7E,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(fb,0xA1,0xfe,CS_BIG5, "CS_BIG5");
}
unicodeTestTBSeg(0xf9,0x40,0x7E,CS_BIG5, "CS_BIG5");
unicodeTestTBSeg(0xf9,0xA1,0xf5,CS_BIG5, "CS_BIG5");
}
/* CS_GB_8BIT */
/* CS_CNS_8BIT */
#ifdef XP_UNIX
#endif
/* CS_LATIN2 */
#ifndef XP_MAC
#endif
/* CS_MAC_CE */
#ifdef XP_MAC
#endif
/* CS_KSC_8BIT */
/* CS_8859_3 */
/* CS_8859_4 */
/* CS_8859_5 */
/* CS_8859_6 */
/* CS_8859_7 */
/* CS_8859_8 */
XP_TraceHeader("End unicodeTest() routine\n");
}
void iteratorTest(void)
{
XP_TraceHeader("Start iteratorTest() routine\n");
XP_TraceHeader("To Be Implement\n");
{
uint16 i1,i2;
for(i1=0;i1<256;i1++)
{
INTL_CompoundStr *cstr;
INTL_Unicode uline[257];
INTL_CompoundStrIterator ite;
INTL_Encoding_ID encoding;
unsigned char *outtext;
XP_TraceHeader("INTL_CompoundStr Test U+%4X - U+%4X",(i1<<8),(((i1+1)<<8)-1));
for(i2=0;i2<256;i2++)
uline[i2] = (i1 << 8 ) + i2;
uline[257] = 0;
if(uline[0] == 0)
uline[0] = 1;
cstr = INTL_CompoundStrFromUnicode(uline,256);
for( ite = INTL_CompoundStrFirstStr(cstr, &encoding, &outtext);
ite;
ite= INTL_CompoundStrNextStr(ite, &encoding, &outtext))
{
unsigned char tmp[3*256+8];
unsigned char *s,*d;
uint16 i;
for(i=0,d=tmp, s=outtext; *s; s++,i++,d+=3)
sprintf((char*)d,"%2X ",*s);
*d = '\0';
XP_Trace("EncodingID %d -%s",encoding,tmp );
}
INTL_CompoundStrDestroy(cstr);
}
}
XP_TraceHeader("End iteratorTest() routine\n");
}
void npctest(void)
{
/* test all the csid stuff */
int i;
#ifdef TEST_ROUNDTRIP
unicodeTest();
#endif
iteratorTest();
XP_TraceHeader("Enter npctest() routine\n");
for( i = 0x00 ; i <= 0x40 ; i++)
{
csid = NPCToCSID(i);
XP_Trace("Test CSID = %d\n",csid);
npcfb = i | 0x80;
switch(testcase[i])
{
case test1byte:
Test1Byte(npcfb,csid);
break;
case test2byte:
Test2Byte(npcfb,csid);
break;
case test8bit:
Test8Bit(npcfb,csid);
break;
case testsjis:
Testsjis(npcfb,csid);
break;
case testbig5:
Testbig5(npcfb,csid);
break;
case notesting:
break;
}
}
/* test UTF8 */
testutf81();
testutf82();
testutf83();
testutf84();
testutf85();
testutf86();
XP_TraceHeader("Leave npctest() routine\n");
}