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