1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/******************************************************************** 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT: 3b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho * Copyright (c) 1997-2007,2011, 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**); 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addFormatTest(TestNode** root); 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addFormatTest(TestNode** root) 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addCalTest(root); 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateForTest(root); 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateTimePatternGeneratorTest(root); 45b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho addDateIntervalFormatTest(root); 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addNumForTest(root); 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addNumFrDepTest(root); 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addMsgForTest(root); 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateForRgrTest(root); 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDtFrDepTest(root); 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addUtmsTest(root); 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addCurrencyTest(root); 53b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho addPluralRulesTest(root); 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*Internal functions used*/ 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUChar* myDateFormat(UDateFormat* dat, UDate d1) 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UChar *result1=NULL; 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t resultlength, resultlengthneeded; 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlength=0; 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlengthneeded=udat_format(dat, d1, NULL, resultlength, NULL, &status); 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if(status==U_BUFFER_OVERFLOW_ERROR) 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru { 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru status=U_ZERO_ERROR; 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlength=resultlengthneeded+1; 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru result1=(UChar*)ctst_malloc(sizeof(UChar) * resultlength); 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru udat_format(dat, d1, result1, resultlength, NULL, &status); 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if(U_FAILURE(status)) 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru { 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru log_err("Error in formatting using udat_format(.....): %s\n", myErrorName(status)); 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return 0; 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return result1; 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 83