1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/******************************************************************** 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT: 31b7d32f919554dda9c193b32188251337bc756f1Fredrik Roubert * Copyright (c) 1997-2015, International Business Machines 4b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho * Corporation and others. All Rights Reserved. 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/ 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/******************************************************************************** 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* File CFORMTST.C 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Modification History: 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Name Description 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Madhu Katragadda Creation 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru********************************************************************************* 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* FormatTest is a medium top level test for everything in the C FORMAT API */ 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cintltst.h" 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cformtst.h" 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addCalTest(TestNode**); 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addDateForTest(TestNode**); 27b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehovoid addDateTimePatternGeneratorTest(TestNode**); 28b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehovoid addDateIntervalFormatTest(TestNode**); 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addNumForTest(TestNode**); 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addMsgForTest(TestNode**); 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addDateForRgrTest(TestNode**); 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addNumFrDepTest(TestNode**); 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addDtFrDepTest(TestNode**); 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addUtmsTest(TestNode**); 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addCurrencyTest(TestNode**); 36b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehovoid addPluralRulesTest(TestNode**); 3759d709d503bab6e2b61931737e662dd293b40578ccorneliusvoid addURegionTest(TestNode** root); 381b7d32f919554dda9c193b32188251337bc756f1Fredrik Roubertvoid addUListFmtTest(TestNode** root); 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addFormatTest(TestNode** root); 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addFormatTest(TestNode** root) 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addCalTest(root); 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateForTest(root); 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateTimePatternGeneratorTest(root); 47b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho addDateIntervalFormatTest(root); 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addNumForTest(root); 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addNumFrDepTest(root); 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addMsgForTest(root); 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateForRgrTest(root); 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDtFrDepTest(root); 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addUtmsTest(root); 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addCurrencyTest(root); 55b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho addPluralRulesTest(root); 5659d709d503bab6e2b61931737e662dd293b40578ccornelius addURegionTest(root); 571b7d32f919554dda9c193b32188251337bc756f1Fredrik Roubert addUListFmtTest(root); 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*Internal functions used*/ 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUChar* myDateFormat(UDateFormat* dat, UDate d1) 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UChar *result1=NULL; 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t resultlength, resultlengthneeded; 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlength=0; 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlengthneeded=udat_format(dat, d1, NULL, resultlength, NULL, &status); 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if(status==U_BUFFER_OVERFLOW_ERROR) 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru { 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru status=U_ZERO_ERROR; 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlength=resultlengthneeded+1; 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru result1=(UChar*)ctst_malloc(sizeof(UChar) * resultlength); 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru udat_format(dat, d1, result1, resultlength, NULL, &status); 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if(U_FAILURE(status)) 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru { 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru log_err("Error in formatting using udat_format(.....): %s\n", myErrorName(status)); 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return 0; 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return result1; 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 87