| Index: icu46/source/test/threadtest/converttest.cpp
|
| ===================================================================
|
| --- icu46/source/test/threadtest/converttest.cpp (revision 0)
|
| +++ icu46/source/test/threadtest/converttest.cpp (revision 0)
|
| @@ -0,0 +1,88 @@
|
| +//
|
| +//********************************************************************
|
| +// Copyright (C) 2002-2003, International Business Machines
|
| +// Corporation and others. All Rights Reserved.
|
| +//********************************************************************
|
| +//
|
| +// File converttest.cpp
|
| +//
|
| +
|
| +#include "threadtest.h"
|
| +#include "unicode/utypes.h"
|
| +#include "unicode/ucnv.h"
|
| +#include "unicode/uclean.h"
|
| +#include "stdio.h"
|
| +
|
| +U_CAPI UBool U_EXPORT2 ucnv_cleanup();
|
| +
|
| +class ConvertThreadTest: public AbstractThreadTest {
|
| +public:
|
| + ConvertThreadTest();
|
| + virtual ~ConvertThreadTest();
|
| + virtual void check();
|
| + virtual void runOnce();
|
| +
|
| +private:
|
| + UConverter *fCnv;
|
| +};
|
| +
|
| +
|
| +ConvertThreadTest::ConvertThreadTest() {
|
| + UErrorCode err = U_ZERO_ERROR;
|
| +
|
| + fCnv = ucnv_open("gb18030", &err);
|
| + if (U_FAILURE(err)) {
|
| + fprintf(stderr, "ConvertTest - could not ucnv_open(\"gb18030\")\n");
|
| + fCnv = NULL;
|
| + }
|
| +};
|
| +
|
| +
|
| +ConvertThreadTest::~ConvertThreadTest() {
|
| + ucnv_close(fCnv);
|
| + fCnv = 0;
|
| +}
|
| +
|
| +void ConvertThreadTest::runOnce() {
|
| + UErrorCode err = U_ZERO_ERROR;
|
| + UConverter *cnv1;
|
| + UConverter *cnv2;
|
| + char buf[U_CNV_SAFECLONE_BUFFERSIZE];
|
| + int32_t bufSize = U_CNV_SAFECLONE_BUFFERSIZE;
|
| +
|
| + cnv1 = ucnv_open("shift_jis", &err);
|
| + if (U_FAILURE(err)) {
|
| + fprintf(stderr, "ucnv_open(\"shift_jis\") failed.\n");
|
| + }
|
| +
|
| + cnv2 = ucnv_safeClone(fCnv, // The source converter, common to all threads.
|
| + buf,
|
| + &bufSize,
|
| + &err);
|
| + if (U_FAILURE(err)) {
|
| + fprintf(stderr, "ucnv_safeClone() failed.\n");
|
| + }
|
| + ucnv_close(cnv1);
|
| + ucnv_close(cnv2);
|
| + ucnv_flushCache();
|
| +}
|
| +
|
| +void ConvertThreadTest::check() {
|
| + UErrorCode err = U_ZERO_ERROR;
|
| +
|
| + if (fCnv) {ucnv_close(fCnv);}
|
| + //if (ucnv_cleanup () == FALSE) {
|
| + // fprintf(stderr, "ucnv_cleanup() failed - cache was not empty.\n");
|
| + //}
|
| + fCnv = ucnv_open("gb18030", &err);
|
| + if (U_FAILURE(err)) {
|
| + fprintf(stderr, "ConvertTest::check() - could not redo ucnv_open(\"gb18030\")\n");
|
| + fCnv = NULL;
|
| + }
|
| +}
|
| +
|
| +
|
| +AbstractThreadTest *createConvertTest() {
|
| + return new ConvertThreadTest();
|
| +}
|
| +
|
|
|
| Property changes on: icu46/source/test/threadtest/converttest.cpp
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|