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