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