164339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// Copyright (C) 2016 and later: Unicode, Inc. and others. 264339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html 3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/******************************************************************** 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT: 58de051c3d18a56cc126f0f44e368495a52f9148cFredrik Roubert * Copyright (c) 1997-2016, International Business Machines 6b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho * Corporation and others. All Rights Reserved. 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/ 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/******************************************************************************** 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* File CFORMTST.C 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Modification History: 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Name Description 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru* Madhu Katragadda Creation 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru********************************************************************************* 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/ 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* FormatTest is a medium top level test for everything in the C FORMAT API */ 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cintltst.h" 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "cformtst.h" 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addCalTest(TestNode**); 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addDateForTest(TestNode**); 29b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehovoid addDateTimePatternGeneratorTest(TestNode**); 30b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehovoid addDateIntervalFormatTest(TestNode**); 318de051c3d18a56cc126f0f44e368495a52f9148cFredrik Roubertvoid addRelativeDateFormatTest(TestNode**); 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addNumForTest(TestNode**); 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addMsgForTest(TestNode**); 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addDateForRgrTest(TestNode**); 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addNumFrDepTest(TestNode**); 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addDtFrDepTest(TestNode**); 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addUtmsTest(TestNode**); 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addCurrencyTest(TestNode**); 39b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2clairehovoid addPluralRulesTest(TestNode**); 4059d709d503bab6e2b61931737e662dd293b40578ccorneliusvoid addURegionTest(TestNode** root); 411b7d32f919554dda9c193b32188251337bc756f1Fredrik Roubertvoid addUListFmtTest(TestNode** root); 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addFormatTest(TestNode** root); 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid addFormatTest(TestNode** root) 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addCalTest(root); 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateForTest(root); 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateTimePatternGeneratorTest(root); 50b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho addDateIntervalFormatTest(root); 518de051c3d18a56cc126f0f44e368495a52f9148cFredrik Roubert#if !UCONFIG_NO_BREAK_ITERATION 528de051c3d18a56cc126f0f44e368495a52f9148cFredrik Roubert addRelativeDateFormatTest(root); 538de051c3d18a56cc126f0f44e368495a52f9148cFredrik Roubert#endif /* !UCONFIG_NO_BREAK_ITERATION */ 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addNumForTest(root); 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addNumFrDepTest(root); 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addMsgForTest(root); 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDateForRgrTest(root); 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addDtFrDepTest(root); 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addUtmsTest(root); 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru addCurrencyTest(root); 61b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho addPluralRulesTest(root); 6259d709d503bab6e2b61931737e662dd293b40578ccornelius addURegionTest(root); 631b7d32f919554dda9c193b32188251337bc756f1Fredrik Roubert addUListFmtTest(root); 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*Internal functions used*/ 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruUChar* myDateFormat(UDateFormat* dat, UDate d1) 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UChar *result1=NULL; 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru int32_t resultlength, resultlengthneeded; 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru UErrorCode status = U_ZERO_ERROR; 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlength=0; 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlengthneeded=udat_format(dat, d1, NULL, resultlength, NULL, &status); 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if(status==U_BUFFER_OVERFLOW_ERROR) 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru { 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru status=U_ZERO_ERROR; 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru resultlength=resultlengthneeded+1; 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru result1=(UChar*)ctst_malloc(sizeof(UChar) * resultlength); 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru udat_format(dat, d1, result1, resultlength, NULL, &status); 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if(U_FAILURE(status)) 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru { 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru log_err("Error in formatting using udat_format(.....): %s\n", myErrorName(status)); 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return 0; 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return result1; 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 93